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