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