一種基于AVR單片機的便攜式無線醫療點滴監控系統
3 系統軟件結構
本文引用地址:http://www.104case.com/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的便攜式點滴監控系統的設計,將醫療點滴監控裝置小型化,近距離范圍內系統穩定。由于資源有限,關于遠距離控制的網絡組建還在進一步探索。
評論