摘 要: 以FPGA為核心控制模塊,搭載MAX1300為數據采集模塊,完成8通道、16位精度數據采集系統。采集數據在FPGA內部儲存,DSP在適當時刻對其進行讀取以完成伺服控制工作。針對以往數據采集系統的局限,FPGA內部對所采集數據進行預處理,減輕了CPU數據處理強度和負擔。詳細介紹了各芯片硬件電路設計,給出FPGA內部各功能模塊邏輯圖。
關鍵詞: 數據采集; FPGA; DSP
目前市場上的多生理參數監護設備通常采用傳統意義上的工控機和前端信號采集板卡構成,這樣的監護設備體積龐大,價格高昂,功耗大,不適合攜帶。目前也有人采用了PC104的板卡取代了傳統的工控機,但是這樣的監護設備價格高昂,不能滿足普通消費者的需求,在便攜式的遠程移動監護方面也仍然存在某些缺陷。隨著傳感技術和電子技術的發展,病人監護儀正廣泛應用于臨床監護中。傳統的監護儀由于監護參數單一、功能簡單、體積較大而僅局限于手術過程和ICU病房的監護,極大地限制了其使用價值,不能滿足所有臨床科室的使用。嵌入式計算機系統強大的處理能力和網絡通信能力能夠方便地實現GPRS和Internet的接入,把嵌入式計算機系統應用到醫療監護系統中具有現實可行的意義。為此,開發了基于嵌入式計算機系統的體積小、功耗低、價格便宜、穩定性好的多生命參數病人監護儀,它能長時間實時監護病人的血氧飽和度(SPO2)、心電(ECG)、呼吸(RESP)、血壓(BP)和體溫(Temp)[1]。同時,該監護儀還能通過RS232接口實現計算機通信,把監測到的數據發送到醫院的數據庫中。
1 多參數監護儀的整體設計
圖1為多參數監護系統的整體設計框圖。該系統主要分為多參數信號采集模塊、嵌入式計算機系統和GPRS模塊。多參數信號采集模塊通過血氧信號、心電信號、呼吸信號、血壓信號、體溫信號處理電路采集到的血氧、心電、呼吸、血壓、體溫信號經A/D轉換分別送入到TMS320F2812處理器中進行處理,再經過光電隔離的RS232串口送入到嵌入式計算機中[2]。嵌入式計算機系統通過RS232串口1對前端信號采集模塊發出命令控制,從而獲得多生理參數的采集數據。嵌入式計算機系統一方面將多生理參數的數據通過LCD進行實時顯示,同時可以將數據存儲到NandFlash中,另外可以利用RS232串口2通過AT指令對GPRS模塊進行控制,將數據通過GPRS模塊傳送到醫院數據庫中,醫護人員可以實時觀察病人的情況,實現遠程多參數監護。
在遠程監護中,數據通信是非常重要的組成部分。而GPRS是目前解決移動通信服務的一種完美的業務,它以數據流量計費、覆蓋范圍廣泛、數據傳輸速度快等優點而得到了廣泛的應用。本系統選用西門子公司的GPRS模塊來傳送采集到的多參數數據。GPRS無線模塊作為GPRS終端的無線收發模塊,把從TCP/IP模塊接收的TCP/IP包和從基站接收的GPRS分組數據進行相應的協議處理后再轉發[3-4]。
2 多參數采集電路的設計與工作原理
多參數采集電路主要包括血氧、心電、呼吸、血壓和體溫5個方面的采集。
(1) 血氧信號的采集:血氧飽和度的檢測方法主要有兩種,一種是有創法,一種是無創法。無創法是運用光學來測量的,目前在國內外也主要是基于這種方法來研究血氧飽和度的。由于血液中氧合血紅蛋白和還原血紅蛋白對波長為660 nm的紅光和940 nm的紅外光的吸收率相差很大,故通常采用這兩種光線來測量血氧飽和度[5-6]。
將血氧飽和度探頭夾在手指上,上壁固定了兩個并列放置的發光二極管(LED),發出波長為660 nm的紅光和940 nm的紅外光。下壁有一個光電檢測器,將透射過手指動脈血管的紅光和紅外光轉換成電信號,它所檢測到的光電信號越弱,表示光信號穿透探頭部位時,被那里的組織、骨頭和血液等吸收掉的越多[7]。而皮膚、肌肉、脂肪、靜脈血、色素和骨頭等對這兩種光的吸收系數是恒定的,因此它們只對光電信號中的直流分量大小發生影響。但是血液中的HbO2和Hb濃度隨著血液的脈動作周期性改變,因此它們對光的吸收也在脈動地變化, 由此引出光電檢測器輸出的信號強度隨血液中的HbO2 和Hb濃度比脈動地改變,即可得出SPO2值。
(2)心電信號的采集:人體的心電信號是一個很微弱的低頻信號,其幅值一般在1 mV左右,可低至幾十微伏,頻譜分布在0.05~100 Hz,主要頻譜分量集中在5~20 Hz。要采集這樣的信號,必須設計合適的心電信號采集電路。圖2為心電信號采集電路的原理圖。
前置放大器是整個心電采集系統設計的關鍵,為了提高信噪比,選用了高輸入阻抗、高共模抑制比、低噪聲、低漂移的ADI公司的儀表放大器AD620。前置放大器輸出的信號并不是純粹的心電信號,其中除了夾雜著不少工頻干擾外,還有很多直流或低頻信號,因此選用了截止頻率為0.03 Hz的高通濾波器來濾除這些直流或低頻信號。由于有些工頻干擾是以差模形式進入放大器的,所以輸出的信號中有較強的工頻干擾,解決的方法是采用凌特公司的LTC1068-50集成開關電容濾波器來構成50 Hz陷波器將工頻干擾濾掉。然后需要再次將心電信號放大,由于混入了許多高頻信號所以需要用低通濾波器濾除這些高頻信號,最后讓心電信號通過電平遷移電路就可以得到心電信號的雛形了。
(3)呼吸信號的采集:對于呼吸信號的檢測,采用的是目前應用最廣的胸阻抗原理測量呼吸參數,隨著呼吸的變化,病人的胸腔阻抗也發生變化[8]。將高頻脈沖施加在人體的胸腔上,從測量電極提出的是一個被呼吸信號調制的高頻調幅信號,利用儀表放大器PGA206進行程控增益放大,然后利用全波整流電路對高頻調幅信號進行解調,檢出高頻信號幅值變化的包絡線,此即隨阻抗變化的信號,由于呼吸信號的頻率一般在0.08~10 Hz之間,所以最后還需要將檢波后的調制信號通過0.08~10 Hz的帶通濾波器,濾除直流分量和高頻雜波干擾,就可以得到呼吸信號的原型了。
(4)血壓信號的采集:本文將用示波法來進行血壓的測量。示波法血壓測量中采用充氣袖帶來阻斷動脈血流,當動脈血流被阻斷時,由于近端血液的脈動,在袖帶內可以檢測出動脈血流產生的氣壓振動波。首先將袖帶充氣到高于收縮壓20 mmHg左右,然后使袖帶緩慢放氣。當袖帶內壓力高于收縮壓時,動脈阻斷,出現幅度較小的振動波。當袖帶內壓力等于收縮壓時,振動波幅度增大,隨著袖帶內壓力的不斷降低,振動波幅度達到最大。當袖帶內壓力小于平均壓力時振動波幅值逐漸減小,袖帶內壓力小于舒張壓以后,動脈管壁在舒張期已充分擴張,管壁剛性增加,而振動波維持在較小的水平。示波法是根據不同的袖帶壓力下的脈搏波幅度變換特征來識別動脈收縮壓、平均壓、舒張壓等[9]。血壓信號原理框圖如圖3所示。
由DSP來控制氣泵和電磁閥實現血壓的定時自動檢測,利用MPX5050GP壓力傳感器檢測臂帶的壓力在這個過程中的波動即可獲得血壓信息,然后將血壓信號通過帶通濾波器,濾除干擾和噪聲信號就可以得到血壓信號的原型了。
(5)體溫信號的采集: 體溫信號的采集需要通過專門的體溫傳感器,一般要求傳感器的溫度測量范圍在20~45 ℃之間,由于體溫是平穩變化信號,為了提高測量精度,在A/D轉換的時候,需要用過采樣的方式來提高測量精度。
3 嵌入式計算機系統的設計
3.1 嵌入式系統的工作原理
嵌入式系統由硬件系統和軟件系統構成。嵌入式系統硬件部分的核心部分就是嵌入式處理器,在此選用AT91RM9200。嵌入式軟件部分一般來說是由嵌入式操作系統和應用軟件兩部分組成。軟件可以分成啟動代碼(bootloader)、操作系統內核與驅動、文件系統、圖形界面和應用程序等幾部分[9]。當整個系統上電運行時,AT91RM9200首先運行固化在32 MB Flash中的bootloader程序,把64 MB Flash中的Linux內核搬移到64 MB內存中運行,完成嵌入式內核的啟動,以及對U盤的掛接和Qtopia文件系統的啟動,然后進入到嵌入式Qtopia的用戶界面[10]。
Qtopia是Trolltech公司為采用嵌入式Linux操作系統的消費電子設備而開發的綜合應用平臺, Qtopia包含完整的應用層、靈活的用戶界面、窗口操作系統、應用程序啟動程序以及開發框架。為了實現USB的圖像采集和程序設計,選擇的軟件操作系統是Linux和Qtopia,由于Qtopia文件系統比較大,把它固化到Flash中,會增加成本,如果被用戶在使用過程中損壞,系統將難以恢復。因此本文采用把Qtopia文件系統放在U盤上。如果U盤中的Qtopia文件系統發生損壞,可以將備份在PC上的Qtopia文件系統重新拷貝到U盤中,從而將整個系統快速恢復,現在的U盤也很便宜,可以大大地降低成本和極大地擴展該系統的存儲容量。該方法保證了系統的穩定性,可靠性,并且可以實現該監護系統的動態升級。
3.2 嵌入式系統的軟件設計
嵌入式系統的軟件設計一般采用的方法是:先在PC機上調試好應用程序然后再通過交叉編譯生成可執行的二進制文件,最后將二進制文件下載到嵌入式計算機主板上運行。在此過程中交叉編譯尤為重要,現將它的主要步驟介紹如下:
(1)把需要用到的可執行文件的路徑寫進注冊表vi /etc/profile在Pathmunge/usr/local/sbin/ 后面添加Pathmunge /usr/local/arm/3.3.2/bin。
(2)./configure –xplatform linux-arm-g++ -dep ths 16–qconfig qpe (看提示進行選擇,當出現qvfb時選擇no)如果是多線程的程序則在qpe后面添加-thread就可以了。
(3)進行make。
(4)將應用程序生成的Makefile文件進行修改,用Vi命令打開Makefile文件,將里面的LINK=gcc改為LINK=arm-linux-g++;將LIBS=$ (SUBLIBS) –L$(QTDIR) /lib –lm–lqte改為:LIBS=$ (SUBLIBS) –L/usr/local/arm/3.3.2/lib–L$(QTDIR) /lib/-lm–lqte。
(5)再進行make。
經過上述操作一個可以在嵌入式計算機上運行的二進制文件就產生了。
4 基于Qtopia的多參數監護儀的軟件設計
基于Qtopia多生命參數監護應用軟件,實現了血氧、心電、呼吸、血壓和體溫等多參數的動態顯示和遠程數據的傳輸。程序流程圖如圖4所示。
從圖4可以看出應用程序首先是根據用戶選擇,打開與多生命參數模塊連接的串口1。要實現對多生命參數模塊的正確控制,必須有嚴格的通信協議做保證,為了提高通信的效率,在數據通信的過程中對通信的數據也進行了一定的壓縮處理。所以在啟動多生命參數進行監護的時候,必須根據用戶的設置要求,例如心電信號的采集模式、增益設置、導聯方式等相關信息生成采集心電命令數據包,然后發送到多生命參數的采集模塊中,多生命參數采集模塊根據接收到的心電信號的采集命令包,對其進行解碼,設置對心電信號的采集模式、增益控制、導聯方式的選擇,然后進行心電信號的采集。對于呼吸信號和血氧信號同樣需要生成相應的數據命令包,控制多生命參數模塊對呼吸和血氧信號的采集。當這些數據命令包都發送完后,最后還需要生成一個數據命令結束包,啟動多參數模塊在設定的工作模式下實現多生命參數的監護,并且啟動定時器,定時讀取串口緩沖區的數據。定時讀取緩沖區的采集數據流程圖,從圖中可以看出,對串口1進行冗余檢查,增加接收數據的合法性。在數據通信的過程中,為了提高通信效率,對數據進行了一定的壓縮處理,傳送到上位機,所以在上位機中必須對一幀數據進行檢測,查找數據的幀頭,校驗數據累加正確否,然后從中提取有效的采集數據。在一幀數據中包含了血氧、心電、血壓、呼吸和體溫等數據信息,也必須根據事先約定好的通信協議對血氧、心電、血壓、呼吸和體溫的數據進行有效的分離,然后調用繪制波形函數QCurveWidget分別繪制血氧、心電、呼吸數據的波形。
5 多參數的遠程傳輸與接收
5.1 多參數的遠程傳輸
該嵌入式多參數監護系統在實現本地監護的同時,也可以將采集到的數據發送到醫院數據庫中,監護人員可以實時地觀察病人的情況,實現遠程的實時監護,這時需要打開連接在嵌入式計算機主板上的串口2,通過串口2連接到GPRS模塊,該系統的數據通信流程圖如圖5所示。
從圖5可以看出,當用戶啟用遠程監護時,嵌入式計算機首先打開連接在串口2上的GPRS模塊,對GPRS模塊進行初始化設置,當GPRS模塊與PC機建立連接后,通過AT指令可以對GPRS模塊進行控制,同時也可以進入到發送監護數據的流程。嵌入式計算機系統將收到的監護數據進行校驗正確后,在本地實現數據波形的顯示,同時將這些數據通過串口2發送出去。對于嵌入式計算機而言,因為是在全透明的模式下進行的數據通信,這完全等同于PC機直接進行串口通信,但是具體的數據轉發過程卻是通過GPRS模塊對數據進行再次的封裝打包,通過GPRS網絡到達醫院的數據中心。
5.2 多參數的接收
采集到的多參數數據是以JPEG圖片格式發送到醫院數據庫中的,對于JPEG格式的圖片數據流有數據幀頭0XFFD8、數據幀尾0XFFD9做保證,在PC機上可以根據雙方約定的協議正確地對接收的圖片數據進行提取、解碼和顯示,對于圖片接收的流程圖如圖6所示。
該監護儀將DSP技術與ARM技術相結合,充分發揮了DSP在信號處理上的優勢和ARM在系統平臺上的優勢,從而最大限度地降低了成本與功耗。本文詳細介紹了血氧、心電、呼吸、血壓和體溫采集電路的設計與工作原理,嵌入式計算機的組成和基于Qtopia的多參數監護儀應用軟件的設計,目前已經完成了樣機的設計。該監護儀具有體積小、靈活、成本低、功能強大、穩定性好、使用方便等優點,具有廣泛的應用領域和良好的市場前景,對于我國的醫療事業具有一定的促進作用。
參考文獻
[1] 郭興明,張科,吳寶明.多生命參數監護儀用呼吸檢測電路[J].自動化與儀器儀表,2002,2(5):35-36.
[2] 李章勇,劉麗欣,任超世.多參數麻醉深度監測儀的設計[J].中國組織工程研究與臨床康復,2008,12(9):1716-1718.
[3] 黃梅英.無線數據業務GPRS發展分析及研究[D]. 北京:北京郵電大學,2002.
[4] 韓曉冰,韓冰,孫弋. 基于嵌入式系統的GPRS數據終端設計與實現.儀器儀表學報,2006,27(6):675-677.
[5] NAGASHIMA Y, KOMEDA N, YADA Y. et al. New instrument to measure oxygen saturation and total hemoglobin volume in local skin by near infrared spectroscopy. Proceedings of the 2nd International Conference on Bioeletromagnetism,1998:53-54.
[6] OKADA E, SHINOZAKI Y, MINAMITANI H. Measurement of oxygen saturation utilizing spectrophotometric determination Proceedings of the IECON 93., International Conference on Industrial Electronics, Control, and Instrumentation, 1993,3:1546-1550.
[7] 陳亞明,譚小丹,鄧親愷.監護用脈搏式血氧飽和度測試方法的研究[J].中國醫療器械雜志,1999,23(3):139-141.
[8] BAKER L E. Applications of the impedance technique to the respiratory system,Engineering in Medicine and Biology Magazine, IEEE, 1989,8:50-52.
[9] 杜曉蘭,吳寶明,何慶華,等.無創式微型動態血壓監護儀的設計.北京:生物醫學工程,2002,21(3):212-214.
[10] 徐廣毅,張曉林,崔迎煒.Qt/Embedded在嵌入式Linux系統中的應用[J].單片機與嵌入式系統應用, 2004(12):14-17.