摘要:研制一種功能強(qiáng)大、成本低的心電遠(yuǎn)程監(jiān)測系統(tǒng),可實現(xiàn)遠(yuǎn)程醫(yī)療心臟病患者。該系統(tǒng)前端采用FPGA控制,采集和存儲人體的心電(ECG)信號,通過串口將心電數(shù)據(jù)傳入計算機(jī),并在LabVIEW軟件平臺下實現(xiàn)心電信號的顯示和遠(yuǎn)程傳輸系統(tǒng)。其中大部分功能是由軟件設(shè)計實現(xiàn),以便于后續(xù)功能擴(kuò)展。實驗結(jié)果達(dá)到預(yù)期目標(biāo)。該系統(tǒng)可廣泛用于醫(yī)院、社區(qū)、家庭、戶外監(jiān)護(hù),幫助醫(yī)生及時診斷病人。
關(guān)鍵詞:FPGA;心電信號;LabVIEW;DataSocket
心臟是人體血液循環(huán)的動力裝置,心臟波動是生命存在的標(biāo)志,心臟節(jié)律是人體生理狀態(tài)的重要標(biāo)志。當(dāng)今心血管疾病已成為發(fā)病率極高的常見病之一,極大威脅人們的生命。設(shè)計一種性能可靠、價格低廉、體積較小的心電采集與遠(yuǎn)程傳輸系統(tǒng)對心血管疾病的檢測和預(yù)防具有重要意義。本系統(tǒng)采用FPGA實現(xiàn)心電信號采集的硬件系統(tǒng),采用LabVIEW開發(fā)平臺實現(xiàn)對心電信號的處理,包括利用DataSocket技術(shù)實現(xiàn)遠(yuǎn)程監(jiān)測系統(tǒng)。該系統(tǒng)將心電監(jiān)測從病床、醫(yī)院擴(kuò)展到社區(qū)、家庭實施遠(yuǎn)程監(jiān)護(hù),對于解決醫(yī)療資源分布不平衡、減少病人轉(zhuǎn)診費(fèi)用支出和勞累之苦等都具有重要意義。
1 系統(tǒng)的構(gòu)成
整個系統(tǒng)由心電信號采集、心電信號串口傳輸、心電信號處理等3部分構(gòu)成。其結(jié)構(gòu)框圖如圖l所示。前端硬件設(shè)計首先采集心電信號,通過串口將該心電信號傳入計算機(jī),然后在LabVIEW軟件系統(tǒng)下對其處理。
1.1 系統(tǒng)硬件設(shè)計
該系統(tǒng)硬件是指由FPGA控制心電信號的采集、片外存儲,以及串口傳輸模塊,前端采用標(biāo)準(zhǔn)導(dǎo)聯(lián)采集人體的心電信號,通過電路板的信號調(diào)理電路后送入A/D轉(zhuǎn)換器,利用硬件描述語言(VHDL)在FPGA中設(shè)計A/D采樣控制器,片外存儲(SRAM)控制器和串口通信控制器分別控制信號通過A/D轉(zhuǎn)換,存儲到片外SRAM中并通過串口傳入計算機(jī),存儲到片外SRAM中,以便在網(wǎng)絡(luò)臨時出現(xiàn)故障一次未發(fā)送成功的情況下,重新發(fā)送數(shù)據(jù)。圖2為該系統(tǒng)硬件結(jié)構(gòu)框圖。
獲取心電圖的方法是依靠與肢體接觸的電極,稱為“導(dǎo)聯(lián)”。本系統(tǒng)通過前端電極、引入人體標(biāo)準(zhǔn)導(dǎo)聯(lián)心電信號,對心電信號進(jìn)行必要的放大和去除干擾。而同時引入的心電信號要經(jīng)信號調(diào)理電路放大和濾波后才能對其A/D轉(zhuǎn)換,信號調(diào)理電路如圖3所示。其中右腿驅(qū)動技術(shù)對抑制交流信號干擾效果較好。前置放大器放大輸入電路微弱的(變化緩慢的)心電信號,同時將干擾信號降至最低。系統(tǒng)設(shè)計的通帶頻率為
0.05~100 Hz的帶通濾波電路,將心電信號的有用成分從采集到的信號中分離出。輸出放大器將進(jìn)一步放大心電信號,這樣可使信號調(diào)理電路輸出的心電信號滿足本系統(tǒng)采用的A/D轉(zhuǎn)換模塊的刻度范圍。由于心電信號易受市電50 Hz工頻干擾,因此這里采用陷波電路,即帶阻濾波器,濾除干擾。最后將處理后的心電信號送入A/D轉(zhuǎn)換器的輸入端。本系統(tǒng)設(shè)計的心電信號采集板為單通道采集板,適用于眾多心臟疾病患者。
1.2 LabVIEW軟件系統(tǒng)
LabVIEW是NI公司推出的專業(yè)測試軟件開發(fā)平臺,其特點(diǎn)是圖形化編程環(huán)境,軟件設(shè)計和功能設(shè)計相互獨(dú)立,網(wǎng)絡(luò)功能強(qiáng)大,支持多種常用網(wǎng)絡(luò)協(xié)議,開放性強(qiáng)等。LabVIEW軟件是圖形化編程環(huán)境的引領(lǐng)者,使用該軟件進(jìn)行原理研究、設(shè)計、測試并實現(xiàn)儀器系統(tǒng),可大大提高丁作效率。
1.2.1 串口通信
虛擬儀器軟件結(jié)構(gòu)體系VISA (Virtual Instrument Software Architecture)實質(zhì)上是I/O接口軟件庫及其規(guī)范的總稱,是VXIplug&play體系聯(lián)盟統(tǒng)一采用的標(biāo)準(zhǔn)。VISA是在LabVIEW開發(fā)平臺上控制VXI、GPIB、RS232、PXI、PCI以及其他種類儀器的單接口程序庫,是對其他總線驅(qū)動函數(shù)進(jìn)行的一個統(tǒng)一封裝的高級API,通過VISA可直接訪問測試硬件設(shè)備。
LabVIEW中用于串口通信的節(jié)點(diǎn)實際上是VISA節(jié)點(diǎn),VISA節(jié)點(diǎn)單獨(dú)組成一個子選板,包括8個節(jié)點(diǎn),位于函數(shù)選板→“數(shù)據(jù)通信”→“協(xié)議”→“串口”子選板中,實現(xiàn)串口的配置、讀寫、串口中斷、設(shè)置I/O緩沖區(qū)大小、清空I/O緩沖區(qū)等操作。但需注意的是在使用串口前,應(yīng)安裝VISA驅(qū)動軟件。
1.2.2 心電波形的顯示和存儲
波形顯示是指將接收到的心電數(shù)據(jù)繪制連續(xù)波形,以供專家分析。LabVlEW中基本的圖形顯示控件都位于Controls→ALL Controls→Gra-ph子模板上。Graph和Chart是LabVIEW圖形顯示功能中的2種最基本元素。這2個元素都可稱為“圖”,但是在LabVIEW中它們卻有很大差別。一般來說,Chaa稱為“記錄圖”,它是將數(shù)據(jù)在坐標(biāo)系中實時、逐點(diǎn)(或一次多個點(diǎn))顯示,反映被測物理量的變化趨勢,與傳統(tǒng)的模擬示波器、波形記錄儀的顯示方式相仿。Graph則是對已采集數(shù)據(jù)進(jìn)行事后處理,在先得到所有需要顯示的數(shù)據(jù),然后根據(jù)實際要求將這些數(shù)據(jù)組織成所需的圖形。并一次性顯示閣。因此本系統(tǒng)選用Chart實時顯示,Graph波形回放。
采用信號的時間和瞬態(tài)特性測量Express VI測量信號的周期和頻率。使用寫入測量文件可將數(shù)據(jù)存放在文本文件中,需要回放時,使用讀取測量文件回放數(shù)據(jù)。這樣可實現(xiàn)心電信號的實時顯示、存儲、回放、打印等功能,還可進(jìn)一步建立數(shù)據(jù)庫。測試界面如圖4所示。
1.2.3 心率計算及報警
LabVlEW具有較為強(qiáng)大的信號處理能力,由于心率測量反映心率的快慢,因此實時準(zhǔn)確的心率檢測在病人監(jiān)控、臨床治療等方面具有廣泛應(yīng)用。
本系統(tǒng)首先將心電信號轉(zhuǎn)換為同周期的方波信號,通過求解方波信號的周期獲得心電信號的周期。即利用LabVIEW提供的數(shù)組功能模塊檢索心電信號中相鄰2個采樣點(diǎn)的數(shù)據(jù),將其相減后乘以采樣頻率,這樣就轉(zhuǎn)換成導(dǎo)數(shù)值構(gòu)成的數(shù)組。設(shè)置閾值并與數(shù)組內(nèi)導(dǎo)數(shù)相比較;若大于閾值則輸出高電平;反之,則輸出低電平,從而得到一系列方波,這樣就可測出R波,2個相鄰R波間的時間為心率周期,再將其轉(zhuǎn)換為每分鐘的心跳數(shù)。通常人的心率在50~150次/min,因此,可設(shè)置心率的上下限,當(dāng)心率超過該范圍時,指示燈點(diǎn)亮,表示病人有生命危險。
1.2.4 心電信號的遠(yuǎn)程傳輸
LabVIEW可提供TCP、瀏覽器、RDA和DataSockel等通信方式。其中,DataSocket是NI公司推出的一項基于TCP/IP協(xié)議的新技術(shù),該技術(shù)是面向測量和網(wǎng)上實時高速數(shù)據(jù)交換,用于一個計算機(jī)內(nèi)或者網(wǎng)絡(luò)中多個應(yīng)用程序之間數(shù)據(jù)交換。雖然目前已有TCP/IP、DDE多種用于兩個應(yīng)用程序之間按共享數(shù)據(jù)的技術(shù),但是這些技術(shù)都不是用于實時數(shù)據(jù)(Live Data)傳輸?shù)摹V挥蠨ataSocket是一項在測量和自動化應(yīng)用中用于共享和發(fā)布實時數(shù)據(jù)的技術(shù)。
DataSocket實現(xiàn)的是數(shù)據(jù)通信,而將復(fù)雜的數(shù)據(jù)處理及顯示留給客戶端自行完成,網(wǎng)絡(luò)只負(fù)責(zé)傳遞數(shù)據(jù)(包括控制命令),最后形成測試系統(tǒng)是一個C/S模式的系統(tǒng)。這樣網(wǎng)絡(luò)資源消耗少,通信速度快,適合實時性要求高、數(shù)據(jù)量比較大的遠(yuǎn)程測控。
DataSocket的工作方式如圖5所示。DataSocket Publisher和Datasocket Subscliber是DataSockel Server的客戶端,通過DataSocket Servert進(jìn)行數(shù)據(jù)共享和交換,三者可運(yùn)行在同一臺機(jī)器或3臺單獨(dú)機(jī)器上(視具體情況而定)。將服務(wù)器與發(fā)布器和訂閱器分離,以提高系統(tǒng)的安全性和可靠性。
DataSocket基本體系由協(xié)同工作的3個部分構(gòu)成:服務(wù)器管理(DataSocket Server Manager)、服務(wù)器端(DataSocket Server)和客戶端(DataSocket API)。同時還包括Dstp(DataSocket Transfer Protocol)協(xié)議、通用資源定位符URL(Uniform Resour DataSocket Servet Managerce Locator)和文件格式等規(guī)程。
DataSocket對外提供的資源定位接口和功能調(diào)用接口,通過URL方式訪問服務(wù)器中的數(shù)據(jù)項,讀數(shù)據(jù)時為源地址,寫地址是為宿地址。在URL中表明數(shù)據(jù)的傳輸協(xié)議、網(wǎng)絡(luò)計算機(jī)標(biāo)志和數(shù)據(jù)緩沖區(qū)變量,如圖6所示。
DataSoeket支持多種數(shù)據(jù)傳輸協(xié)議,不同的URL前綴表示了不同的協(xié)議或數(shù)據(jù)類型。如“dstp://HYY/data”,其中HYY為服務(wù)器名稱,data為數(shù)據(jù)項的名稱。由此可見,DataSocket簡化了應(yīng)用程序之間、計算機(jī)之間的網(wǎng)絡(luò)數(shù)據(jù)傳輸,簡化程序通信,提高編程效率。
2 系統(tǒng)應(yīng)用及注意事項
該系統(tǒng)可應(yīng)用于醫(yī)院內(nèi)外的心臟病人,系統(tǒng)硬件電路模塊通過串口與PC機(jī)或便攜式計算機(jī)相連,顯示、存儲、分析、打印和遠(yuǎn)程傳輸心電數(shù)據(jù),醫(yī)生根據(jù)傳輸?shù)男碾姅?shù)據(jù)及時診斷心臟病人的病情。而軟件設(shè)計部分實現(xiàn)遠(yuǎn)程傳輸時應(yīng)注意:數(shù)據(jù)傳輸之前要分別在服務(wù)器與客戶機(jī)上啟動DataSocket Server.建立連接,規(guī)定URL和控件連接方式,進(jìn)而發(fā)送和讀取數(shù)據(jù)。
3 結(jié)束語
本系統(tǒng)不同于傳統(tǒng)的心電監(jiān)測系統(tǒng)之處在于采用軟件編程實現(xiàn)心電監(jiān)測系統(tǒng)功能,以便于系統(tǒng)功能擴(kuò)展。經(jīng)實驗測試,數(shù)據(jù)顯示和遠(yuǎn)程通信未出現(xiàn)失真,達(dá)到了預(yù)期效果。利用DataSocket通信技術(shù)實現(xiàn)心電數(shù)據(jù)的遠(yuǎn)程通信,網(wǎng)絡(luò)資源利用率高,傳輸數(shù)據(jù)量大,并且在服務(wù)器處理能力足夠強(qiáng)的情況下,可服務(wù)多個被監(jiān)測病人。被監(jiān)測病人可位于醫(yī)院或醫(yī)院外(比如家庭、辦公室、戶外等),只要有PC機(jī)或便攜式計算機(jī)及網(wǎng)絡(luò)都可實現(xiàn)心電實時監(jiān)測??梢?,該系統(tǒng)具有強(qiáng)大功能和低成本的特點(diǎn)為眾多心臟病患者提供方便,增強(qiáng)醫(yī)療服務(wù)系統(tǒng),具有較高的社會使用價值和市場前景。