謝景衛
(大連大學 創新創業學院,遼寧 大連 116622)
我國目前有近2億個獨生子女家庭,這些家庭中的長輩應該都超過了六十歲。統計數據顯示,我國現有六十歲以上老年人口已經達到了2億多人,人口老齡化進程在加速,年均增長速度超過3%。老年人的健康問題關系到一個非常大的群體,正引起了全社會的廣泛關注。眾多的獨生子女為了生存及改善生活出門在外拼搏,很多已經不跟父母常住在一起,使得沒有兒女照顧的老人數量非常巨大。隨著年齡的增長,各種心血管疾病發病率逐漸增高,而高血壓、心臟疾病等又有非常高的致殘和死亡率。而這些疾病如果能盡早發現并給予相應的早期治療,可以有效的減少并發癥及后遺癥的產生,提高老年人的身體狀況和壽命。同時跌倒已經成為老人健康問題的頭號“殺手”。子女不放心老人的健康問題,需要實時知道父母的身體狀況,隨著電子技術的發展,智能化可穿戴設備的需求市場非常大,本文設計了一套使用STM32作為主控MCU的健康數據采集設備,同時兼具能監測老人的人體運動狀態,發生異常時及時通過北斗定位系統將坐標位置發出,也可以通過藍牙設備與身邊的智能手機自動相連,通過智能手機自動打電話給子女,達到身體健康狀況異常時第一時間處理,大大提升老年人的生命周期。目前,我國正大力推廣我們自主知識產權的北斗導航定位系統應用,本文設計的一種基于北斗定位的老人健康監護系統,具有低功耗、智能化、可穿戴等優點,以及良好的技術先進性和極大的社會價值。
本系統的控制核心MCU為具有Cortex M4內核的STM32F405RGT6芯片,通過MTK的生物感應模擬前端芯片 MT2511,MT2511可同時采集心電圖(EKG)信號和光電容積脈搏波(PPG)信號。這兩種信號分別經過濾波電路后送給主控MCU,經過軟件算法優化,得到心率、血壓、心電、血壓等數據;六軸加速度傳感器MPU6050隨時監測人體的運動狀態,并將實時的狀態參數發送給主控MCU。MCU計算出人體的運動狀態并保存在內嵌的FLASH中,一旦計算出跌倒等異常狀態時,發出警示,并調用北斗導航UC6225芯片得到地理坐標信息,MCU處理后通過藍牙發送給身邊的智能手機,智能手機會自動將當前坐標位置短信發給預先設置的手機上。藍牙芯片也可以在空閑時間將所有存儲在MCU的FLASH中的被監測人的生理數據傳輸給智能手機,智能手機記錄所有信息,以便進行相應的分析處理等。系統框圖如圖1所示。

圖1 系統框圖
信息處理模塊是整個系統的核心,本系統選用意法半導體[1]的 STM32F405RGT6作為主控芯片。STM32F405RGT6是基于ARM Cortex-M4內核的32為處理器[2],主頻 168 MHz,內核功耗僅為 128 μA/MHz。它支持單周期DSP指令和浮點運算,片上集成192 KB的SRAM和1MB的FLASH。STM32F405RGT6利用意法半導體的ART加速器實現了FLASH零等待狀態,并且能夠動態調整系統功耗[3]。STM32F405RGT6集成了多達17個定時器、2個12位DAC,3路12位逐次逼近模數轉換器,16個采集通道。模數轉換器可兩路同時采集,單路采樣速率每秒2.4 M,兩路交錯采集速率每秒7.2 M;通信接口包括 6個串口(USART)、3個 SPI接口、1個SDIO接口、3個I2C總線接口、2個CAN總線。串口速度每秒 10 Mbit以上,SPI總線速度每秒 40 Mbit以上。
信息采集模塊中的脈搏、心率、心電的信號采集選用聯發科技(MediaTek Inc.)專為健康與健身可穿戴設備設計的生物感應模擬前端芯片(Analog front-end,“AFE”)MT2511。MT2511 可同時采集心電圖(EKG)和光電容積脈搏波(PPG)發出的生物信號。芯片內部集成鎖相環,能夠使EKG和PPG 數據實時保持同步,而且它的功耗也非常低。當單獨采集光電容積脈博波信號或心電圖信號時,電流不超過0.5 mA,兩種信號同時采集時電流不超過1.2 mA。MT2511具有聯發科技自主研發的心跳間隔技術,片上集成了4KB的SRAM,能夠優化芯片各個采集模塊的整體系統功耗。MT2511支持互聯的SPI/I2C接口。系統結構如圖2所示。

圖2 MT2511系統結構
藍牙[4]傳輸模塊選擇德州儀器 TI公司的CC2540F128芯片[5]。CC2540F128是應用于便攜式傳感網絡產品的低功率單片藍牙4.0解決方案。它是一個超低功耗的真正單晶片系統,包含一個優異的無線射頻傳送接收器以及數位感應器和適當的外圍器件,片上集成128 K的FLASH。具有精確的無線射頻訊號強度指示,內含AES-128加密模塊。CC2540F128具有很低的睡眠模式功率消耗及不同工作模式間短暫的轉換時間,適用于需要超低消耗功率的系統[6]。CC2540F128的接口電路圖如圖3所示。

圖3 藍牙芯片外圍電路
坐標定位系統選用我國自主知識產權的全球衛星導航系統——中國北斗衛星導航系統[7](BeiDou Navigation Satellite System,BDS)。模塊的核心芯片為北斗導航子公司和芯星通的Mockbird UC6225,該芯片是小型化的全球導航衛星系統(GNSS) 基帶射頻一體化芯片。UC6225 芯片采用完全自主知識產權的GNSS技術,一體化方案需要更少的外圍器件,節約硬件成本,使產品擴展應用成本低、體積小、性能高,具有良好的用戶體驗。UC6225芯片配置靈活多樣,可同時支持 64通道信號定位,具有獨特的Ultra-sense高靈敏度基帶設計,定位精度(RMS)可達2.5 m CEP,北斗 B1的跟蹤靈敏度為-161 dBm。UC6225集成SPI接口的片上Flash,無需外接存儲器即可存儲定位數據。芯片供電電源1.8 v,連續跟蹤時功耗約90 mW。簡潔的一體化定位解決方案非常適合于移動監控、導航、追蹤等消費類應用。
坐標定位模塊采用和芯星通的UM220-III NB模塊。這個模塊是北斗和GPS雙定位模塊的集成應用。UM220-III NB采用北斗抗干擾UC6225芯片,具有集成度高,適合GNSS規模應用等特點。此模塊高性價比,抗干擾,能在復雜環境下穩定精確定位。輸出接口為1個串口和1個PPS輸出,數據格式協議是NMEA 0183和Unicore,數據更新率為默認值為1 Hz,也可以通過配置更改數據更新率。模塊冷啟動定位時間為32 s,熱啟動定位時間為1 s。UM220-III NB模塊外圍電路圖如圖4所示。
狀態信息監測模塊選用 InvenSense公司的MPU6050模塊[8]。MPU6050是一款低成本的6軸傳感器模塊,包括三軸加速度和三軸角速度陀螺儀。它對陀螺儀和加速度計分別使用了三個16為的ADC,可以使直接測量到的模擬信號量轉化為單片機容易處理的數字信號量。為了精確測定待測物體的三維角度和三維加速度,傳感器的測量范圍可以編程設置。該芯片內部自帶數字運動處理器硬件加速引擎,可以直接輸出經過解算后的姿態數據。陀螺儀工作電流為5 mA;加速器計工作電流為350 uA。與外圍設備之間通信采用400 KHz的I2C接口或1 MHz的SPI接口。接口電路如圖5所示。

圖4 定位模塊接口電路

圖5 加速度傳感器接口電路
本套系統的軟件設計主要是通過STM32F405RGT6高效準確的讀取MPU6050模塊的三維角度和加速度、UM220-III NB模塊的坐標數據,控制CC2540F128芯片與智能手機互聯發送數據。重點計是讀取MT2511采集到心電圖(EKG)和光電容積脈搏波(PPG)生物信號,軟件濾波[9]、算法優化得到血壓、心率、心電、脈搏等數據。
大量理論與實驗表明,血壓與脈搏波傳導時間(PWTT)存在著近似線性關系[10]。因此本文就是利用從 MT2511中采集到心電信號和光電容積脈搏波信號,通過這個兩個信號的融合求出特征點的時間差,得出脈搏波傳導時間,進而擬合出對應的脈搏血壓值。已有許多產品的心電信號和脈搏波信號是由兩個獨立的硬件模塊進行采集的,而本系統的兩種信號是通過一個芯片MT2511同時采集,大大的減小了因為時間同步問題而帶來的誤差。
脈搏波的傳導時間和血壓之間的線性關系為:量,P為血管的跨壁壓強。

對于給定的一個個體,他的血壓改變時血管內徑和血管壁厚度的改變微乎其微,因此對上式進行求導后,第二項可以近似看作一個常量,所以上式可以簡化為:

簡化后的式子說明,在血管的厚度和內徑變化不大的情況下,血壓的變化量與脈搏波的傳導時間變化量成正比,可以將血壓與脈搏波傳導時間 PWTT寫為:

其中,α和β是待定系數,每個個體在短時間內,這個數值是常數。大量的研究數據得到 α值約為-0.7~-0.9,β值約為 270~300。為了分別確定每個待測個體的α和β值。本系統借助袖帶血壓測量設備進行校準參數。因袖帶血壓測量一次需要半分鐘左右,而此時會采集到多次心電及脈搏信號,所以選取 10次測量平均值計算脈搏波傳導時間。利用本系統自帶的按鍵將袖帶血壓測量值輸入系統,對待定系數矯正之后存入片上Flash中,達到一個個體只需要一次測量矯正即可。
本系統兩種信號是同一個芯片采集,利用定時器可以準確的測量這個時間查,關鍵是通過軟件算法準確的找到這個起至點。將心電信號和脈搏波信號采集后連同時間同時存入數組中,通過算法得到心電信號的峰值對應的時間,以及此次峰值后脈搏波到達峰值20%的時間,兩個時間之差即為一次PWTT。
STM32F405RGT6設計的采樣頻率為560Hz,由于心電信號的頻率0.05Hz~100Hz,直接采集到數據會有噪聲存在。一般在MT2511輸入端再設計一濾波器電路進行消除噪聲干擾。將心電信號EKG和光電容積脈搏波PPG信號和產生的時間分別存儲在MCU中的FLASH中,利用適當的軟件濾波算法,得到心電、脈搏、心率等信號,并計算出心電信號的峰值和光電容積脈搏波的峰值、谷值。利用差分閾值,提取出這些峰值對應的時間,并對這些時間分別求差,計算出脈搏波傳導時間。為了減小這個時間的誤差,采取去掉最大值和最小值再求平均值。最后計算出個體血壓值。
坐標定位模塊UM220-III NB工作前,需要先初始化。初始化信息如下:
(1)初始化及配置串口,命令為:$CFGPRT,1,0,57600,3,3
該命令設置使用串口1,波特率為57600,數據格式輸入為和芯星通軟件接口協議、輸出為 NMEA協議。
(2)設定衛星系統配置,命令為:$CFGSYS,h48
設定接收機使用的衛星頻點,執行該命令后,接收機會復位,復位后設定才生效。本示例為只開啟北斗定位系統頻點。
(3)設定NMEA配置,命令為:$CFGNMEA,h30
該命令設置輸出的NMEA協議在標準version3.0基礎上擴展北斗相關的語句。
(4)設定輸出特定消息的輸出配置,命令為:$CFGMSG,0,1,0
該命令設置GLL關閉輸出。這個命令的第一個參數為消息類別,0代表GGA、GLL、GSA、GSV、RMC、VTG、ZDA、GST消息,1代表POS、VEL、TIME、ACC消息,第二個參數代表消息ID,第三個參數代表最高輸出頻度,如果設置為0表示關閉該消息輸出。
UM220-III NB初始化完之后就可以接收數據。在Unicore 協議中[11],輸入和輸出的語句被統稱為消息。每條消息均為全 ASCII 字符組成的字符串。消息的基本格式為:
$MSGNAME,data1,data2,data3,…[*CC]
所有的消息都以“$”開始,后面緊跟著的是消息名[12],之后跟有不定數目的參數或數據[13]。為了提取我們需要的經緯度信息,必須正確解析收到的命令。每條 NMEA指令中信息[14]均以逗號分隔。如$BD2GGA,062841.000,3801.1152,N,11607.0859,E,1,4,2.677,36.243,M,0,M,*70這條命令,我們需要緯度是3801.1152,N代表北緯,經度為11607.0859,E代表東經。
人正常行走或日常生活中時,身體的加速度信息是平穩變化的,當發生跌倒等意外情況時,加速度信息會急劇變化,加速度幅度范圍一般不超過±7 g,所以MPU6050的量程選擇±8 g。跌倒的時候除了加速度值會急劇變化,角度值也會有很大的變化,我們把角度值短時間變化超過60度也定義為意外狀態。由于跌倒的時候方向可前、可后、可左、可右,因此為了準確判斷被監測對象,我們取角度和加速度變化率的或運算。即任一時刻與前一時刻相比,x、y、z三軸中大于等于一個軸的角度變化超60度同時大于等于一個軸的加速度超過1.5個g,均定義為跌倒狀態。狀態數據采集周期100 ms,即每100 ms記錄一次三軸角度和三軸加速度,時間間隔選擇 500 ms,取連續兩個500 ms間隔的各個狀態數據的平均值作為判斷依據。當監測到跌倒狀態時,系統會發出滴答聲音警報。本系統設置有報警取消按鍵,警報提示音后10 s內若未按下取消報警按鍵將立即啟動藍牙模塊,并通過北斗導航讀取位置參數,將此時的坐標參數連同人體的生理參數發給智能手機。智能手機收到異常數據后立即以短信的形式通知出去。
本文設計了基于stm32和MT2511的智能監護系統,主要實現了血壓、心率、心電、脈搏、跌倒監測,并可將狀態數據通過藍牙傳輸到智能手機上保存分析及發送報警警報等。本系統選取的stm32是目前性價比非常高的MCU,生物感應模擬前端芯片選用聯發科技MT2511比分立元件抗抗干擾行強,同時性價比也比較高,定位芯片選取國產北斗導航系統。同時配合相應的軟件濾波及處理算法等,使得本系統功耗較低、便攜可穿戴、抗干擾能力強,相比市場上現有產品具有一定的技術優勢及應用前景。
[1]李梁, 文篤石. 基于ARM的心電監護儀的設計與實現[J].國外測量技術, 2017, 36(3): 71-72.
[2]邱云翔, 蔡成林, 孫凱, 等. 基于北斗可穿戴式老人心率檢測儀[J]. 電視技術, 2017, 41(2): 19-22.
[3]武利珍, 張文超, 程春榮. 基于 STM32 的便攜式心電圖儀設計[J]. 電子器件, 2009, 32(5): 948-949.
[4]張秀娟, 程飛龍. 基于 STM32的便攜式生命體征監護儀設計[J]. 電子技術應用, 2013, 39(11): 21-22.
[5]薛冰冰, 吳書裕, 李亞萍, 等. 基于STM32的微型多參數健康監護終端的設計[J]. 電子技術應用, 2014, 40(2): 13-14.
[6]葉康, 楊鑫源, 雷韻, 等. 基于藍牙4.0的養老機構無線醫療監護系統[J]. 科技與創新, 2017(2): 18-19.
[7]葉文輝. 小型無人直升機分析及飛控系統研究[D]. 南昌:南昌航空大學, 2014: 34-35.
[8]張承岫, 李鐵鷹, 王耀力. 基于MPU6050和互補濾波的四旋翼飛控系統設計[J]. 傳感技術學報, 2016, 29(7): 1011-1015.
[9]許永峰, 賀玉成, 周林. 血壓脈搏振蕩波的三重軟件濾波提取算法[J]. 電子測量與儀器學報, 2015, 29(3): 454-455.
[10]李家楊, 葉兵, 朱曉冬. STM32的無創連續血壓測量系統設計[J]. 單片機與嵌入式系統應用, 2017(4): 75-76.
[11]戴志軍, 徐余法, 蘇強強, 等. 基于北斗授時定位的太陽能追光系統[J]. 上海電機學院學報, 2017, 17(3): 148-149.
[12]江良劍, 熊善泉, 焦海松, 等. 基于北斗授時的雷達接口時序設計方法[J]. 全球定位系統, 2015, 40(2): 43-44.
[13]李玉萍. LXI授時與同步模塊研制[D]. 哈爾濱: 哈爾濱工業大學, 2014: 31-32.
[14]龔江昆, 達風. BD/GPS雙模衛星通用導航模塊的設計與實現[J]. 四川兵工學報, 2015, 36(6): 111-1112.