姚 君 凌霽云
醫(yī)療設(shè)備的使用率管理是設(shè)備質(zhì)量控制的范疇,但傳統(tǒng)的設(shè)備管理方式無論從收費(fèi)端口或是使用登記記錄的統(tǒng)計(jì)均采用繁瑣的人工方法,占用了大量的人力時(shí)間和精力。因此,加強(qiáng)對(duì)于醫(yī)療設(shè)備的使用管理和監(jiān)測(cè)、提高設(shè)備管理精益化水平已成為醫(yī)院醫(yī)療設(shè)備管理重要課題[1-2]。為此,本研究設(shè)計(jì)一套智能的聯(lián)網(wǎng)監(jiān)測(cè)系統(tǒng),該系統(tǒng)包括上位機(jī)軟件(特指PC機(jī)用戶軟件)和前端數(shù)據(jù)采集單板(簡(jiǎn)稱單板)。以WiFi為媒介連接呼吸機(jī),將采集到的醫(yī)療設(shè)備工作狀態(tài)通過上位機(jī)二次顯示。選擇的醫(yī)療設(shè)備為遵循MediBus通信協(xié)議的Evita系列呼吸機(jī)(德國(guó)Dr?ger公司)。
在線監(jiān)測(cè)系統(tǒng)的硬件部分主要由PC機(jī)、無線路由及數(shù)據(jù)采集單板組成。數(shù)據(jù)采集單板與呼吸機(jī)通過RS232串口實(shí)現(xiàn)連接,并實(shí)現(xiàn)與呼吸機(jī)的數(shù)據(jù)通訊與預(yù)處理,將處理后的數(shù)據(jù)通過WiFi發(fā)送至上位機(jī)軟件,采用了用戶數(shù)據(jù)報(bào)協(xié)議(user datagram protocol,UDP)的通訊協(xié)議[3-4]。上位機(jī)的主要任務(wù)是實(shí)時(shí)接收各個(gè)單板發(fā)送來的數(shù)據(jù),并顯示在界面上(如圖1所示)。
圖1 在線監(jiān)測(cè)系統(tǒng)硬件總體結(jié)構(gòu)圖
數(shù)據(jù)采集板的主要模塊包含了主控芯片、系統(tǒng)電源、RS232電路、WiFi模塊、微控制器單元(micro control unit,MCU)及配置接口電路等(如圖2所示)。
圖2 在線監(jiān)測(cè)系統(tǒng)數(shù)據(jù)采集單板結(jié)構(gòu)圖
1.2.1 主控MCU
設(shè)計(jì)采用Kinetis L系列微控制器(MKL26Z256VLL4),內(nèi)部具備了256 KB的Flash和32 KB的靜態(tài)隨機(jī)存取存儲(chǔ)器(static random-access memory,SRAM)。MCU并不能獨(dú)立工作,必須給其供電,配上時(shí)鐘,并提供復(fù)位信號(hào)等,也可以包括燒錄接口或者調(diào)試接口,所組成的電路成為MCU的最小系統(tǒng),是MCU工作所必須的最低規(guī)模的外圍電路[5]。
1.2.2 WiFi模塊
本研究設(shè)計(jì)采用LPB100超低功耗嵌入式WiFi模組,提供了一種將用戶的物理設(shè)備連接到WiFi無線網(wǎng)絡(luò)上,并提供通用異步收發(fā)器(universal asynchronous receiver transmitter,UART)串口等接口傳輸數(shù)據(jù)的解決方案。該模塊硬件上集成了媒體訪問控制(media access control,MAC)、基頻芯片、射頻收發(fā)單元以及功率放大器;嵌入式的固件則支持WiFi協(xié)議及配置,以及組網(wǎng)的傳輸控制協(xié)議與互聯(lián)網(wǎng)協(xié)議(transmission control protocol/internet protocol,TCP/IP)協(xié)議棧[6-7]。WiFi模塊的應(yīng)用電路使用了MCU的串口0,WiFi模塊的Ready和Link引腳連接到了MCU的通用輸入與輸出(general purpose input output,GPIO),便于MCU查詢WiFi模塊的狀態(tài),MCU和WiFi模塊之間采用AT指令進(jìn)行數(shù)據(jù)通訊(如圖3所示)。
圖3 HF-LPB100 WiFi模塊電路圖
1.2.3 系統(tǒng)電源
設(shè)計(jì)電源電路的過程是一個(gè)權(quán)衡的過程,需要考慮的因素有:輸出電壓、電流功耗、輸入電壓、輸出紋波等,更設(shè)置于需要考慮電磁兼容、電磁干擾、體積限制、功耗限制和成本限制??紤]到便于單板的取電,采用常見的適配器供電,供電范圍為9~12 Vdc,采用AOZ1031和LM1117-3V3電源芯片實(shí)現(xiàn)降壓。
1.2.4 RS232通訊電路
MCU一般都具有全雙工的串口收發(fā)器,利用MCU實(shí)現(xiàn)RS-232通訊非常方便,但是需要加一級(jí)的電平轉(zhuǎn)化,將MCU的TTL電平轉(zhuǎn)化為RS-232電平,本設(shè)計(jì)采用了MAX3232電平轉(zhuǎn)化芯片,并使用了MCU的串口1與Evita進(jìn)行通訊,如圖4所示。
圖4 MAX3232電路圖
Evita系列呼吸機(jī)具備一個(gè)RS-232-C接口(DB9母),經(jīng)測(cè)試,該頭的引腳定義并非符合規(guī)范,為此特制了一根具有DB9公頭的轉(zhuǎn)換線。在Evita開機(jī)后的界面中也需要開啟MediBus通訊功能,并設(shè)置通訊的波特率,數(shù)據(jù)位,起始停止位和校驗(yàn)位等參數(shù)。
1.2.5 配置接口及存儲(chǔ)電路
(1)配置接口電路。單板需要配置一些參數(shù),并本地保存,如WiFi的服務(wù)集標(biāo)識(shí)符(service set identifier,SSID)和Psk、遠(yuǎn)程服務(wù)器地址與端口、Evita機(jī)所屬科室與資產(chǎn)編號(hào)等。通過MCU的串口2進(jìn)行通訊并實(shí)現(xiàn)參數(shù)配置,為了便于使用,故設(shè)計(jì)了通用串行總線(universal serial bus,USB)到串口的橋接電路,采用了CH340G實(shí)現(xiàn)上述功能。
(2)存儲(chǔ)電路。系統(tǒng)中的配置參數(shù)需要存儲(chǔ),使用AT24C系列外部電可擦除可編程只讀存儲(chǔ)器(electrically erasable programmable read-only memory,EEPROM)。AT24C02內(nèi)部具有256x8Bits的存儲(chǔ)空間,使用I2C總線與MCU通訊。
(1)HF-LPB100模塊支持串口透明傳輸模式,在硬件上使用MCU的串口0與之通訊,軟件上需通過AT指令配置必要的參數(shù),上電后模塊自動(dòng)連接到默認(rèn)的無線網(wǎng)絡(luò)和服務(wù)器,模塊的串口在透明傳輸模式下工作,無需關(guān)心復(fù)雜的無線局域網(wǎng)協(xié)議,減少了集成無線數(shù)據(jù)傳輸?shù)能浖_發(fā)工作量,需要預(yù)設(shè)的參數(shù)為:①無線網(wǎng)絡(luò)參數(shù)。網(wǎng)絡(luò)名稱、安全模式、密鑰;②TCP/UDP連接參數(shù)。協(xié)議類型、連接類型、目的端口、目的IP地址;③串口參數(shù)。波特率、數(shù)據(jù)位、校驗(yàn)位、停止位和硬件流控制[8]。
(2)HF-LPB100上電后,默認(rèn)進(jìn)入透?jìng)髂J剑瑸榱伺渲蒙鲜鰠?shù),需要通過串口命令把模塊切換命令模式,默認(rèn)的串口參數(shù)配置為:115200 bps/8位數(shù)據(jù)位/無校驗(yàn)位/1位停止位。
(3)通過串口調(diào)試工具輸入“+++”,模塊返回“a”,在3 s內(nèi)發(fā)送“a”,模塊返回“+ok”,即進(jìn)入命令模式,再采用AT+WSSSID,AT+WSKEY配置無線網(wǎng)絡(luò)參數(shù),AT+Z指令可重啟模塊使設(shè)置生效,AT+NETP配置TCP/UDP連接參數(shù),最后利用AT+ENTM進(jìn)入透?jìng)髂J健?/p>
MCU軟件設(shè)計(jì)的功能需求包括呼吸機(jī)數(shù)據(jù)采集、WiFi無線數(shù)據(jù)傳輸、單板配置等。呼吸機(jī)數(shù)據(jù)的采集,根據(jù)由呼吸機(jī)廠商提供Medibus通訊協(xié)議進(jìn)行解析,WiFi無線數(shù)據(jù)傳輸和單板配置定義了一套通訊協(xié)議。系統(tǒng)軟件構(gòu)架如圖5所示。
圖5 在線監(jiān)測(cè)系統(tǒng)軟件構(gòu)架圖
2.2.1 MediBus通信協(xié)議
MediBus是德爾格醫(yī)療設(shè)備與外部醫(yī)療設(shè)備或非醫(yī)療設(shè)備之間進(jìn)行數(shù)據(jù)交換的通信協(xié)議,MediBus主要用于具備RS232接口的儀器,分為命令指令和命令響應(yīng)兩種類型的信息:①命令指令,發(fā)送于一臺(tái)儀器向另一臺(tái)儀器請(qǐng)求數(shù)據(jù)或控制的時(shí)候;②命令響應(yīng),發(fā)送于一臺(tái)儀器對(duì)于另一臺(tái)儀器發(fā)來的命令做出響應(yīng)時(shí)。在初始化通信或重新啟動(dòng)通信超時(shí)階段,設(shè)備必須發(fā)送初始化通信命令[9]。
對(duì)呼吸機(jī)發(fā)送命令指令,若能收到響應(yīng)則認(rèn)為該呼吸機(jī)處于在線狀態(tài),不帶參數(shù)發(fā)送格式見表1。
表1 不帶參數(shù)的發(fā)送格式[字節(jié)(Byte)]
根據(jù)MediBus通信協(xié)議,用USB轉(zhuǎn)RS232串口線將呼吸機(jī)與PC機(jī)相連接,前期用串口調(diào)試助手來調(diào)試和接收命令,確定PC機(jī)和呼吸機(jī)連接正常,基于上步正確的指令響應(yīng)數(shù)據(jù),然后利用特制的串口線將數(shù)據(jù)采集單板和呼吸機(jī)相連接,利用PC機(jī)與呼吸機(jī)的通訊格式進(jìn)行通訊,如此即可檢測(cè)到呼吸機(jī)是否在線[10-11]。
2.2.2 串口配置與WiFi無線數(shù)據(jù)傳輸
該系統(tǒng)包括上位機(jī)軟件和前端數(shù)據(jù)采集單板。其中,上位機(jī)軟件分為參數(shù)配置軟件與服務(wù)器軟件,參數(shù)配置軟件可以用于配置單板的一些固有屬性,如單板ID、本機(jī)IP地址與端口、服務(wù)器IP地址與端口、WiFi的SSID與PSK等。單板與參數(shù)配置軟件間采用串口通訊,使用USB線進(jìn)行連接;WiFi無線數(shù)據(jù)傳輸,單板利用LPB100嵌入式WiFi模塊接入局域網(wǎng)絡(luò),控制核心MCU與LPB100模塊采用了串口通訊,LPB100具備串口透明傳輸模式,與服務(wù)器建立連接后的網(wǎng)絡(luò)UDP通訊實(shí)為串口通訊,如圖6所示。
圖6 在線監(jiān)測(cè)系統(tǒng)LPB100應(yīng)用圖
為了滿足上述兩種串口通訊,定義了串口通訊字節(jié)流通訊格式。
CheckSum是整個(gè)數(shù)據(jù)報(bào)的檢驗(yàn)和,計(jì)算方法為從0x7E開始至CheckSum之前的所有數(shù)據(jù)按字節(jié)累計(jì)相加取低16位,高8位存于CheckSum1,低8位存于CheckSum2,串口配置通訊的幀類型分為握手、讀取配置及寫入配置。
網(wǎng)絡(luò)通訊主要分為登錄通訊和數(shù)據(jù)通訊兩類通訊過程:①登錄通訊,單板在兩種情況下會(huì)發(fā)起登錄通訊,一種是設(shè)備上電或者復(fù)位,另一種是與PC機(jī)斷開了連接,需要重新登錄;②數(shù)據(jù)通訊,由單板單方向發(fā)起,重要前提是單板在線。
網(wǎng)絡(luò)通訊整體流程:①單板向PC機(jī)通過UDP發(fā)起登錄幀,表示成功在線;②單板向PC機(jī)通過UDP發(fā)送設(shè)備狀態(tài)幀,且僅登錄過的單板發(fā)送的狀態(tài)幀有效;③在PC端收到狀態(tài)幀之后應(yīng)向該單板發(fā)送確認(rèn)數(shù)據(jù)幀,以確保雙方數(shù)據(jù)通訊不會(huì)中斷。
當(dāng)單板開機(jī)會(huì)向被設(shè)置的目的PC機(jī)發(fā)送登錄幀,其中包括了固有的ID、本地IP與端口。在發(fā)送狀態(tài)幀時(shí),也會(huì)包含此ID、本地IP與端口。在PC機(jī)軟件端,僅登錄過的ID的狀態(tài)幀才有效。在PC端若256 s內(nèi)都未接受到狀態(tài)幀則進(jìn)行設(shè)備斷開顯示。在單板處,若在發(fā)送完成狀態(tài)幀之后的10 s之內(nèi)都未收到PC端的確認(rèn)數(shù)據(jù)幀,則表示網(wǎng)絡(luò)鏈路斷開,則重新登陸該P(yáng)C機(jī),且停止發(fā)送狀態(tài)幀。
2.2.3 單片機(jī)軟件工作流程
單片機(jī)是數(shù)據(jù)采集單板的核心,在其控制下各個(gè)模塊展開工作,其初始化主要包括了GPIO初始化、串口初始化、定時(shí)器初始化、中斷初始化和EEPROM數(shù)據(jù)初始化,隨后其包括了3個(gè)關(guān)鍵的任務(wù):①負(fù)責(zé)接收來自串口的配置數(shù)據(jù)用于配置單板;②負(fù)責(zé)接收和發(fā)送網(wǎng)絡(luò)數(shù)據(jù);③負(fù)責(zé)與呼吸機(jī)通訊的數(shù)據(jù)采集任務(wù)。MCU軟件整體流程如圖7所示。
0x51為MediBus的初始化通訊命令(ICC),通過對(duì)呼吸機(jī)發(fā)送該指令有無響應(yīng)可以判斷呼吸機(jī)是否在線,其流程如圖8所示。
圖7 在線監(jiān)測(cè)系統(tǒng)MCU軟件整體流程圖
圖8 在線監(jiān)測(cè)系統(tǒng)MediBus數(shù)據(jù)采集流程圖
醫(yī)療設(shè)備在線監(jiān)控系統(tǒng)的軟件部分是整個(gè)軟件系統(tǒng)正常運(yùn)作的核心之一,系統(tǒng)將PC機(jī)作為上位機(jī)。上位機(jī)軟件采用微軟公司的應(yīng)用開發(fā)工具Visual Studio 2010,選用C#語言開發(fā)界面具有一定的優(yōu)勢(shì),因此上位機(jī)軟件選擇用C#作為開發(fā)編程語言,生成可執(zhí)行文件。上位機(jī)軟件的核心功能主要包括了單板參數(shù)的配置(串口通訊)和呼吸機(jī)在線監(jiān)控顯示(網(wǎng)絡(luò)通訊),其功能模塊如圖9所示。
圖9 在線監(jiān)測(cè)系統(tǒng)上位機(jī)軟件功能模塊圖
通訊配置模塊用于配置串口通訊和網(wǎng)絡(luò)通訊所需的串口號(hào)、波特率、UDP端口號(hào)等信息。
串口通訊模塊和網(wǎng)絡(luò)通訊模塊在正確的通訊參數(shù)配置下完成最底層的串口數(shù)據(jù)的收發(fā),供數(shù)據(jù)解碼模塊解析處理,這些數(shù)據(jù)是數(shù)據(jù)記錄導(dǎo)出模塊和圖形界面的原始數(shù)據(jù)。通訊模塊和數(shù)據(jù)解碼模塊程序基于通訊協(xié)議編寫,主要實(shí)現(xiàn)上位機(jī)和單板的通訊。串口配置過程流程如下:PC端通過串口發(fā)送握手信號(hào)→單板發(fā)出回應(yīng)與PC機(jī)建立聯(lián)系→PC將編輯界面的數(shù)據(jù)組成數(shù)據(jù)幀發(fā)送至單板→單板正確解析后寫入EEPROM→保存并更新單板配置。網(wǎng)絡(luò)通訊部分主要是在開啟服務(wù)器后不斷接收來自單板發(fā)出的數(shù)據(jù)幀,根據(jù)協(xié)議解析呼吸機(jī)是否在線,將設(shè)備名稱、地理位置、科室、固定資產(chǎn)編號(hào)和工作狀態(tài)顯示在界面中,并可以根據(jù)設(shè)定的時(shí)間段導(dǎo)出運(yùn)行數(shù)據(jù),作為統(tǒng)計(jì)依據(jù),上位機(jī)軟件界面如圖10所示。
圖10 在線監(jiān)測(cè)系統(tǒng)上位機(jī)網(wǎng)絡(luò)通訊軟件界面圖
通過兩臺(tái)Evita4呼吸機(jī)的采樣試點(diǎn)和聯(lián)網(wǎng)測(cè)試,本研究成功收集了兩臺(tái)呼吸機(jī)在線狀態(tài)數(shù)據(jù),驗(yàn)證了該系統(tǒng)運(yùn)行的可行性,但是該產(chǎn)品在設(shè)計(jì)上還有很大的提升空間,可根據(jù)MediBus通信協(xié)議擴(kuò)展呼吸機(jī)的運(yùn)行數(shù)據(jù)監(jiān)測(cè),進(jìn)一步減輕護(hù)理人員的床邊工作量;也可擴(kuò)展到其他多種類別的醫(yī)療設(shè)備在線監(jiān)測(cè),為統(tǒng)計(jì)分析使用率提供更大的便利[12]。