劉西恒, 吳 薇, 浦志敏, 馮玉婷
(杭州電子科技大學 電子信息學院,浙江 杭州 310018)
胎動信號是胎兒的一項重要生命體征,胎動信號的檢測對圍產期的母嬰監護有重要意義。一般孕婦通過自數胎動次數確定胎兒是否正常,在醫院中醫生普遍使用超聲波成像監測胎動,2種方法都可以有效降低因臍帶繞頸等因素導致的胎兒死亡率。但是自數方式存在不準確性,超聲波成像需要醫生輔助,顯然設計一種可穿戴的不需要醫生協助胎動監測設備是有必要的[1]。在對胎動信號的采集方面,加速度傳感器適合采集人體活動加速度信號,目前已經廣泛應用于跌倒檢測和手勢識別等體感監測領域[2,3]。系統在醫生的協助下進行了實際的胎動信號采集,得到的數據表明:系統能夠長時間穩定采集胎動信號并準確地傳輸至外部接收設備,具有一定的工程應用和研究價值,為深入研究胎動信號打下了基礎。
圖1為總體設計結構,以Freescale公司的 Kinetis L16單片機作為系統的控制器,采用4只MMA8451Q型三軸加速度傳感器作為信號源,傳感器內部將模擬信號轉換為14位浮點型數據輸出,通過兩路硬件內部集成電路(interintegrated circuit,I2C)總線接口I2C0和I2C1傳輸到單片機控制器中,單片機對胎動數據進行打包通過通用異步收發傳送器(universal asynchronous receiver/transmitter,UART)發送至低功耗藍牙,藍牙將胎動數據上傳至移動設備中。

圖1 總體設計框架
采用USB接口和鋰電池供電2種方式,鋰電池可以通過USB接口充電。鋰離子電池需要非常精確的充電電流和放電電壓,以此來優化電池的電池使用時間和性能。電源管理芯片采用BQ24040,其外圍電路如圖2所示。

圖2 BQ24040外圍電路
BQ24040具有輸入過壓保護和較高的輸入電壓供電范圍(7 V的輸入過壓保護,30 V輸入額定電壓),可以使用大部分移動設備的充電器充電。
圖2電路的左端為micro USB 接口,右端接鋰電池及后續的穩壓電路。鋰電池提供3.7 V電壓,為了得到3.3 V的穩定電壓,采用低壓差 (low dropout,LDO) 線性穩壓器。相比傳統的3腳穩壓芯片,其具有較高的調整率,更小輸出紋波,極小的靜態電流,超快的響應/負載瞬態[4]。本系統采用LDO芯片XC6221,外圍元件少,占用空間小,適合低功耗設計。
在胎動信號的采集上,與文獻[5,6]不同,本文采用三軸加速度傳感器。以4只傳感器組成網絡均勻覆蓋在孕婦的腹部,可以相對完整地采集胎動信號。本系統傳感器為MMA8451Q,屬智能、低功耗、電容式、微機械的14位分辨率的三軸加速度計。本設計使用4只傳感器掛載在兩路I2C上,每路I2C上有2只傳感器,傳感器的地址由圖3中R2和R6決定。若R2焊接電阻器,R6斷開,傳感器地址引腳SA0接上拉電阻器,此時傳感器的在I2C總線中的地址為1D;若R2斷開,R6焊接電阻器,傳感器地址引腳SA0接下拉電阻器,此時傳感器在I2C總線中的地址為1C。

圖3 傳感器電路
系統的無線傳輸模塊采用CC2541低功耗藍牙芯片[7]作為控制器,結合巴倫匹配電路和外部晶振共同組成。藍牙模塊電路中使用HHM1520巴倫轉換芯片與圖4中C10,C11,L1組成巴倫匹配電路。巴倫匹配電路將單級天線接收到信號變為雙路差分信號,以便維持天線的輻射效率,連接濾波電路和單端天線,形成射頻收發機。巴倫匹配電路和天線的設計是保證射頻電路指標良好的關鍵,對通信距離和系統功耗都有較大影響。考慮到降低成本,本藍牙模塊采用倒F型2.4 GHz的PCB天線,如圖4中ANT1。

圖4 藍牙模塊電路
系統的軟件設計包括兩部分,單片機和藍牙。單片機軟件的開發環境為CodeWarrior,藍牙軟件的的開發環境為IAR。單片機和藍牙軟件流程如圖5所示。單片機上電后,首先對硬件初始化,然后等待藍牙的采樣請求。收到采樣請求后,單片機發送采樣命令到傳感器,接收加速度數據并打包,并通過串口傳送給藍牙。藍牙與外部設備建立連接后,向單片機發送采樣請求,每次收到單片機發來的完整數據包并完成解析之后通過天線發送到外部設備上。

圖5 軟件流程
在實際使用中,設備采集到的傳感器陣列數據出現了數據不正常、不完整的現象。為了解決單片機與藍牙之間串口通信存在的錯誤率需要設計一種通信協議。在這種通信協議下,單片機每次完成1次采樣,都會對4只傳感器的加速度數據進行打包,分別添加2B的開始位和結束位,計算并填充發送的數據長度和校驗和。藍牙部分接收到數據包后,會首先檢查開始位和結束位以確定數據包是否完整,獲得有效數據長度,并自行計算數據的校驗和,同接收到的校驗和進行比對,如果一致,則數據接收正確。串口通信協議的格式如圖6所示。圖6(a)表示一個完整數據包的結構,有固定的起始標志和結束標志,為避免與胎動數據沖突,設定為連續2B數據。其他字節包括有效數據長度和校驗和,用于解析數據包來確定數據的正確傳輸。從圖6(b)可以看到有效數據包括4只傳感器采集到的數據,每只傳感器有3個軸向的數據x,y,z,每個軸向包含2B。

圖6 數據傳輸協議
在實際測試中,本協議能夠確定出數據包是否完整,選擇不同的波特率和數據包長度對CC2541接收串口數據的錯誤率進行了統計。每組實驗中,共發送1 000個數據包,每100 ms發送1次,通過串口調試助手確定數據包是否接收成功。由串口調試助手的得到的串口通信的錯誤率如表1所示。可以看出,波特率的大小對于錯誤率也是有影響的,這是因為,傳輸速度越快,數據包會在更短的時間內被藍牙接收,減少藍牙協議棧中其他任務的干擾。

表1 CC2541串口通信在不同波特率和數據包長度下的誤碼率
CC2541模塊的軟件部分建立在藍牙4.0協議棧BLE—CC254X—1.3.2基礎上,藍牙協議棧是藍牙協議的具體實現形式,表現為代碼實現的函數庫。函數庫提供應用程序接口(application programming interface,API),由OSAL作為操作系統調度使用。OSAL啟動后,首先是對系統、基本任務和外圍設備的初始化;待初始化后,系統不斷輪詢藍牙事件,檢測是否有外部藍牙設備對其的連接請求;如果有請求,與外部設備建立連接并提供服務,否則將會繼續輪詢藍牙事件。為了接收單片機通過串口發送來的數據,本文在協議棧中添加串口事件回調函數,當有串口事件發生時,回調函數確定數據的完整性和準確性,確定數據完整無誤后,啟動數據上傳事件。
BLE 協議棧的通用屬性配置文件(generic attribute profile,GATT)層設計用于應用程序在兩個連接設備之間的數據通信,其中的特征值(characteristic)用于存儲和處理GATT服務器中的數據,當藍牙提供數據傳輸功能時,必須建立對應的特征值。為了傳輸單片機發送的胎動數據,添加4個特征值,分別用于4只傳感器的數據,如表2。

表2 用于胎動數據傳輸的特征值
handle是特征值的句柄,通用唯一標識符(universally unique identifier,UUID)是特征值的統一識別碼。數據上傳事件負責將胎動數據更新到GATT層的特征值,完成數據到移動設備的上傳。
本文系統實物如圖7所示,尺寸完全可以縫制在孕婦裝中。實際測試中,將設備縫制在紡織物中,緊貼孕婦的腹部,同時會記錄孕婦的心跳和翻身,打嗝等干擾因素。藍牙將原始數據傳遞到移動設備中,移動設備上的APP將原始數據轉換為浮點型加速度數據。在使用胎動監測設備采集數據的同時,會有醫生觀察超聲設備中的胎兒成像,當有明顯胎動時按壓胎動采集設備上的按鈕,作為真實胎動信號的參照。按照超聲設備記錄真實胎動信號發生的時間點,原始數據經過漢明濾波器和小波去噪的預處理后,在經過平滑維格納—維爾分布(Wigner-Ville distribution,WVD)時頻分析后,得到胎動信號的時頻分布,如圖8(a)所示,圖8(b)為信號的時域分布。經助產醫生觀察,該信號的時頻分布符合胎動信號的特征,確認為有效胎動信號。

圖7 實物

圖8 胎動信號時域和時頻分布
針對當前胎動信號采集方面的不足,本設計提供了一種有效的信號采集方案。給出了完整的軟硬件設計和數據的傳輸方式。在醫生的協助下獲得了真實有效的胎動數據。另外,進一步研究壓縮感知在胎動信號采集上的應用對降低系統功耗、降低數據存儲空間具有重要意義。