基于AVR單片機的便攜式無線醫(yī)療點滴監(jiān)控系統(tǒng)
引言
本文引用地址:http://butianyuan.cn/article/201710/368519.htm智能化和便攜式是現(xiàn)代電子產(chǎn)品的發(fā)展趨勢,醫(yī)療電子的智能化使得醫(yī)務(wù)人員的操作變得更方便。醫(yī)務(wù)人員可隨身攜帶手持式監(jiān)控儀對各病房點滴實時監(jiān)控,及時了解相關(guān)情況;如遇突發(fā)情況如點滴低于設(shè)定警戒值,終端監(jiān)控裝置可產(chǎn)生中斷信號,主控制端則可優(yōu)先進行相應(yīng)的處理。本設(shè)計實現(xiàn)了一種以AT32UC3A0512[1]單片機為主控制器的便攜式遠程無線點滴監(jiān)控系統(tǒng),可及時了解點滴狀態(tài),提高醫(yī)療點滴設(shè)備安全性。
1 系統(tǒng)原理介紹
本系統(tǒng)主要包括兩個部分:手持式控制端和終端監(jiān)控裝置。手持式控制端主要實現(xiàn)信息輸入和查詢界面的操作,通過輸入待查詢的病房號及點滴速度值,以數(shù)據(jù)包形式發(fā)送給相應(yīng)的病房監(jiān)控終端,實時顯示終端傳送來的點滴狀態(tài)數(shù)據(jù)信息。終端監(jiān)控裝置主要負責點滴狀態(tài)的數(shù)據(jù)采集和處理(點滴流速與點滴液位等),以及將處理好的數(shù)據(jù)通過無線通信方式發(fā)送給主控制端;對于點滴液位低于設(shè)定值、病人呼叫等緊急事件,按照中斷模式處理,發(fā)出報警提示,并將事件類型以數(shù)據(jù)包形式發(fā)送至主控制端。系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
2 系統(tǒng)硬件設(shè)計
2.1 控制端部分硬件設(shè)計
手持式控制端采用Atmel公司的32位RISC處理器AT32UC3A0512為主控制器[1]。它的功耗低,吞吐量高,內(nèi)部具有512K Flash和64K的SRAM,CPU工作頻率最高可達66 MHz;在3.3 V電壓下,工作電流約40 mA,待機電流則僅為30 μA。內(nèi)部高度集成的硬件資源可簡化外圍電路的設(shè)計,如內(nèi)部Flash、USB、ADC、EBI和以太網(wǎng)等外設(shè)接口可供設(shè)計者使用。
2.1.1 觸摸按鍵模塊
采用Quantum Research Group公司的電容式觸摸按鍵模塊IC QT1801,[2]具有功耗低,外圍電路簡單,可同時支持8個觸摸按鍵輸入等特點。經(jīng)過內(nèi)部濾波整形后,在對應(yīng)的按鍵口輸出邏輯電平,根據(jù)外圍電阻值的不同選擇可以設(shè)置IC QT1801的各種模式?! 」ぷ髂J降脑O(shè)置如下:在全模式(Full Option Mode)下,需在引腳SNSx(x=0,1,…,7)接1 MΩ電阻;在精簡模式下,需在引腳SNS6K和SNS7之間串接一個1 MΩ電阻。按鍵輸出值模式有2種:Oneperkey和Binary Code。當有按鍵觸摸時在24引腳(DETECT)產(chǎn)生觸摸中斷信號,高電平有效。其中,CS1~CS5為觸摸按鍵輸入,其接口電路如圖2所示。
圖2 觸摸按鍵模塊電路圖
2.1.2 LCD顯示模塊
顯示部分采用EDT公司的LCD顯示模塊ET024006DHU,該LCD模塊內(nèi)部集成了圖形控制驅(qū)動器HX8347A,MCU可通過兩種接口方式對其內(nèi)部寄存器進行讀/寫操作來控制LCD的顯示,分別是并行接口模式和SPI接口模式。并行接口模式下可選擇8/16位數(shù)據(jù)和16/18位RGB數(shù)據(jù),串行SPI接口模式下可將8/16位數(shù)據(jù)和16/18位RGB數(shù)據(jù)直接寫入內(nèi)部寄存器。
2.1.3 無線通信模塊nRF24L01[3]
無線通信部分采用單片射頻收發(fā)芯片,其工作頻段為世界通用的ISM頻段(2.4~2.5 GHz),是一款真正的GFSK單收發(fā)芯片。內(nèi)置鏈路層,具有自動應(yīng)答及自動重發(fā)功能,支持地址及CRC檢驗功能。它具有極低的電流消耗,掉電和待機模式下電流消耗更低;數(shù)據(jù)傳輸速率最高可達2 Mbps,內(nèi)置標準的SPI接口可與MCU進行數(shù)據(jù)傳輸,速率最高可達8 Mbps;可工作在125個可選頻道,在接收模式下,可同時接收工作在同一頻道的6個數(shù)據(jù)通道的數(shù)據(jù),相互通信的收發(fā)器的數(shù)據(jù)通道設(shè)置為同一個地址。
通過對nRF24L01內(nèi)部寄存器的讀/寫來控制其工作狀態(tài)的轉(zhuǎn)換及數(shù)據(jù)的收發(fā),當收發(fā)器數(shù)據(jù)接收/發(fā)送完成或者出現(xiàn)異常時,IRQ引腳產(chǎn)生中斷信號,低電平有效,對STATUS寄存器相應(yīng)位寫“1”,清除中斷標志。無線通信模塊硬件連接如圖3所示。
2.2 終端監(jiān)控裝置硬件設(shè)計
終端監(jiān)控裝置采用ATmega128單片機,主要接收控制端發(fā)送的命令數(shù)據(jù),并將采集的數(shù)據(jù)進行處理發(fā)送給控制端,完成病人呼叫、液面監(jiān)測、對點滴速度的檢測與控制,以及聲音報警等功能。
2.2.1 點滴速度控制模塊
點滴速度控制電路采用專用的步進電機控制芯片L297、雙全橋步進電機驅(qū)動芯片L298。L297內(nèi)部的PWM斬波器電路在開關(guān)模式下可產(chǎn)生PWM波,控制電機繞組中的電流,從而控制電機的精確轉(zhuǎn)動;它產(chǎn)生的4相控制信號可用于控制兩相雙極性和四相單極性步進電機。L298內(nèi)含HBridge高電壓、大電流雙全橋式驅(qū)動器,4路驅(qū)動電路可驅(qū)動46 V、2 A以下的兩相或四相步進電機,可實現(xiàn)步進電機的正反轉(zhuǎn)。通過精確控制電機的正反轉(zhuǎn)來控制點滴裝置的流速夾滾軸的滑動,以達到控制點滴滴落速度的目的。硬件連接圖如圖4所示。
圖3 無線模塊硬件圖
圖4 點滴速度控制電路圖
2.2.2 點滴速度和液位檢測模塊
利用紅外對管發(fā)射方法測量點滴速度。點滴檢測電路包括紅外發(fā)射、接收、脈沖整形3部分,硬件原理圖如圖5所示。ST1150是單光速直射式紅外光電傳感器,光縫寬度為1.5 mm,光軸中心為2.5 mm,紅外檢測面積較小。當無液滴通過時,接收管(ST1150內(nèi)部的三極管)導(dǎo)通,Vin為低電平;當有液滴通過時,接收管截止,Vin處產(chǎn)生高電平脈沖,經(jīng)過斯密特觸發(fā)器整形后在Vout處產(chǎn)生一串規(guī)則的方波脈沖,并送至ATmega128進行處理。
圖5 點滴速度檢測電路
液位檢測則采用反射式紅外傳感器,電路檢測原理電路和點滴速度檢測電路類似。ST198是采用高發(fā)射功率紅外光電二極管和高靈敏度光電晶體管組成的反射式光電傳感器,采用非接觸檢測方式,檢測距離為2~10 mm時可用。當液位低于設(shè)定值時,接收管接收到的是電平信號,經(jīng)過反相器倒相后送至單片機,觸發(fā)中斷。當紅外對射管為ST1150時用于點滴速度檢測,為ST198時用于液位檢測。
3 系統(tǒng)軟件結(jié)構(gòu)
(1) 數(shù)據(jù)幀結(jié)構(gòu)
定義一個通信數(shù)據(jù)幀結(jié)構(gòu)來管理控制端與設(shè)備間的通信,通過對數(shù)據(jù)幀的解析,主/從設(shè)備可以高效率地完成數(shù)據(jù)處理。按照通信傳輸?shù)南群箜樞颍瑪?shù)據(jù)幀的格式為:命令(1字節(jié))+設(shè)備ID(1字節(jié))+事件類型(1字節(jié))+數(shù)據(jù)域長度(1字節(jié))+數(shù)據(jù)域(n字節(jié))+校驗和(2字節(jié))。
(2) μC/OSII的移植
μC/OSII是一種開源、結(jié)構(gòu)可裁剪的可剝奪實時內(nèi)核的RTOS,其大部分代碼都是C語言,可移植性較強,已在多種系列的CPU上進行了移植。AVR Studio 5內(nèi)部集成了Software Framework軟件包,包含Atmel MCU接口驅(qū)動函數(shù),在AVR Studio 5環(huán)境下,移植μC/OSII到AT32UC3A0512 MCU上,需要在Micrium官方移植實例中進行以下修改:
?、?修改exception.S文件中的內(nèi)容,修改如下:
_handle_Supervisor_Call:
lddpcpc,__OSCtxSw
__OSCtxSw:。
longOSCtxSw
?、?修改cpu.h內(nèi)容如下:
#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 主控制端的軟件結(jié)構(gòu)圖
?。?) 控制器部分軟件設(shè)計
在μC/OSII系統(tǒng)下的軟件結(jié)構(gòu)如圖6所示。
主控制端主要通過LCD界面來完成用戶的操作,5個觸摸鍵為界面操作按鍵,數(shù)字鍵盤用軟件實現(xiàn)。通過數(shù)字鍵盤輸入要查詢的病房號,確認后即可查詢到該病房中點滴的速度、余量等狀態(tài)。
界面菜單的切換關(guān)系通過定義一個結(jié)構(gòu)體來實現(xiàn),結(jié)構(gòu)體定義為:
typedef struct MenuItem{
U8 MenuNum;//當層菜單項目數(shù)
U8 *DispStr; //顯示字符串
struct MenuItem *ChildrenMenus;//子菜單節(jié)點
struct MenuItem *ParentMenus; //父菜單節(jié)點
} Menu;
?。?) 終端監(jiān)控部分軟件設(shè)計
終端接收到控制端發(fā)來的命令數(shù)據(jù)包,解析出命令,實施相應(yīng)的處理,并將數(shù)據(jù)處理后打包發(fā)送給控制端。終端控制部分的軟件流程如圖7所示。
圖7 終端主程序
結(jié)語
基于AVR32MCU和μC/OSII的嵌入式系統(tǒng),利用無線通信方式實現(xiàn)遠程在線監(jiān)控,無線網(wǎng)絡(luò)的組建增強了系統(tǒng)的可移動性。本文提出的一種基于AVR32的便攜式點滴監(jiān)控系統(tǒng)的設(shè)計,將醫(yī)療點滴監(jiān)控裝置小型化,近距離范圍內(nèi)系統(tǒng)穩(wěn)定。由于資源有限,關(guān)于遠距離控制的網(wǎng)絡(luò)組建還在進一步探索。
評論