向蓓蓓,郭妍,謝光敏,陳吉鑫
(四川水利職業(yè)技術(shù)學(xué)院信息工程學(xué)院,成都 610039)
隨著社會經(jīng)濟突飛猛進的發(fā)展和人民生活水平的日益提高,人們患上血液疾病的概率越來越高,眾所周知,血液的容積、血管硬化的程度、心臟功能、內(nèi)分泌、運動、情緒等都是影響血壓的因素。要想了解到底是什么因素,到底影響多大,還得依靠血壓的精確測量加以判斷。生理學(xué)家Harrey在1628年提出了血液循環(huán)理論,在那之后的幾百年來,找到既方便有效又準(zhǔn)確可靠的血壓測量方法便成為研究者們一直追求的目標(biāo),時至今日,血壓測量的方法已經(jīng)有很多,但每種方法都存在一定的缺陷,始終差強人意。基于袖帶充放氣的示波法對比電子柯氏音法,具有很明顯的優(yōu)點,示波法的抗干擾性強,重復(fù)性好[1],因此是電子血壓計和血壓監(jiān)護儀應(yīng)用最廣泛的方法?;诖?,本文旨在通過袖帶式血壓信號采集的設(shè)計,采用示波法原理進行血壓測量,對比日常中各類血壓測量技術(shù),找到最準(zhǔn)確、最便捷的檢測方式,實現(xiàn)對血壓精確的測量。
設(shè)計的模擬電子血壓計的主要組成部分包括單片機、壓力傳感器、初級次級運算放大電路、濾波電路、數(shù)模轉(zhuǎn)換電路、顯示電路。首先通過壓力傳感器采集血壓信號,血壓信號通過運算放大電路和濾波電路的預(yù)處理,從而分離出兩路信號,模數(shù)轉(zhuǎn)換電路再對兩路信號進行模數(shù)轉(zhuǎn)換,最后由單片機來完成信號的儲存與計算[2],計算所得到的數(shù)據(jù)控制血壓計的外圍電路,從而通過顯示電路對收集到的血壓數(shù)據(jù)的數(shù)值進行顯示。實驗所設(shè)計的整個血壓采集系統(tǒng)主要由以下幾部分組成。
1.1.1 信號采集
由壓力傳感器、前置放大器、帶通與低通濾波器構(gòu)成,主要功能是分離出袖帶壓力信號和脈搏波信號。
1.1.2 模數(shù)轉(zhuǎn)換
由多路D/A轉(zhuǎn)換器構(gòu)成,主要是將袖帶壓力信號和脈搏波信號轉(zhuǎn)換成數(shù)字信號。D/A轉(zhuǎn)換器為單片機的外設(shè)。
1.1.3 中央處理單元
系統(tǒng)的中央處理單元主要部分采用的是單片機AT89C52,其主要的功能:微控制器接收特定的系統(tǒng)參數(shù)設(shè)置和來自微控制器的外部控制命令,并將測量數(shù)據(jù)傳送回主微控制器。這些數(shù)據(jù)為血壓計算提供了具體信息,包括收縮壓、舒張壓、平均血壓數(shù)據(jù)、氣泵模數(shù)轉(zhuǎn)換控制以及測量過程中各種算法的實施。微控制器控制氣泵的填充和排空過程,并實現(xiàn)對報警系統(tǒng)的控制。
1.1.4 顯示模塊
顯示電路主要采用LCD1602,用于顯示舒張壓、收縮壓和平均血壓值。
根據(jù)系統(tǒng)構(gòu)成框圖(如圖1所示),該系統(tǒng)的整個工作流程如下:手臂套上袖帶,袖帶充氣放氣,產(chǎn)生氣壓。壓力下血管的血流產(chǎn)生振蕩波,通過氣管被壓力傳感器接收。壓力傳感器將接收到的振蕩波信號傳送到差分放大電路。差分放大器將振蕩波信號分成兩路,根據(jù)振蕩波信號的不同頻率,兩路信號被一個用于分離袖帶壓力信號的低通濾波器和一個用于分離脈沖波信號的帶通濾波器分開,并一起傳送到D/A轉(zhuǎn)換器,經(jīng)由數(shù)字信號電路進行處理之后,由單片機計算出舒張壓、收縮壓和平均血壓值[2]。計算數(shù)據(jù)輸入至LCD顯示。如果測量值超出正常范圍,報警信號通過顯示模塊LCD顯示為“!?。 ?。
圖1 系統(tǒng)構(gòu)成框圖
采集血壓信號,系統(tǒng)用到的是壓力傳感器BP01,壓力傳感器BP01具有高線性、低噪聲的特性。通過溫度補償和內(nèi)部標(biāo)定的方式來提升測量精準(zhǔn)度、系統(tǒng)穩(wěn)定性。全范圍內(nèi)精度為±1%,零點失調(diào)不超過±300 μV。BP01的電路連接如圖2所示。
圖2 BP01電路連接
2.2.1 前置放大電路
動脈血壓的參數(shù)范圍為10~400 mmHg,壓力傳感器BP01輸出的差分信號為0~15 mV,無法對生理信號進行直接的記錄與顯示,因為生理信號幅度偏小、頻率偏低、內(nèi)阻高、噪聲大、抗干擾性弱[3]。為了克服生理信號的這些特性,就要求初級放大電路有一個合適的通帶寬度和動態(tài)范圍,必須具備較高的共模抑制比、低噪聲、高增益以及高輸入阻抗,要達到這些高要求,前置放大器將是最好的選擇。
放大電路中,U3:B和U3:C連接成同相輸入的形式,能夠?qū)﹄妷浩鸬骄彌_作用,同時增大輸入阻抗。U3:D則構(gòu)成差動放大器,提供差模增益,對從U3:B和U3:C傳送來的共模電壓起到抑制的作用,從而提高共摸抑制比。前置放大電路圖如圖3所示。
圖3 前置放大電路
2.2.2 分離袖帶壓力信號和脈搏波信號
袖帶壓力信號變化非常緩慢,屬于低頻信號,因而需要采用低通濾波器來提取出袖帶壓力信號。本次實驗設(shè)計采用的是二階有源低通濾波器,如圖4所示。
圖4 二階有源低通濾波器及次級放大電路圖
通常情況下,脈搏波信號的頻率在0.6~6.4 Hz范圍內(nèi),脈搏波信號還摻雜著一些高頻干擾和低頻分量?;诖耍緦嶒炘O(shè)計采用帶通濾波器進行信號除雜優(yōu)化,采用兩級帶通濾波器的級聯(lián)來提高增益。兩級級聯(lián)能使頻率響應(yīng)更加尖銳,從而提高輸出的信噪比。獲取脈搏波信號,將頻率設(shè)定為0.4~6.6 Hz,電路圖如圖5所示。
圖5 兩帶通濾波器的級聯(lián)
2.3.1 ADC0808模數(shù)轉(zhuǎn)換芯片
本設(shè)計用到的模數(shù)轉(zhuǎn)換芯片是ADC0808,如圖6所示。它的構(gòu)成包括一個地址鎖存器、一個譯碼器、一個8路的模擬開關(guān)、一個D/A轉(zhuǎn)換器和一個三態(tài)輸出鎖存器[4]。各引腳功能如下:
圖6 ADC0808模數(shù)轉(zhuǎn)換芯片
START:啟動D/A轉(zhuǎn)換的信號輸入端,上跳沿時,所有內(nèi)部寄存器處于清零狀態(tài);下跳沿時,開始進行D/A轉(zhuǎn)換;在轉(zhuǎn)換期間,START應(yīng)保持低電平。
EOC:轉(zhuǎn)換結(jié)束信號的輸出引腳,低電平時開始轉(zhuǎn)換,高電平時轉(zhuǎn)換結(jié)束[5]。
OE:輸出允許控制端,用于控制三條輸出鎖存器向單片機輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù);OE=0,輸出數(shù)據(jù)線呈高阻狀態(tài)。
ALE:地址鎖存允許信號輸入端,高電平時有效,此時地址鎖存連同譯碼器將鎖存3位地址線的地址信號,經(jīng)譯碼的通道的模擬量被選中后被轉(zhuǎn)換器轉(zhuǎn)換。
IN0~IN7:8位模擬量輸入引腳。
OUT1~OUT8:8位數(shù)字量輸出引腳。
A、B、C:對IN0—IN7進行選通的一路模擬量輸入,是3位地址輸入線。
2.3.2 單片機AT89C52
單片機AT89C52是本設(shè)計的中央處理單元,如圖7所示。內(nèi)部結(jié)構(gòu)與MCS-51系列單片機的構(gòu)成基本相同,但數(shù)據(jù)存儲器與51系列的其他單片機相比大很多,存儲容量為256字節(jié),單片機AT89C52的指令系數(shù)和引腳功能與MCS-51的完全兼容[6]。各引腳功能如下。
圖7 AT89C52
XTAL1:振蕩器反相放大器的輸入端。
XTAL2:振蕩器反相放大器的輸出端。
RST:復(fù)位輸入。
P0口:是一個8位漏級開路的雙向I/O口。每位能驅(qū)動8個TTL邏輯電平。當(dāng)輸入高電平時,引腳作為高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用[7]。
P1口、P2口、P3口:是具有內(nèi)部上拉電阻的8位雙向I/O口,P口輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯電平[7]。當(dāng)輸入高電平時,內(nèi)部上拉電阻將拉高端口,此時可作為輸入口。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流ILL。
2.3.3 ADC0808與單片機AT89C52的連接
模擬信號通過output0和output1進入ADC-0808,經(jīng)模數(shù)轉(zhuǎn)換之后,數(shù)字信號由OUT1-8輸出到單片機P0口。如圖8所示。
圖8 D/A轉(zhuǎn)換電路
在選擇顯示器上,考慮到仿真結(jié)果的血壓計數(shù)據(jù)顯示。數(shù)碼管只能顯示數(shù)字,一次只能顯示一個內(nèi)容,需要按鍵切換,操作相對麻煩。LCD顯示的內(nèi)容較多,一次能把全部需要的內(nèi)容顯示出來,操作更方便,看起來也更直觀。另外LCD工作電流不大、體積輕巧、功耗低、壽命長,顯示效果逼真[8],因此本設(shè)計的數(shù)據(jù)顯示采用的是LCD1602。
系統(tǒng)軟件設(shè)計流程如圖9所示。開始時,系統(tǒng)首先對按鍵進行判斷。如果按鍵按下,單片機的控制口將啟動氣泵充氣;若按鍵無效,則返回初始化重新判斷。當(dāng)ADC信道0所測的血壓直流量大于4 V時,氣壓足量則充氣結(jié)束,氣泵開始放氣,此時氣壓大致為180 mmHg或略微大于180 mmHg;若血壓直流量不大于4 V,則返回初始化重新判斷。通過ADC信道1采集血壓交流分量測量出脈沖的峰峰值,并計算ADC通道0在該脈沖期間測量的袖帶壓力信號的平均值。該峰峰值和袖帶壓力信號平均值作為測量的一對數(shù)據(jù),每個心跳脈沖對應(yīng)這樣的一對數(shù)據(jù)。
圖9 系統(tǒng)軟件設(shè)計流程圖
由ADC信道0測到的血壓直流分量小于1 V就表示氣壓低于50 mmHg,單次測量結(jié)束。從記錄下來的多對由峰峰值和袖帶壓力信號的平均值組成的數(shù)據(jù)中找到最大的峰峰值,再從這些數(shù)據(jù)中找出最接近最大峰值0.5倍的一對數(shù)據(jù),對應(yīng)的血壓直流分量就為收縮壓;最接近最大峰值0.7倍的一對數(shù)據(jù),對應(yīng)的血壓直流分量就為舒張壓。然后對測出的血壓值是否在正常值范圍內(nèi)進行判斷。本實驗設(shè)計的合理的測量范圍是收縮壓為90~140 mmHg,舒張壓為65~90 mmHg。如果測量數(shù)據(jù)不在合理范圍內(nèi),將通過LCD顯示出報警信號“!??!”。
系統(tǒng)在氣泵開始充氣時就開始了D/A轉(zhuǎn)換,D/A轉(zhuǎn)換與充氣放氣同時進行。單片機采用查詢P2.5口來判斷轉(zhuǎn)換是否結(jié)束,一旦模數(shù)轉(zhuǎn)換結(jié)束,P2.5接收到高電平,系統(tǒng)檢測到高電平后開始讀入數(shù)據(jù)。模數(shù)轉(zhuǎn)換的程序流程如圖10所示。
圖10 模數(shù)轉(zhuǎn)換程序流程圖
系統(tǒng)在調(diào)試仿真部分采用的是Keil uVision2和Proteus ISIS。按下按鈕,氣泵充氣。血壓直流量大于4 V時,氣泵均勻放氣,開始測量交流信號;當(dāng)血壓直流量小于1 V時,測量結(jié)束,顯示模板顯示測量值。
(1)血壓測量值在系統(tǒng)設(shè)計的合理測量范圍內(nèi),仿真結(jié)果如圖11所示。
圖11 血壓正常顯示圖
(2)血壓測量值不在合理范圍內(nèi),LCD顯示屏上顯示報警信號“?。?!”。仿真結(jié)果如圖12所示。
圖12 血壓偏高報警電路圖
本設(shè)計以單片機AT89C52為控制核心,利用單片機的高度集成化,大大簡化了實驗電路圖,再輔以壓力傳感器BP01、氣泵、報警、外圍的模擬電路以及LCD驅(qū)動芯片,設(shè)計出簡易的血壓測量計,其基本工作過程為:壓力傳感器采集信號,通過差分放大器分離出袖帶壓力信號和脈搏波信號,再對這兩種信號作濾波處理,之后所得的信號通過模數(shù)轉(zhuǎn)換后,單片機AT89C52再計算分析數(shù)字信號,最后得出收縮壓、舒張壓,通過LCD顯示。在軟件設(shè)計中,采用數(shù)字信號處理技術(shù)對D/A采樣的信號進行處理,并結(jié)合相應(yīng)的算法及編程方法實現(xiàn)計算血壓值的程序。