基于51單片機(jī)的低成本心電監(jiān)護(hù)系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引言
虛擬醫(yī)學(xué)儀器充分利用計(jì)算機(jī)豐富的軟硬件資源,僅增設(shè)少量專用軟、硬件模塊,便可實(shí)現(xiàn)傳統(tǒng)儀器的全部功能及一些傳統(tǒng)儀器無(wú)法實(shí)現(xiàn)的功能,同時(shí)縮短了研發(fā)周期。本系統(tǒng)由兩部分組成:以C8051F320單片機(jī)為核心的數(shù)據(jù)采集裝置和以PC機(jī)為平臺(tái)的分析處理系統(tǒng)。設(shè)計(jì)中充分考慮數(shù)據(jù)采集裝置體積小、功耗低、操作快捷的要求,因此全部采用SMT封裝的元器件。PC監(jiān)護(hù)終端通過(guò)USB接口接收數(shù)據(jù),傳輸速率高;采用圖形編程語(yǔ)言LabVIEW編寫(xiě)顯示、存儲(chǔ)、分析處理等功能程序。該系統(tǒng)可實(shí)時(shí)監(jiān)護(hù)并提供心動(dòng)周期,心率等參數(shù),也可進(jìn)行數(shù)據(jù)的存儲(chǔ)回放,為心血管疾病的診斷提供依據(jù)。系統(tǒng)的軟件開(kāi)發(fā)和硬件與上位機(jī)軟件的集成測(cè)試表明,系統(tǒng)運(yùn)行穩(wěn)定可靠,取得了預(yù)期效果。
2 系統(tǒng)硬件設(shè)計(jì)
該系統(tǒng)由C8051F320數(shù)據(jù)采集模塊和PC機(jī)兩部分組成,如圖1所示。
數(shù)據(jù)采集模塊主要由心電采集電路和基于C8051F320單片機(jī)的DAQ接口卡構(gòu)成,如圖2所示。
該模塊通過(guò)C8051F320片上A/D轉(zhuǎn)換器采集經(jīng)預(yù)處理的心電信號(hào),再將其由USB總線傳輸至PC機(jī)顯示。PC機(jī)部分主要是軟件設(shè)計(jì),包括通過(guò)C8051F320單片機(jī)片上USB主機(jī)API函數(shù)和LabVIEW軟件編寫(xiě)數(shù)據(jù)采集圖形用戶界面;實(shí)現(xiàn)接收、顯示和處理由數(shù)據(jù)采集模塊通過(guò)USB接口發(fā)送采集數(shù)據(jù)的程序。LabVIEW應(yīng)用程序和C8051F320應(yīng)用程序均采用Silicon Laboratories公司的USB Xpress開(kāi)發(fā)套件的API和驅(qū)動(dòng)程序?qū)崿F(xiàn)對(duì)底層USB器件的讀寫(xiě)操作。
心電信號(hào)屬于微弱信號(hào),體表心電信號(hào)的幅值范圍為1~10 mV。在測(cè)量心電信號(hào)時(shí)存在很強(qiáng)的干擾,包括測(cè)量電極與人體之間構(gòu)成的化學(xué)半電池所產(chǎn)生的直流極化電壓,以共模電壓形式存在的50 Hz工頻干擾.人體的運(yùn)動(dòng)、呼吸引起的基線漂移,肌肉收縮引起的肌電干擾等。采用遙測(cè)HOLTER三導(dǎo)聯(lián)線和一次性心電電極與人體接觸,能很好地減小運(yùn)動(dòng)和呼吸引起的肌電干擾。前端放大器采用具有極高共模抑制比(CMRR)的儀用AD620放大器,放大倍數(shù)約為50倍;并采用0.05~100 Hz的帶通濾波器和50 Hz的陷波電路,抑制信號(hào)的基線漂移、高頻噪聲及工頻干擾。為了充分利用A/D轉(zhuǎn)換的精度,在轉(zhuǎn)換前先將信號(hào)放大到A/D轉(zhuǎn)換電路參考電壓的70%左右,考慮到信號(hào)中會(huì)附加直流成分,需在A/D轉(zhuǎn)換電路前增加電平調(diào)節(jié)電路。個(gè)體心電幅度的差異要求電路中設(shè)計(jì)程控放大電路,又為了便于心電信號(hào)的標(biāo)定和考慮到實(shí)際器件放大倍數(shù)與理論值的偏差,在程控放大電路前設(shè)置一個(gè)手動(dòng)可調(diào)的放大電路(1~10倍)。
綜上分析,心電采集與程控放大部分應(yīng)包括:AD620前端放大、0.05~100 Hz的帶通濾波、50 Hz陷波、手動(dòng)放大、程控放大和電平提升等電路。其中程控放大功能利用CD4051電子開(kāi)關(guān)的數(shù)字選通實(shí)現(xiàn),具有1~50倍的調(diào)節(jié)范圍。
為減少系統(tǒng)功耗,應(yīng)采用低功耗、集成度高的器件。該系統(tǒng)選用C8051F320單片機(jī)作為數(shù)據(jù)采集卡的核心部件。該器件是完全集成的混合信號(hào)系統(tǒng)級(jí)器件,具有與8051兼容的高速CIP-51內(nèi)核,與MCS-51指令集完全兼容,片內(nèi)集成了數(shù)據(jù)采集和控制系統(tǒng)常用的模擬、數(shù)字外設(shè)及USB接口等其他功能部件。外部電路簡(jiǎn)單,易于實(shí)現(xiàn),如圖3所示。
心電電極將得到的信號(hào)經(jīng)濾波和可變?cè)鲆娣糯笃鞣糯蠛笏椭罜8051F320單片機(jī),單片機(jī)將得到的模擬心電信號(hào)實(shí)時(shí)轉(zhuǎn)換為數(shù)字信號(hào),采集到的數(shù)據(jù)通過(guò)USB接口傳給PC機(jī),進(jìn)一步分析處理信號(hào)數(shù)據(jù)。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 C8051F320單片機(jī)程序設(shè)計(jì)
C8051F320單片機(jī)程序包括:(1)A/D轉(zhuǎn)換程序和程控放大控制程序;(2)基于USB器件的通信程序,接收從USB主機(jī)發(fā)送的用戶指令并將采集的數(shù)據(jù)發(fā)送給USB主機(jī)。
3.1.1 A/D轉(zhuǎn)換程序
衡量A/D轉(zhuǎn)換性能主要有兩個(gè)指標(biāo):采樣分辨率(A/D轉(zhuǎn)換器位數(shù))和A/D轉(zhuǎn)換速度。設(shè)置A/D轉(zhuǎn)換器的采樣率為2 000 Hz,并采用定時(shí)器TIME2溢出中斷觸發(fā)轉(zhuǎn)換,每次轉(zhuǎn)換結(jié)束后1O位結(jié)果數(shù)據(jù)字被鎖存到A/D轉(zhuǎn)換器的數(shù)據(jù)寄存器中,供USB通訊子程序數(shù)據(jù)調(diào)用,圖4為A/D轉(zhuǎn)換流程。A/D轉(zhuǎn)換程序較簡(jiǎn)單,可通過(guò)設(shè)置C8051F320片上定時(shí)器確定A/D轉(zhuǎn)換器的采樣周期,由定時(shí)器的溢出周期性啟動(dòng)A/D轉(zhuǎn)換器來(lái)采樣被測(cè)數(shù)據(jù)。USB設(shè)置為塊狀傳輸模式與PC機(jī)進(jìn)行數(shù)據(jù)通信。將每64個(gè)數(shù)據(jù)打成一個(gè)數(shù)據(jù)包。以充分利用硬件資源并提高數(shù)據(jù)傳輸效率。
3.1.2 基于USB器件的通信程序
整個(gè)程序流程以USB通信為主線,如圖5所示。圖中所涉及的USB_Clock_Start()、USB_Int()等函數(shù)均是Silicon Lab公司專為C8051F320單片機(jī)USB功能開(kāi)發(fā)的USB端API函數(shù)。通過(guò)在C8051F320上層應(yīng)用程序中直接調(diào)用這些函數(shù)可方便快捷地訪問(wèn)USB底層硬件。
3.2 PC機(jī)LabVIEW程序設(shè)計(jì)
PC機(jī)LabVIEW程序設(shè)計(jì)主要完成用戶圖形界面和基于USB主機(jī)通信程序兩大功能,從而實(shí)現(xiàn)人機(jī)交互,將用戶輸入的指令和采集模塊采集的數(shù)據(jù)通過(guò)USB總線在PC機(jī)和C8051F320之間傳遞。
3.2.1 LabVIEW程序面板設(shè)計(jì)
開(kāi)發(fā)USB設(shè)備驅(qū)動(dòng)程序的工具使用USB Xpress Devel-opment Kit,主要有:SI_Open()函數(shù);SI_Close()函數(shù);SI_Read函數(shù);SI_Write()函數(shù);SI_GetNumDevices()函數(shù);SI_CheckRX Queue()函數(shù)。用戶從設(shè)備讀取數(shù)據(jù)將調(diào)用一個(gè)應(yīng)用程序接口API。SI_GetNumDevices()、SI_GetProductString()等函數(shù)均是Silicon Lab公司專為C8051F320單片機(jī)USB功能開(kāi)發(fā)的USB主機(jī)端API函數(shù)。LabVIEW提供調(diào)用鏈接庫(kù)函數(shù)Call Librarv Function,本設(shè)計(jì)利用Silicon Lab公司的SiUSBXp.dll動(dòng)態(tài)鏈接庫(kù)來(lái)實(shí)現(xiàn)對(duì)USB底層硬件的訪問(wèn)。
通過(guò)調(diào)用SLGetNumDevices()甬?dāng)?shù)完成設(shè)備的通信初始化,生成函數(shù)返回驅(qū)動(dòng)的設(shè)備號(hào);該設(shè)備號(hào)用來(lái)在調(diào)用SI GetProductString()函數(shù)時(shí)生成設(shè)備描述字符串。要讀取一個(gè)設(shè)備,首先必須通過(guò)調(diào)用SI_GetNumDevices()函數(shù)生成的索引(設(shè)備號(hào))來(lái)調(diào)用SI_Open()函數(shù)。SI_Open()函數(shù)將返回設(shè)備的句柄,該句柄將在隨后的所有進(jìn)程中被用到。利用 SI_Write()和SI_Read()函數(shù)就可實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出。當(dāng)完成數(shù)據(jù)的輸入和輸出操作后,可通過(guò)調(diào)用SI_Close()關(guān)閉設(shè)備。圖6為I/O接口驅(qū)動(dòng)程序框圖。
3.2.2 LabVIEW程序設(shè)計(jì)用戶圖形界面(前面板)設(shè)計(jì)
動(dòng)態(tài)心電監(jiān)護(hù)系統(tǒng)應(yīng)用程序部分可實(shí)現(xiàn)心電信號(hào)的接收、實(shí)時(shí)顯示、存儲(chǔ)及回放功能;并可提供心動(dòng)周期、心率等參數(shù),為心率變異性分析和心血管疾病的診斷提供依據(jù)。心電監(jiān)護(hù)系統(tǒng)顯示界面如圖7所示。
4 結(jié)論
該設(shè)計(jì)不僅可實(shí)現(xiàn)傳統(tǒng)測(cè)量?jī)x器的全部功能,還能將實(shí)驗(yàn)數(shù)據(jù)存盤(pán)以進(jìn)行反復(fù)觀察分析?;谔摂M儀器的心電監(jiān)護(hù)系統(tǒng)使用靈活方便、測(cè)試功能豐富、成本低廉。用戶可根據(jù)實(shí)際需要,通過(guò)修改軟件改變其功能和升級(jí),實(shí)現(xiàn)一機(jī)多用。實(shí)驗(yàn)結(jié)果表明:該系統(tǒng)具有較強(qiáng)的抑制基線漂移能力、低功耗、操作簡(jiǎn)單。采用USB接口實(shí)時(shí)傳輸心電數(shù)據(jù),并將心電數(shù)據(jù)采集模塊設(shè)計(jì)為計(jì)算機(jī)外設(shè),高速快捷。由于全部采用SMT封裝,數(shù)據(jù)采集模塊尺寸僅為60 mmx60 mm,方便實(shí)用。因此,該設(shè)計(jì)是一款實(shí)用的、低成本的、動(dòng)態(tài)心電監(jiān)護(hù)系統(tǒng)。