一种基于AVR单片机的便携式无线医疗点滴监控系统
3 系统软件结构
本文引用地址:https://www.eepw.com.cn/article/262821.htm(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的嵌入式系统,利用无线通信方式实现远程在线监控,无线网络的组建增强了系统的可移动性。本文提出的一种基于AVR32的便携式点滴监控系统的设计,将医疗点滴监控装置小型化,近距离范围内系统稳定。由于资源有限,关于远距离控制的网络组建还在进一步探索。
评论