本文以BeagleBone Black为中心,挂接ZigBee无线传感节点和GSM/GPRS模块;树立web服务器和SQLite数据库,接纳、解析和存储ZigBee节点收集的生理数据,操控GSM/GPRS进行紧迫呼救和发短信;让硬件智能化,供给主动生理监测功用,为人们的日子供给便当。
现在,医疗设备的首要缺点是价格昂贵、体积庞大和非智能;跟着技能的开展,近年来出现了不少优化的智能医疗设备,给人们的日子带了极大便当。但仍存在功用单一,不行长途拜访等缺点。
BB-Black开发板以其价格便宜、功用强大等长处广泛运用于各种场景,怎样运用BB-Black规划一个更智能、功用更完全的实时长途医疗监测体系,将是一个有意义、有市场前景的研讨课题。
1. 运用体系整体结构规划描绘
1.1 硬件渠道相关介绍
规划共触及BB-black、ZigBee和GSM/GPRS三个硬件模块。其间BB-black开发板为中心模块,是一款依据AM3359处理器的开发套件,其实物图如图1所示。处理器集成了高达 1GHz 的 ARM Cortex-A8 内核,并供给了丰厚的外设接口和两个扩展接口,可扩展LCD、UART、eMMC、ADC、I2C、SPI和PWM等接口。其体系框图如图2所示。
AM3359 是依据 ARM Cortex-A8 内核的微处理器,在图画、图形处理、外设和比如etherCAT 和 PROFIBUS 的工业接口选项方面进行了增强,并支撑Linux、 WinCE 和Android 等高档操作体系。该处理器包括了多个子体系。微处理器单元(MPU)子体系依据 ARM Cortex-A8 微处理器; POWERVR SGX 图形加速子体系用于 3D 图形加速以支撑显现和游戏作用;可编程实时单元子体系(PRUSS)运用户能够创立各种逾越本地外设的数字资源。此外,PRUSS 独立于 ARM 内核,这就答应设备有独立的操作和时钟,从而在杂乱体系解决方案中有更大的灵活性。
图1 BB-black实物图反面(左),正面(右)
图2 BB-Black体系框图
1.2 体系功用模块及信息处理进程
体系的功用模块如下图3所示,首要由数据收集模块、GSM模块、长途登录模块和BB-Black模块四部分组成。其间生理数据模块选用ZigBee无线传感节点实时收集用户生理数据;GSM模块选用四频 GSM/GPRS ,完结紧迫报警和定位;长途登录模块是指手机或其它上网设备,供用户长途拜访和监控;BB-Black模块是本体系的中心模块,该模块又可分为数据处理、Boa服务器和SQLite数据库三部分。数据处理模块完结对数据的接纳、解析、向SQLite数据库刺进数据和向GSM模块下达紧迫报警指令;SQLite数据库首要用于存储生理数据;Boa服务器则完结用户的长途拜访查询SQLite数据中存储的生理数据。
图3 体系功用模块框图
正如上图所示体系的信息处理进程如下:
1. 生理数据收集模块实时收集生理数据。
用户可依据需求随身带着相应的生理数据检测模块(如:血压、血糖、脉息等检测模块),在BB-black树立的无线传感网络掩盖规模内移动、实时生理数据收集,按IEEE 802.15.4的通讯规范,经过无线网络将生理数据包传送出去;在BB-black开发板上衔接的ZigBee终端节点将数据包接纳。
2. BB-black模块接纳、剖析和处理生理数据。
AM335x处理器守时的读取终端节点接纳的数据包,经过解析得到数据包中的生理数据,并存储到SQLite数据库,一起依据健康目标对数据进行剖析,若遇紧迫情况,则向GSM/GPRS模块发AT操控指令,进行紧迫呼救。
3. 监护人或医师可随时随地拜访服务器检查、办理被监护人近期生理数据。
用户经过上网设备翻开浏览器登陆Boa服务器,提交查询表单,即可拜访SQLite上存储的被监护人的生理数据,完结长途了解被监护人近期身体状况,完结长途监控。
本体系运用场景可如图4所示。
图4 体系运用场景图
2. 长途监控功用完结
体系以BB-black为渠道,供给用户长途登录拜访嵌入式Web服务器Boa,检查该服务器上的被监护人近期生理数据功用;为了完结数据寄存功用,作者针对嵌入式设备,选用开支小、可移植性强、便运用且高效的嵌入式SQLite数据库。而CGI(Common Gateway Interface)通用网关接口,则是Web服务器和SQLite数据库之间的桥梁,作为客户端与Web服务器交互的规范接口,可依照该规范编写运用程序完结静态HTML网页无法完结的数据库拜访和查找功用,完结客户端与服务器的交互操作。其作业原理如下图5所示。
图5 长途监控模块软件构成与作业原理
首要,由客户端经过浏览器向服务器建议恳求,嵌入式Web服务器端收到恳求后触发指定的脚本程序对恳求进行解析,并履行相应的CGI运用程序。
其次,CGI运用程序依据恳求信息调用相应的SQLite数据库操作程序,并把数据库操作程序的履行成果以HTML文档方法传递给Web服务器;嵌入式Web服务器剖析、处理HTML文档信息,并将终究数据内容传送给客户端浏览器。
最终,由客户端浏览器对数据内容进行解析,并以网页方法显现给客户。
2.1 嵌入式Web服务器Boa
2.1.1 嵌入式服务器Boa的选用
ARM Linux开发环境下支撑httpd、thttpd和Boa三种嵌入式Web服务器。作者选用的是可履行文件小、运转进程中需求的资源小的嵌入式Web服务器Boa。
Boa作为一种单使命的HTTP服务器,经过树立HTTP恳求列表来处理多路HTTP衔接恳求,一起在处理恳求进程只为CGI程序创立新进程,在最大程度上节省了体系资源,对嵌入式体系来说至关重要。一起它还具有主动解压文件、生成目录等功用。
2.1.2 Boa功用完结
规划中Boa服务器需完结接纳客户端恳求、剖析恳求、呼应恳求和向客户端回来恳求成果等使命。其作业流程如下图6所示。
图6 Boa服务器作业流程
Boa服务器初始化作业代码完结:
上述代码首要创立一个无堵塞的流式套接字描绘符socktfd,供给面向衔接的牢靠传输。然后运用bind()函数将指定端口与套接字描绘符相关,最终运用listen()函数在指定端口监听,等候Request恳求。
当监听到衔接恳求,服务器调用get_request()函数获取恳求信息,运用accept()函数树立衔接,接纳恳求、剖析信息,进行HTTP认证承认,处理恳求信息,并将成果发送、显现到Web浏览器;当有CGI恳求时,创立CGI处理进程,并将处理成果发送、显现到Web浏览器。
2.1.3 Boa在ARM上的移植
首要,针对BB-Black和实践运用场景对Boa服务器源代码作以下修正:(1)依据监护人数量指定HTTP恳求列表约束参数;将服务器的输入输出缓存空间设为最大值,以加速生理数据传输速度;(2)经过编写完结一些简略函数,来精简Linux操作体系库函数,节省资源。
其次,运用arm-linux-gcc穿插编译环境,装备生成巨细为175.8KB的boa可履行程序。经过bin.arm-linux-strip boa指令剥去顺便的编译信息,得到仅59.4KB的ARM渠道可履行文件。
最终,经过修正Web服务器的装备文件boa.conf:监听端口为80,注释掉绑定IP地址设置栏,KeepAliveMax值为50,KeepAliveTimeout值为10,服务器姓名为www. RemoteMedicalMonitoringSystem.com;以及CGI途径,拜访日志和过错日志的寄存途径等运转参数;将该装备文件和可履行文件boa放到BB-Block渠道的/home/www目录下;履行genromfs-f romfs.img-d romdisk指令生成一个含有Boa服务器的根文件体系,经过bootloader烧写到存储器。完结Boa到ARM渠道的移植。
2.2 CGI与SQLite数据库移植
BB-Black开发板在运转CGI和SQLite程序前,需求将相应的库移植到开发板。规划经过穿插编译之后将CGI的libcgic.a和capture拷贝到BB-black开发板的/home/www/cgi-bin目录下,完结移植作业(可经过网页拜访该目录,若在网页上显现cgic test的字样,则标明cgi库移植成功);将SQLite的sqlite3和libsqlite3.so.0.8.6别离下载到BB-black开发板的/usr/bin和/usr/lib目录中并经过ln –s /usr/lib/libsqlite3.so.0.8.6 /usr/lib/libsqlite3.so.0指令,树立软衔接(由于可履行程序sqlite3在运转的时分搜索libsqlite3.so.0动态库),完结移植作业。
2.3 长途监控功用完结
2.3.1 HTML规划
长途医疗监控界面首要有监护人登录界面和被监护人生理数据监测界面。其间脉息和心跳监测HTML页面首行代码。
用action=pluse_heart_monitor.cgi将表单指向pluse_heart_monitor.cgi处理程序,method=get指定获取环境变量的方法为get;程序的最终几行用type=submit或type=reset指定点击这两个按钮时提交表单;其他生理数据监测页面与此类似。
2.3.2 CGI和SQLite数据库互动规划
CGI与SQLite数据的互动首要包括CGI程序在SQLite数据库上树立生理数据表,刺进生理数据;CGI依照表单提交内容对数据表进行增修正查询操作;其首要的操控函数代码如下:
其间getcgidata()完结GET和POST两种方法从网页获取字符串函数;若为””“GET”方法,则经过getenv(QUERY_STRING)函数获取字符串函数;若为“POST”方法,首要用atoi(getenv(CONTENT_LENGTH))函数获取字符串长度,再运用(char)fgetc(stdin)函数顺次获取单个字符。
经过getcgidata()函数从网页获取的字符串中各数据项由‘’符号离隔,getstringdata()函数则是去掉‘’符号,提取有用信息,为select_pluse_spo2()函数对SQLite数据库履行查询操作供给参数。
select_pluse_spo2()函数以getstringdata()函数得到的有用信息为参数,履行翻开数据库、查询数据、向网页打印数据操作。部分功用完结代码:
3 参数发送和承受功用的规划
3.1 数据收集模块功用完结
生理数据收集模块,由数据监测模块和无线传感节点ZigBee组成。数据监测模块担任收集数据,ZigBee节点担任接纳、解析和传输数据;解析进程依据监测项目调用相应的子程序(如:测血氧、脉息、体温等);传输数据时终端节点和非终端节点别离调用向串口发送子程序和发射子程序。详细的完结程序流程如下图7所示。
图7 ZigBee节点参数接纳和发送流程图
3.2 ARM板上生理数据接纳功用完结
在ARM板上首要翻开串口,然后装备发短信所需的串口参数,并初始化接纳缓冲区,开端循环读串口数据包;当读取到数据,就对数据包进行剖析,获取包中隐含的血氧饱和度和脉息值;并进行健康监测(依照健康生理目标监测),假如获取的生理数据不正常就会向监护人手机发送短信(包括相应的生理数据和健康状况阐明);最终将生理数据包转化为16进制数存入文档。详细的处理流程如下图8所示。
图8 ARM板接纳和处理生理数据的流程图
4. 体系功用测验
测验前,需经过开发板上的USB和UART接口,将生理数据接纳模块和GSM/GPRS模块衔接;经过RJ45接口将开发板接入网络;一起用户依据需求佩带数据收集模块。完结硬件衔接后各模块上电,待体系会主动发动各项服务完结后,进行测验。
以脉息和血氧浓度为例,测验的登录界面;查询生理数据成果显现,以及手机接纳短信如下图所示。
图9 用户登录界面
图10 用户查询生理数据成果显现
图11 手机接纳生理监测的生理数据短信
经功用测验标明:
1. 在无线传感网络掩盖规模内,测验者能够带着监测设备,随意走动;体系主动进行生理监测,数据传输和存储。
2. 体系能够智能的剖析生理数据并将成果以短信方法发送到测验者手机上,一起能够智能紧迫呼叫测验者。
3. 测验者能够运用电脑或手机等其它上网设备,经过浏览器拜访Boa服务器,检查存储的生理数据信息。
经过功能测验标明:
测验者穿戴结束上电后,设备智能作业。测验者能够实时收到生理数据短信提示,一起也能够经过网页快速的拜访、修正生理数据。但受传感器信号掩盖规模的影响(据测验,两个传感节点间可传递数据包的间隔间隔上限为1.5米),测验者的自有度有限。一起嵌入式设备存储空间有限,存储在SQLite数据中的数据会每隔一个小时以数据包的方法经过GSM发送给测验者。
整体来说该体系与传统的医疗监测设备比较,具有易带着、低功耗、低成本等长处,在未来的家庭子女长途监护老人和进步人们日子质量方面,有很大的市场前景。但体系仍存在缺乏,往后的作业首要是野外无线传感网络环境的建立研讨,完结更大规模、更有用的长途医疗监控。