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