雷豪
摘? 要:該文主要探究自動(dòng)調(diào)壓無(wú)創(chuàng)呼吸機(jī)軟件部分的設(shè)計(jì)方法,并開(kāi)展測(cè)試觀察應(yīng)用效果。呼吸機(jī)采用μc/OS-II實(shí)時(shí)嵌入式操作系統(tǒng),呼吸機(jī)與上位機(jī)之間使用USB接口實(shí)現(xiàn)通信。用戶佩戴呼吸機(jī)面罩后,傳感器實(shí)時(shí)采集壓力數(shù)據(jù),并根據(jù)用戶的呼吸動(dòng)作自動(dòng)調(diào)節(jié)輸出壓力,在呼氣時(shí)降低壓力以減小呼氣阻力,在吸氣時(shí)增加壓力以輔助吸氣。從測(cè)試情況來(lái)看,該文設(shè)計(jì)的自動(dòng)調(diào)壓無(wú)創(chuàng)呼吸機(jī)基本上達(dá)到設(shè)計(jì)要求。
關(guān)鍵詞:無(wú)創(chuàng)呼吸機(jī);嵌入式操作系統(tǒng);人機(jī)同步;傳感器;FSM模型
中圖分類(lèi)號(hào):TH77? ? ? ?文獻(xiàn)標(biāo)志碼:A? ? ? ? ? 文章編號(hào):2095-2945(2024)06-0045-04
Abstract: This paper mainly explores the design method of the software part of the automatic pressure regulating non-invasive ventilator, and carries out the test to observe the application effect. The ventilator adopts μc/OS-II real-time embedded operating system, and the USB interface is used to realize the communication between the ventilator and the host computer. After the user wears a ventilator mask, the sensor collects the pressure data in real time, automatically adjusts the output pressure according to the user's breathing action, reduces the pressure when exhaling to reduce expiratory resistance, and increases the pressure when inhaling to assist inhalation. Seen from the angle of the test, the automatic pressure regulating non-invasive ventilator designed in this paper basically meets the design requirements.
Keywords: non-invasive ventilator; embedded operating system; man-machine synchronization; sensor; FSM model
自動(dòng)調(diào)壓無(wú)創(chuàng)呼吸機(jī)在改善呼吸功能、增加肺通氣量、提升睡眠質(zhì)量等方面發(fā)揮了突出作用,隨著呼吸機(jī)技術(shù)的成熟和價(jià)格的降低,逐漸在呼吸疾病患者群體中得到了普及使用。傳統(tǒng)的呼吸機(jī)需要用戶主動(dòng)適應(yīng)呼吸機(jī)的輸出壓力,經(jīng)常會(huì)出現(xiàn)呼吸機(jī)的壓力調(diào)整與用戶的呼吸動(dòng)作不同步的情況。當(dāng)用戶呼氣時(shí),呼吸機(jī)的輸出壓力較大,由于呼氣阻力較大,使用體驗(yàn)不佳。因此,本文以人機(jī)同步作為出發(fā)點(diǎn),對(duì)呼吸機(jī)軟件進(jìn)行了改良設(shè)計(jì),利用精密傳感器和高性能CPU準(zhǔn)確識(shí)別用戶的呼吸動(dòng)作,并靈活調(diào)節(jié)輸出壓力,達(dá)到人機(jī)同步效果,優(yōu)化了呼吸機(jī)的使用效果。
1? 自動(dòng)調(diào)壓無(wú)創(chuàng)呼吸機(jī)的軟件設(shè)計(jì)
1.1? 嵌入式操作系統(tǒng)的選擇
本文設(shè)計(jì)的呼吸機(jī)軟件采用嵌入式操作系統(tǒng),具有實(shí)時(shí)性強(qiáng)、結(jié)構(gòu)緊湊、穩(wěn)定性好等特點(diǎn),常用的嵌入式操作系統(tǒng)有Linux、WinCE、μc/OS-II等。其中,μc/OS-II作為一種基于優(yōu)先級(jí)的搶占式多任務(wù)實(shí)時(shí)操作系統(tǒng),支持匯編語(yǔ)言和C語(yǔ)言,允許用戶最多建立60個(gè)任務(wù),并根據(jù)任務(wù)的優(yōu)先級(jí)自動(dòng)調(diào)整任務(wù)的執(zhí)行順序,在航天、醫(yī)療等領(lǐng)域的工業(yè)控制中有著廣泛應(yīng)用,本文將μc/OS-II作為呼吸機(jī)操作系統(tǒng),其結(jié)構(gòu)如圖1所示。
μc/OS-II實(shí)時(shí)操作系統(tǒng)中的CPU采用LPC2387微處理器,可自定義用戶管理、普通中斷、快速中斷等7種工作模式,利用中斷向量實(shí)現(xiàn)各種模式的切換。寄存器的作用是在指令執(zhí)行發(fā)生異常時(shí),強(qiáng)制指向某一特定地址,并運(yùn)行服務(wù)程序完成指令,從而提高了呼吸機(jī)運(yùn)行的可靠性。
1.2? 呼吸機(jī)控制軟件設(shè)計(jì)
1.2.1? 呼吸機(jī)控制流程
本文設(shè)計(jì)的自動(dòng)調(diào)壓無(wú)創(chuàng)呼吸機(jī)控制系統(tǒng)由人機(jī)交互界面顯示、風(fēng)機(jī)有限狀態(tài)機(jī)模型控制、呼吸壓力協(xié)調(diào)控制等幾部分構(gòu)成,控制流程如圖2所示。
結(jié)合圖2,呼吸機(jī)的控制思路為:①呼吸機(jī)上電后,用戶在設(shè)置界面設(shè)定各項(xiàng)參數(shù),如呼吸壓力、控制模式等。傳感器實(shí)時(shí)采集呼吸通道的壓力值,當(dāng)實(shí)際壓力高于設(shè)定值(默認(rèn)為50 Pa)時(shí),呼吸機(jī)啟動(dòng)運(yùn)行。②呼吸機(jī)的風(fēng)機(jī)有升壓、穩(wěn)定、漏氣報(bào)警等多種運(yùn)行狀態(tài),CPU根據(jù)用戶設(shè)定指令控制風(fēng)機(jī)在不同狀態(tài)之間切換。③設(shè)定好風(fēng)機(jī)狀態(tài)后,CPU會(huì)根據(jù)實(shí)際壓力判斷呼吸動(dòng)作,進(jìn)而調(diào)整風(fēng)機(jī)轉(zhuǎn)速。例如,CPU判斷用戶正在呼氣,則降低風(fēng)機(jī)轉(zhuǎn)速,減小用戶呼氣的阻力;反之,CPU判斷用戶正在吸氣,則增加風(fēng)機(jī)轉(zhuǎn)速,輔助用戶完成吸氣[1]。
1.2.2? 控制任務(wù)設(shè)計(jì)
本文結(jié)合自動(dòng)調(diào)壓無(wú)創(chuàng)呼吸機(jī)的運(yùn)行特點(diǎn)和功能要求,運(yùn)用μc/OS-II操作系統(tǒng)設(shè)計(jì)了4項(xiàng)控制任務(wù),分別如下。
1)TaskWander(空閑任務(wù))。呼吸機(jī)軟件系統(tǒng)運(yùn)行后自動(dòng)創(chuàng)建空閑任務(wù),之后根據(jù)用戶操作需要?jiǎng)?chuàng)建其他3個(gè)任務(wù)。
2)TaskCtrl(主控制任務(wù))。包括邏輯控制、壓力實(shí)時(shí)監(jiān)測(cè)、壓力數(shù)據(jù)存儲(chǔ)。
3)TaskDisp(人機(jī)交互任務(wù))。包括按鍵掃描、顯示器驅(qū)動(dòng)、實(shí)時(shí)壓力曲線。
4)TaskCocm(通信任務(wù))。支持呼吸機(jī)與PC之間完成雙向通信。
調(diào)用μc/OS-II操作系統(tǒng)自帶的任務(wù)創(chuàng)建函數(shù)OSTaskCreate()完成上述控制任務(wù)的創(chuàng)建,本系統(tǒng)最多支持創(chuàng)建60個(gè)任務(wù),并且對(duì)任務(wù)進(jìn)行優(yōu)先級(jí)排序,呼吸機(jī)按照優(yōu)先級(jí)從高到低的順序執(zhí)行任務(wù)。
1.3? 控制任務(wù)的實(shí)現(xiàn)
1.3.1? 風(fēng)機(jī)驅(qū)動(dòng)任務(wù)的實(shí)現(xiàn)
有限狀態(tài)機(jī)(FSM)系統(tǒng)存在多種運(yùn)行狀態(tài),如空閑狀態(tài)、升壓運(yùn)行狀態(tài)、漏氣補(bǔ)償狀態(tài)。但是在任意時(shí)刻只會(huì)處于其中的一種狀態(tài),即多個(gè)狀態(tài)不重疊。在設(shè)計(jì)呼吸機(jī)控制系統(tǒng)時(shí)使用FSM模型,保證了控制邏輯清晰[2]。以自動(dòng)調(diào)壓無(wú)創(chuàng)呼吸機(jī)中的風(fēng)機(jī)為例,創(chuàng)建風(fēng)機(jī)運(yùn)行狀態(tài)FSM模型,如圖3所示。
這里以升壓運(yùn)行狀態(tài)為例,為了實(shí)現(xiàn)對(duì)風(fēng)機(jī)的控制,創(chuàng)建了全局變量表(stage),傳感器采集風(fēng)機(jī)運(yùn)行的狀態(tài)參數(shù)后保存到stage表中。呼吸機(jī)上電啟動(dòng)后,風(fēng)機(jī)完成初始化并進(jìn)入空閑狀態(tài)。此時(shí)前端傳感器開(kāi)始按照特定頻率采集壓力值,并對(duì)比實(shí)際壓力與設(shè)定壓力。當(dāng)“實(shí)際壓力>設(shè)定壓力(0.5 mm Hg)”時(shí),判斷為觸發(fā)成功。然后系統(tǒng)運(yùn)行switch程序,把用戶設(shè)定的壓力值發(fā)送至CPU,CPU生成指令控制執(zhí)行器(升壓設(shè)備)開(kāi)始升壓,從而實(shí)現(xiàn)對(duì)風(fēng)機(jī)運(yùn)行狀態(tài)的控制。
1.3.2? 自動(dòng)調(diào)壓的實(shí)現(xiàn)
自動(dòng)調(diào)壓無(wú)創(chuàng)呼吸機(jī)可以在用戶使用設(shè)備的過(guò)程中,自動(dòng)判斷用戶的呼吸動(dòng)作。在此基礎(chǔ)上通過(guò)自動(dòng)調(diào)節(jié)氣流壓力,達(dá)到輔助用戶吸氣、減少呼氣阻力的效果,優(yōu)化呼吸機(jī)的使用體驗(yàn)。本系統(tǒng)的自動(dòng)調(diào)壓實(shí)現(xiàn)方式如下。
在用戶呼氣時(shí),壓力隨之上升,壓力變化率為正(T1);在用戶吸氣時(shí),壓力隨之下降,壓力變化率為負(fù)(T2)。呼吸機(jī)啟動(dòng)后,實(shí)時(shí)采集壓力值,并計(jì)算動(dòng)態(tài)壓力變化率T。如果存在“0
實(shí)時(shí)采集和反饋壓力數(shù)據(jù),是呼吸機(jī)實(shí)現(xiàn)自動(dòng)調(diào)壓功能的前提。本文設(shè)定的壓力信號(hào)采集頻率為10 Hz,2次信號(hào)的采集時(shí)間間隔為100 ms。提供Press[10]和Time[10] 2個(gè)數(shù)組,前者用于存儲(chǔ)壓力采集數(shù)據(jù),后者用于存儲(chǔ)壓力采集時(shí)間[3]。2個(gè)數(shù)組中的數(shù)據(jù)一一對(duì)應(yīng),例如Press[1]壓力數(shù)據(jù)對(duì)應(yīng)Time[1]采集時(shí)間。2個(gè)數(shù)組均采用“向前覆蓋法”,以壓力采集時(shí)間為例,將10個(gè)數(shù)據(jù)放入數(shù)組Tmie中,繼續(xù)采集第11個(gè)數(shù)據(jù)。此時(shí),將Time[1]數(shù)據(jù)放入到Time[0]中,將Time[2]數(shù)據(jù)放入到Time[1]中。以此類(lèi)推,Time[10]數(shù)據(jù)放入到Time[9]后,Time[10]空閑,然后將第11個(gè)數(shù)據(jù)放入到Time[10]中。通過(guò)這種處理方法,一方面可以保證壓力數(shù)據(jù)和采集時(shí)間能夠?qū)崟r(shí)刷新,另一方面又能顯著提高系統(tǒng)CPU的運(yùn)算效率,提高壓力調(diào)節(jié)的靈活性。
1.3.3? 人機(jī)交互的實(shí)現(xiàn)
呼吸機(jī)的人機(jī)交互也是通過(guò)FSM模型實(shí)現(xiàn),人機(jī)交互界面包含3部分,即初始顯示狀態(tài)、配置顯示狀態(tài)、圖表顯示狀態(tài),用戶可通過(guò)鍵盤(pán)進(jìn)行操作。人機(jī)交互FSM模型的創(chuàng)建流程如圖4所示。
本文在設(shè)計(jì)呼吸機(jī)的人機(jī)交互系統(tǒng)時(shí),分別創(chuàng)建了顯示狀態(tài)變量表(page)和按鍵存儲(chǔ)變量表(key)。前者可存儲(chǔ)呼吸機(jī)的顯示狀態(tài)信息,后者則存儲(chǔ)呼吸機(jī)的按鍵操作信息,并通過(guò)對(duì)變量page和key的賦值完成相關(guān)動(dòng)作。這里以圖表顯示狀態(tài)為例,實(shí)現(xiàn)方法如下:呼吸機(jī)啟動(dòng)后,完成各項(xiàng)參數(shù)的初始化,如變量page初始化、鍵盤(pán)操作初始化等,并進(jìn)入初始顯示狀態(tài)。進(jìn)行變量page賦值,設(shè)置為Disp_Chart。在用戶使用呼吸機(jī)時(shí),檢測(cè)到壓力變化,呼吸機(jī)的人機(jī)交互界面由初始顯示狀態(tài)切換為圖表顯示狀態(tài),以圖表方式展示壓力變化曲線、呼吸機(jī)服務(wù)時(shí)間等參數(shù)[4]。
1.3.4? 上位機(jī)與呼吸機(jī)通信的實(shí)現(xiàn)
上位機(jī)(PC)與呼吸機(jī)之間利用USB數(shù)據(jù)線實(shí)現(xiàn)通信,PC上安裝的軟件可以直接讀寫(xiě)呼吸機(jī)上的SD卡。為了增強(qiáng)雙端通信的實(shí)時(shí)性,本文使用統(tǒng)一的數(shù)據(jù)幀格式,呼吸機(jī)反饋的所有數(shù)據(jù)均按照該格式存儲(chǔ),從而減少了PC軟件處理數(shù)據(jù)所花費(fèi)的時(shí)間,提高了系統(tǒng)的響應(yīng)速度。數(shù)據(jù)幀格式由5部分組成,從頭至尾分別為
Init_Cmd,起始標(biāo)志,為固定的數(shù)值;
Ctrl_Cmd,命令字,對(duì)應(yīng)相應(yīng)的操作;
Length,數(shù)據(jù)的字節(jié)長(zhǎng)度;
Data,通信數(shù)據(jù);
CRC,字節(jié)的校驗(yàn)碼。
通信協(xié)議是基于命令字實(shí)現(xiàn)相應(yīng)的操作,例如Ctrl_Cmd=0x01,表示通信測(cè)試操作;Ctrl_Cmd=0x02,表示SD卡的擦除操作。發(fā)送數(shù)據(jù)為0x12/0x0000,返回命令為0x12/0x0001/ErrCode。該命令中,ErrCode表示錯(cuò)誤碼,不同錯(cuò)誤碼及其對(duì)應(yīng)的錯(cuò)誤類(lèi)型見(jiàn)表1。
2? 自動(dòng)調(diào)壓無(wú)創(chuàng)呼吸機(jī)的測(cè)試分析
2.1? 運(yùn)行測(cè)試
測(cè)試者戴上呼吸機(jī)的面罩,連接電源后按下呼吸機(jī)的“star/stop”按鍵,呼吸機(jī)正常啟動(dòng)后操作鍵盤(pán)進(jìn)入到配置界面。配置呼吸機(jī)的各項(xiàng)參數(shù)(包括升壓時(shí)間、吸氣壓力值等)后,通過(guò)呼氣觸發(fā)呼吸機(jī)開(kāi)始工作[5]。本次測(cè)試中,設(shè)定壓力值為800 Pa,升壓時(shí)間為60 s。呼吸機(jī)開(kāi)始運(yùn)行后,風(fēng)機(jī)轉(zhuǎn)速開(kāi)始升高,相應(yīng)的輸出壓力增加。經(jīng)過(guò)60 s后,輸出壓力達(dá)到800 Pa左右。用戶吸氣時(shí),呼吸機(jī)輸送800 Pa左右的壓力,輔助吸氣;用戶呼氣時(shí),呼吸機(jī)將壓力降低至400 Pa左右,減輕呼氣阻力。用戶正常呼吸,感受呼吸機(jī)的壓力變化能否與呼吸動(dòng)作同步,并觀察顯示器上的實(shí)時(shí)壓力數(shù)據(jù)。將壓力數(shù)據(jù)存儲(chǔ)到SD卡中,并生成壓力歷史數(shù)據(jù)曲線,如圖5所示。
2.2? 測(cè)試結(jié)果分析
患者呼氣時(shí),呼出的氣流使管道壓力增加,略高于設(shè)定的呼氣壓力值,約為400 Pa;患者吸氣時(shí),患者的吸氣動(dòng)作也會(huì)影響管道中的壓力值,略低于設(shè)定的吸氣壓力值,約為800 Pa。當(dāng)呼吸機(jī)檢測(cè)到患者的吸氣或呼氣持續(xù)時(shí)間超過(guò)2 s后,自動(dòng)切換輸出壓力,發(fā)揮保護(hù)作用。從測(cè)試效果來(lái)看,本文設(shè)計(jì)的自動(dòng)調(diào)壓無(wú)創(chuàng)呼吸機(jī)軟件系統(tǒng),可以在設(shè)備使用期間根據(jù)用戶的呼吸動(dòng)作自動(dòng)調(diào)節(jié)輸出壓力,在滿足輔助呼吸功能的前提下,提升了呼吸舒適度,優(yōu)化了用戶使用體驗(yàn),取得了良好應(yīng)用效果。
3? 結(jié)束語(yǔ)
自動(dòng)調(diào)壓無(wú)創(chuàng)呼吸機(jī)利用安裝在呼吸面罩或管道內(nèi)的壓力傳感器,實(shí)時(shí)采集壓力數(shù)據(jù),計(jì)算出壓力變化率,并根據(jù)用戶的呼吸動(dòng)作調(diào)整輸出壓力,從而達(dá)到輔助吸氣、減小呼氣阻力的效果?;讦蘡/OS-II嵌入式操作系統(tǒng)的呼吸機(jī)軟件系統(tǒng),除了開(kāi)發(fā)難度低、可擴(kuò)展性強(qiáng)等特點(diǎn)外,還具有系統(tǒng)響應(yīng)速度快、自動(dòng)調(diào)節(jié)效果好等優(yōu)勢(shì)。從測(cè)試效果來(lái)看,本文設(shè)計(jì)的呼吸機(jī)軟件系統(tǒng)可以根據(jù)用戶呼吸動(dòng)作實(shí)現(xiàn)自動(dòng)調(diào)壓,并且在患者呼氣、吸氣時(shí)間較長(zhǎng)時(shí)自動(dòng)切換呼吸動(dòng)作,發(fā)揮了保護(hù)功能,有助于自動(dòng)調(diào)壓無(wú)創(chuàng)呼吸機(jī)的推廣應(yīng)用。
參考文獻(xiàn):
[1] 沈玉鵬,房瑋,焦亞平.基于防壓瘡棉罩設(shè)計(jì)的無(wú)創(chuàng)呼吸機(jī)自動(dòng)調(diào)壓技術(shù)研究[J].自動(dòng)化與儀器儀表,2021(6):198-200.
[2] 史偉,曾潔,程軼玲,等.新型無(wú)創(chuàng)呼吸機(jī)口鼻面罩固定裝置的設(shè)計(jì)與臨床應(yīng)用[J].循證護(hù)理,2023(8):1516-1518.
[3] 羅丹.基于防壓瘡面罩設(shè)計(jì)的無(wú)創(chuàng)呼吸機(jī)參數(shù)自動(dòng)校準(zhǔn)方法研究[J].自動(dòng)化與儀器儀表,2021(6):208-209.
[4] 張曉艷,李紅梅.一種可調(diào)節(jié)防壓迫呼吸機(jī)面罩的設(shè)計(jì)和應(yīng)用方法[J].醫(yī)藥衛(wèi)生,2023(1):38-40.
[5] 陳金虎,白浩笛,竹永寬,等.基于物聯(lián)網(wǎng)下新型呼吸機(jī)的設(shè)計(jì)研究[J].電腦知識(shí)與技術(shù),2023,19(8):89-91.