摘 要: 提出一種以ADS1298芯片及STM32F407為基礎的心電采集與顯示系統(tǒng)設計思路。在介紹心電信號采集基本原理的基礎上,構(gòu)建系統(tǒng)的總體框架,闡述基于ADS1298的信號采集、放大電路以及STM32F407接口電路設計,最后應用 μC/GUI實現(xiàn)了心電信號在LCD液晶屏上的實時顯示。結(jié)果表明,該系統(tǒng)為疾病診斷和健康監(jiān)護中能應用的高精度、便攜式、低功耗心電信號采集分析系統(tǒng)奠定了很好的基礎。
關(guān)鍵詞: 心電信號采集; ADS1298芯片; STM32F407; μC/GUI
中圖分類號: TN911.7?34 文獻標識碼: A 文章編號: 1004?373X(2015)13?0141?04
Abstract:The electrocardiogram (ECG) acquisition and display system based on ADS1298 chip and STM32F407 platform is proposed. The overall framework of this system was built on the basis of introducing ECG signal acquisition fundamental. The circuits of signal acquisition and amplification based on ADS1298, and the interface circuit design of STM32F407 are discussed. The real?time display of ECG signal on LCD is realized by using μC/GUI. This research establishes a good foundation for applying high precision, portable and low?power consumption ECG acquisition analysis system in disease diagnosis and health surveillance.
Keywords: ECG signal acquisition; ADS1298 chip; STM32F407; μC/GUI
0 引 言
心電信號屬于生物電信號,它是心臟無數(shù)心肌細胞電活動的綜合反映,其中包含了大量的生理和病理信息。通過對心電信號的研究,可以對心血管疾病的診斷、治療提供有效的輔助分析手段[1]。其在臨床醫(yī)學和認知科學領(lǐng)域具有重要的科學意義。心電信號具有以下幾個主要特點:隨機性較強,即信號無法用確定的函數(shù)式來描述;噪聲背景強,預測的有用信號往往淹沒在許多無用信號中;信號頻率低。心電信號頻率較低,大量的是直流成分,去掉直流,它的主要頻率范圍是0.05~100 Hz,大部分能量集中在0.05~40 Hz。
一般心電采集系統(tǒng)主要包括信號放大與調(diào)理、模/數(shù)轉(zhuǎn)換、信號處理與傳輸?shù)取S捎谛盘柕奈⑷跣院透蓴_的復雜性,信號放大與調(diào)理的電路比較復雜,導致體積大、功耗高[2]。由TI公司研發(fā)的ADS1298高精度A/D轉(zhuǎn)換芯片將信號的濾波及陷波等處理轉(zhuǎn)移到數(shù)字端,并且集成了大部分生物電采集功能,實現(xiàn)了便攜式心電信號的采集[3]。本文利用該芯片的高精度性能,以STM32F407為主控芯片,設計一個高集成度的便攜式心電采集顯示系統(tǒng)。
1 系統(tǒng)原理與架構(gòu)
1.1 系統(tǒng)原理
圖1為心電采集原理圖。根據(jù)國際標準,在人體上放置10個電極,分別是4個肢體電極:LA(左臂)、RA(右臂)、LL(左腿)、RL(右腿)和6個胸部電極:V1~V6。計算兩肢體間的電位差,進而得到3個雙極肢體導聯(lián)Ⅰ,Ⅱ,Ⅲ。由于等邊三角形的中心為心臟,并與三角形在同一平面上,Ⅰ,Ⅱ,Ⅲ導聯(lián)能很好地反應心臟額面的運動狀況,但它不能記錄單個電極處的電位變化。為了探測心臟某一局部區(qū)域電位變化,Wilson提出了單極胸導聯(lián)的連接方式[4],將探查電極V1~V6安放在靠近心臟的胸壁上,參考電極置于Wilson中心電端(WCT),分別計算V1~V6與WCT之間的電位差,來反映心臟局部電位的變化。[R]為平衡電阻,平衡三個肢體端與心臟間的電阻,阻值在5~300 kΩ之間。RLD為右腿驅(qū)動,是抑制電源及其他共模干擾的一種方式[5],其本質(zhì)上是一個負反饋,實現(xiàn)方法是將人體的共模干擾信號取出,并反向放大后施加到人體端。
1.2 系統(tǒng)架構(gòu)
本采集系統(tǒng)支持8通道心電信號的采集,包括6通道胸導聯(lián)信號。用于反映心臟水平面情況和2通道雙極肢體導聯(lián)信號用于反映心臟額面狀況。為實現(xiàn)高精度、高可靠性的心電信號采集,在預處理電路之后,采用ADS1298作為模擬采集前端并實現(xiàn)模/數(shù)轉(zhuǎn)換,應用STM32F407平臺實現(xiàn)心電信號在在LCD液晶屏上的實時顯示,支持SD卡存儲并預留數(shù)據(jù)通信接口。系統(tǒng)架構(gòu)如圖2所示。
2 硬件設計
2.1 心電信號采集模塊設計
心電信號采集模塊主要包括心電信號的采集,放大和模/數(shù)轉(zhuǎn)換等過程,具體結(jié)構(gòu)如圖3所示。
信號的預處理電路為一個二階濾波電路,用于限幅和濾除高頻電磁波。信號進入ADS1298后,通過一個電磁干擾濾波器(EMI Filter)來有效抑制電網(wǎng)噪聲,提高電子設備的抗干擾能力及系統(tǒng)的可靠性。本芯片中EMI濾波器帶寬為3 MHz。
ADS1298為每一路信號都提供了一個輸入復用器(MUX)。除將輸入信號傳遞給放大器這一基本功能外,大部分功能用于對重要設備和子系統(tǒng)進行故障診斷、校準和配置。具體功能有:測量內(nèi)部噪聲,提供測試信號,測量芯片溫度,測量供電電壓,測量導聯(lián)脫落信號和測量右腿驅(qū)動信號[6]。
信號從輸入復用器進入PGA,ADS1298芯片有8個可編程的運算放大器,實際為差分放大器。由于芯片是24位高精度A/D轉(zhuǎn)換器,在參考電壓[VREF=]2.4 V時,分辨率可以達到0.023 8 μV,考慮到心電信號的典型值為1 mV,故放大增益設為1即可進行信號的放大。
模/數(shù)轉(zhuǎn)換器最重要的參數(shù)是轉(zhuǎn)換精度與轉(zhuǎn)換速率,為了獲得較高的頻率分辨率,在每一路通道上使用了24位Σ?Δ調(diào)制器,它利用反饋環(huán)來提高粗糙量化器的有效分辨率并整形其量化噪聲,使信號帶寬內(nèi)的噪聲大大減小,而放大了信號帶寬外的噪聲。相當于將噪聲能量從低頻段推到了高頻段,而對信號本身不起整形作用。此外,ADS1298芯片使用數(shù)字抽取濾波器來去除調(diào)制后產(chǎn)生的高頻噪聲,該濾波器由一個三階的sinc濾波器構(gòu)成,是可變采樣速率的低通濾波器。
2.2 信號處理、顯示及存儲模塊設計
該模塊以STM32F407為控制和處理的核心,其內(nèi)部資源完全滿足心電采集系統(tǒng)的需求,圖4為信號處理、顯示及存儲模塊結(jié)構(gòu)圖。
STM32F407通過SPI接口讀取ADS1298處理轉(zhuǎn)換的數(shù)字信號,將其處理后進行儲存和顯示。存儲部分選用SD卡,高度集成閃存,具備串行和隨機存取能力。SD卡的接口可以支持兩種操作模式:SD卡模式和SPI模式。為了簡化主機的設計,使用SPI的傳輸模式,該模式的不足之處是喪失了速度性能。顯示部分選用ALIENTEK提供的240×320 TFT顯示屏,它的驅(qū)動芯片選擇ILI9328,主要以列為單位控制屏幕的點亮和刷新,以行為單位控制灰度。所有的數(shù)據(jù)存在GRAM(Graphics RAM)中以減少數(shù)據(jù)傳輸工作,只有必須更新的數(shù)據(jù)才被傳送。門驅(qū)動有320個,與列數(shù)相同,所送出的波形可以依次將每一行的TFT打開。源驅(qū)動有720個,每3個控制1個點的灰度。門驅(qū)動與源驅(qū)動相配合,即在屏幕上生成了不同顏色的點和圖像。
3 軟件設計
根據(jù)系統(tǒng)功能要求,將基于主控STM32F407芯片的軟件功能設計分為:SPI功能模塊、μC/GUI功能模塊以及SD功能模塊。
3.1 SPI功能模塊
SPI接口作為基于ADS1298前置放大電路與基于STM32F407數(shù)字信號處理模塊的傳輸媒介,是至關(guān)重要的環(huán)節(jié)。ADS1298芯片提供了兩種讀數(shù)據(jù)的模式[7]。一種為RDATAC模式,即連續(xù)讀數(shù)據(jù)模式,在該模式下,芯片會按照預先設定的速率不停地采集并轉(zhuǎn)換數(shù)據(jù),直到系統(tǒng)收到STOP命令或SDATAC命令。該模式為默認模式,如果需要進入別的模式,比如RREG讀寄存器模式,必須首先使用SDATAC命令退出連續(xù)讀數(shù)據(jù)模式,否則命令無效。第二種為RDATC模式,即命令讀數(shù)據(jù)模式。在此模式下,每發(fā)送一個RDATC命令,系統(tǒng)轉(zhuǎn)換一次數(shù)據(jù)。一般用于經(jīng)常變動寄存器設置的場合,為了方便計算和控制數(shù)據(jù)個數(shù),本系統(tǒng)采用第二模式。ADS1298芯片有26個寄存器,需要使用RREG和WREG命令來配置諸如轉(zhuǎn)換速率、復用器功能、SPI模式和右腿驅(qū)動等功能。圖5給出了本系統(tǒng)中SPI的時序。
如圖5所示,片選信號變?yōu)榈碗娖胶?,首先要發(fā)送SDATAC命令,接著使用RREG和WREG命令查看和修改寄存器配置。完成后,使START變?yōu)楦唠娖?,開始轉(zhuǎn)化數(shù)據(jù),系統(tǒng)每完成一次數(shù)據(jù)轉(zhuǎn)換,會發(fā)出一個DRDT信號,將該信號作為中斷,在中斷中發(fā)送RDATA命令,取回當前數(shù)據(jù),并做一定的處理。
3.2 μC/GUI功能模塊
使用的TFT?LCD利用薄膜晶體管(TFT)產(chǎn)生電壓來控制液晶分子轉(zhuǎn)向。μC/GUI的所有命令其實是對驅(qū)動芯片寄存器的讀/寫操作,通過寫入多個寄存器的值來控制特定像素點的顏色,形成需要的圖像[8]。
μC/GUI將最底層的讀寫寄存器的函數(shù)封裝起來,形成畫點、畫線和畫矩形等底層驅(qū)動函數(shù)。在此基礎上,對驅(qū)動函數(shù)做二次封裝,形成適合μC/GUI的核心函數(shù)。對于復雜任務,μC/GUI設計了一套基于消息的機制,即所有操作是通過發(fā)消息方式實現(xiàn)。為了方便用戶使用,μC/GUI定義了視窗(類似于Windows的窗口)的概念,并設計了一些窗口控件。在本系統(tǒng)中使用了TEXT、BUTTON和GRAPH窗口控件,其中TEXT控件用于顯示特定文字,BUTTON組件及相應的回調(diào)函數(shù)實現(xiàn)不同通道間數(shù)據(jù)的切換,GRAPH組件用于繪制圖形及圖形坐標。
μC/GUI是應用消息驅(qū)動的,以BUTTON組件為例。觀察BUTTON_Create→ BUTTON_CreateEx中的WM_CreateWindowAsChild、WIDGET__Init等函數(shù),并沒有對LCD屏的操作,大部分是對參數(shù)的記錄及賦值。這些函數(shù)并不涉及操作,只是將要做的事情以消息的形式發(fā)送,稱為μC/GUI消息的收集機制,通過該機制,μC/GUI“明白”要做什么。真正的顯示是在GUI_Exec函數(shù)中,GUI_Exec()→GUI_Exec1()→WM_Exec()→WM_Exec1()→_DrawNext()→_Paint()→WM__PaintWinAndOverlays()→_Paint1() 一系列函數(shù)負責剪切,即根據(jù)收到的消息,確定LCD需要重新繪制的區(qū)域。_Paint1()→WM_SendMessage() 將所有信息發(fā)到對應于BUTTON組件的_Paint函數(shù),_Paint函數(shù)接收此信息,調(diào)用核心函數(shù)完成最后的繪制。
圖6是基于μC/GUI的LCD屏實時顯示的通道二采集到的心電信號,即I導聯(lián)信號。
3.3 SD卡功能模塊
SD卡的主要功能是記錄采集到的數(shù)據(jù),以便做進一步的分析,包含讀SD卡和寫SD卡兩個功能。SD卡的讀/寫等操作是以命令形式來控制的,可根據(jù)命令對多塊或單塊進行讀/寫操作。
4 結(jié)論與展望
基于ADS1298芯片及STM32F407設計的心電采集及顯示系統(tǒng)體積小、采集速度快、數(shù)據(jù)精度高,完全可用于醫(yī)學研究和輔助診斷。
系統(tǒng)還可以在以下三個方面改進:一是針對采集到的數(shù)據(jù),在單片機中添加算法,對數(shù)據(jù)進行分析,達到對心血管疾病自診斷的目的[9]。二是充分利用ADS1298芯片內(nèi)置的起搏信號檢測功能和呼吸阻抗測量功能等,將系統(tǒng)的功能多樣化、全面化。三是可以擴展一個無線接口[10],把采集的數(shù)據(jù)和處理的結(jié)果以無線的方式傳送到遠程接收端,通過無線采集方式,在醫(yī)院里可以很容易實現(xiàn)遠程動態(tài)存儲和實時監(jiān)控。
參考文獻
[1] 楊凱華.淺談心電圖臨床應用價值[J].醫(yī)藥前沿,2014(7):346?347.
[2] 謝宏,謝濤.基于ADS1298與FPGA的高性能腦電信號采集系統(tǒng)[J].現(xiàn)代電子技術(shù),2013,36(11):95?97.
[3] 魏厚杰,官金安,方浩.ADS1298模擬前端的便攜式生理信號采集系統(tǒng)[J].單片機與嵌入式系統(tǒng)應用,2012(2):36?39.
[4] 謝宏,顏林,姚楠,等.基于ADS1298的新型腦電信號采集前端設計[J].電子技術(shù)應用,2013(4):75?78.
[5] 郭繼鴻.EASI導聯(lián)衍生12導聯(lián)的原理[J].臨床心電學雜志,2008(3):163?167.
[6] TI. ADSl298 datasheet [EB/OL]. [2012?12?24]. http://www.ti.com/lit/ds/sbas459j/sbas459j.pdf.
[7] 劉志峻,靳薇,郭堅.基于體域網(wǎng)的便攜式監(jiān)護系統(tǒng)設計[J].現(xiàn)代科學儀器,2014(1):35?40.
[8] 劉勇,王學俊,孔新偉,等.基于μC/GUI的觸摸屏顯示設計[J].液晶與顯示,2014(5):739?744.
[9] 羅旻暉.心電圖機自動分析算法的研究與實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學,2013.
[10] 謝宏,董洋洋,姚楠,等.基于ADS1298與WiFi的腦電信號采集與傳輸系統(tǒng)設計[J].現(xiàn)代電子技術(shù),2013,36(6):150?153.