永利皇宫官网网址

成都市炜之峰科技有限公司是一家专业嵌入式系统开发、单片机开发、电子电路设计、开发和销售的高科技企业。产品主要应用在安防、工业控制、医疗电子、机械电子、消费性电子、电力电子以及家电控制方面,我们有丰富的开发经验,为客户提供低廉的成本、高性能的产品设计方案。公司拥有一批的高素质研发,凭着多年的经验、优秀的品质、具有竞争力的价格、准时快捷的交货期,赢的广大客户的肯定。欢迎来电咨询,联系方式:QQ:2117735231, 电话:18040300267,18227649137 网址:www.wzfhost.com

基于MSP430的脉搏血氧仪设计解决方案

上一篇 / 下一篇  2012-06-06 11:30:40 / 个人分类:数字信号处理

基于MSP430的脉搏血氧仪设计

  本文讲述基于MSP430FG437微处理器的脉搏血氧仪设计方案。通過探頭(probe)接觸手指、耳朵或者鼻子等人體組織來測量血氧飽和度、脈搏等生理指標,並將測量數據顯示在LCD上。其中使用到的傳感器同樣可用於測量心率。探頭內部包含兩個LED,一個為可見光(660nm的紅光),另一個為紅外線(940nm)。當這兩種光穿透人體後的光強度發生改變,通過計算兩種光強度的比例就可以獲得血氧含量的百分比。


一、設計方案介紹


  脈搏血氧儀作為醫療器械,用於檢測病人的血氧含量。這介紹的脈搏血氧儀能向多在測量獲得的血氧含量、心率低於正常水平的時候發出鳴聲警報。這種用途非常適用於剛出生的嬰兒以及在手術過程中的健康監測。設計方案使用超低功耗的MSP430芯片設計,這個芯片的高度集成使得設計方案不需要太多的外部元件,並且它通過減少開啟時間以及交替給兩種LED光源提供電力來降低整體的功耗。


二、工作原理


  血氧飽和度(SpO2)是血液中被氧結合的氧化血紅蛋白(HbO2)的容量占全部可結合的血紅蛋白(Hb)容量的百分比,即血液中血氧的濃度,它是呼吸循環的重要生理參數。而功能性氧飽和度(SaO2)為HbO2濃度與HbO2+Hb濃度之比。因此,監護中常用SaO2來估計SpO2的水平。


  由於血液在含氧量不同的情況下吸光率也不同,因此脈搏血氧儀採用紅光和紅外光分別照射人體組織,並通過測量透射光的強度來計算血氧飽和度的值。SaO2的定義是氧化血紅蛋白與總體血紅蛋白的比例,這種關係見公式(1)。


  根據血液被氧化程度的不同,人體組織吸收光線的多少是不同的,這種特徵是非線性的。脈搏血氧儀中所使用到的兩種波長的光,交替開啟用於測量。通過使用兩種光來進行測量有利於降低測量後的數學計算複雜程度。


  具體的計算見公式(2),λ1和λ2表示兩種光的波長。經過人體組織的光被轉換成電信號,其中,直流信號是光線經過人體組織和血管吸收之後的結果;交流信號是光線經過動脈影響之後的結果。在實踐中,SaO2和R1的關係並不是公式表現出的線性關係,因此要通過查表獲得準確的讀數。


三、電路


  圖1描述了系統的結構,兩個LED根據時分複用(time multiple)的原理,每個LED每秒被採樣500次。PIN二極管因此被兩個LED光源交替激活,其輸出信號被OA0和OA1運算放大器進行放大,ADC12對兩個運算放大器的輸出進行採樣。採樣結果由ADC12準確的進行測序,MCU軟件則負責分離紅外線和紅光。測量所獲得的SaO2和心率被顯示在LCD上,採樣的結果也可以經過RS232接口實時的傳送到電腦上。單獨的軟件就可以用圖形化的曲線顯示採樣的結果,除了MCU和四個晶體管,這個設計只需要少量的被動元件(參考圖9)。這使用兼容Nellcor的探頭,型號為520-1011N,探頭內部包含有傳感器,探頭採用D類型的九個引線的連接器。

圖1,系統結構


1、LED驅動電路


  前面提到,方案採用一個LED發射可見紅光,一個LED發射紅外線。探頭兼容Nellcor(美國醫療器械公司)的產品,其內部的兩個LED背靠背的連接在一起,並且使用H-Bridge結構的電路驅動LED,見圖2。而H-Bridge互補電路又由MSP430的端口2.2和2.3進行驅動。DAC0控制流經LED的電流,控制LED發光亮度。整體屬於時分多路複用(time multiplexed)電路。通過DAC內的軟件,外部電路可以經由引腳5和引腳10連接MSP430FG437內部12-bit的DAC0進行寄存器的管理。當這兩個引腳沒有被用於輸出DAC0信號,它們就分別設定為Hi-Z或者是低電平。晶體管的基極(base)連接下拉電阻(pulldown resistor),以保證晶體管在非工作狀態下處於關閉。

圖2.LED驅動電路


2、採樣和調節PIN二極管信號


  光二極管(photodiode)接收到光線之後產生電流,再輸入到跨阻放大器進行放大。三個內置的運算放大器中,OA0就是被用於放大上述的電流信號,由於這個電流非常微弱,因此要求OA0具有非常小的漂移電流(drift current)。


  由OA0輸出的信號包含大約1V的直流成分和小交流成分(約10mV pk-pk)。直流成分的信號是由人體組織和擴散光形成的,這部分的信號與LED發射光的強度成比例。小交流信號則由兩部分原因形成,一是在動脈(arteries )造成的血氧變化,從而造成穿透光強度變化並形成交流信號;另一個原因是50/60Hz的環境光形成的噪聲信號。交流成分正是需要提取和放大的有用信號。


  對於LED的電平控制需要保持OA0的輸出在預設的範圍內,圖3中電路就是用于完成上述任務。紅光LED和紅外線LED在這個預設範圍內分別進行控制。實際上,兩個LED的輸出誤差非常小。

圖3.輸入前端電路和LED控制電路


  在圖3中,OA1對OA0的輸出交流信號進行提取和放大。直流追蹤濾波器(DC tracking filter )提取直流信號,用於OA0的輸入偏移量(offset input,用於抵消直流成分),這樣就只有交流信號被放大。從而實現直流成分有效的過濾。OA1的偏移量(offset)也被放大並加到輸出信號中,它也會在隨後的電路被過濾掉。
集成在MSP430內部的計時器A被用於控制驅動LED的順序,並且自動開始ADC轉換。其時序圖見圖4,CCR0中斷則會使用另一種驅動順序,此時DAC12_0的控制位DAC12OPS被驅動的LED來決定其被設定還是清除。MSP430的port2用於設定開啟對應的LED。DAC12_0的數值被設定為相應的光線強度;DAC12_1被設定為直流追蹤濾波輸出。

圖4.計時器A的時序圖


  OA1將OA0輸出和DAC12_1輸出的差值進行放大。LED發射的可見光的強度經過調節,DAC12_1將為一條直線,這是因為兩個LED在OA0的輸出是相同的。ADC將自動被觸發,它進行兩個採樣,一個是用於追蹤直流信號的OA0輸出,一個是OA1輸出,它們被用於計算心率和血氧濃度。兩個採樣交替進行,通過設定ADC內部的控制寄存器中的MSC位來使用採樣計時器。為了節省功率,在一次ADC轉換結束之後,就會產生中斷告訴MCU關掉LED、清除DAC12_0。


3、交流信號的調節


  OA1的輸出由ADC進行採樣,每秒採樣1000次,也即紅光LED和紅外線LED輸出交替採樣500次。OA1的輸出必須去除殘餘的直流成分。在這採用高通數字濾波器是不切實際的,因為這要求的截止頻率很低,因此採用IIR濾波器來跟蹤直流電平。直流信號從輸出信號中剝離出來,從而得到“真實”的交流數字信號。採樣獲得的信號再經過數字濾波,去除50Hz的環境噪聲。這樣就實現了具備6Hz、-50dB衰減的低通FIR濾波器。這的輸出信號就已經非常接近於心臟的跳動。(圖5)

圖5.交流信號調節


  圖6顯示的直流追蹤濾波器為IIR濾波器,它將輸入和輸出的差額疊加在輸出信號上。如果輸入出現階躍變化(step change),輸出則在一段時間內自動調節並最終與輸入相同。變化率由係數K決定,而K由實驗室制定。因此,如果輸入包含直流信號和交流信號,將K值設定的足夠小就可以形成一個時間常數,這個時間常數與交流信號的頻率相關。這樣,在一段時間內交流信號將被消除,輸出端只追蹤輸入的直流信號。為了保證有足夠的動態範圍,在計算的時候使用雙精度(32bit),而實際只適用最重要的16bit數據。

圖6.追蹤濾波器結構


4、計算含氧度和心率


  因為兩個LED都由脈衝信號驅動,傳統的模擬信號處理並不適宜,轉而使用數字信號處理技術。採樣信號經過低通濾波移除50/60Hz的噪聲。對於每種波長的光,直流信號都被移除,而留下交流部分,因為交流信號才是真正反映動脈血氧水平。在一定數量的心跳數量上計算信號的平方平均值(即均方根值),就得到RMS數值。

圖7.R與SaO2關係


  而對於直流信號的測量是持續計算一定數量的心跳數量下的信號平均值。每個LED的驅動強度都是被控制的,因而PIN二極管上的直流電平在極小的誤差內滿足設定的目標值。在每個LED上都採取同樣的做法,最終的結果是兩個LED的直流電平都非常接近。一旦LED的直流電平接近,就可以通過公式(2)來計算SaO2的大小。心率的測量則是通過計算每三次心跳的採樣結果來獲得,因為採樣率是500sps,因此每分鐘的心跳可以由公式(3)計算。圖7顯示理論的和實際的R與SaO2之間的關係。當血氧飽和度下降到低於80%,可以假定兩者為線性關係。圖8顯示從電路板串行接口獲得的心跳信號,數據傳輸率為115kbps,這些可以在LCD屏幕上顯示出來。圖9為電路原理圖。

圖8,反應心跳的信號

 


    TAG: 血氧仪 脉搏

     

    评分:0

    我来说两句

    显示全部

    :loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

    Open Toolbar