本文以BeagleBone Black為核心,掛接ZigBee無線傳感節(jié)點和GSM/GPRS模塊;建立web服務(wù)器和SQLite數(shù)據(jù)庫,接收、解析和存儲ZigBee節(jié)點采集的生理數(shù)據(jù),控制GSM/GPRS進行緊急呼救和發(fā)短信;讓硬件智能化,提供自動生理監(jiān)測功能,為人們的生活提供便利。
目前,醫(yī)療設(shè)備的主要缺陷是價格昂貴、體積龐大和非智能;隨著技術(shù)的發(fā)展,近年來涌現(xiàn)了不少優(yōu)化的智能醫(yī)療設(shè)備,給人們的生活帶了極大便利。但仍存在功能單一,不可遠程訪問等缺陷。
BB-Black開發(fā)板以其價格便宜、功能強大等優(yōu)點廣泛應(yīng)用于各種場景,怎樣利用BB-Black設(shè)計一個更智能、功能更齊全的實時遠程醫(yī)療監(jiān)測系統(tǒng),將是一個有意義、有市場前景的研究課題。
1. 應(yīng)用系統(tǒng)總體結(jié)構(gòu)設(shè)計描述
1.1 硬件平臺相關(guān)介紹
設(shè)計共涉及BB-black、ZigBee和GSM/GPRS三個硬件模塊。其中BB-black開發(fā)板為核心模塊,是一款基于AM3359處理器的開發(fā)套件,其實物圖如圖1所示。處理器集成了高達 1GHz 的 ARM Cortex-A8 內(nèi)核,并提供了豐富的外設(shè)接口和兩個擴展接口,可擴展LCD、UART、eMMC、ADC、I2C、SPI和PWM等接口。其系統(tǒng)框圖如圖2所示。
AM3359 是基于 ARM Cortex-A8 內(nèi)核的微處理器,在圖像、圖形處理、外設(shè)和諸如etherCAT 和 PROFIBUS 的工業(yè)接口選項方面進行了增強,并支持Linux、 WinCE 和Android 等高級操作系統(tǒng)。該處理器包含了多個子系統(tǒng)。微處理器單元(MPU)子系統(tǒng)基于 ARM Cortex-A8 微處理器; POWERVR SGX 圖形加速子系統(tǒng)用于 3D 圖形加速以支持顯示和游戲效果;可編程實時單元子系統(tǒng)(PRUSS)使用戶可以創(chuàng)建各種超越本地外設(shè)的數(shù)字資源。此外,PRUSS 獨立于 ARM 內(nèi)核,這就允許設(shè)備有獨立的操作和時鐘,從而在復雜系統(tǒng)解決方案中有更大的靈活性。
圖1 BB-black實物圖背面(左),正面(右)
圖2 BB-Black系統(tǒng)框圖
1.2 系統(tǒng)功能模塊及信息處理過程
系統(tǒng)的功能模塊如下圖3所示,主要由數(shù)據(jù)采集模塊、GSM模塊、遠程登錄模塊和BB-Black模塊四部分組成。其中生理數(shù)據(jù)模塊采用ZigBee無線傳感節(jié)點實時采集用戶生理數(shù)據(jù);GSM模塊采用四頻 GSM/GPRS ,實現(xiàn)緊急報警和定位;遠程登錄模塊是指手機或其它上網(wǎng)設(shè)備,供用戶遠程訪問和監(jiān)控;BB-Black模塊是本系統(tǒng)的核心模塊,該模塊又可分為數(shù)據(jù)處理、Boa服務(wù)器和SQLite數(shù)據(jù)庫三部分。數(shù)據(jù)處理模塊實現(xiàn)對數(shù)據(jù)的接收、解析、向SQLite數(shù)據(jù)庫插入數(shù)據(jù)和向GSM模塊下達緊急報警命令;SQLite數(shù)據(jù)庫主要用于存儲生理數(shù)據(jù);Boa服務(wù)器則實現(xiàn)用戶的遠程訪問查詢SQLite數(shù)據(jù)中存儲的生理數(shù)據(jù)。
圖3 系統(tǒng)功能模塊框圖
正如上圖所示系統(tǒng)的信息處理過程如下:
1. 生理數(shù)據(jù)采集模塊實時采集生理數(shù)據(jù)。
用戶可根據(jù)需要隨身攜帶相應(yīng)的生理數(shù)據(jù)檢測模塊(如:血壓、血糖、脈搏等檢測模塊),在BB-black建立的無線傳感網(wǎng)絡(luò)覆蓋范圍內(nèi)移動、實時生理數(shù)據(jù)采集,按IEEE 802.15.4的通訊標準,通過無線網(wǎng)絡(luò)將生理數(shù)據(jù)包傳送出去;在BB-black開發(fā)板上連接的ZigBee終端節(jié)點將數(shù)據(jù)包接收。
2. BB-black模塊接收、分析和處理生理數(shù)據(jù)。
AM335x處理器定時的讀取終端節(jié)點接收的數(shù)據(jù)包,通過解析得到數(shù)據(jù)包中的生理數(shù)據(jù),并存儲到SQLite數(shù)據(jù)庫,同時根據(jù)健康指標對數(shù)據(jù)進行分析,若遇緊急情況,則向GSM/GPRS模塊發(fā)AT控制命令,進行緊急呼救。
3. 監(jiān)護人或醫(yī)生可隨時隨地訪問服務(wù)器查看、管理被監(jiān)護人近期生理數(shù)據(jù)。
用戶通過上網(wǎng)設(shè)備打開瀏覽器登陸B(tài)oa服務(wù)器,提交查詢表單,即可訪問SQLite上存儲的被監(jiān)護人的生理數(shù)據(jù),實現(xiàn)遠程了解被監(jiān)護人近期身體狀況,實現(xiàn)遠程監(jiān)控。
本系統(tǒng)應(yīng)用場景可如圖4所示。
圖4 系統(tǒng)應(yīng)用場景圖
2. 遠程監(jiān)控功能實現(xiàn)
系統(tǒng)以BB-black為平臺,提供用戶遠程登錄訪問嵌入式Web服務(wù)器Boa,查看該服務(wù)器上的被監(jiān)護人近期生理數(shù)據(jù)功能;為了實現(xiàn)數(shù)據(jù)存放功能,作者針對嵌入式設(shè)備,采用開銷小、可移植性強、便使用且高效的嵌入式SQLite數(shù)據(jù)庫。而CGI(Common Gateway Interface)通用網(wǎng)關(guān)接口,則是Web服務(wù)器和SQLite數(shù)據(jù)庫之間的橋梁,作為客戶端與Web服務(wù)器交互的標準接口,可按照該標準編寫應(yīng)用程序?qū)崿F(xiàn)靜態(tài)HTML網(wǎng)頁無法實現(xiàn)的數(shù)據(jù)庫訪問和搜索功能,實現(xiàn)客戶端與服務(wù)器的交互操作。其工作原理如下圖5所示。
圖5 遠程監(jiān)控模塊軟件構(gòu)成與工作原理
首先,由客戶端通過瀏覽器向服務(wù)器發(fā)起請求,嵌入式Web服務(wù)器端收到請求后觸發(fā)指定的腳本程序?qū)φ埱筮M行解析,并執(zhí)行相應(yīng)的CGI應(yīng)用程序。
其次,CGI應(yīng)用程序根據(jù)請求信息調(diào)用相應(yīng)的SQLite數(shù)據(jù)庫操作程序,并把數(shù)據(jù)庫操作程序的執(zhí)行結(jié)果以HTML文檔形式傳遞給Web服務(wù)器;嵌入式Web服務(wù)器分析、處理HTML文檔信息,并將最終數(shù)據(jù)內(nèi)容傳送給客戶端瀏覽器。
最后,由客戶端瀏覽器對數(shù)據(jù)內(nèi)容進行解析,并以網(wǎng)頁形式顯示給客戶。
2.1 嵌入式Web服務(wù)器Boa
2.1.1 嵌入式服務(wù)器Boa的選用
ARM Linux開發(fā)環(huán)境下支持httpd、thttpd和Boa三種嵌入式Web服務(wù)器。作者選用的是可執(zhí)行文件小、運行過程中需要的資源小的嵌入式Web服務(wù)器Boa。
Boa作為一種單任務(wù)的HTTP服務(wù)器,通過建立HTTP請求列表來處理多路HTTP連接請求,同時在處理請求過程只為CGI程序創(chuàng)建新進程,在最大程度上節(jié)省了系統(tǒng)資源,對嵌入式系統(tǒng)來說至關(guān)重要。同時它還具有自動解壓文件、生成目錄等功能。
2.1.2 Boa功能實現(xiàn)
設(shè)計中Boa服務(wù)器需實現(xiàn)接收客戶端請求、分析請求、響應(yīng)請求和向客戶端返回請求結(jié)果等任務(wù)。其工作流程如下圖5所示。
圖6 Boa服務(wù)器工作流程
Boa服務(wù)器初始化工作代碼實現(xiàn):
上述代碼首先創(chuàng)建一個無阻塞的流式套接字描述符socktfd,提供面向連接的可靠傳輸。然后利用bind()函數(shù)將指定端口與套接字描述符關(guān)聯(lián),最后利用listen()函數(shù)在指定端口監(jiān)聽,等待Request請求。
當監(jiān)聽到連接請求,服務(wù)器調(diào)用get_request()函數(shù)獲取請求信息,利用accept()函數(shù)建立連接,接收請求、分析信息,進行HTTP認證確認,處理請求信息,并將結(jié)果發(fā)送、顯示到Web瀏覽器;當有CGI請求時,創(chuàng)建CGI處理進程,并將處理結(jié)果發(fā)送、顯示到Web瀏覽器。
2.1.3 Boa在ARM上的移植
首先,針對BB-Black和實際應(yīng)用場景對Boa服務(wù)器源代碼作以下修改:(1)根據(jù)監(jiān)護人數(shù)量指定HTTP請求列表限制參數(shù);將服務(wù)器的輸入輸出緩存空間設(shè)為最大值,以加快生理數(shù)據(jù)傳輸速度;(2)通過編寫實現(xiàn)一些簡單函數(shù),來精簡Linux操作系統(tǒng)庫函數(shù),節(jié)約資源。
其次,利用arm-linux-gcc交叉編譯環(huán)境,配置生成大小為175.8KB的boa可執(zhí)行程序。通過bin.arm-linux-strip boa指令剝?nèi)ジ綆У木幾g信息,得到僅59.4KB的ARM平臺可執(zhí)行文件。
最后,通過修改Web服務(wù)器的配置文件boa.conf:監(jiān)聽端口為80,注釋掉綁定IP地址設(shè)置欄,KeepAliveMax值為50,KeepAliveTimeout值為10,服務(wù)器名字為www. RemoteMedicalMonitoringSystem.com;以及CGI路徑,訪問日志和錯誤日志的存放路徑等運行參數(shù);將該配置文件和可執(zhí)行文件boa放到BB-Block平臺的/home/www目錄下;執(zhí)行g(shù)enromfs-f romfs.img-d romdisk命令生成一個含有Boa服務(wù)器的根文件系統(tǒng),通過bootloader燒寫到存儲器。完成Boa到ARM平臺的移植。
2.2 CGI與SQLite數(shù)據(jù)庫移植
BB-Black開發(fā)板在運行CGI和SQLite程序前,需要將相應(yīng)的庫移植到開發(fā)板。設(shè)計通過交叉編譯之后將CGI的libcgic.a和capture拷貝到BB-black開發(fā)板的/home/www/cgi-bin目錄下,完成移植工作(可通過網(wǎng)頁訪問該目錄,若在網(wǎng)頁上顯示cgic test的字樣,則表明cgi庫移植成功);將SQLite的sqlite3和libsqlite3.so.0.8.6分別下載到BB-black開發(fā)板的/usr/bin和/usr/lib目錄中并通過ln –s /usr/lib/libsqlite3.so.0.8.6 /usr/lib/libsqlite3.so.0命令,建立軟連接(因為可執(zhí)行程序sqlite3在運行的時候搜尋libsqlite3.so.0動態(tài)庫),完成移植工作。
2.3 遠程監(jiān)控功能實現(xiàn)
2.3.1 HTML設(shè)計
遠程醫(yī)療監(jiān)控界面主要有監(jiān)護人登錄界面和被監(jiān)護人生理數(shù)據(jù)監(jiān)測界面。其中脈搏和心跳監(jiān)測HTML頁面首行代碼
用action=“pluse_heart_monitor.cgi”將表單指向pluse_heart_monitor.cgi處理程序,method=“get”指定獲取環(huán)境變量的方式為get;程序的最后幾行用type=“submit”或type=“reset”指定點擊這兩個按鈕時提交表單;其他生理數(shù)據(jù)監(jiān)測頁面與此相似。
2.3.2 CGI和SQLite數(shù)據(jù)庫互動設(shè)計
CGI與SQLite數(shù)據(jù)的互動主要包括CGI程序在SQLite數(shù)據(jù)庫上建立生理數(shù)據(jù)表,插入生理數(shù)據(jù);CGI按照表單提交內(nèi)容對數(shù)據(jù)表進行增刪改查詢操作;其主要的控制函數(shù)代碼如下:
其中g(shù)etcgidata()實現(xiàn)GET和POST兩種方式從網(wǎng)頁獲取字符串函數(shù);若為””“GET”方式,則通過getenv(“QUERY_STRING”)函數(shù)獲取字符串函數(shù);若為“POST”方式,首先用atoi(getenv(“CONTENT_LENGTH”))函數(shù)獲取字符串長度,再利用(char)fgetc(stdin)函數(shù)依次獲取單個字符。
通過getcgidata()函數(shù)從網(wǎng)頁獲取的字符串中各數(shù)據(jù)項由‘&’符號隔開,getstringdata()函數(shù)則是去掉‘&’符號,提取有效信息,為select_pluse_spo2()函數(shù)對SQLite數(shù)據(jù)庫執(zhí)行查詢操作提供參數(shù)。
select_pluse_spo2()函數(shù)以getstringdata()函數(shù)得到的有效信息為參數(shù),執(zhí)行打開數(shù)據(jù)庫、查詢數(shù)據(jù)、向網(wǎng)頁打印數(shù)據(jù)操作。部分功能實現(xiàn)代碼:
3 參數(shù)發(fā)送和接受功能的設(shè)計
3.1 數(shù)據(jù)采集模塊功能實現(xiàn)
生理數(shù)據(jù)采集模塊,由數(shù)據(jù)監(jiān)測模塊和無線傳感節(jié)點ZigBee組成。數(shù)據(jù)監(jiān)測模塊負責采集數(shù)據(jù),ZigBee節(jié)點負責接收、解析和傳輸數(shù)據(jù);解析過程根據(jù)監(jiān)測項目調(diào)用相應(yīng)的子程序(如:測血氧、脈搏、體溫等);傳輸數(shù)據(jù)時終端節(jié)點和非終端節(jié)點分別調(diào)用向串口發(fā)送子程序和發(fā)射子程序。具體的實現(xiàn)程序流程如下圖7所示。
圖7 ZigBee節(jié)點參數(shù)接收和發(fā)送流程圖
3.2 ARM板上生理數(shù)據(jù)接收功能實現(xiàn)
在ARM板上首先打開串口,然后配置發(fā)短信所需的串口參數(shù),并初始化接收緩沖區(qū),開始循環(huán)讀串口數(shù)據(jù)包;當讀取到數(shù)據(jù),就對數(shù)據(jù)包進行分析,獲取包中隱含的血氧飽和度和脈搏值;并進行健康監(jiān)測(按照健康生理指標監(jiān)測),如果獲取的生理數(shù)據(jù)不正常就會向監(jiān)護人手機發(fā)送短信(包含相應(yīng)的生理數(shù)據(jù)和健康狀況說明);最后將生理數(shù)據(jù)包轉(zhuǎn)化為16進制數(shù)存入文檔。具體的處理流程如下圖8所示。
圖8 ARM板接收和處理生理數(shù)據(jù)的流程圖
4. 系統(tǒng)功能測試
測試前,需通過開發(fā)板上的USB和UART接口,將生理數(shù)據(jù)接收模塊和GSM/GPRS模塊連接;通過RJ45接口將開發(fā)板接入網(wǎng)絡(luò);同時用戶根據(jù)需要佩戴數(shù)據(jù)采集模塊。完成硬件連接后各模塊上電,待系統(tǒng)會自動啟動各項服務(wù)完成后,進行測試。
以脈搏和血氧濃度為例,測試的登錄界面;查詢生理數(shù)據(jù)結(jié)果顯示,以及手機接收短信如下圖所示。
圖9 用戶登錄界面
圖10 用戶查詢生理數(shù)據(jù)結(jié)果顯示
圖11 手機接收生理監(jiān)測的生理數(shù)據(jù)短信
經(jīng)功能測試表明:
1. 在無線傳感網(wǎng)絡(luò)覆蓋范圍內(nèi),測試者可以攜帶監(jiān)測設(shè)備,隨意走動;系統(tǒng)自動進行生理監(jiān)測,數(shù)據(jù)傳輸和存儲。
2. 系統(tǒng)能夠智能的分析生理數(shù)據(jù)并將結(jié)果以短信形式發(fā)送到測試者手機上,同時能夠智能緊急呼叫測試者。
3. 測試者可以使用電腦或手機等其它上網(wǎng)設(shè)備,通過瀏覽器訪問Boa服務(wù)器,查看存儲的生理數(shù)據(jù)信息。
通過性能測試表明:
測試者穿戴完畢上電后,設(shè)備智能工作。測試者可以實時收到生理數(shù)據(jù)短信提示,同時也可以通過網(wǎng)頁快速的訪問、修改生理數(shù)據(jù)。但受傳感器信號覆蓋范圍的影響(據(jù)測試,兩個傳感節(jié)點間可傳遞數(shù)據(jù)包的間隔距離上限為1.5米),測試者的自有度有限。同時嵌入式設(shè)備存儲空間有限,存儲在SQLite數(shù)據(jù)中的數(shù)據(jù)會每隔一個小時以數(shù)據(jù)包的形式通過GSM發(fā)送給測試者。
總體來說該系統(tǒng)與傳統(tǒng)的醫(yī)療監(jiān)測設(shè)備相比,具有易攜帶、低功耗、低成本等優(yōu)點,在未來的家庭子女遠程監(jiān)護老人和提高人們生活質(zhì)量方面,有很大的市場前景。但系統(tǒng)仍存在不足,今后的工作主要是戶外無線傳感網(wǎng)絡(luò)環(huán)境的搭建研究,實現(xiàn)更大范圍、更實用的遠程醫(yī)療監(jiān)控。
-
ZigBee
+關(guān)注
關(guān)注
158文章
2270瀏覽量
242724 -
無線傳感網(wǎng)絡(luò)
+關(guān)注
關(guān)注
1文章
90瀏覽量
29433 -
遠程醫(yī)療
+關(guān)注
關(guān)注
10文章
305瀏覽量
39118 -
智能硬件
+關(guān)注
關(guān)注
205文章
2345瀏覽量
107523 -
BB-Black
+關(guān)注
關(guān)注
1文章
15瀏覽量
13196
發(fā)布評論請先 登錄
相關(guān)推薦
評論