周到 黃敏
摘 要:心電信號能夠反映心臟的受損程度,對各種常見心臟病的診斷有重要參考意義。隨著技術(shù)的發(fā)展,各種模塊化的心電信號采集裝置陸續(xù)推出,有助于快速搭建心電監(jiān)護系統(tǒng)。本研究使用AD8232模塊采集心電信號,通過Arduino進行模數(shù)轉(zhuǎn)換,最后使用LabVIEW軟件從串口讀取采集到的心電信號,并將心電信號展示出來。整個系統(tǒng)模塊清晰、成本低廉、信號清晰,有較強的實用性。
關(guān)鍵詞:LabVIEW;串口通信;心電
中圖分類號:TN919 文獻標(biāo)志碼:A 文章編號:2095-2945(2019)02-0032-02
Abstract: ECG signals can reflect the degree of heart damage, and have important reference significance for the diagnosis of various common heart diseases. With the development of technology, a variety of modular ECG acquisition devices have been introduced, which is conducive to the rapid construction of ECG monitoring system. In this study, AD8232 module is used to collect ECG signal, and analog-to-digital conversion is carried out through Arduino. Finally, LabVIEW software is used to read the collected ECG signal from the serial port and display the ECG signal. The module of the whole system is clear, the cost is low, the signal is clear, and it has strong practicability.
Keywords: LabVIEW; serial communication; ECG
引言
心肌細胞收縮時產(chǎn)生的電信號可以傳導(dǎo)到體表的任何部位,在人體皮膚的某個部位放上測量電極,然后通過測量電極可以記錄被測者的心臟電變化曲線,這就是臨床意義上的心電圖(Electrocardiogram,ECG)[1]。心電圖的采集和分析,對心臟疾病的監(jiān)測和診斷,有重要的研究意義,通常認(rèn)為,心電信號對心律失常、心肌梗死等病癥具有重要的參考價值。
心電信號是較早應(yīng)用于醫(yī)學(xué)研究的人體生物電信號,心電信號的采集和分析,是生物醫(yī)學(xué)工程專業(yè)教學(xué)中的一個重要內(nèi)容[2]。以往的教學(xué)安排中,模擬放大電路、單片機的采樣和數(shù)字信號處理,會在不同的專業(yè)課中講授,缺乏連貫和一致性。本文依托中南民族大學(xué)實驗室開放與技改項目,建立一個基于虛擬儀器的心電采集分析平臺。
為了盡可能讓大部分學(xué)生熟悉心電的采集分析流程,整個平臺需要具有模塊化、信號精度可靠、簡單易用、成本低廉等特點?;诖耍疚脑O(shè)計出一款基于AD8282心電采集模塊,Arduino開發(fā)板和LabVIEW的心電監(jiān)測系統(tǒng)。該系統(tǒng)中,AD8232實現(xiàn)心電放大,Arduino實現(xiàn)模數(shù)轉(zhuǎn)換,LabVIEW通過串口讀取最終的心電信號并顯示。
1 AD8232心電采集模塊
AD8232是美國ADI公司出產(chǎn)的一款單導(dǎo)聯(lián)心電采集芯片,尺寸小、成本低廉,共模抑制比80dB,能用于運動心率監(jiān)護、便攜式心電裝置開發(fā)等[3]。在該芯片的基礎(chǔ)上構(gòu)建的心電采集模塊,包括運算放大、右腿驅(qū)動、導(dǎo)聯(lián)脫落監(jiān)測等電路。
AD8232模塊的實物圖如圖1所示,從圖中可以看到,其主要接口包括接地(GND),接電源(3.3V),信號輸出(OUTPUT),導(dǎo)聯(lián)脫落監(jiān)測(LO+和LO-)和停機檢測(ISDN)。進行心電采集時,將三個電極分別粘貼在左手手腕、右手手腕和右腳腳踝處,并與導(dǎo)聯(lián)線連接。心電信號通過導(dǎo)聯(lián)線從右側(cè)的3.5毫米連接線頭子接入采集模塊,經(jīng)過放大后的模擬心電信號,可以從“信號輸出(OUTPUT)”端口獲取。
2 Arduino實現(xiàn)模數(shù)轉(zhuǎn)換
為了將心電模擬信號轉(zhuǎn)換為數(shù)字信號,我們使用了Arduino開發(fā)板。Arduino是一款以ATmega單片機為控制核心的開發(fā)板,包含ATmega最小系統(tǒng)、穩(wěn)壓、USB轉(zhuǎn)串口等電路,是一種價格低廉、開發(fā)庫豐富的微控制器平臺[4]。
我們使用Arduino的A0通道進行心電信號的模數(shù)轉(zhuǎn)換(與AD8232模塊的OUTPUT端相連),A10和A11通道作為電極脫落監(jiān)測通道(與AD8232模塊的LO+與LO-相連),Arduino上的3.3V與GND與AD8232模塊上對應(yīng)的端口相連。
在Arduino上,編寫模數(shù)轉(zhuǎn)換程序如下所示。通過這個程序,設(shè)定串口傳輸?shù)牟ㄌ芈蕿?600,從A10和A11讀入電極脫落信號,從A0讀入心電模擬信號,再從串口將數(shù)字化后的心電信號傳送出去。
void setup() {
Serial.begin(9600);//設(shè)置串口波特率
pinMode(10, INPUT); // 電極脫落監(jiān)測+
pinMode(11, INPUT); // 電極脫落監(jiān)測-}
void loop() {
if((digitalRead(10) == 1)||(digitalRead(11) == 1)){
Serial.println('!');//如果監(jiān)測到電極脫落,輸出感嘆號 }
else{
Serial.println(analogRead(A0));//從A0口讀入當(dāng)前電壓值 }
delay(1);//延時等待}
3 LabVIEW從串口獲取數(shù)據(jù)
串口通信(Serial Communication),是指外設(shè)和計算機間,通過數(shù)據(jù)信號線、地線、控制線等,按位進行傳輸數(shù)據(jù)的一種通訊方式。這種通信方式使用的數(shù)據(jù)線少,在遠距離通信中可以節(jié)約通信成本,但其傳輸速度較低。生物醫(yī)學(xué)信號通常為低頻信號,數(shù)據(jù)量不太大,因此,串口通信協(xié)議在生物醫(yī)學(xué)信號的傳輸中很常見。
LabVIEW是實驗室虛擬儀器集成環(huán)境(Laboratory Virtual Instrument Engineering Workbench)的簡稱,是一種圖形化的編程語言和開發(fā)環(huán)境,具有測試方便、開發(fā)速度快等特點。LabVIEW依靠VISA(Virtual Instrument Software Architecture)庫來實現(xiàn)串口的通訊[5]。VISA庫是儀器編程的標(biāo)準(zhǔn)函數(shù)庫,支持串口、GPIB、USB、以太網(wǎng)等多種不同的通訊協(xié)議。在串口通訊時,常用的函數(shù)有“VISA配置串口”、“VISA打開”、“VISA讀取”、“VISA寫入”、“VISA設(shè)備清零”、“VISA查找資源”、“VISA解鎖”、“VISA關(guān)閉”等。
我們這里僅涉及到從串口中讀取數(shù)據(jù),用到了“VISA配置串口”、“VISA讀取”和“VISA關(guān)閉”這三個VISA函數(shù)。如圖2所示,給出了從串口讀取心電數(shù)據(jù)的程序框圖。從圖2中可以看到,為了LabVIEW能順利從串口中讀取出數(shù)據(jù),需要選定當(dāng)前數(shù)據(jù)傳輸串口號(如果不確定,可以在計算機的設(shè)備管理器中查看)。該程序使用了一個屬性節(jié)點(Bytes at Port),這個屬性節(jié)點能夠獲取串口緩沖區(qū)的剩余字節(jié)量,將這個值作為參數(shù)傳給“VISA讀取”函數(shù),可以一次性將串口中的數(shù)據(jù)全部讀出。LabVIEW從串口讀出的數(shù)據(jù)是字符串格式,可以直接創(chuàng)建一個字符串控件“讀取緩沖區(qū)”查看讀取出的數(shù)據(jù),也可以使用字符串選板的“十進制符串至數(shù)值轉(zhuǎn)換”函數(shù)轉(zhuǎn)換為數(shù)值,再在波形圖表中顯示出來。程序如果被手動停止或出錯,將終止循環(huán),并關(guān)閉串口。為了和傳入的數(shù)據(jù)頻率保持一致,這里設(shè)定循環(huán)延時為1毫秒。
最后,在前面板查看到,獲取的心電信號波形如圖3所示,從圖中能夠清晰地看到心電信號的特征波形。
4 結(jié)束語
本文實現(xiàn)了基于LabVIEW串口的心電信號傳輸,搭建了一個模塊化、低成本、精度滿意的實時心電監(jiān)測平臺,適合作為生物醫(yī)學(xué)工程專業(yè)的實驗平臺。本文的工作還可以從以下兩個方面深入改進,一是Arduino與計算機連接最好可以采用無線的方式,降低導(dǎo)線的約束;二是計算機獲取心電信號后,還需要對信號進行進一步分析和處理,實時監(jiān)測心率變化,對異常心率給出報警。
參考文獻:
[1]李中健,井艷,李世鋒,等.心電圖波形特征分析[J].臨床心血管病雜志,2008(03):195-197.
[2]王昌,秦鑫,岳小萍.基于心電的生物醫(yī)學(xué)工程教學(xué)系統(tǒng)開發(fā)[J].數(shù)字技術(shù)與應(yīng)用,2014(09):146.
[3]陳嘉緒,周穎.基于AD8232的心電實時監(jiān)測及分析系統(tǒng)設(shè)計[J].計算機測量與控制,2017,25(02):26-31.
[4]付久強.基于Arduino平臺的智能硬件設(shè)計研究[J].包裝工程,2015,36(10):76-79+100.
[5]魏義虎,陳雷.基于LabVIEW-VISA方式的串口通信研究[J].電子設(shè)計工程,2015,23(24):129-131.