鐘云靖 李凱揚(yáng)
摘 要: 為了檢測(cè)人體脈搏和血氧信號(hào),評(píng)估人體的肝臟儲(chǔ)備功能,開(kāi)發(fā)一種基于無(wú)線探頭的三波長(zhǎng)肝儲(chǔ)備功能檢測(cè)儀。設(shè)備以STM32微處理器為核心設(shè)計(jì)了模擬式信號(hào)采集探頭,然后利用nRF24L01射頻模塊建立探頭與主機(jī)之間的無(wú)線數(shù)據(jù)通信,最后設(shè)備在基于S3C2440平臺(tái)的主機(jī)上對(duì)數(shù)據(jù)進(jìn)行處理和顯示。測(cè)試結(jié)果表明,該系統(tǒng)運(yùn)行穩(wěn)定可靠,能夠?qū)崟r(shí)有效地檢測(cè)人體相關(guān)生理參數(shù),而且功能強(qiáng)大,使用方便,具備臨床實(shí)用性。
關(guān)鍵詞: 肝儲(chǔ)備功能; STM32; nRF24L01; 信號(hào)采集; 無(wú)線傳輸
中圖分類號(hào): TN915?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2017)06?0001?04
Abstract: In order to detect the human body′s pulse and blood oxygen signal, and evaluate the liver reserve function of the human body, a new three?wavelength liver reserve function detector based on wireless probe was developed. The analog signal acquisition probe was designed by taking STM32 MCU as the core. The RF module nRF24L01 is used to realize the wireless data transmission between the probe and host computer. The data is processed and displayed on the S3C2440?based host computer. The test results show that the detector has stable and reliable running, and can effectively detect the physiological parameters related to human body in real time. The detector has powerful function, convenience use, and clinical practicability.
Keywords: liver reserve function; STM32; nRF24L01; signal acquisition; wireless transmission
0 引 言
肝儲(chǔ)備能力評(píng)估在臨床上具有重要意義,是肝葉切除手術(shù)之前評(píng)估切肝量的重要依據(jù)。肝儲(chǔ)備功能的評(píng)估方法有很多,吲哚青綠(Indocyanine Green,ICG)排泄試驗(yàn)就是其中一種。20世紀(jì)70年代,日本人Aoyagi以朗伯?比爾定律[1?2]為基礎(chǔ)提出脈搏分光光度法[3]用來(lái)計(jì)算血氧飽和度。此后他又改進(jìn)[4]此方法,結(jié)合ICG排泄試驗(yàn),提出脈搏染料密度分光光度法,用來(lái)測(cè)量動(dòng)脈血中ICG的濃度,以此來(lái)評(píng)價(jià)肝的儲(chǔ)備功能。
本文介紹了一種基于脈搏染料密度分光光度法的三波長(zhǎng)肝儲(chǔ)備功能檢測(cè)儀,設(shè)備包括無(wú)線探頭和主機(jī)。其中,探頭采集人體信號(hào)后通過(guò)射頻模塊進(jìn)行無(wú)線傳輸,打破了傳統(tǒng)設(shè)備的探頭與主機(jī)“一對(duì)一”的固定模式,可以建立多個(gè)探頭與一臺(tái)主機(jī)之間“多對(duì)一”的數(shù)據(jù)傳輸鏈,實(shí)現(xiàn)多人同時(shí)檢測(cè),提高了設(shè)備的使用效率;主機(jī)基于ARM S3C2440平臺(tái),接收并處理數(shù)據(jù),代入相關(guān)公式[5]后可以計(jì)算出血氧參數(shù)和ICG濃度,實(shí)現(xiàn)了對(duì)肝臟儲(chǔ)備能力的有效檢測(cè)。
1 硬件設(shè)計(jì)
如圖1所示,設(shè)備硬件結(jié)構(gòu)主要由無(wú)線探頭和主機(jī)組成。首先,由分布在手指兩側(cè)的發(fā)光二極管和光電芯片組成的探頭前端采集信號(hào),然后送入模擬信號(hào)處理電路進(jìn)行放大、信號(hào)分離、濾波,再經(jīng)STM32處理器A/D轉(zhuǎn)換,最后通過(guò)nRF14L01模塊發(fā)送出去;主機(jī)以S3C2440平臺(tái)為核心,通過(guò)nRF14L01接收數(shù)據(jù),然后進(jìn)行相應(yīng)處理。
1.1 探頭前端
動(dòng)脈的搏動(dòng)改變了動(dòng)脈血液的光程長(zhǎng),動(dòng)脈血液對(duì)光的吸收量也隨之改變[6],探頭前端用來(lái)實(shí)現(xiàn)對(duì)光吸收變化量的有源探測(cè)。人體指尖動(dòng)脈成分含量高,且指尖厚度相對(duì)其他人體組織而言比較薄,透過(guò)手指后檢測(cè)到的光強(qiáng)相對(duì)較大,因此通常選取人體指尖作為測(cè)量對(duì)象。
探頭前端的探測(cè)光源選擇了Epitex公司的L660/805/940?35B42芯片,該芯片集成了三個(gè)波長(zhǎng)(660 nm,805 nm,940 nm)的發(fā)光二極管,體積小,照射區(qū)域集中、便于光電轉(zhuǎn)換。二極管芯片由單片機(jī)輸出的三路時(shí)序信號(hào)分時(shí)驅(qū)動(dòng)發(fā)光,光透過(guò)手指后的強(qiáng)度變化反應(yīng)了人體的脈搏血氧信息[7]。光電探測(cè)芯片采用的是TI公司生產(chǎn)的OPT101,它的靈敏度較高,且集成了前置放大器單元,輸出的電壓與光照強(qiáng)度成線性關(guān)系。通過(guò)OPT101可以很方便地將透過(guò)手指的光信號(hào)轉(zhuǎn)換為電壓信號(hào)。
1.2 模擬信號(hào)處理電路
從OPT101出來(lái)的人體信號(hào)是三路波長(zhǎng)的分時(shí)疊加信號(hào),強(qiáng)度比較弱,而且可能摻雜有干擾信號(hào),因此在模擬信號(hào)處理電路中需設(shè)計(jì)增益可調(diào)的反向放大電路、分離電路以及低通濾波電路等。濾波后的信號(hào)再經(jīng)跟隨器進(jìn)入STM32自帶的ADC進(jìn)行模數(shù)轉(zhuǎn)換。設(shè)備采用低成本、低功耗、高精度的儀表放大器AD620設(shè)計(jì)微小信號(hào)放大電路[8],僅需使用一個(gè)外部電阻即可設(shè)置增益。
經(jīng)過(guò)放大的電壓信號(hào)依然是三個(gè)波長(zhǎng)的混合信號(hào),而在主機(jī)中需要分別用到三個(gè)波長(zhǎng)信號(hào)的交流值和直流值,因此必須設(shè)計(jì)信號(hào)分離電路來(lái)將三路信號(hào)分離。本設(shè)備將三個(gè)雙向模擬開(kāi)關(guān)CD4066并聯(lián)組合,使用三路脈沖序列分別作為三個(gè)CD4066的選通信號(hào),以此將三路信號(hào)分離出來(lái)。最后,為了提高信噪比并解調(diào)信號(hào),分離后的信號(hào)必須進(jìn)行低通濾波。人體脈搏信號(hào)的主頻在20 Hz以下,因此設(shè)備選擇了截止頻率在20 Hz的四階低通巴特沃斯濾波器。巴特沃斯濾波器通帶平坦度很大,再利用高階次加快通帶到阻帶的衰減,可以有效降低信號(hào)噪聲并完成解調(diào)。
1.3 nRF24L01模塊
通過(guò)射頻技術(shù)實(shí)現(xiàn)數(shù)據(jù)的無(wú)線傳輸在各個(gè)領(lǐng)域的應(yīng)用日益廣泛和成熟。本設(shè)備采用nRF24L01射頻模塊向主機(jī)傳輸探頭采集到的數(shù)據(jù)。nRF24L01是由挪威NORDIC公司設(shè)計(jì)的一款工作在2.4~2.5 GHz的ISM頻段的單片無(wú)線射頻收發(fā)芯片,內(nèi)置硬件CRC(循環(huán)冗余校驗(yàn))和一點(diǎn)對(duì)多點(diǎn)通信地址控制,集成了所有與RF協(xié)議相關(guān)的高速信號(hào)處理單元,具有體積小、成本低、便于開(kāi)發(fā)等特點(diǎn)。另外,nRF24L01可以同時(shí)控制應(yīng)答及重發(fā)功能而無(wú)需增加MCU工作量,使得雙向鏈接協(xié)議執(zhí)行起來(lái)更為簡(jiǎn)單有效。設(shè)置為接收模式的nRF24L01可以識(shí)別6個(gè)發(fā)射端,對(duì)使用了不同地址的6 路通道的數(shù)據(jù)進(jìn)行同時(shí)接收,如圖2所示。因此,本設(shè)備可利用nRF24L01多路發(fā)送、一路接收的傳輸性能,實(shí)現(xiàn)多探頭共用主機(jī)的工作方式,同時(shí)為多達(dá)6名患者進(jìn)行檢測(cè),提高了設(shè)備的便捷性和可利用性。
nRF24L01及其外圍電路原理圖如圖3所示,其工作頻率為16 MHz,通過(guò)由MOSI,MISO和SCK組成的SPI接口與處理器連接進(jìn)行通信,其中,SCK為時(shí)鐘信號(hào)線,MOSI為主設(shè)備輸出/從設(shè)備輸入端,MISO為從設(shè)備輸入/主設(shè)備輸出端。本設(shè)備STM32與S3C2440處理器為主設(shè)備,產(chǎn)生時(shí)鐘信號(hào)控制輸入/輸出,nRF24L01模塊為從設(shè)備。另外,CSN(低電平有效)為片選信號(hào)線,CE為芯片的使能端,CE和芯片寄存器PWR_UP,PRIM_RX共同決定了nRF24L01的主要工作模式,如表1所示。
2 軟件設(shè)計(jì)
與硬件系統(tǒng)相對(duì)應(yīng),軟件包括兩部分:基于庫(kù)開(kāi)發(fā)的STM32軟件;運(yùn)行于Window CE系統(tǒng)的主機(jī)軟件。其中,STM32需完成:脈沖驅(qū)動(dòng)信號(hào)輸出; A/D轉(zhuǎn)換;nRF24L01控制。主機(jī)軟件則完成數(shù)據(jù)處理及顯示等功能。
2.1 STM32軟件系統(tǒng)
STM32是ST公司基于Cortex?M3內(nèi)核開(kāi)發(fā)的一系列中端MCU。STM32倡導(dǎo)基于固件庫(kù)的開(kāi)發(fā)方式,僅通過(guò)調(diào)用庫(kù)里的API(應(yīng)用程序接口)就可以迅速搭建一個(gè)大型程序,寫(xiě)出各種用戶所需的應(yīng)用,大大降低了開(kāi)發(fā)周期。本設(shè)備設(shè)計(jì)的探頭以STM32F103VET6為核心,它具有3個(gè)12位ADC、3個(gè)SPI接口和8個(gè)16位定時(shí)器等片上資源,完全滿足需求。
2.1.1 LED時(shí)序驅(qū)動(dòng)脈沖
人體脈搏信號(hào)的頻率主要分布在10 Hz以下[9],為了使采樣信號(hào)在后續(xù)模擬信號(hào)處理中得到完整解調(diào),根據(jù)奈奎斯特定律,設(shè)備選用50 Hz的時(shí)序脈沖信號(hào)驅(qū)動(dòng)探頭前端的發(fā)光二極管,如圖4所示。三路脈沖占空比為[16],用來(lái)分別驅(qū)動(dòng)三個(gè)發(fā)光二極管。另外,脈沖序列還用于硬件分離電路中的選通信號(hào)。
將STM32的三個(gè)定時(shí)器(TIM2,TIM3,TIM4)設(shè)置為PWM波輸出方式,以[150] s為一個(gè)計(jì)數(shù)周期,設(shè)定高電平持續(xù)時(shí)間為整個(gè)周期的[16],使能重載寄存器,這樣就能持續(xù)輸出脈沖波形了。最后利用一個(gè)定時(shí)器(TIM7)定時(shí)[150] s作為三路脈沖波之間的延時(shí),TIM7設(shè)置為每次打開(kāi)計(jì)數(shù)一次。具體輸出方法為:打開(kāi)TIM2,輸出第一個(gè)波形,再打開(kāi)TIM7延時(shí)[150] s,接著打開(kāi)TIM3,輸出第二個(gè)波形,依次類推。
2.1.2 三路信號(hào)的模/數(shù)轉(zhuǎn)換
A/D過(guò)程充分利用了STM32片上資源,將分離解調(diào)后的三路信號(hào)分別輸入到3個(gè)ADC(ADC1,ADC2,ADC3)的轉(zhuǎn)換通道中。ADC需要受到觸發(fā)信號(hào)才開(kāi)始轉(zhuǎn)換,這里采用軟件觸發(fā)方式,每次觸發(fā)轉(zhuǎn)換一次,得到一個(gè)轉(zhuǎn)換數(shù)據(jù)。三個(gè)ADC的觸發(fā)點(diǎn)分別設(shè)置在產(chǎn)生脈沖波的三個(gè)定時(shí)器的計(jì)數(shù)溢出中斷里,這樣ADC在每個(gè)脈沖周期都會(huì)采樣一次。設(shè)置合適的采樣保持時(shí)間,就能實(shí)現(xiàn)三個(gè)ADC的分時(shí)轉(zhuǎn)換,避免相互串?dāng)_。
由于三個(gè)波長(zhǎng)的數(shù)據(jù)在射頻傳輸中共用一路通道,進(jìn)入主機(jī)后需要進(jìn)行辨別,因此在發(fā)送前必須標(biāo)記數(shù)據(jù)??紤]到STM32的A/D轉(zhuǎn)換精度為12位,轉(zhuǎn)換值存在16位的數(shù)據(jù)寄存器中,故可利用其剩余的高4位作為標(biāo)志位,具體為:660 nm波長(zhǎng)數(shù)據(jù)高4位設(shè)置為6(轉(zhuǎn)換值|0x6000),805 nm波長(zhǎng)數(shù)據(jù)高4位設(shè)置為8(轉(zhuǎn)換值|0x8000),940 nm波長(zhǎng)數(shù)據(jù)高4位設(shè)置為9(轉(zhuǎn)換值|0x9000)。這樣主機(jī)便可根據(jù)高4位的值判斷數(shù)據(jù)類別。A/D轉(zhuǎn)換過(guò)程如圖5所示。
2.1.3 nRF24L01驅(qū)動(dòng)
nRF24L01的發(fā)送過(guò)程如下:
(1) 配置nRF24L01。設(shè)置為發(fā)送模式,并選擇數(shù)據(jù)通道、通信頻率等參數(shù),使能自動(dòng)應(yīng)答。
(2) 裝入有效數(shù)據(jù)。當(dāng)片選端CSN為低時(shí),MCU通過(guò)SPI接口將要發(fā)送的數(shù)據(jù)按字節(jié)寫(xiě)入到nRF24L01的TX FIFO寄存器中。
(3) 使能發(fā)射。設(shè)置CE為高啟動(dòng)發(fā)射,高電平持續(xù)時(shí)間最小為10 μs。
(4) 等待應(yīng)答信號(hào)。自動(dòng)應(yīng)答模式下,發(fā)送完一包數(shù)據(jù)后芯片立即進(jìn)入接收模式。在設(shè)定時(shí)間范圍內(nèi)沒(méi)有接收到應(yīng)答信號(hào)則重發(fā)數(shù)據(jù)。收到應(yīng)答信號(hào)則認(rèn)為數(shù)據(jù)成功發(fā)送到了接收端,中斷引腳(IRQ)由高置低。
(5) nRF24L01進(jìn)入待機(jī)模式,等待新數(shù)據(jù)。
使用nRF24L01芯片進(jìn)行無(wú)線數(shù)據(jù)通信時(shí)編碼和校驗(yàn)都由芯片完成,編程和應(yīng)用非常方便。本設(shè)備STM32對(duì)nRF24L01的操作包括初始化配置、裝載數(shù)據(jù)、發(fā)送數(shù)據(jù)[10]。由于STM32的SPI接口能夠自動(dòng)傳輸位于數(shù)據(jù)寄存器中的數(shù)據(jù),因此裝載數(shù)據(jù)是由STM32硬件自動(dòng)完成的,然后STM32通過(guò)查詢IRQ引腳電平狀態(tài)控制發(fā)射過(guò)程。具體的發(fā)送流程如圖6所示。
2.2 主機(jī)軟件
主機(jī)是基于三星公司S3C2440平臺(tái),運(yùn)行于Windows CE 5.0操作系統(tǒng)環(huán)境下,采用EVC++進(jìn)行多線程程序設(shè)計(jì),可以實(shí)時(shí)處理接收到的數(shù)據(jù)并顯示結(jié)果。
為避免內(nèi)存溢出,系統(tǒng)采取每接收300個(gè)數(shù)據(jù)進(jìn)行一次處理的方法,處理過(guò)程包括數(shù)字濾波,特征值提取等。接著計(jì)算出脈搏、血氧飽和度和ICG濃度等人體參數(shù),最后在顯示屏上顯示,這個(gè)過(guò)程如圖7所示。界面顯示程序利用Embedded Visual C++ 4.0工具,調(diào)用MFC類庫(kù)和系統(tǒng)Win32 API函數(shù),得到了友好的人機(jī)交互界面。設(shè)備顯示界面和測(cè)試結(jié)果如圖8所示,三個(gè)波長(zhǎng)的脈搏信號(hào)分三路實(shí)時(shí)顯示,圖8左邊分別是計(jì)算得到的血氧飽和度和心率。用來(lái)評(píng)估患者肝儲(chǔ)備功能的ICG濃度數(shù)據(jù)可以通過(guò)串口輸入到PC機(jī),再由相關(guān)軟件繪制出來(lái),如圖9所示。該測(cè)試檢測(cè)出的ICG的15 min滯留率(ICG15)大致在10%,證明實(shí)驗(yàn)對(duì)象肝功能正常。若ICG15介于10%~20%,說(shuō)明肝功能輕度不足;若ICG15大于20%之間,說(shuō)明肝功能嚴(yán)重不足。實(shí)驗(yàn)結(jié)果初步驗(yàn)證了該設(shè)備的可行性。
3 結(jié) 語(yǔ)
本文所設(shè)計(jì)的基于無(wú)線射頻探頭的三波長(zhǎng)肝儲(chǔ)備功能檢測(cè)儀是一種可以實(shí)時(shí)檢測(cè)人體脈搏、血氧信息以及肝臟儲(chǔ)備能力的醫(yī)療設(shè)備。該設(shè)備采用了射頻數(shù)據(jù)傳輸技術(shù),可實(shí)現(xiàn)多個(gè)探頭與主機(jī)之間的多路通信,大大提高了數(shù)據(jù)采集的便捷性和高效性;數(shù)據(jù)處理算法方面若與臨床相結(jié)合,對(duì)人體參數(shù)測(cè)量值進(jìn)行持續(xù)修正,最終可能會(huì)達(dá)到醫(yī)學(xué)應(yīng)用的精度要求。測(cè)試結(jié)果表明,本設(shè)備的軟硬件系統(tǒng)有效實(shí)用,在臨床檢測(cè)和監(jiān)護(hù)方面具有很大的應(yīng)用前景。
注:本文通訊作者為李凱揚(yáng)。
參考文獻(xiàn)
[1] 石萍,喻洪流.光電容積描記技術(shù)原理及其應(yīng)用[J].生物醫(yī)學(xué)工程學(xué)雜志,2013,30(4):899?904.
[2] GOLDMAN J M, PETTERSON M T, KOPOTIC R J, et al. Masimo signal extraction pulse oximetry [J]. Journal of clinical monitoring and computing, 2000, 16(7): 475?483.
[3] AOYAGI T. Pulse oximetry: its invention, theory, and future [J]. Journal of anesthesia, 2003, 17(4): 259?266.
[4] IIJIMA T, AOYAGI T, IWAO Y, et al. Cardiac output and circulating blood volume analysis by pulse dye?densitometry [J]. Journal of clinical monitoring and computing, 1997, 13(2): 81?89.
[5] 徐澤鵬.三波長(zhǎng)肝儲(chǔ)備功能檢測(cè)儀的研制[D].武漢:武漢大學(xué),2012:40?43.
[6] 李慶波,韓慶陽(yáng).人體血氧飽和度檢測(cè)中消除脈搏波信號(hào)高頻噪聲的方法[J].光譜學(xué)與光譜分析,2012,32(9):2523?2527.
[7] YESMAN S S, MAMILOV S A, ASIMOV M M, et al. Noninvasive methods of measuring oxygen saturation in venous blood [J]. Journal of applied spectroscopy, 2011, 78(3): 406?413.
[8] 鐘輝.基于AD620的高精度信號(hào)采集調(diào)理模塊的設(shè)計(jì)[J].科學(xué)時(shí)代,2015(13):132?133.
[9] 邢斌,忻尚芝,張強(qiáng).脈搏信號(hào)采集系統(tǒng)的研制[J].上海理工大學(xué)學(xué)報(bào),2013,35(4):387?390.
[10] 于超然,付成偉.基于nRF24L01無(wú)線模塊的井下流量數(shù)據(jù)傳輸設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2014,37(15):41?44.