基于MSP430的低功耗便攜式心電儀的設計
心電圖是心臟疾病診斷的重要工具之一,目前在醫院臨床中有廣泛的應用,給醫生診斷病癥帶來(lái)很大的幫助。傳統的心電儀雖能有效地監測心電、降低心臟病患者的死亡率 ,但不能對患者進(jìn)行長(cháng)時(shí)間的實(shí)時(shí)監護,而且存在體積大、功耗高、攜帶不便等缺點(diǎn)。鑒于此,本文設計了一種結構簡(jiǎn)單、性能穩定、可靠的便攜式心電儀,能夠在家庭、野外等一些場(chǎng)所對心電進(jìn)行實(shí)時(shí)監測,具有廣泛的應用前景[1]。
1 系統硬件結構及原理
低功耗便攜式心電儀由MSP430F169、心電信號采集調理電路、液晶顯示模塊、數據存儲模塊、按鍵輸入模塊等組成,如圖1所示。
通過(guò)以標準導聯(lián)方式I和人體相連的電極取得的心電信號,因為環(huán)境中存在各種干擾(人體自身的肌電干擾,外部的工頻干擾等),所以必須經(jīng)過(guò)模擬放大電路的放大、濾波等調理之后才可進(jìn)入MSP430F169單片機,利用單片機內部的A/D模塊對模擬信號進(jìn)行模數轉換,然后存儲數據,并在液晶屏上顯示,觀(guān)察者可以直觀(guān)地看到心電信號波形和每分鐘心跳的次數。系統采用SD卡來(lái)存儲采集的數據,采集的心電信號數據可以長(cháng)時(shí)間存儲,這對于心電信號異常且有偶發(fā)性的病人具有重要價(jià)值。系統還可以通過(guò)串口把采集的心電信號實(shí)時(shí)傳輸到上位機,由上位機顯示并進(jìn)行實(shí)時(shí)分析。
1.1 微控制器
微控制器采用TI公司的MSP430F169單片機,它是一款低功耗單片機,當所有器件均采用低功耗模式工作時(shí),總功率不到1 W,RAM 數據保持方式下耗電僅 0.1 ?滋A,活動(dòng)模式下耗電250 μA/MIPS,特別適合于便攜式設備;片內集成有12 bit A/D轉換模塊,4種轉換模式,轉換速度最快達到200 Kb/s,足以滿(mǎn)足心電采集的要求[2]。
1.2 心電信號調理電路
心電信號調理電路是本系統的重要環(huán)節之一,主要由前置放大、高通濾波、50 Hz陷波、低通濾波和后級放大電路組成,如圖2所示。因為體表ECG心電儀一般只有0.05 mV~5 mV,具有微弱和易受干擾等特點(diǎn), 因此,采用高輸入阻抗、高共模抑制比的差分放大電路進(jìn)行前置放大,以增大輸入阻抗、減少共模信號干擾;帶通濾波電路主要由高通濾波器和低通濾波器組成,通頻帶為0.5 Hz~100 Hz,濾除心電頻率范圍以外的干擾信號;50 Hz 陷波處理器濾除工頻干擾;后級放大器將ECG信號進(jìn)一步放大100倍左右到合適范圍,然后輸出到核心控制器MSP430F169的A/D模塊。
1.3 數據存儲模塊
本系統中使用SD卡存儲采集的心電信號數據。SD卡是一種體積小、容量大、性?xún)r(jià)比高、訪(fǎng)問(wèn)接口簡(jiǎn)單的存儲卡,具有低功耗、非易失性等特點(diǎn),被大量應用于數碼照相機、手機等便攜式設備中。使用SD卡可將心電數據傳送到功能更強大的PC機中進(jìn)行進(jìn)一步的分析處理,其接口電路如圖3所示。其中,DAT0~DAT3為數據線(xiàn),CMD為命令線(xiàn),CLK為時(shí)鐘線(xiàn),為存儲模塊提供時(shí)鐘,CD_SW用于控制SD卡的熱插撥。
MSP430F169的P1.1~P1.5連接5個(gè)獨立按鍵,其中4個(gè)用于調整心電波形顯示的周期和幅值,1個(gè)用于串口數據發(fā)送。
2 軟件系統設計
系統軟件部分是在IAR430開(kāi)發(fā)平臺下進(jìn)行開(kāi)發(fā)調試完成的。IAR430是專(zhuān)門(mén)為T(mén)I公司的MSP430單片機而設計的一款開(kāi)發(fā)軟件,它提供了工程管理、程序編輯、代碼下載、軟硬件調試等幾乎所有的功能[3]。
系統流程圖如圖5所示。首先系統進(jìn)行初始化(包括看門(mén)狗、系統時(shí)鐘、I/O口、UART1、ADC12、TimerB及LCD等初始化),開(kāi)總中斷后系統進(jìn)入主循環(huán)體,當采集滿(mǎn)一屏數據時(shí),主循環(huán)體內進(jìn)行心電波形的刷新顯示;不滿(mǎn)一屏數據時(shí),進(jìn)入低功耗狀態(tài)。A/D采集用中斷方式,系統的采樣頻率通過(guò)定時(shí)器控制,5個(gè)獨立按鍵采用中斷方式,通過(guò)軟件延時(shí)消除按鍵抖動(dòng)。
2.1 低功耗設計
由于MSP430單片機是專(zhuān)為低功耗設計的,所以本系統的程序部分按照其低功耗方案設計。除了心電波形顯示、擦除這種必要步驟在大循環(huán)內運行外,其余的(包括A/D轉換程序、定時(shí)器采樣頻率、按鍵)全部采用中斷方式,只有事件觸發(fā)時(shí)才運行;而在主程序設計中只有在采集完一屏數據之后才運行心電波形顯示,其余時(shí)間全部進(jìn)入LPM1低功耗模式;數據的存儲不經(jīng)MCU,直接利用MSP430F169內部的DMA模塊實(shí)現數據傳輸。這一設計方法大大降低了系統的功耗[4]。
2.2 系統各子程序設計
(1)A/D部分
MSP430F169的P6.0~P6.7為A/D復用口,本系統采用P6.4,即A4作為A/D的輸入口,采用單通道多次轉換方式。A/D轉換采用中斷方式,中斷子程序內只編寫(xiě)一條語(yǔ)句,即關(guān)A/D中斷,不進(jìn)行其他任何操作,以使A/D最高采樣頻率達到理想狀態(tài)。A/D的初始化程序如下:
void ADC12_S_S_Init(void)
{ P6SEL|=BIT4;
ADC12CTL0=ADC12ON+REFON+REF2_5V+SHT0_2
+MSC;
ADC12CTL1=ADC12SSEL_0+SHP+CONSEQ_2
+CSTARTADD_4;
ADC12MCTL4=SREF_1+INCH_4;
ADC12IE |=BIT4;
ADC12CTL0 |=ENC+ADC12SC;
}
(2)定時(shí)器中斷部分
系統的采樣頻率由定時(shí)器控制,并由按鍵對頻率進(jìn)行縮放,定時(shí)器采用子系統時(shí)鐘、8分頻(系統時(shí)鐘為8 MHz)。定時(shí)器亦采用中斷方式,中斷子程序內對A/D轉換后的值進(jìn)行存儲,并查詢(xún)是否采集完一屏數據,如果采集滿(mǎn)屏,即關(guān)閉定時(shí)器中斷和A/D中斷,然后滿(mǎn)屏標志位置1,退出低功耗模式,退出中斷[5]。中斷子程序如下:
#pragma vector=TIMERB0_VECTOR
__interrupt void Timer_B (void)
{ results[index]=ADC12MEM4;
index++;
if(index==102)//如果采集完一屏
{ index=0;
TBCCTL0 =~CCIE;//先關(guān)閉定時(shí)器B
ADC12IE =~BIT4;//關(guān)ADC中斷
collect_a_screen=1;//滿(mǎn)屏標志位置1
LPM1_EXIT;//退出低功耗模式
}
else ADC12IE |= BIT4;//開(kāi)ADC中斷
}
(3)SD卡部分
采集的數據通過(guò)MSP430F169內部集成的DMA模塊傳送到SD卡內。DMA選用通道0,觸發(fā)方式為ADC12IFG4,按字節發(fā)送。SD卡的操作以命令方式進(jìn)行,所有的命令都由主機主動(dòng)發(fā)送,SD卡根據不同的命令做出不同的響應。其應答流程如圖6所示。
3 應用與注意事項
用本系統采集人體心電,經(jīng)驗證,能夠在LCD屏上正確顯示出如圖7所示的人體的心電波形,并能通過(guò)串口或SD卡將采集的數據傳送到上位機進(jìn)行進(jìn)一步顯示分析。本系統設計時(shí)需要注意:MSP430F169默認是關(guān)閉中斷嵌套,所以用到中斷嵌套時(shí),進(jìn)入中斷子程序后應首先打開(kāi)總中斷,這樣才能執行嵌套中斷;在LCD上畫(huà)心電波形時(shí),應采用分列式,即擦一列畫(huà)一列,這樣才能保證心電波形穩定顯示。
本文從家用便攜式心電儀的特點(diǎn)出發(fā),設計了一款功能適當、功耗極低并且價(jià)格低廉適用于家庭保健用的心電儀。同傳統的數據采集系統相比,本系統采用低功耗微控制器MSP430F169,在軟件設計中通過(guò)低功耗設計,大大降低了系統功耗,而且性能穩定、可靠,設計過(guò)程簡(jiǎn)便,降低了成本,具有廣泛的應用價(jià)值。
評論