新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一款低功耗移動心電監控系統的設計

        一款低功耗移動心電監控系統的設計

        作者: 時間:2014-03-23 來源:網絡 收藏

        4.2 設備藍牙傳輸的實現方案

        本文引用地址:http://www.104case.com/article/235140.htm

        藍牙通信采用C / S通信模式。在設計時將接收端(設備)的藍牙作為客戶端,發送端(智能電極)藍牙作為服務器端。

        在藍牙進行相互連接時,利用了數據通信中常用的Socket(套接字)機制。當兩端的套接字相互連接好以后,收發雙方的應用就可以將數據發送給自己的套接字,并從套接字處獲取數據,雙方的套接字則作為連接中轉站一樣,相互收發數據。下面對設備上藍牙接收軟件實現過程詳細闡述。

        首先開啟A n d r o i d終端的藍牙功能,Android終端藍牙設備作為客戶端需要主動搜索周圍的藍牙設備。這個搜索過程需要用到廣播機制,即搜索發起端需要一個廣播接收器,用于接收搜索信息。其建立的具體步驟為,首先定義一個繼承BroadcastReceicer的類,用這個類生成的實例就具備了對接收信息的操作能力,可以獲取需要的信息,比如藍牙設備名稱和MAC地址。經過設置,該廣播接收器只對發現了藍牙設備這一消息和藍牙搜索結束這兩條消息響應,并且完成了廣播接收器在本應用中的注冊。用戶在使用時,只需要點擊“搜索”按鈕,終端設備開始搜索周圍藍牙設備,整個搜索過程將耗時12秒。這個過程中,本地藍牙適配器會搜索到周圍所有可以連接的藍牙設備,將這些搜索結果以列表的形式呈現在屏幕上,供選擇。連接開始前,首先關閉藍牙搜索功能。

        在系統庫中有BluetoothSocket類,利用這個類生成相應的實例便是接收端藍牙的套接字,如果該藍牙是作為服務器來連接的,則利用系統類BluetoothServerSocket來生成套接字對象。在連接之前需要預先設置好UUID,然后由Android智能終端發起連接請求,這里需要調用BluetoothSocket類中的connect()方法,作為服務器端的藍牙設備監聽到連接請求后會驗證其UUID是否與自己的一致,驗證通過后便可以完成連接了。需要特別注意的是,在這個過程中,連接過程是一個阻塞調用過程,為不影響主線程的工作,需要一個單獨的線程來進行連接工作。

        等待藍牙連接完成后,便可以進行數據傳輸。在藍牙間的數據傳輸是由藍牙模塊自動按照藍牙協議棧的要求進行的,而在智能電極端從微控制器到藍牙模塊以及在Android終端從藍牙設備到應用程序的數據傳輸都是按照URAT異步串口通信方式進行的數據傳輸。在設計中所設置的數據傳輸格式是以一個字節長度為一幀來傳輸的,其中有7位數據位和1位奇偶校驗位共同組成。所以接收端所接收的數據都是以字節為單位來存儲的。在這個通信系統中,還加入了對接收數據的另一數據檢錯方案。數據的收發并不是將采集數據直接轉換成二進制的串行數據進行傳輸的,而是將這些數據轉換成所對應的ASCII碼再轉成串行數據再進行數據的發送,這樣在接收端接收到數據后,會將這些數據轉為ASCII碼,如果這些ASCII對應的不是數字或是已超出ASCII碼范圍,則認為是錯誤的數據,將其丟棄。這樣做了之后,結合奇偶校驗,只有低三位同時有兩位都傳輸錯誤的數據不能被監測出來,出現這種情況的概率比較小,并且藍牙傳輸距離短,傳輸環境并不算惡劣,這樣的檢錯能力已經足夠了。數據接收過程也是一個阻塞調用的過程,所以同樣需要一個單獨的線程來完成。

        接收到的數據,全部轉換為數字的形式(振幅信息)存儲起來,供心電圖的顯示提供數據支持。Android藍牙傳輸軟件流程如圖4所示。

         

         

        4.3 終端心電圖顯示

        接收數據之后還有要在Android終端上描繪出心電圖,供使用者查看。在Android應用開發中,通常會使用View這樣的控件來描繪圖案。本系統圖形是一個心跳幅度關于時間的二維坐標圖,縱坐標以毫伏為單位,橫坐標以秒為單位。需要注意的是橫坐標的標識間隔,藍牙通信速率設置為9600位每秒,即1200字節每秒,所以每秒會收發1200個數據點的信息,橫坐標的設置應該以1200個點為1秒進行設置。

        波形的描繪是一個坐標描點的過程。

        將接收到的心電信號數據轉換成坐標點的表示形式,存入到緩存區當中。應用程序在進行波形描繪時會從該緩存區中依次提取數據點,在坐標圖上描繪出一個連續的波形圖。

        5.系統功能鏈路實現

        按照如圖5所示鏈路對移動心電監控系統進行搭建,并以一正常無心電類疾病史人員為測試對象對整個系統鏈路功能進行實現。

         

         

        啟動系統的智能電極和Android終端應用程序之后,首先進行數據配對進入界面選擇配對設備,并點擊“connect”按鈕,連接開始,由Android終端主動發起連接請求,發送端監聽到請求信息后即可回應并建立連接。

        為了方便使用和控制,數據傳輸是由接收端發起的。點擊屏幕中的“receive”按鈕,接收端通過藍牙向發送端發送數據傳輸的“開始”信號作為數據發送的起始信號。發送端在接到發送的“開始”信號后,便會開始發送數據,直到將緩沖區內的數據發送完畢為止,在接收端擁有與發送端相同大小的緩沖區接收數據,當接收緩沖區裝滿后,接收停止。以此來進行數據的收發同步。接收端需要對接收到的數據進行檢錯,丟棄錯誤數據,然后將有效數據存入波形顯示緩沖區中。在屏幕中部可以看到清晰的心電波形圖,如圖6所示。

         

         

        當用戶點擊“realTime”按鈕時,就可以在在屏幕上觀測到實時更新的心電圖。

        6.結束語

        本文介紹了移動心電信息監控系統方案的設計與實現過程,包括系統的總體設計以及智能電極和Android移動終端的設計過程和主要實現方法。

        本方案中的系統設計將傳統系統中數據采集、處理和傳輸、診斷進行分離,僅利用內衣穿戴形式的智能電極對信息參數進行采集并采用微控制器進行簡單預處理,之后將數據通過藍牙無線傳輸技術通過無線網絡發出,交由配置有藍牙Android智能接收終端進行進一步的處理和診斷。克服了傳統系統體積大,使用不便,功耗大的缺點,可在日常生活中多日長期在線工作,對使用者的健康隱患進行監測;并且終端數據管理與診斷分析程序能夠準確記錄用戶的測試信息并且隨時查詢,而且在發生危急狀況時發出報警挽救生命。

        模擬信號相關文章:什么是模擬信號


        可控硅相關文章:可控硅工作原理



        上一頁 1 2 下一頁

        關鍵詞: Android Holter

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 郓城县| 平凉市| 昌平区| 许昌县| 禄丰县| 汽车| 东乌珠穆沁旗| 新宁县| 屏东县| 长武县| 乐业县| 内乡县| 肇东市| 隆化县| 大同县| 都安| 顺昌县| 黑山县| 玛纳斯县| 宝兴县| 盐城市| 禹州市| 澄城县| 崇文区| 英德市| 都匀市| 平乡县| 抚顺县| 九江县| 昆明市| 仪陇县| 沙河市| 舒城县| 海阳市| 自贡市| 文山县| 株洲县| 阳原县| 昌都县| 横峰县| 石台县|