<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 醫(yī)療電子 > 設(shè)計(jì)應(yīng)用 > 基于MN101EF32D單片機(jī)實(shí)現(xiàn)示波法測(cè)量血壓

          基于MN101EF32D單片機(jī)實(shí)現(xiàn)示波法測(cè)量血壓

          作者: 時(shí)間:2017-06-07 來源:網(wǎng)絡(luò) 收藏

           
           引言

          本文引用地址:http://www.ex-cimer.com/article/201706/350219.htm

            水銀存在一些固有的缺點(diǎn):一是放氣的快慢對(duì)讀數(shù)有直接影響,國際標(biāo)準(zhǔn)放氣速度為每秒3~5mmHg,而不同的醫(yī)生放氣有快有慢,會(huì)影響測(cè)量的準(zhǔn)確度;二是這種方法以人的視覺、聽覺和協(xié)調(diào)程度為主要依據(jù),很難標(biāo)準(zhǔn)化。為此,本設(shè)計(jì)從血壓的檢測(cè)方法著手,采用日本松下公司高速、低功耗的,作為測(cè)量、控制、數(shù)據(jù)讀寫、數(shù)據(jù)顯示的核心,可準(zhǔn)確地采用(振蕩法)測(cè)量血壓。

            工作原理

            (振蕩法)是根據(jù)袖帶在減壓過程中,其壓力振蕩波的振幅變化包絡(luò)線來判定血壓的。目前比較一致的看法是當(dāng)袖帶壓力振蕩波的振幅最大時(shí),袖帶的壓力就是動(dòng)脈的平均壓。動(dòng)脈的收縮壓對(duì)應(yīng)于振幅包絡(luò)線的第一個(gè)拐點(diǎn),舒張壓對(duì)應(yīng)于包絡(luò)線的第二個(gè)拐點(diǎn)。

            硬件設(shè)計(jì)

            系統(tǒng)基本工作原理如圖1所示。壓力傳感器輸出的電壓信號(hào)首先通過低通濾波器濾波,之后由運(yùn)放電路將信號(hào)轉(zhuǎn)化為適合的輸入信號(hào),最后將模擬的采樣信號(hào)經(jīng)過轉(zhuǎn)化為數(shù)字量。程序?qū)Σ杉臄?shù)據(jù)進(jìn)行數(shù)字濾波后分析,計(jì)算出人體血壓的兩個(gè)關(guān)鍵指標(biāo)舒張壓和收縮壓,之后單片機(jī)立即將數(shù)據(jù)存儲(chǔ)到外部存儲(chǔ)器中,并將這些重要數(shù)據(jù)顯示在LCD上。

            

            傳感器介紹及其外圍電路的設(shè)計(jì)

            該使用的傳感器為MPS-3100-006G壓阻式壓力傳感器,是由四個(gè)等值電阻組成的惠式電橋,其輸出電壓和輸入壓力成正比,理想狀態(tài)下當(dāng)壓力輸入時(shí),電阻值就跟著改變,但實(shí)際上溫度的改變也會(huì)影響其阻值輸出結(jié)果。另外,由于晶體和電路設(shè)計(jì)制作的誤差,加上封裝過程等方面的影響,零點(diǎn)偏移不是零。所以必須由外加元件來進(jìn)行個(gè)別溫度補(bǔ)償電路校正。其重要指標(biāo)如下:

            a、傳感器測(cè)定范圍:5.8~15 PSIG

            b、操作溫度范圍:?40~85 ℃

            c、驅(qū)動(dòng)電流:1.5~3mA

            d、驅(qū)動(dòng)電壓:5~15V

            e、零點(diǎn)漂移:?25~25mV

            f、電阻溫度系數(shù)為:0.2%/℃

            因?yàn)檠獕盒盘?hào)取自手臂,測(cè)量的信號(hào)容易受袖帶的位置、手臂的挪動(dòng)而帶來的干擾。根據(jù)這些專業(yè)特點(diǎn),要求系統(tǒng)具備高輸入阻抗、高增益、高共模抑制比、低噪聲以及低漂移等特征。如圖2所示,圖中的T1即為MPS-3100-006G壓阻式壓力傳感器。整個(gè)電路首先將壓力信號(hào)轉(zhuǎn)換為電壓信號(hào),然后進(jìn)行放大濾波。圖中U1、U2為有源運(yùn)放LM324,它的輸入阻抗很高。壓力傳感器的信號(hào)通過放大后,并通過調(diào)節(jié)VR1的大小來改變運(yùn)放的閉環(huán)增益,以調(diào)節(jié)為適應(yīng)于A/D的電壓輸入范圍。U1運(yùn)放回路用來測(cè)量袖帶中的壓力,測(cè)量的數(shù)據(jù)用來供MCU分析并控制對(duì)袖帶充氣和放氣的速度。另外U2運(yùn)放回路是將通過C11電容隔直的交流信號(hào)放大,此回路測(cè)量的是人體的脈搏波。兩個(gè)回路的采集數(shù)據(jù)構(gòu)成了血壓計(jì)各個(gè)指標(biāo)的重要計(jì)算參數(shù)。

            

           是松下(Panasonic)公司于2008年初推出的產(chǎn)品,MN101Exx系列8位單片機(jī)復(fù)合了多功能的外圍功能,具有靈活而最優(yōu)化的硬件結(jié)構(gòu),簡(jiǎn)潔而高效的指令體系,充分實(shí)現(xiàn)經(jīng)濟(jì)性和高速性。

            MN101E32D型單片機(jī),內(nèi)置64KB Flash、4KB RAM,具備6個(gè)外部中斷、20個(gè)內(nèi)部中斷(包括NMI)、9個(gè)定時(shí)器計(jì)數(shù)器、3個(gè)串行接口、8路A/D轉(zhuǎn)換器、32×4段LCD驅(qū)動(dòng)器、監(jiān)視定時(shí)器、單系統(tǒng)的數(shù)據(jù)自動(dòng)傳送功能、同步輸出功能以及蜂鳴器輸出等外圍功能。最小指令執(zhí)行時(shí)間可達(dá)50ns,封裝為64引腳LQFP。本血壓計(jì)使用MN101EF32D的功能大致如下:

            a、10位A/D采樣,用于靜態(tài)壓力及脈搏波的測(cè)量。

            b、LCD顯示控制器,直接驅(qū)動(dòng)23*4段的液晶顯示器,顯示測(cè)量的過程及結(jié)果。

            c、定時(shí)器功能,用于定時(shí)A/D采樣數(shù)據(jù)并計(jì)算自動(dòng)關(guān)機(jī)時(shí)間。

            d、采用數(shù)字信號(hào)處理的技術(shù)對(duì)A/D采樣的信號(hào)進(jìn)行處理,主要有數(shù)字低通濾波和相關(guān)的計(jì)算。

            e、電源開啟采用硬件控制的方法,電源關(guān)閉采用軟件控制的方法,關(guān)機(jī)時(shí)除了穩(wěn)壓模塊外,其它芯片處于斷電狀態(tài),功耗極低。

            f、測(cè)量時(shí)可以選擇mmHg和Kpa作為主顯示方式,測(cè)量精度高,達(dá)到靜態(tài)1mmHg、動(dòng)態(tài)3mmHg的測(cè)量精度。由于采用鐵電存儲(chǔ)器作為存儲(chǔ)媒介,數(shù)據(jù)的保存時(shí)間很長(zhǎng)。

            MN101EF32D與外部串行鐵電存儲(chǔ)器的硬件連接

            在選擇外部存儲(chǔ)器時(shí),由于考慮到要長(zhǎng)期反復(fù)擦除、寫入所設(shè)置的工作參數(shù)和測(cè)量到的重要信息,并保存大量的歷史數(shù)據(jù),因此必須使用容量較大的靜態(tài)存儲(chǔ)器,以便寫入盡可能多的數(shù)據(jù)信息并保證掉電后數(shù)據(jù)不丟失。由于EEPROM本身的設(shè)計(jì)工藝。壽命有限,而且寫入的時(shí)間較長(zhǎng),因此不適合用于電池供電的系統(tǒng)。血壓計(jì)需要保存的數(shù)據(jù)設(shè)計(jì)依次為收縮壓(2個(gè)字節(jié))、舒張壓(2個(gè)字節(jié))、平均壓(2個(gè)字節(jié))、脈搏(2個(gè)字節(jié))、每次記錄的時(shí)間(5個(gè)字節(jié))等,每次測(cè)量需要13字節(jié)存儲(chǔ)數(shù)據(jù)。假設(shè)每天測(cè)量4次,需要13×4=52字節(jié),血壓計(jì)能夠保存7天的數(shù)據(jù)則需要364字節(jié),故選用鐵電的24cL04。當(dāng)打開血壓計(jì)使用的時(shí)候,單片機(jī)在其PA0口模擬出IIC總線的SCL,并輸入給外部存儲(chǔ)器24cL04的SCL引腳,同時(shí)PA1口與24cL04的SDA口進(jìn)行數(shù)據(jù)交換,將有用的數(shù)據(jù)顯示在LCD上。

            

            電源處理模塊及其相關(guān)電路設(shè)計(jì)

            本血壓計(jì)選用2節(jié)7號(hào)電池作為電源的輸入。為了達(dá)到較好的供電質(zhì)量,在此電路中選擇了DC/DC升壓芯片RN5RK331A,將2節(jié)串聯(lián)的1.5伏7號(hào)電池構(gòu)成的3V左右的電壓升到3.3V,供給系統(tǒng)中的模擬電路電源,也作為數(shù)字電路的正電源供給MCU(如圖3所示)。考慮到氣泵、氣閥如果與模擬電路、數(shù)字電路直接共用一個(gè)電源,會(huì)引入比較大的干擾,從而影響壓力傳感器、運(yùn)放以及MCU的正常工作,所以設(shè)計(jì)成氣泵、氣閥不與其它器件接在一起,直接由電池供電。

            另外,血壓計(jì)的重要采集數(shù)據(jù)通過運(yùn)放放大的袖帶氣壓和隔直后的脈搏波,由于它們都是通過微小的信號(hào)放大后得到的,所以A/D轉(zhuǎn)換的設(shè)計(jì)也極為重要。系統(tǒng)采用智能充氣測(cè)量、自動(dòng)降壓,在降壓的過程中進(jìn)行測(cè)量。由于在氣閥工作降壓的時(shí)候,電源受到波動(dòng),如果用系統(tǒng)電源直接拿來作為A/D的參考電壓基準(zhǔn),必然會(huì)給測(cè)量帶來誤差。采用National Semiconductor的LM385作為A/D轉(zhuǎn)換的電壓基準(zhǔn)連接到芯片的VREF+引腳,確保采集的數(shù)據(jù)轉(zhuǎn)換準(zhǔn)確。

            LCD顯示模塊的設(shè)計(jì)

            如圖4、5所示,為了使用戶更為方便、簡(jiǎn)單地使用本系統(tǒng),采用LCD顯示。

            松下的MN101EF32D芯片內(nèi)置了LCD驅(qū)動(dòng)模塊,可以直接驅(qū)動(dòng)LCD。先初始化LCD方式控制寄存器1(LCDMD),它是8位寄存器,用來指定LCD時(shí)鐘、LCD顯示的ON/OFF、顯示占空比等。

          軟件的主要流程如下:

            上電后,首先完成系統(tǒng)的初始化工作。單片機(jī)開始給氣泵供電,讓袖帶迅速充氣至被測(cè)者收縮壓以上約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)脈的收縮壓對(duì)應(yīng)于振幅包絡(luò)線的第一個(gè)拐點(diǎn),舒張壓對(duì)應(yīng)于包絡(luò)線的第二個(gè)拐點(diǎn)。

            軟件主要細(xì)分為以下3個(gè)重要模塊:

            一)勻速降壓控制模塊

            盡管氣閥有自動(dòng)緩慢放氣的特點(diǎn),但為了使袖帶迅速充氣至被測(cè)者收縮壓以上30mmHg左右后勻速降壓(3~5mmHg /s),而不能用普通的處理方法,因?yàn)檎麄€(gè)測(cè)量過程中容易受到外界震動(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ù)過大;

            二)信號(hào)處理模塊

            本血壓計(jì)測(cè)量信號(hào)為2路,MPS-3100-006G壓力傳感器的信號(hào)首先進(jìn)行低通濾波處理,排除因外界干擾造成的信號(hào)讀數(shù)的誤差,之后放大送AD1,作為靜態(tài)血壓信號(hào);隔直后經(jīng)再次放大送AD2,作為脈搏波信號(hào)。由于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)簡(jiǎn)單有效的數(shù)字濾波,使測(cè)量更加準(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)信號(hào)處理模塊的處理后,得出如圖6所示的數(shù)據(jù)。圖中的下方為被測(cè)者的脈搏波,上方為血壓計(jì)升壓和壓降過程中的袖帶壓力。在此基礎(chǔ)上分析信號(hào),供收縮壓、舒張壓、平均壓和心率的計(jì)算。單片機(jī)在測(cè)量過程中已經(jīng)存儲(chǔ)各個(gè)脈搏波的峰值,以及每個(gè)脈搏波的間隔時(shí)間。

            


            收縮壓判據(jù)的確定采用最大振幅法,即在放氣過程中脈搏波幅度包絡(luò)線的上升段,當(dāng)某一個(gè)脈搏波的幅度Ui與最大幅度Um(平均壓)之比剛剛大于Ks時(shí),就認(rèn)為此時(shí)對(duì)應(yīng)的氣袖壓力為收縮壓。

            Ps=P/Ui=Ks*Um

            舒張壓判據(jù)的確定也是用最大振幅法來判定的,不過是在脈搏波幅度包絡(luò)線的下降段,當(dāng)某一個(gè)脈搏波的幅度Ui與最大幅度Um(平均壓)之比剛剛小于Kd時(shí),就認(rèn)為此時(shí)對(duì)應(yīng)的氣袖壓力為舒張壓。

            Pd=P/Ui=Kd*Um

            先用經(jīng)驗(yàn)參數(shù)Ks = 0.54和Kd = 0.72來計(jì)算,經(jīng)測(cè)試后再進(jìn)行修正。

            心率即為脈搏波的周期,具體也為算術(shù)平均值做法。

            結(jié)論

            基于MN101EF32D單片機(jī)的血壓計(jì),充分利用了該芯片本身的功能,具備電路簡(jiǎn)單、功耗低、電源要求單一、精度高以及實(shí)用性強(qiáng)等特點(diǎn),有著廣闊的市場(chǎng)前景。

          .



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();