基于STM32和LabVIEW的心電信號采集系統(tǒng)設(shè)計(jì)
引 言
據(jù)最新的《中國心血管疾病報(bào)告》顯示,目前估計(jì)全國心血管疾病患者人數(shù)達(dá) 2.9 億,隨著人口老齡化的增長患者人數(shù)還會不斷上升。心血管病是一系列涉及循環(huán)系統(tǒng)的疾病,具有突發(fā)性,若無法及時(shí)發(fā)現(xiàn)則存在失去生命的風(fēng)險(xiǎn),因此在日常生活中對心血管疾病患者進(jìn)行心電監(jiān)護(hù)尤其重要 [1]。本文針對上述需求,克服了傳統(tǒng)心電圖機(jī)價(jià)格昂貴、不可攜帶、不可傳輸心電信號等缺點(diǎn),設(shè)計(jì)了一套便攜式,集心電信號采集、無線傳輸、信號處理等功能于一體的心電信號采集系統(tǒng)。
將STM32F103 芯片作為系統(tǒng)下位機(jī)的核心,主要包括單片機(jī)模塊、藍(lán)牙模塊、AD8232 采集模塊和電源模塊 [2],用于實(shí)現(xiàn)心電信號的采集,并將采集到的信號通過藍(lán)牙以無線傳輸方式上傳至上位機(jī)。將采集到的心電信號通過主控芯片STM32F103 的 SPI 接口控制采集芯片AD8232,完成心電信號的放大、濾波、共模抑制和模數(shù)轉(zhuǎn)換,再通過 UART 接口連接藍(lán)牙芯片,完成上位機(jī)和下位機(jī)的通信。上位機(jī)采用LabVIEW 作為開發(fā)平臺,利用 LabVIEW 的串口通信功能實(shí)現(xiàn)與下位機(jī)的數(shù)據(jù)通信 [3]。
1 系統(tǒng)設(shè)計(jì)方案
系統(tǒng)采用意法半導(dǎo)體(ST)公司微控制器 STM32F103[4]、ECG 信號處理模塊AD8232、藍(lán)牙模塊 HM-13 和 LabVIEW 軟件相結(jié)合的監(jiān)測方案。其中,STM32F103 和 AD8232 組成下位機(jī),主要用于心電信號的采集 ;藍(lán)牙模塊主要用于實(shí)現(xiàn)硬件采集電路和上位機(jī)的數(shù)據(jù)傳輸 ;LabVIEW 作為上位機(jī),主要用于通過藍(lán)牙串口接收下位機(jī)采集到的數(shù)據(jù),完成對采集數(shù)據(jù)的顯示、分析和存儲等 [5]。系統(tǒng)結(jié)構(gòu)如圖 1 所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
2 系統(tǒng)硬件設(shè)計(jì)
2.1 心電信號采集電路
將AD8232芯片作為采集心電信號的控制芯片。AD8232 是一款用于 ECG及其他生物電測量的集成信號調(diào)理模塊。該模塊可在具有運(yùn)動或遠(yuǎn)程電極產(chǎn)生噪聲的情況下提取信號,并放大、過濾微弱的生物電信號。AD8232還內(nèi)置有導(dǎo)聯(lián)脫落檢測電路和一個(gè)自動快速恢復(fù)電路,可在導(dǎo)聯(lián)重新連接后迅速恢復(fù)信號,其功能如圖 2所示。該模塊內(nèi)置有一個(gè)專用儀表放大器(IA)、一個(gè)運(yùn)算放大器(A1)、一個(gè)右腿驅(qū)動放大器(A2)和一個(gè)中間電源電壓基準(zhǔn)電壓緩沖器(A3)[6]。
2.2 藍(lán)牙傳輸電路
本系統(tǒng)采用HM-13藍(lán)牙模塊取代硬件電路中的串口發(fā)送(發(fā)送原理與串口發(fā)送電路原理一致)。HM-13藍(lán)牙模塊和STM32單片機(jī)的連接電路如圖 3所示 [6]。
在圖 3中,STM32單片 機(jī) 的 PA9/U1_TX引腳 連 接HM-13藍(lán)牙模塊的 UART_TX引腳,PA10/U2_RX引腳連接UART_RX引腳 [7],接 3.3V電壓,PIO1引腳連接一個(gè)藍(lán)牙指示燈,將數(shù)字化的心電信號通過藍(lán)牙模塊實(shí)時(shí)發(fā)送。與單片機(jī)控制串口連接電路類似,實(shí)現(xiàn)了無線傳輸,改變了傳統(tǒng)的傳輸方式。
3 系統(tǒng)軟件設(shè)計(jì)
因所用 MCU 為意法半導(dǎo) 體(ST)公司設(shè)計(jì)生產(chǎn)的STM32F103 系列芯片,故下位機(jī)開發(fā)軟件采用 Keil5,上位機(jī)軟件采用 LabVIEW 2014 版本。
系統(tǒng)軟件設(shè)計(jì)可分為三個(gè)部分,即 STM32 下位機(jī)程序、HM-13 藍(lán)牙驅(qū)動程序和 LabVIEW 上位機(jī)程序。STM32 下位機(jī)程序是整個(gè)系統(tǒng)的核心,藍(lán)牙驅(qū)動程序有效保證了下位機(jī)和上位機(jī)的通信。首先下位機(jī)上電復(fù)位,初始化設(shè)備后打開藍(lán)牙串口與上位機(jī)通信,之后開啟 ADC 轉(zhuǎn)換功能,將傳輸采樣數(shù)據(jù)送至串口數(shù)據(jù)緩沖區(qū),再由上位機(jī)程序控制下位機(jī)讀取數(shù)據(jù),實(shí)現(xiàn)對數(shù)據(jù)的分析、處理和顯示。系統(tǒng)程序流程如圖 4 所示。
圖 4 系統(tǒng)程序框圖
接 3.3 V 電壓后,單片機(jī)首先應(yīng)完成系統(tǒng)時(shí)鐘的配置, 在 PC 端打開藍(lán)牙驅(qū)動,連接藍(lán)牙設(shè)備。連上后等待上位機(jī)發(fā)送啟動、停止等命令,單片機(jī)以中斷方式接收命令并執(zhí)行相應(yīng)操作,開啟相應(yīng) ADC 通道,轉(zhuǎn)換后將數(shù)據(jù)打包發(fā)送給上位機(jī) [8]。
4 測試方法
可用多種導(dǎo)聯(lián)方法采集人體心電信號。本文主要介紹標(biāo)準(zhǔn)雙極肢體導(dǎo)聯(lián)法,共有Ⅰ、Ⅱ、Ⅲ導(dǎo)聯(lián)。
Ⅰ導(dǎo)聯(lián) :左上肢接放大器正輸入端,右上肢接放大器負(fù)輸入端。
Ⅱ?qū)?lián) :左下肢接放大器正輸入端,右上肢接放大器負(fù)輸入端。
Ⅲ導(dǎo)聯(lián) :左下肢接放大器正輸入端,左上肢接放大器負(fù)輸入端。
本系統(tǒng)采用標(biāo)準(zhǔn)Ⅰ導(dǎo)聯(lián),原因如下:
(1) 標(biāo)準(zhǔn)Ⅰ導(dǎo)聯(lián)測得的信號波形幅度大,特征點(diǎn)明顯 [8]。
(2) 標(biāo)準(zhǔn)Ⅰ導(dǎo)聯(lián)從上肢采集信號,更容易被大家接受。本設(shè)計(jì)采用標(biāo)準(zhǔn)Ⅰ導(dǎo)聯(lián),將電極夾分別夾在左右手腕處,
下位機(jī)上電后,系統(tǒng)開始采集心電信號,可在 LabVIEW 顯示面板上看到實(shí)時(shí)采集的心電波形。
5 結(jié) 語
本文系統(tǒng)包括 STM32,AD8232 芯片及外部信號采集和調(diào)理電路,通過 HM-13 藍(lán)牙模塊傳輸心電信號至 PC 端,采用LabVIEW 強(qiáng)大的數(shù)據(jù)處理功能,降低了系統(tǒng)的開發(fā)成本和難度,實(shí)現(xiàn)了人體心電信號的采集、顯示、傳輸?shù)裙δ堋T撓到y(tǒng)操作簡單方便,具有一定的推廣價(jià)值。