AVR32的便攜式無線醫(yī)療點(diǎn)滴監(jiān)控系統(tǒng)
2.1.3 無線通信模塊nRF24L01[3]
無線通信部分采用單片射頻收發(fā)芯片,其工作頻段為世界通用的ISM頻段(2.4~2.5 GHz),是一款真正的GFSK單收發(fā)芯片。內(nèi)置鏈路層,具有自動(dòng)應(yīng)答及自動(dòng)重發(fā)功能,支持地址及CRC檢驗(yàn)功能。它具有極低的電流消耗,掉電和待機(jī)模式下電流消耗更低;數(shù)據(jù)傳輸速率最高可達(dá)2 Mbps,內(nèi)置標(biāo)準(zhǔn)的SPI接口可與MCU進(jìn)行數(shù)據(jù)傳輸,速率最高可達(dá)8 Mbps;可工作在125個(gè)可選頻道,在接收模式下,可同時(shí)接收工作在同一頻道的6個(gè)數(shù)據(jù)通道的數(shù)據(jù),相互通信的收發(fā)器的數(shù)據(jù)通道設(shè)置為同一個(gè)地址?! ?P style="MARGIN-TOP: 24px">通過對(duì)nRF24L01內(nèi)部寄存器的讀/寫來控制其工作狀態(tài)的轉(zhuǎn)換及數(shù)據(jù)的收發(fā),當(dāng)收發(fā)器數(shù)據(jù)接收/發(fā)送完成或者出現(xiàn)異常時(shí),IRQ引腳產(chǎn)生中斷信號(hào),低電平有效,對(duì)STATUS寄存器相應(yīng)位寫“1”,清除中斷標(biāo)志。無線通信模塊硬件連接如圖3所示。
2.2 終端監(jiān)控裝置硬件設(shè)計(jì)
終端監(jiān)控裝置采用ATmega128單片機(jī),主要接收控制端發(fā)送的命令數(shù)據(jù),并將采集的數(shù)據(jù)進(jìn)行處理發(fā)送給控制端,完成病人呼叫、液面監(jiān)測(cè)、對(duì)點(diǎn)滴速度的檢測(cè)與控制,以及聲音報(bào)警等功能。
2.2.1 點(diǎn)滴速度控制模塊
點(diǎn)滴速度控制電路采用專用的步進(jìn)電機(jī)控制芯片L297、雙全橋步進(jìn)電機(jī)驅(qū)動(dòng)芯片L298。L297內(nèi)部的PWM斬波器電路在開關(guān)模式下可產(chǎn)生PWM波,控制電機(jī)繞組中的電流,從而控制電機(jī)的精確轉(zhuǎn)動(dòng);它產(chǎn)生的4相控制信號(hào)可用于控制兩相雙極性和四相單極性步進(jìn)電機(jī)。L298內(nèi)含HBridge高電壓、大電流雙全橋式驅(qū)動(dòng)器,4路驅(qū)動(dòng)電路可驅(qū)動(dòng)46 V、2 A以下的兩相或四相步進(jìn)電機(jī),可實(shí)現(xiàn)步進(jìn)電機(jī)的正反轉(zhuǎn)。通過精確控制電機(jī)的正反轉(zhuǎn)來控制點(diǎn)滴裝置的流速夾滾軸的滑動(dòng),以達(dá)到控制點(diǎn)滴滴落速度的目的。硬件連接圖如圖4所示。
圖3 無線模塊硬件圖
圖4 點(diǎn)滴速度控制電路圖
2.2.2 點(diǎn)滴速度和液位檢測(cè)模塊
利用紅外對(duì)管發(fā)射方法測(cè)量點(diǎn)滴速度。點(diǎn)滴檢測(cè)電路包括紅外發(fā)射、接收、脈沖整形3部分,硬件原理圖如圖5所示。ST1150是單光速直射式紅外光電傳感器,光縫寬度為1.5 mm,光軸中心為2.5 mm,紅外檢測(cè)面積較小。當(dāng)無液滴通過時(shí),接收管(ST1150內(nèi)部的三極管)導(dǎo)通,Vin為低電平;當(dāng)有液滴通過時(shí),接收管截止,Vin處產(chǎn)生高電平脈沖,經(jīng)過斯密特觸發(fā)器整形后在Vout處產(chǎn)生一串規(guī)則的方波脈沖,并送至ATmega128進(jìn)行處理。
圖5 點(diǎn)滴速度檢測(cè)電路
液位檢測(cè)則采用反射式紅外傳感器,電路檢測(cè)原理電路和點(diǎn)滴速度檢測(cè)電路類似。ST198是采用高發(fā)射功率紅外光電二極管和高靈敏度光電晶體管組成的反射式光電傳感器,采用非接觸檢測(cè)方式,檢測(cè)距離為2~10 mm時(shí)可用。當(dāng)液位低于設(shè)定值時(shí),接收管接收到的是電平信號(hào),經(jīng)過反相器倒相后送至單片機(jī),觸發(fā)中斷。當(dāng)紅外對(duì)射管為ST1150時(shí)用于點(diǎn)滴速度檢測(cè),為ST198時(shí)用于液位檢測(cè)。
3 系統(tǒng)軟件結(jié)構(gòu)
(1) 數(shù)據(jù)幀結(jié)構(gòu)
定義一個(gè)通信數(shù)據(jù)幀結(jié)構(gòu)來管理控制端與設(shè)備間的通信,通過對(duì)數(shù)據(jù)幀的解析,主/從設(shè)備可以高效率地完成數(shù)據(jù)處理。按照通信傳輸?shù)南群箜樞?,?shù)據(jù)幀的格式為:命令(1字節(jié))+設(shè)備ID(1字節(jié))+事件類型(1字節(jié))+數(shù)據(jù)域長度(1字節(jié))+數(shù)據(jù)域(n字節(jié))+校驗(yàn)和(2字節(jié))。
(2) μC/OSII的移植
μC/OSII是一種開源、結(jié)構(gòu)可裁剪的可剝奪實(shí)時(shí)內(nèi)核的RTOS,其大部分代碼都是C語言,可移植性較強(qiáng),已在多種系列的CPU上進(jìn)行了移植。AVR Studio 5內(nèi)部集成了Software Framework軟件包,包含Atmel MCU接口驅(qū)動(dòng)函數(shù),在AVR Studio 5環(huán)境下,移植μC/OSII到AT32UC3A0512 MCU上,需要在Micrium官方移植實(shí)例中進(jìn)行以下修改:
① 修改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)
評(píng)論