施紀(jì)紅
(蘇州健雄職業(yè)技術(shù)學(xué)院,江蘇 太倉 215400)
脈搏是動(dòng)脈的搏動(dòng);脈率是每分鐘脈搏的次數(shù)。脈率檢查是血管是否正常的一項(xiàng)輔助檢查方法。 在安靜、清醒的情況下,正常成人的脈率為60~100 次/分。超過100 次/分,稱為心動(dòng)過速;低于60 次/分,稱為心動(dòng)過緩。 很多疾病都會(huì)導(dǎo)致脈率的變化,所以監(jiān)測脈率可以輔助這些疾病的診療。
脈率監(jiān)測目前主要有兩種方式:一是通過大型的心電監(jiān)護(hù)儀記錄病人的生命體征的變化;這種方式數(shù)據(jù)詳細(xì),但成本高、不能推廣到全部病床。 二是護(hù)士每天手工測量病人的血壓和脈搏;這種方法成本小,但工作量大,并且數(shù)據(jù)不連貫,為后續(xù)治療提供的幫助少,也不能在病人脈率發(fā)生異常時(shí)及時(shí)報(bào)警。
在物聯(lián)網(wǎng)大數(shù)據(jù)時(shí)代,針對以上需求,本文設(shè)計(jì)了一套便攜低成本的脈率監(jiān)測系統(tǒng)。 該系統(tǒng)可以實(shí)時(shí)獨(dú)立監(jiān)測每個(gè)病人的脈率,通過nRF2401 無線通信技術(shù)在每個(gè)病房的OLED 屏上實(shí)時(shí)滾動(dòng)顯示每個(gè)床位的脈率信息。 同時(shí)也將每個(gè)病房的脈率信息上傳并記錄在護(hù)士站電腦中;護(hù)士可以遠(yuǎn)程監(jiān)控全部病人的脈率信息,對脈率數(shù)據(jù)進(jìn)行統(tǒng)計(jì)與分析,并有報(bào)警設(shè)置,能對突發(fā)情況進(jìn)行報(bào)警。
本系統(tǒng)檢測終端數(shù)據(jù)量少且采用遠(yuǎn)程存儲(chǔ),所以檢測端的MCU 選擇性價(jià)比高的STC89C52 單片機(jī)。 在病房顯示端和護(hù)士站考慮到后續(xù)的功能擴(kuò)展和數(shù)據(jù)的臨時(shí)存儲(chǔ),選擇了STM32F103ZET6 芯片。 本系統(tǒng)設(shè)計(jì)了兩層無線傳輸體系,均使用nRF2401 傳輸芯片。 第一層是病床采集端的52 單片機(jī)和病房數(shù)據(jù)顯示端的STM32 單片機(jī)之間的無線數(shù)據(jù)傳輸。 第二層是病房數(shù)據(jù)顯示端的STM32 單片機(jī)和護(hù)士站SMT32 單片機(jī)之間的無線數(shù)據(jù)傳輸。 最后通過USB-RS232 轉(zhuǎn)接芯片將護(hù)士站收集的全部信息上傳到PC 機(jī)中進(jìn)行存儲(chǔ)。通過上位機(jī)軟件對數(shù)據(jù)信息分析[1]。 系統(tǒng)整體設(shè)計(jì),如圖1 所示。
圖1 系統(tǒng)整體設(shè)計(jì)
基于單光束反射式光電傳感器CT188 設(shè)計(jì)了脈率采集電路,如圖2 所示。 當(dāng)手指放在ST188 上,紅外發(fā)光二極管發(fā)出的紅外光照射到手指的脈搏血管,由于心臟跳動(dòng)引起的手指內(nèi)血管節(jié)奏性的充盈變化,使得反射的紅外光強(qiáng)度隨之變化,由光電三極管接收放大轉(zhuǎn)換為不同的電壓信號(hào)。 其中R2 的電阻值選擇影響三極管感應(yīng)紅外光的靈敏度,此處選擇470 歐姆。 轉(zhuǎn)換后的電壓經(jīng)C1 隔直耦合到R5。 R3、C2 組成低通濾波器濾除高頻干擾,C3、R4 進(jìn)一步濾除殘留的干擾。截止頻率由C3、R4 決定。 信號(hào)經(jīng)低通濾波后,送至由LM358 運(yùn)放2IN(5 腳)。 運(yùn)放LM358 將信號(hào)放大,放大倍數(shù)由R6 和R7 的比值決定。 經(jīng)過LM358 放大后輸出到LM358 的1IN-(2 腳)構(gòu)成的比較器。 放大后的脈搏信號(hào)與電阻R8、R10 分壓建立基準(zhǔn)電壓(1IN+3腳)比較后輸出方波脈沖。 IOUT 最終送給單片機(jī)的中斷引腳INT0。
圖2 脈率采集電路
射頻nRF2401 功耗小、速率快,特別適用于數(shù)據(jù)量少,傳感器布局相對集中,總體傳輸距離較近的場景。根據(jù)病區(qū)中每個(gè)病床的分布,本系統(tǒng)選擇了nRF2401技術(shù)進(jìn)行無線傳輸。 nRF2401 與單片機(jī)之間的連接如圖3 所示。 NRF2401 的收發(fā)模式有Enhanced(增強(qiáng)型)ShockBurstTM 收發(fā)模式、ShockBurstTM 收發(fā)模式和直接收發(fā)模式3 種。 本系統(tǒng)采用第一種收發(fā)模式。
圖3 NRF2401 與單片機(jī)連線
2.2.1 脈率采集端發(fā)送模式
脈率采集端是一個(gè)發(fā)送端,向病房顯示端發(fā)送采集到的脈率數(shù)據(jù)。 具體步驟是,采集端51 單片機(jī)先把自己的地址和要發(fā)送的數(shù)據(jù)按時(shí)序送入NRF24L01(此時(shí)NRF24L01 會(huì)自動(dòng)加上字頭和CRC 校驗(yàn)碼);MCU配置CONFIG 寄存器,使NRF24L01 進(jìn)入發(fā)送模式;MCU 將CE 置為高(至少10us),使之能發(fā)送;發(fā)射時(shí)先給射頻前端供電,然后射頻數(shù)據(jù)打包,高速發(fā)射數(shù)據(jù)包(這些均由NRF24L01 自動(dòng)完成)。
2.2.2 病房顯示端收發(fā)模式
病房顯示端先是接受本病房脈率采集端發(fā)送來的脈率信息,并且本地顯示出來。 接受工作流程是,病房顯示端單片機(jī)先配置要接收的地址和要接收的數(shù)據(jù)包大小,進(jìn)入接收模式;配置CONFIG 寄存器,使之進(jìn)入接收模式;MCU 使CE 置高;200 us 后,NRF24L01 進(jìn)入監(jiān)視狀態(tài),等待數(shù)據(jù)包的到來;確認(rèn)收到數(shù)據(jù)后,記錄地址(接收地址與發(fā)送地址應(yīng)該相同),接收端通過該地址發(fā)送ACK 應(yīng)答信號(hào)。 在發(fā)送端,通道0 用作接收應(yīng)答信號(hào),一定要注意兩端地址需相同,才能接收到正確的ACK 信號(hào)。 當(dāng)接收到正確的數(shù)據(jù)包后,NRF24L01自動(dòng)移去字頭、地址和CRC 校驗(yàn)位;NRF24L01 通過把STATUS 寄存器的RX_DR 置位(STATUS 一般引起MCU 中斷)通知MUC;MCU 把數(shù)據(jù)從FIFO 讀出(0x61指令);所有數(shù)據(jù)讀取完畢后,可清除STATUS 寄存器。
病房顯示端同時(shí)也需要將收集到的本病房的脈率數(shù)據(jù)無線發(fā)射給護(hù)士站的STM32 單片機(jī)。 該過程與脈率采集端發(fā)送模式相似,不再贅述。
2.2.3 護(hù)士站接受模式
護(hù)士站STM32 單片機(jī)接受本樓層各個(gè)病房顯示端單片機(jī)收集到的脈率數(shù)據(jù),并對數(shù)據(jù)初步處理,對異常數(shù)據(jù)進(jìn)行報(bào)警。 STM32 單片機(jī)和51 單片機(jī)在使用nRF24L01 時(shí)的區(qū)別主要是端口、時(shí)鐘、中斷的設(shè)置及初始化。 但是使用CubeMAX 大大簡化了對STM32 芯片的配置工作,讓工作重點(diǎn)放在了程序的編寫上。
顯示模塊選擇的是UG-2864HSWEG01 進(jìn)行仿真,其驅(qū)動(dòng)芯片為SSD1306,使用IIC 工作模式。 該模式將BS0 與BS2 拉低, BS1 拉高。 D[0…7]是數(shù)據(jù)總線,按引腳描述,IIC 接口下D2 為SDAout,D1 為SDAin,D0為SCL 線。 D2 與D1 可直接相連,而且必須接上上拉電阻。 仿真效果如圖4 所示。
圖4 病房脈率顯示仿真效果
USB 轉(zhuǎn)串口芯片主要包括CH340 系列,CP2102/CP2103,FT232R,PL2303HX 等。 其中FT232 系列芯片穩(wěn)定性是最好的,但是價(jià)格也最貴。 國產(chǎn)芯片CH340價(jià)格和穩(wěn)定性上都不錯(cuò)。 本文選擇了性價(jià)比最高CH340 芯片。 電路設(shè)計(jì)中CH340R 必須使用12MHz 的晶振,否則無法正常工作。
該模塊主要做3 件事:(1)各種初始化(單片機(jī)/脈率采集器/無線模塊初始化);(2)定時(shí)采集脈率信息;(3)接收到病房顯示模塊發(fā)送的中斷請求后,將本模塊ID 和測得的脈率數(shù)據(jù)無線發(fā)送給本病房顯示模塊。
該模塊主要做4 件事:(1)預(yù)存本病房監(jiān)測模塊的ID 編號(hào);(2)定時(shí)接收來自監(jiān)測模塊的脈率信息;(3)判斷接收信息的正確性并顯示;(4)上傳接收到的脈率數(shù)據(jù)信息。 設(shè)計(jì)流程如下:單片機(jī)啟動(dòng)->系統(tǒng)時(shí)鐘/DPIO 引腳初始化->顯示功能模塊初始化->無線模塊初始化(預(yù)存本病房各個(gè)監(jiān)測模塊ID)->定時(shí)ID編號(hào)接收(包含了脈率信息)->判斷接收數(shù)據(jù)是否正確->正確則在顯示,不正確則再次接收->接收到護(hù)士站發(fā)送的中斷請求后,將本模塊ID 和收集的本病房的數(shù)據(jù)無線發(fā)送給護(hù)士站[2]。
該模塊主要做4 件事:(1)預(yù)存各個(gè)病房顯示模塊的ID 編號(hào);(2)定時(shí)接收來自病房模塊匯總的脈率信息;(3)判斷接收信息的正確性,實(shí)時(shí)報(bào)警;(4)定時(shí)通過串口向上位機(jī)傳輸全部的脈率數(shù)據(jù)信息。
其中,STM32 串口通信編程思路:(1)配置RCC 寄存器組,使用PLL 輸出72 MHz 時(shí)鐘并作為主時(shí)鐘源;(2)配置GPIOA 端口,設(shè)置GPIOA.9 為第2 功能推挽輸出模式,GPIOA. 10 為浮空輸入模式;(3) 配置USART 設(shè)備,主要參數(shù)為:使用9 600 bps 波特率、8 位數(shù)據(jù)長度、1 個(gè)停止位且無校驗(yàn)位、全雙工模式。 使用時(shí)一定要把PLL 輸出設(shè)為72 MHz,并且作為主時(shí)鐘使用,否則波特率需要重新計(jì)算。
脈率不斷地通過串口上傳到PC 電腦端。 上位機(jī)主要是對每個(gè)病床采集的脈率數(shù)據(jù)進(jìn)行存儲(chǔ)。 上位機(jī)設(shè)計(jì)了相應(yīng)的數(shù)據(jù)庫,保存一定時(shí)間范圍內(nèi)的脈率數(shù)據(jù),護(hù)士可以通過上位機(jī)軟件對保存的數(shù)據(jù)進(jìn)行查詢。數(shù)據(jù)通過波形顯示,為疾病的診斷提供數(shù)據(jù)支持[3]。本系統(tǒng)的脈率顯示波形如圖5 所示。
圖5 脈率顯示波形
本文選擇CT188 設(shè)計(jì)的脈率檢測系統(tǒng),通過對軟硬件的設(shè)計(jì)與調(diào)試,單個(gè)脈率檢測與標(biāo)準(zhǔn)化設(shè)備測量的數(shù)據(jù)進(jìn)行比較,相對誤差小于2%。 但連續(xù)檢測中,由于手指位置不對、監(jiān)測時(shí)晃蕩造成的粗大誤差較大。系統(tǒng)如果要真實(shí)投入工作,需要對整個(gè)監(jiān)測部件進(jìn)行機(jī)械結(jié)構(gòu)上的進(jìn)一步設(shè)計(jì)。
本文設(shè)計(jì)的脈率無線監(jiān)測硬件系統(tǒng)結(jié)構(gòu)簡單、成本低、組網(wǎng)方便,減少了護(hù)士脈率檢測工作量,提高了工作效率。 設(shè)計(jì)的上位機(jī)脈率管理系統(tǒng),能夠有效地存儲(chǔ)脈率數(shù)據(jù),提供折線圖顯示方式有助于脈率的分析。 但該系統(tǒng)目前只能檢測脈搏,后續(xù)可以通過增加體溫、血氧等傳感器檢測更多的生命體征。