引言
智能化和便携式是现代电子产品的发展趋势,医疗电子的智能化使得医务人员的操作变得更方便。医务人员可随身携带手持式监控仪对各病房点滴实时监控,及时了解相关情况;如遇突发情况如点滴低于设定警戒值,终端监控装置可产生中断信号,主控制端则可优先进行相应的处理。本设计实现了一种以AT32UC3A0512[1]单片机为主控制器的便携式远程无线点滴监控系统,可及时了解点滴状态,提高医疗点滴设备安全性。
1 系统原理介绍
本系统主要包括两个部分:手持式控制端和终端监控装置。手持式控制端主要实现信息输入和查询界面的操作,通过输入待查询的病房号及点滴速度值,以数据包形式发送给相应的病房监控终端,实时显示终端传送来的点滴状态数据信息。终端监控装置主要负责点滴状态的数据采集和处理(点滴流速与点滴液位等),以及将处理好的数据通过无线通信方式发送给主控制端;对于点滴液位低于设定值、病人呼叫等紧急事件,按照中断模式处理,发出报警提示,并将事件类型以数据包形式发送至主控制端。系统的结构框图如图1所示。
图1 系统结构框图
2 系统硬件设计
2.1 控制端部分硬件设计
手持式控制端采用Atmel公司的32位RISC处理器AT32UC3A0512为主控制器[1]。它的功耗低,吞吐量高,内部具有512K Flash和64K的SRAM,CPU工作频率最高可达66 MHz;在3.3 V电压下,工作电流约40 mA,待机电流则仅为30 μA。内部高度集成的硬件资源可简化外围电路的设计,如内部Flash、USB、ADC、EBI和以太网等外设接口可供设计者使用。
2.1.1 触摸按键模块
采用Quantum Research Group公司的电容式触摸按键模块IC QT1801,[2]具有功耗低,外围电路简单,可同时支持8个触摸按键输入等特点。经过内部滤波整形后,在对应的按键口输出逻辑电平,根据外围电阻值的不同选择可以设置IC QT1801的各种模式。工作模式的设置如下:在全模式(Full Option Mode)下,需在引脚SNSx(x=0,1,…,7)接1 MΩ电阻;在精简模式下,需在引脚SNS6K和SNS7之间串接一个1 MΩ电阻。按键输出值模式有2种:Oneperkey和Binary Code。当有按键触摸时在24引脚(DETECT)产生触摸中断信号,高电平有效。其中,CS1~CS5为触摸按键输入,其接口电路如图2所示。
图2 触摸按键模块电路图
2.1.2 LCD显示模块
显示部分采用EDT公司的LCD显示模块ET024006DHU,该LCD模块内部集成了图形控制驱动器HX8347A,MCU可通过两种接口方式对其内部寄存器进行读/写操作来控制LCD的显示,分别是并行接口模式和SPI接口模式。并行接口模式下可选择8/16位数据和16/18位RGB数据,串行SPI接口模式下可将8/16位数据和16/18位RGB数据直接写入内部寄存器。
2.1.3 无线通信模块nRF24L01[3]
无线通信部分采用单片射频收发芯片,其工作频段为世界通用的ISM频段(2.4~2.5 GHz),是一款真正的GFSK单收发芯片。内置链路层,具有自动应答及自动重发功能,支持地址及CRC检验功能。它具有极低的电流消耗,掉电和待机模式下电流消耗更低;数据传输速率最高可达2 Mbps,内置标准的SPI接口可与MCU进行数据传输,速率最高可达8 Mbps;可工作在125个可选频道,在接收模式下,可同时接收工作在同一频道的6个数据通道的数据,相互通信的收发器的数据通道设置为同一个地址。
通过对nRF24L01内部寄存器的读/写来控制其工作状态的转换及数据的收发,当收发器数据接收/发送完成或者出现异常时,IRQ引脚产生中断信号,低电平有效,对STATUS寄存器相应位写“1”,清除中断标志。无线通信模块硬件连接如图3所示。
2.2 终端监控装置硬件设计
终端监控装置采用ATmega128单片机,主要接收控制端发送的命令数据,并将采集的数据进行处理发送给控制端,完成病人呼叫、液面监测、对点滴速度的检测与控制,以及声音报警等功能。
2.2.1 点滴速度控制模块
点滴速度控制电路采用专用的步进电机控制芯片L297、双全桥步进电机驱动芯片L298。L297内部的PWM斩波器电路在开关模式下可产生PWM波,控制电机绕组中的电流,从而控制电机的精确转动;它产生的4相控制信号可用于控制两相双极性和四相单极性步进电机。L298内含HBridge高电压、大电流双全桥式驱动器,4路驱动电路可驱动46 V、2 A以下的两相或四相步进电机,可实现步进电机的正反转。通过精确控制电机的正反转来控制点滴装置的流速夹滚轴的滑动,以达到控制点滴滴落速度的目的。硬件连接图如图4所示。
图3 无线模块硬件图
图4 点滴速度控制电路图
2.2.2 点滴速度和液位检测模块
利用红外对管发射方法测量点滴速度。点滴检测电路包括红外发射、接收、脉冲整形3部分,硬件原理图如图5所示。ST1150是单光速直射式红外光电传感器,光缝宽度为1.5 mm,光轴中心为2.5 mm,红外检测面积较小。当无液滴通过时,接收管(ST1150内部的三极管)导通,Vin为低电平;当有液滴通过时,接收管截止,Vin处产生高电平脉冲,经过斯密特触发器整形后在Vout处产生一串规则的方波脉冲,并送至ATmega128进行处理。
图5 点滴速度检测电路
液位检测则采用反射式红外传感器,电路检测原理电路和点滴速度检测电路类似。ST198是采用高发射功率红外光电二极管和高灵敏度光电晶体管组成的反射式光电传感器,采用非接触检测方式,检测距离为2~10 mm时可用。当液位低于设定值时,接收管接收到的是电平信号,经过反相器倒相后送至单片机,触发中断。当红外对射管为ST1150时用于点滴速度检测,为ST198时用于液位检测。
3 系统软件结构
(1) 数据帧结构
定义一个通信数据帧结构来管理控制端与设备间的通信,通过对数据帧的解析,主/从设备可以高效率地完成数据处理。按照通信传输的先后顺序,数据帧的格式为:命令(1字节)+设备ID(1字节)+事件类型(1字节)+数据域长度(1字节)+数据域(n字节)+校验和(2字节)。
(2) μC/OSII的移植
μC/OSII是一种开源、结构可裁剪的可剥夺实时内核的RTOS,其大部分代码都是C语言,可移植性较强,已在多种系列的CPU上进行了移植。AVR Studio 5内部集成了Software Framework软件包,包含Atmel MCU接口驱动函数,在AVR Studio 5环境下,移植μC/OSII到AT32UC3A0512 MCU上,需要在Micrium官方移植实例中进行以下修改:
① 修改exception.S文件中的内容,修改如下:
_handle_Supervisor_Call:
lddpcpc,__OSCtxSw
__OSCtxSw:。
longOSCtxSw
② 修改cpu.h内容如下:
#define CPU_CRITICAL_ENTER()
{cpu_sr = CPU_SR_Save();}
#define CPU_CRITICAL_EXIT()
{CPU_SR_Restore(cpu_sr);}
#define CPU_SR_Save()cpu_irq_save()
#define CPU_SR_Restore(cpu_sr)
cpu_irq_restore(cpu_sr)
#define CPU_IntDis()Enable_global_interrupt()
#define CPU_IntEn()Disable_global_interrupt()
#define CPU_ExceptDis()Disable_global_exception()
#define CPU_ExceptEn()Enable_global_exception()
#define CPU_Reset()Reset_CPU()
图6 主控制端的软件结构图
(3) 控制器部分软件设计
在μC/OSII系统下的软件结构如图6所示。
主控制端主要通过LCD界面来完成用户的操作,5个触摸键为界面操作按键,数字键盘用软件实现。通过数字键盘输入要查询的病房号,确认后即可查询到该病房中点滴的速度、余量等状态。
界面菜单的切换关系通过定义一个结构体来实现,结构体定义为:
typedef struct MenuItem{
U8 MenuNum;//当层菜单项目数
U8 *DispStr; //显示字符串
struct MenuItem *ChildrenMenus;//子菜单节点
struct MenuItem *ParentMenus; //父菜单节点
} Menu;
(4) 终端监控部分软件设计
终端接收到控制端发来的命令数据包,解析出命令,实施相应的处理,并将数据处理后打包发送给控制端。终端控制部分的软件流程如图7所示。
图7 终端主程序
结语
基于AVR32MCU和μC/OSII的嵌入式系统,利用无线通信方式实现远程在线监控,无线网络的组建增强了系统的可移动性。由于资源有限,关于远距离控制的网络组建还在进一步探索。