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