引言
血壓是極為重要的健康指標,血壓測量的準確與否直接關(guān)系到人們的健康。國家把血壓計列為強制檢定計量器具。一般醫院使用的水銀血壓計基于人工柯氏音法,這種方法存在一些固有的缺點(diǎn):一是放氣的快慢對讀數有直接影響,國際標準放氣速度為每秒3~5mmHg,而不同的醫生放氣有快有慢,會(huì )影響測量的準確度;二是這種方法以人的視覺(jué)、聽(tīng)覺(jué)和協(xié)調程度為主要依據,很難標準化。為此,本設計從血壓的檢測方法著(zhù)手,采用日本松下公司高速、低功耗的MN101EF32D單片機,作為血壓計測量、控制、數據讀寫(xiě)、數據顯示的核心,可準確地采用示波法(振蕩法)測量血壓。
工作原理
示波法(振蕩法)是根據袖帶在減壓過(guò)程中,其壓力振蕩波的振幅變化包絡(luò )線(xiàn)來(lái)判定血壓的。目前比較一致的看法是當袖帶壓力振蕩波的振幅最大時(shí),袖帶的壓力就是動(dòng)脈的平均壓。動(dòng)脈的收縮壓對應于振幅包絡(luò )線(xiàn)的第一個(gè)拐點(diǎn),舒張壓對應于包絡(luò )線(xiàn)的第二個(gè)拐點(diǎn)。
硬件設計
系統基本工作原理如圖1所示。壓力傳感器輸出的電壓信號首先通過(guò)低通濾波器濾波,之后由運放電路將信號轉化為適合單片機的輸入信號,最后將模擬的采樣信號經(jīng)過(guò)MN101EF32D單片機轉化為數字量。程序對采集的數據進(jìn)行數字濾波后分析,計算出人體血壓的兩個(gè)關(guān)鍵指標"舒張壓"和"收縮壓",之后單片機立即將數據存儲到外部存儲器中,并將這些重要數據顯示在LCD上。

傳感器介紹及其外圍電路的設計
該血壓計使用的傳感器為MPS-3100-006G壓阻式壓力傳感器,是由四個(gè)等值電阻組成的惠式電橋,其輸出電壓和輸入壓力成正比,理想狀態(tài)下當壓力輸入時(shí),電阻值就跟著(zhù)改變,但實(shí)際上溫度的改變也會(huì )影響其阻值輸出結果。另外,由于晶體和電路設計制作的誤差,加上封裝過(guò)程等方面的影響,零點(diǎn)偏移不是零。所以必須由外加元件來(lái)進(jìn)行個(gè)別溫度補償電路校正。其重要指標如下:
a、傳感器測定范圍:5.8~15 PSIG
b、操作溫度范圍:?40~85 ℃
c、驅動(dòng)電流:1.5~3mA
d、驅動(dòng)電壓:5~15V
e、零點(diǎn)漂移:?25~25mV
f、電阻溫度系數為:0.2%/℃
因為血壓信號取自手臂,測量的信號容易受袖帶的位置、手臂的挪動(dòng)而帶來(lái)的干擾。根據這些專(zhuān)業(yè)特點(diǎn),要求系統具備高輸入阻抗、高增益、高共模抑制比、低噪聲以及低漂移等特征。如圖2所示,圖中的T1即為MPS-3100-006G壓阻式壓力傳感器。整個(gè)電路首先將壓力信號轉換為電壓信號,然后進(jìn)行放大濾波。圖中U1、U2為有源運放LM324,它的輸入阻抗很高。壓力傳感器的信號通過(guò)放大后,并通過(guò)調節VR1的大小來(lái)改變運放的閉環(huán)增益,以調節為適應于A(yíng)/D的電壓輸入范圍。U1運放回路用來(lái)測量袖帶中的壓力,測量的數據用來(lái)供MCU分析并控制對袖帶充氣和放氣的速度。另外U2運放回路是將通過(guò)C11電容隔直的交流信號放大,此回路測量的是人體的脈搏波。兩個(gè)回路的采集數據構成了血壓計各個(gè)指標的重要計算參數。

MN101EF32D的特性
MN101EF32D是松下(Panasonic)公司于2008年初推出的產(chǎn)品,MN101Exx系列8位單片機復合了多功能的外圍功能,具有靈活而最優(yōu)化的硬件結構,簡(jiǎn)潔而高效的指令體系,充分實(shí)現經(jīng)濟性和高速性。
MN101E32D型單片機,內置64KB Flash、4KB RAM,具備6個(gè)外部中斷、20個(gè)內部中斷(包括NMI)、9個(gè)定時(shí)器計數器、3個(gè)串行接口、8路A/D轉換器、32×4段LCD驅動(dòng)器、監視定時(shí)器、單系統的數據自動(dòng)傳送功能、同步輸出功能以及蜂鳴器輸出等外圍功能。最小指令執行時(shí)間可達50ns,封裝為64引腳LQFP。本血壓計使用MN101EF32D的功能大致如下:
a、10位A/D采樣,用于靜態(tài)壓力及脈搏波的測量。
b、LCD顯示控制器,直接驅動(dòng)23*4段的液晶顯示器,顯示測量的過(guò)程及結果。
c、定時(shí)器功能,用于定時(shí)A/D采樣數據并計算自動(dòng)關(guān)機時(shí)間。
d、采用數字信號處理的技術(shù)對A/D采樣的信號進(jìn)行處理,主要有數字低通濾波和相關(guān)的計算。
e、電源開(kāi)啟采用硬件控制的方法,電源關(guān)閉采用軟件控制的方法,關(guān)機時(shí)除了穩壓模塊外,其它芯片處于斷電狀態(tài),功耗極低。
f、測量時(shí)可以選擇mmHg和Kpa作為主顯示方式,測量精度高,達到靜態(tài)1mmHg、動(dòng)態(tài)3mmHg的測量精度。由于采用鐵電存儲器作為存儲媒介,數據的保存時(shí)間很長(cháng)。
MN101EF32D與外部串行鐵電存儲器的硬件連接
在選擇外部存儲器時(shí),由于考慮到要長(cháng)期反復擦除、寫(xiě)入所設置的工作參數和測量到的重要信息,并保存大量的歷史數據,因此必須使用容量較大的靜態(tài)存儲器,以便寫(xiě)入盡可能多的數據信息并保證掉電后數據不丟失。由于EEPROM本身的設計工藝。壽命有限,而且寫(xiě)入的時(shí)間較長(cháng),因此不適合用于電池供電的系統。血壓計需要保存的數據設計依次為收縮壓(2個(gè)字節)、舒張壓(2個(gè)字節)、平均壓(2個(gè)字節)、脈搏(2個(gè)字節)、每次記錄的時(shí)間(5個(gè)字節)等,每次測量需要13字節存儲數據。假設每天測量4次,需要13×4=52字節,血壓計能夠保存7天的數據則需要364字節,故選用"鐵電"的24cL04。當打開(kāi)血壓計使用的時(shí)候,單片機在其PA0口模擬出IIC總線(xiàn)的SCL,并輸入給外部存儲器24cL04的SCL引腳,同時(shí)PA1口與24cL04的SDA口進(jìn)行數據交換,將有用的數據顯示在LCD上。
電源處理模塊及其相關(guān)電路設
本血壓計選用2節7號電池作為電源的輸入。為了達到較好的供電質(zhì)量,在此電路中選擇了DC/DC升壓芯片RN5RK331A,將2節串聯(lián)的1.5伏7號電池構成的3V左右的電壓升到3.3V,供給系統中的模擬電路電源,也作為數字電路的正電源供給MCU(如圖3所示)?紤]到氣泵、氣閥如果與模擬電路、數字電路直接共用一個(gè)電源,會(huì )引入比較大的干擾,從而影響壓力傳感器、運放以及MCU的正常工作,所以設計成氣泵、氣閥不與其它器件接在一起,直接由電池供電。

另外,血壓計的重要采集數據通過(guò)運放放大的袖帶氣壓和隔直后的脈搏波,由于它們都是通過(guò)微小的信號放大后得到的,所以A/D轉換的設計也極為重要。系統采用智能充氣測量、自動(dòng)降壓,在降壓的過(guò)程中進(jìn)行測量。由于在氣閥工作降壓的時(shí)候,電源受到波動(dòng),如果用系統電源直接拿來(lái)作為A/D的參考電壓基準,必然會(huì )給測量帶來(lái)誤差。采用National Semiconductor的LM385作為A/D轉換的電壓基準連接到芯片的VREF+引腳,確保采集的數據轉換準確。
LCD顯示模塊的設計
如圖4、5所示,為了使用戶(hù)更為方便、簡(jiǎn)單地使用本系統,采用LCD顯示。


松下的MN101EF32D芯片內置了LCD驅動(dòng)模塊,可以直接驅動(dòng)LCD。先初始化LCD方式控制寄存器1(LCDMD),它是8位寄存器,用來(lái)指定LCD時(shí)鐘、LCD顯示的ON/OFF、顯示占空比等。
系統軟件設計
軟件的主要流程如下:
上電后,首先完成系統的初始化工作。單片機開(kāi)始給氣泵供電,讓袖帶迅速充氣至被測者收縮壓以上約30mmHg左右。之后單片機通過(guò)1路A/D開(kāi)始采集袖帶的氣壓,并根據袖帶內氣壓下降的速度來(lái)控制排氣閥排氣,使袖帶內勻速降壓(3~5mmHg /s)。與此同時(shí),另外1路A/D開(kāi)始采集經(jīng)過(guò)隔直的脈搏波。當脈搏波的振幅最大時(shí),袖帶的壓力就是動(dòng)脈的平均壓。動(dòng)脈的收縮壓對應于振幅包絡(luò )線(xiàn)的第一個(gè)拐點(diǎn),舒張壓對應于包絡(luò )線(xiàn)的第二個(gè)拐點(diǎn)。
軟件主要細分為以下3個(gè)重要模塊:
一)勻速降壓控制模塊
盡管氣閥有自動(dòng)緩慢放氣的特點(diǎn),但為了使袖帶迅速充氣至被測者收縮壓以上30mmHg左右后勻速降壓(3~5mmHg /s),而不能用普通的處理方法,因為整個(gè)測量過(guò)程中容易受到外界震動(dòng)的影響,如人為的震動(dòng)袖帶、氣管的震動(dòng)、人的身體運動(dòng)等,另外氣管的剛性度也會(huì )影響到袖帶內氣壓微弱的變化。所以袖帶內的壓力降低的速度與氣閥開(kāi)關(guān)的頻率為非線(xiàn)形關(guān)系。
本設計采用了PID算法來(lái)控制氣閥的開(kāi)關(guān)時(shí)間來(lái)確保袖帶以3~5mmHg /s的速度勻速降壓。受到單片機的處理速度和RAM資源的限制,這里不采用浮點(diǎn)數運算,而將所有參數全部用整數,最后再除以2N(相當于移位),作類(lèi)似定點(diǎn)數運算,可大大提高運算速度。最終賦值給定時(shí)器,來(lái)控制氣閥的開(kāi)啟時(shí)間,從而保證降壓的速度恒定。
在PID算法中三個(gè)基本的參數Kp、Ki、Kd的設定與調整是比較難的部分,根據這些參數的作用原理,總結調整方法大致如下:
1、壓力很快就降到目標值,但壓力降的太多:
a)比例系數太大;
b)微分系數過(guò);
2、壓力下降達不到目標值:
a)比例系數過(guò);
b)積分系數過(guò);
3、基本上能夠控制在目標上,但上下偏差較大,且經(jīng)常波動(dòng)
a)微分系數過(guò);
b)積分系數過(guò)大;
二)信號處理模塊
本血壓計測量信號為2路,MPS-3100-006G壓力傳感器的信號首先進(jìn)行低通濾波處理,排除因外界干擾造成的信號讀數的誤差,之后放大送AD1,作為靜態(tài)血壓信號;隔直后經(jīng)再次放大送AD2,作為脈搏波信號。由于MN101EF32D的A/D為10位,因此最高精度可達1/1024。為了最大限度地利用A/D轉換的采樣速度,用中斷來(lái)實(shí)現A/D轉換后的數據處理。當A/D轉換完畢,在中斷程序中,用防脈沖干擾移動(dòng)平均值法來(lái)實(shí)現簡(jiǎn)單有效的數字濾波,使測量更加準確。具體做法為在一次定時(shí)中斷內連續進(jìn)行5次A/D轉換,去掉最大值和最小值,剩余3個(gè)數據求算術(shù)平均值,該算術(shù)平均值作為此次的A/D轉換結果。
三)計算血壓模塊
袖帶氣壓和脈搏波經(jīng)信號處理模塊的處理后,得出如圖6所示的數據。圖中的下方為被測者的脈搏波,上方為血壓計升壓和壓降過(guò)程中的袖帶壓力。在此基礎上分析信號,供收縮壓、舒張壓、平均壓和心率的計算。單片機在測量過(guò)程中已經(jīng)存儲各個(gè)脈搏波的峰值,以及每個(gè)脈搏波的間隔時(shí)間。

收縮壓判據的確定采用最大振幅法,即在放氣過(guò)程中脈搏波幅度包絡(luò )線(xiàn)的上升段,當某一個(gè)脈搏波的幅度Ui與最大幅度Um(平均壓)之比剛剛大于Ks時(shí),就認為此時(shí)對應的氣袖壓力為收縮壓。
Ps=P/Ui=Ks*Um
舒張壓判據的確定也是用最大振幅法來(lái)判定的,不過(guò)是在脈搏波幅度包絡(luò )線(xiàn)的下降段,當某一個(gè)脈搏波的幅度Ui與最大幅度Um(平均壓)之比剛剛小于Kd時(shí),就認為此時(shí)對應的氣袖壓力為舒張壓。
Pd=P/Ui=Kd*Um
先用經(jīng)驗參數Ks = 0.54和Kd = 0.72來(lái)計算,經(jīng)測試后再進(jìn)行修正。
心率即為脈搏波的周期,具體也為算術(shù)平均值做法。
結論
基于MN101EF32D單片機的血壓計,充分利用了該芯片本身的功能,具備電路簡(jiǎn)單、功耗低、電源要求單一、精度高以及實(shí)用性強等特點(diǎn),有著(zhù)廣闊的市場(chǎng)前景。 |