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