隨著生活水平的不斷提高以及城市老齡化比例的提高,醫療檢測設備的家庭化逐漸成為了趨勢。其中家用電子血壓計就是典型的家庭醫療檢測設備之一。血壓計大致上可分為兩種:一是水銀式血壓計,其優點為數值穩定,其缺點為:無法一人自行操作,且必須專業醫護人員操作,肉限觀察誤差極大主觀性強,體積較大不易攜帶。二是電子式血壓計其優點為:使用簡易,可一人獨自操作,測量值便于記錄,體積輕巧便于攜帶。電子式血壓計具備了諸多優點,越來越受到普通家庭的歡迎。本文介紹了以PIC16F877為控制核心。輔以氣壓傳感器FGN-605PGSR和用作傳感器與MCU之間模擬信號處理的LM324/331模擬電路以及LCD驅動芯片HD44780A,實現了家用電子血壓計的設計。該設計盡量將系統使用的芯片和被動組件數量降低,故具有低成本小型化低功耗的特點。 1 PIC16F877單片機 PIC16F877單片機美國微芯(Micro Chip)公司推出的8位CMOS FLASH 28/40引腳的單片機。單片機采用RISC CPU,有35條單字節的指令,即保證了必要的指令效率也兼具了控制芯片成本和簡化編程復雜度。其主要特點如下: 寬工作電壓為2.0~5.5 V; 時鐘周期為0~20 MHz指令周期為0~5 MHz; 片內FLASH ROM為8 k Words,RAM為368 B,E2PROM為256 B; 低功耗工作電流<0.6 mA@3V時鐘周期為4 MHz; 2個8位和1個16位定時器; 2個16位捕捉/比較模塊或2個10位PWM模塊; 10位多信道ADC; 串行通信口SPI,I2C,USART及8位并行通信口。 2 外圍組件介紹 FGN-605PGSR是日本專業傳感器供貨商fujikura公司推出的專門用于血壓計的氣壓傳感器,其尺寸為10.3 mm×7 mm×9.5 mm,可測壓力范圍-34.47~+34.47 kPa符合所要量測的壓力范圍。FGN-605PGSR原理是在恒流源供電的文氏電橋上的電阻隨氣壓變化而輸出雙端差分電壓信號。LM324是常用的4運放14腳雙列直插集成電路,LM311是常用的4比較器14腳雙列直插集成電路,其具有電源電壓范圍寬,靜態功耗小,可單電源使用,低價等優點。HD44780A是日立推出的點陣字符液晶顯示控制器和驅動器,可顯示16字×1行或16字×2行或20字×4行之文字模式,每個字為5*7點矩陣字型。 3 電子血壓計工作原理 3.1 血壓測量原理定義 血壓的概念就是血液流經血管壁時的壓力。由心臟出來的血液,需要有推力,才能繞行身體一周,心臟就是借著不停的收縮、放松,將血液推送前進。血壓有兩種,一是收縮壓:是當心臟收縮把血液打到血管所測得的血壓,二是舒張壓:是心臟在不收縮所得的壓力。當袖帶的壓力等于血壓時,血液開始可以流通而產生所謂的袖帶聲,這時候也就是收縮壓,必須開始從這里做記錄,直到最后當袖帶聲沒有的時候,此點即為舒張壓。 3.2 系統工作原理 系統框圖如圖2所示。系統由壓力傳感器(FGN-605PGSR),恒流源(LM324×1),差分放大(LM324×3),0.8 Hz二階高通濾波(LM324×1),200倍放大(LM324×2),38Hz二階低通濾波(LM324×1),血壓脈沖觸發(LM311×1),液晶驅動器(HD44780A)和單片機(PIC16F877)組成。 單片機主要工作為:PWM輸出控制氣泵充氣漏氣調整袖帶內氣壓;一路ADC采樣袖帶內氣壓直流分量以便取得收縮壓和舒張壓;一路ADC采樣袖帶內氣壓交流分量經分析計算分析后確定收縮壓和舒張壓的瞬態時間位置;接收血壓脈沖信號觸發ADC工作;將計算出的收縮壓和舒張壓結果輸出至液晶驅動器顯示。 一次測量血壓的過程為:按激活鍵單片機PWM輸出控制氣泵充氣至200 mmHg高,慢慢以每秒約下降5 mmHg的速度放氣。壓力傳感器輸出信號經差分放大器后變單端信號一路送入單片機ADC監視直流分量,另一路送入0.8 Hz二階高通濾波器濾除直流分量;交流分量經200倍放大后輸入38 Hz二階低通濾波器去除電源及皮膚與袖帶摩擦的高頻噪聲和工頻干擾并將此信號維持在0~5 V之問,濾波后的交流分量一路送入血壓脈沖觸發然后觸發單片機ADC工作,另一路送入單片機ADC計算幅值,先找出最大振幅值Amax,在往前找幅值為0.5Amax的瞬態位置對應血壓直流分量即為收縮壓,往后找幅值為0.8Amax的瞬態位置對應血壓直流分量即為舒張壓,將計算出的收縮壓和舒張壓結果輸出至液晶驅動器顯示。血壓信號及收縮壓和舒張壓位置如圖3所示。 4 硬件設計 4.1 PIC16F877單片機 時鐘輸入 外接有源晶振通過OSC1/CLKIN(Pin13)輸入8 MHz主頻。 電源輸入 系統電源為9 V電池,通過外部7805降壓到直流5 V輸入VDD(Pin11,32)。 按鍵輸入 按鍵低電平脈沖通過RB0/INT(Pin33)輸入,以中斷方式觸發一次測量血壓的過程,中斷服務子程序有消除按鍵抖動的處理。 氣泵驅動 RC1(Pin33)為內部PWM模塊的輸出信道,PWM驅動氣泵充氣和放氣。 喇叭驅動 RC3(Pin37)驅動喇叭輸出測量血壓時的提示和過程聲音。 液晶驅動控制 對HD44780A輸出指令和數據進行顯示控制,RC.3~5(Pin18,23,24)接HD44780A控制線RS,R/W,EN;RD.0~7(Pin19~22,27~30)接HD44780A數據總線DB0~7。 4.2 提供傳感器偏置的恒流源 如圖4所示,運放LM324-11輸入正端為可設定的直流偏置電壓Vref,LM324-11輸出端和輸入負端提供了壓力傳感器電橋恒流偏置的回路。 回路電流為: 4.3 差分轉單端輸出的放大電路 如圖4所示,經過兩個運放LM324-12,13隔離,LM324-14差分放大后其輸出電壓為: 4.4 0.8 Hz二階高通巴特沃思濾波器 采用二階巴特沃思二階高通濾波,運放LM324-24接成跟隨器放大倍數為1,高通濾波器的傳遞函數為: 取二階巴特沃思網絡函數的系數a11=1.414,截止角頻率ωc=0.8×2π,取C1=C2=0.1μF。 可以計算得到: 4.5 200倍放大電路 如圖4所示,用兩個級運放LM324-21,22搭成的比例放大電路,第一級為20倍放大,第二級為10倍放大。 4.6 38Hz二階低通巴特沃思濾波器 采用二階巴特沃思二階低通濾波,運放LM324-23接成跟隨器,放大倍數為1,低通濾波器的傳遞函數為: 取二階巴特沃茲網絡函數的系數a11=1.414,截止角頻率ωc=38×2 ,取C3=C4=0.1μF。 可以由以下計算得到: 4.7 血壓脈沖觸發 利用比較器LM311設定一定的電壓門限,將血壓交流信號形成脈沖,輸入PIC16F877 RC2的CCP1觸發ADC信道1工作。 5 單片機軟件設計 5.1 初始化工作 上電后對單片機寄存器,SRAM,特殊功能的設置如PWM,輸入輸出端口的設置做必要的初始化;對HD44780A輸出指令關閉顯示。 5.2 按鍵輸入 未按鍵時RB0/INT(Pin33)端口為大電阻上拉狀態,有按鍵時低電平脈沖通過此端口輸入,中斷方式觸發一次測量血壓的過程,進入中斷服務子程序后每隔10 ms判斷一次端口狀態,連續讀到3次低電平,則判斷按鍵有效,這是消除按鍵抖動的處理。判斷按鍵有效后對HD44780A輸出指令顯示開始測試畫面。 5.3 氣泵充氣 判斷按鍵有效后,PWM輸出對氣泵充氣。停止充氣的條件有兩個必須同時滿足:一是ADC信道0測到的血壓直流分量是否大于4 V;二是ADC信道1測到血壓交流分量是否介于1.6~4.9 V之間。滿足此條件表示氣壓已足夠,可停止充氣,一般此時氣壓略大于200 mmHg。 5.4 測量血壓 PWM輸出勻速放氣。心跳脈沖通過CCP1觸發ADC信道1采樣血壓交流分量測出每個脈沖的峰峰值,同時計算出這個脈沖時間段內ADC信道0測到的血壓直流分量的平均值。把峰峰值和直流平均值作為一對數據記錄起來,每個心跳脈沖會對應一對數據。 5.5 計算收縮壓和舒張壓 ADC信道0測到的血壓直流分量是否小于1 V表示氣壓低于50 mmHg,是單次測量結束的標志。然后開始統計記錄下來的若干組峰峰值和直流平均值,找出峰峰值最大的值Amax,在往前找峰峰值最接近0.5Amax的一對數據其中血壓直流分量即為收縮壓,往后找峰峰值最接近0.8Amax的一對數據其中血壓直流分量即為舒張壓。判斷測出收縮壓和舒張壓的值落在合理的數據范圍內,如:收縮壓應在80~190 mmHg范圍內和舒張壓50~120 mmHg范圍內。將計算出落在合理數據范圍內的收縮壓和舒張壓結果輸出至液晶驅動器顯示。 5.6 ADC數據處理 ADC信道1測血壓交流分量的采樣率為2 kHz,其取值原由為:心跳脈沖頻率上限約為2 Hz,定義峰值出現的時間約占心跳脈沖周期的1%,在峰值附近ADC測量10次,所以ADC的采樣率=2 Hz/1%×10=2 kHz。因為ADC測量到數據含有電源及皮膚與袖帶摩擦的高頻噪聲,必須經過ADC多次測量才可將噪聲造成的異常數據去除,這里采用的做法將多次測量的數據先做比較先去掉個別與大多數數據相差較大的數據,在剩下的數據中取偏大(小)的幾個數據做平均從而得到高(低)峰值。本設計將PIC16F877設置單次數模轉換時間為48μs,具體條件為FUSC=8 MHz,TOSC=125 ns,TAD=32TOSC,故單次數模準轉換時間TADC=12TAD=12×32×125 ns=48μs。實際上在數模轉換前還必須保留20 μs采樣保持時間。這種設置采樣率的最大值可做到1/(48μs+20 μs)=14.7 kHz遠大于要求的2 kHz,故滿足要求。ADC信道0測血壓直流分量模準轉換時間設置與ADC信道1相同,每次采樣緊接著ADC信道1采樣后進行。 5.7 異常處理 (1) 充氣時在限定時間內未滿足氣壓足夠高即停止充氣的條件,則先放氣然后重新充氣。連續3次出現此異常,則HD44780A輸出錯誤信息。 (2) 放氣時在限定時間內未滿足氣壓足夠低即停止血壓測量的條件,則放棄此次測量數據再放氣然后重新充氣并測量。連續3次出現此異常,則HD44780A輸出錯誤信息。 (3) 測量后計算出的收縮壓和舒張壓未落在合理的數據范圍內,則放棄此次測量數據再放氣然后重新充氣并測量。連續3次出現此異常,則HD44780A輸出錯誤信息。 6 結 語 電子血壓計具有低成本、小型化、低功耗、自動化程度高的優點,在使用上帶來了便攜和易操作的特點,從而使電子血壓計呈現出家用化的趨勢。本文給出了完整的攜帶式電子血壓計設計方案,并基于PIC 16F877為控制核心輔以壓力傳感器和外圍的模擬電路以及LCD驅動芯片實現了電子血壓計的設計。此設計可直接轉化為實際產品,故有較高的實用價值。 |