基于STM32和μCOS的醫(yī)用注射泵系統(tǒng)軟件設(shè)計(jì)
作者 / 王婉 劉振洗 胡林軍 郭書磊 中國(guó)電子科技集團(tuán)公司第四十一研究所(安徽 蚌埠 233010)
本文引用地址:http://cafeforensic.com/article/201711/372159.htm王婉(1989-),女,碩士,助理工程師,研究方向:醫(yī)療電子。
摘要:本文提出一種采用STM32F103ZET6處理器平臺(tái),使用μC/OS-II操作系統(tǒng),借助μC/GUI控件進(jìn)行界面開(kāi)發(fā)的注射泵控制系統(tǒng)。采用基于模塊化分層的軟件設(shè)計(jì)方法,滿足注射泵對(duì)多功能、易用界面、低功耗和多任務(wù)的需求,以提高醫(yī)用注射泵的工作效率及可靠性。
引言
醫(yī)用注射泵是一種新型泵力儀器,將少量藥液精確、均勻、持續(xù)地泵入病人體內(nèi),操作便捷、可靠性好。注射泵應(yīng)具備的功能有:設(shè)置輸液速度和輸液量,隨時(shí)更改輸液參數(shù),程序預(yù)設(shè)和數(shù)據(jù)保存,對(duì)異常情況進(jìn)行報(bào)警。使用醫(yī)用注射泵搶救危重患者,能減輕護(hù)士工作量,提高工作效率,準(zhǔn)確、安全、有效地配合醫(yī)生搶救。
1 系統(tǒng)概述
本文設(shè)計(jì)的系統(tǒng)采用閉環(huán)控制思想,結(jié)合嵌入式技術(shù)、傳感檢測(cè)技術(shù)和電機(jī)控制技術(shù),從而實(shí)現(xiàn)高精度、高可靠性的醫(yī)用注射泵系統(tǒng)開(kāi)發(fā)。系統(tǒng)整體組成框圖如圖1所示,注射泵控制系統(tǒng)主要包括注射器推桿位置檢測(cè)模塊、阻塞壓力檢測(cè)模塊、注射器規(guī)格檢測(cè)模塊、聲光報(bào)警模塊、LCD顯示模塊、注射參數(shù)存儲(chǔ)模塊和電源管理模塊。注射泵工作時(shí),STM32F103ZET6(以下簡(jiǎn)稱STM32)處理器發(fā)出PWM脈沖使步進(jìn)電機(jī)旋轉(zhuǎn),而步進(jìn)電機(jī)通過(guò)機(jī)械傳動(dòng)裝置將旋轉(zhuǎn)運(yùn)動(dòng)變成直線運(yùn)動(dòng),推動(dòng)注射器的活塞進(jìn)行注射,同時(shí)STM32通過(guò)采集傳感器反饋的數(shù)據(jù)指導(dǎo)注射泵工作。
2 軟件設(shè)計(jì)
2.1 整體軟件架構(gòu)
本系統(tǒng)采用STM32F103ZET6處理器平臺(tái),以μC/OS-II 實(shí)時(shí)操作系統(tǒng)為系統(tǒng)平臺(tái),并應(yīng)用了μC/GUI圖形支持軟件。采用基于模塊化分層的軟件設(shè)計(jì)方法,具體如圖2所示。包括應(yīng)用軟件層、系統(tǒng)軟件層和硬件外設(shè)配置層,每一層又分為不同的功能模塊,方便注射泵的調(diào)試和功能擴(kuò)展。
應(yīng)用軟件層通過(guò)μC/OS-II系統(tǒng)建立任務(wù),包括系統(tǒng)主任務(wù)、μC/GUI界面任務(wù)、鍵盤掃描任務(wù)、旋轉(zhuǎn)編碼器檢測(cè)任務(wù)和報(bào)警指示燈顯示任務(wù)。
系統(tǒng)軟件層包括移植于STM32處理器的μC/GUI圖形系統(tǒng)、μC/OS-Ⅱ操作系統(tǒng)和中斷管理系統(tǒng)。μC/GUI界面程序?qū)崿F(xiàn)實(shí)時(shí)顯示注射泵的各種參數(shù)和運(yùn)行狀態(tài),如注射器規(guī)格、輸液速度、預(yù)輸液量、已輸液量、電池電量、注射運(yùn)行標(biāo)志及報(bào)警信息提示等,使操作者能夠?qū)崟r(shí)掌握注射泵的工作狀態(tài),并提供良好的人機(jī)交互界面;μC/OS-Ⅱ操作系統(tǒng)負(fù)責(zé)執(zhí)行任務(wù)調(diào)度、任務(wù)管理、時(shí)間管理、內(nèi)存管理和任務(wù)間的通信與同步等基本功能;異常與中斷處理模塊提供中斷服務(wù)程序,主要包括系統(tǒng)時(shí)鐘節(jié)拍處理函數(shù)、按鍵及編碼器定時(shí)掃描中斷、電源管理模塊定時(shí)掃描中斷、產(chǎn)生PWM脈沖的定時(shí)中斷、EEPROM讀寫中斷、注射器規(guī)格及脫落檢測(cè)中斷。
硬件外設(shè)配置層主要完成外圍器件的驅(qū)動(dòng)及應(yīng)用配置。包括LCD驅(qū)動(dòng)配置,壓力傳感器應(yīng)用配置,注射器檢測(cè)用傳感器驅(qū)動(dòng)配置,按鍵、編碼器、LED燈及蜂鳴器應(yīng)用配置,注射器推桿位置檢測(cè)用傳感器應(yīng)用配置,EEPROM驅(qū)動(dòng)配置和步進(jìn)電機(jī)驅(qū)動(dòng)配置。
該設(shè)計(jì)具有界面化控制、多任務(wù)處理、數(shù)據(jù)實(shí)時(shí)傳遞,并配合人性化的鍵盤板,能極大地提高使用者的工作效率。
2.2 系統(tǒng)主程序設(shè)計(jì)
系統(tǒng)的主程序講述的是整個(gè)系統(tǒng)的執(zhí)行過(guò)程,如圖3所示。在所有的初始化工作完成后,進(jìn)入系統(tǒng)主界面,通過(guò)按鍵設(shè)置注射參數(shù),包括注射模式、藥物量、注射時(shí)間、注射速度等參數(shù),然后檢測(cè)注射器規(guī)格,開(kāi)始注射。傳感檢測(cè)模塊實(shí)現(xiàn)閉環(huán)控制、保證本系統(tǒng)安全可靠運(yùn)行,對(duì)注射過(guò)程進(jìn)行注射阻塞檢測(cè)、注射器脫落檢測(cè)和注射器推桿位置檢測(cè),如果不滿足要求則進(jìn)行報(bào)警、停止注射。并在剩余藥量小于預(yù)定值時(shí)進(jìn)行注射近空?qǐng)?bào)警,提醒用戶提前做好準(zhǔn)備。
2.3 功能模塊軟件實(shí)現(xiàn)
2.3.1 步進(jìn)電機(jī)控制
本設(shè)計(jì)采用兩相混合式步進(jìn)電機(jī),步進(jìn)電機(jī)根據(jù)電機(jī)驅(qū)動(dòng)器的控制信號(hào)進(jìn)行工作。通過(guò)改變PWM脈沖頻率和占空比控制電機(jī)的運(yùn)動(dòng)速度。電機(jī)運(yùn)動(dòng)方向固定為正轉(zhuǎn),使能信號(hào)由STM32的GPIO引腳控制,高電平使能控制信號(hào)輸出,電機(jī)轉(zhuǎn)動(dòng)。
PWM脈沖由STM32的內(nèi)部定時(shí)器產(chǎn)生,通過(guò)改變相關(guān)寄存器配置來(lái)改變脈沖頻率與占空比。PWM 配置分以下幾個(gè)步驟:
1)定時(shí)器時(shí)鐘經(jīng)預(yù)分頻器分頻后為計(jì)數(shù)器提供時(shí)鐘;
2)重裝載寄存器和輸出比較寄存器的數(shù)值不斷與計(jì)數(shù)器比較;
3)計(jì)數(shù)器的數(shù)值與重裝載寄存器相等時(shí),復(fù)位計(jì)數(shù)器并翻轉(zhuǎn)輸出信號(hào);
4)計(jì)數(shù)器數(shù)值與輸出比較寄存器相等時(shí),翻轉(zhuǎn)輸出信號(hào)。
2.3.2 注射器檢測(cè)
一般的醫(yī)用注射泵均使用ml注射器,常用的規(guī)格有10ml、20ml、30ml和50ml,系統(tǒng)在進(jìn)行注射前需要獲取注射器規(guī)格,注射過(guò)程中如果注射器發(fā)生脫落,需要及時(shí)報(bào)警并停止輸液。本設(shè)計(jì)使用光電開(kāi)關(guān)檢測(cè)注射器規(guī)格和注射器脫落與否。檢測(cè)注射器規(guī)格的信號(hào)連接至STM32的GPIO引腳,通過(guò)外部中斷的方式檢測(cè)對(duì)應(yīng)GPIO引腳的電平變化來(lái)判斷注射器規(guī)格同理,可以檢測(cè)注射器是否脫落。
2.3.3 注射器推桿位置檢測(cè)
注射過(guò)程中需要通過(guò)注射器推桿位移的變化來(lái)計(jì)算已注射藥量,本設(shè)計(jì)使用位移傳感器檢測(cè)注射器推桿位置。將檢測(cè)信號(hào)連接至STM32的ADC模塊,在注射時(shí),首先測(cè)出注射器推桿的初始位置電壓值,然后實(shí)時(shí)獲取推桿運(yùn)動(dòng)中的電壓值,根據(jù)兩個(gè)電壓值之差,就可得出注射器推桿運(yùn)動(dòng)的距離,繼而算出已注射容量。
2.3.4 阻塞壓力檢測(cè)
當(dāng)針頭堵塞或輸液管路打折等原因造成輸液不暢時(shí),液路系統(tǒng)壓力大于正常注射時(shí)的壓力,可通過(guò)檢測(cè)注射器推桿處的壓力值進(jìn)行判斷。檢測(cè)的壓力信號(hào)連接至STM32的ADC引腳,STM32采集變換并放大1000倍后的電壓值,然后根據(jù)應(yīng)變片壓力和電壓的線性關(guān)系,計(jì)算出實(shí)時(shí)壓力值,如果壓力值大于預(yù)設(shè)的報(bào)警值,則進(jìn)行報(bào)警,并停止注射。
2.3.5 聲光報(bào)警
當(dāng)注射泵出現(xiàn)異常工作時(shí),需要及時(shí)進(jìn)行警告處理。本系統(tǒng)采用蜂鳴器、LED、LCD三種方式進(jìn)行報(bào)警。蜂鳴器和LED分別接到STM32的GPIO引腳,當(dāng)注射完成或注射阻塞時(shí),對(duì)應(yīng)的LED點(diǎn)亮并蜂鳴報(bào)警;當(dāng)電池電量不足、注射器脫落、注射器推桿錯(cuò)位、注射即將完成時(shí),LCD提示并蜂鳴報(bào)警。
2.3.6 注射參數(shù)存儲(chǔ)
為了方便查詢上次關(guān)機(jī)時(shí)的輸液模式、參數(shù)等信息,本設(shè)計(jì)添加了參數(shù)存儲(chǔ)功能。EEPROM采用I2C總線與STM32交換數(shù)據(jù),每次開(kāi)機(jī)時(shí),讀取EEPROM存儲(chǔ)的參數(shù)值并顯示,每次設(shè)置的參數(shù)值改變時(shí)都進(jìn)行重新存儲(chǔ)。
2.3.7 鋰電池供電管理
本設(shè)計(jì)具有交、直流兩種供電方式,并且兩種方式能自動(dòng)切換。使用電源管理模塊獲取電池的電量信息,通過(guò)SMBD和SMBC將鋰電池連接到STM32的I2C總線,采用SMBus總線模式定時(shí)讀取電池信息,并在LCD實(shí)時(shí)顯示電量。如果電池電量不足,則進(jìn)行報(bào)警,如果充電完成,則點(diǎn)亮LED示意。
2.3.8 按鍵及編碼器檢測(cè)方案
按鍵連接至STM32的GPIO引腳,編碼器連接至STM32定時(shí)器的編碼器接口引腳。通過(guò)定時(shí)器掃描按鍵和編碼器狀態(tài)。按鍵分為短按和長(zhǎng)按功能,短按可實(shí)現(xiàn)開(kāi)始/停止、蜂鳴器消音、模式切換、參數(shù)選擇和報(bào)警消除功能,長(zhǎng)按可實(shí)現(xiàn)快注、注射器標(biāo)定功能。編碼器用于實(shí)現(xiàn)參數(shù)值的輸入,可實(shí)現(xiàn)小數(shù)與整數(shù)部分的切換,參數(shù)值改變大小與旋轉(zhuǎn)速度一致。
2.3.9 LCD顯示
LCD實(shí)現(xiàn)實(shí)時(shí)顯示注射泵的各種參數(shù)和運(yùn)行狀態(tài),如注射器規(guī)格、注射速度、預(yù)輸藥量、已輸藥量、電池電量、注射運(yùn)行標(biāo)志及報(bào)警信息提示等,使操作者能夠?qū)崟r(shí)掌握注射泵的工作狀態(tài),并提供良好的人機(jī)交互界面。本設(shè)計(jì)采用FSMC(靈活的靜態(tài)存儲(chǔ)器控制器)接口控制液晶顯示模塊,采用16位寬數(shù)據(jù)總線,使用NE1作為片選線,借助μC/GUI控件繪制所需的交互界面。
3 結(jié)論
本設(shè)計(jì)提供了一種人機(jī)交互友好、占用資源少、可移植性強(qiáng)、基于模塊化分層的注射泵軟件結(jié)構(gòu),能夠滿足注射泵對(duì)多功能、易用界面、低功耗以及多任務(wù)的需求,使醫(yī)用注射泵的工作效率顯著提高、可靠性變強(qiáng)。根據(jù)本軟件設(shè)計(jì)方法生產(chǎn)的注射泵適用于長(zhǎng)時(shí)間微量、均勻、精確地注射藥液,性能上完全滿足國(guó)內(nèi)醫(yī)院對(duì)靜脈輸液的要求。
參考文獻(xiàn):
[1]王曉明.電動(dòng)機(jī)的單片機(jī)控制 [M].北京航空航天大學(xué)出版社,2002.
[2]劉偉.PWM技術(shù)在電機(jī)驅(qū)動(dòng)控制中的應(yīng)用[D].合肥工業(yè)大學(xué),2009
[3]簡(jiǎn)毅,劉寶.基于AT91SAM9261的步進(jìn)電機(jī)S曲線加減速控制研究與實(shí)現(xiàn)[J].輕工機(jī)械, 2012.
[4]何伶俐,賀超,楊慶華.基于uPSD3234單片機(jī)的智能注射泵控制系統(tǒng)設(shè)計(jì)[J].綿陽(yáng)師范學(xué)院學(xué)報(bào),2008.
[5]劉波文,孫巖.嵌入式實(shí)時(shí)操作系統(tǒng)uC/OS-II經(jīng)典實(shí)例:基于STM32處理器[M].北京航空航天大學(xué)出版社,2014.
本文來(lái)源于《電子產(chǎn)品世界》2017年第12期第43頁(yè),歡迎您寫論文時(shí)引用,并注明出處。
評(píng)論