GPRS在生理数据远程传输中的应用研究
摘要:介绍一种通过GPRS技术传输生理数据的方法。采用网络协议处理器芯片E5112实现TCP/IP协议,单片机检测出人体的心率数据,同时通过串行口发出的命令字符串控制E5112,由E5112再控制GPRS数传模块G18,实现心率数据的发送。接收端采用拨号上网的计算机接收心率数据。这种方法费用少,传输稳定,且传输距离可达到GSM网络能达到的区域。
关键词:GPRS 串行口心率 网络协议处理 E5112 G18
引言
GPRS(General Packet Radio Service)是通用分组无线业务的简称,是一种以全球手机系统(GSM)为基础的数据传输技术。GPRS和以往连续在频道传输的方式(如GSM)不同,是以分包(packet)的形式来传输,信道是共享使用的,需要的时候才有数据包产生。用户可以随时进行数据传输,而不是每次都需要拨号上网。GPRS的数据传输速率可提升到56Kbps,甚至114Kbps。
随着医疗事业的发展,远程医疗(telemedicine)逐渐成为发展的方向。在很多情况下,都要求将现场采集的病人的各种生理参数传到医疗或中心站。如将急求车上病人的数据传输到医院,以及对一般非住院病人的病情监护(社区监护)等。由于GPRS技术的特点,使得它非常适合这一类应用。
本文中,将介绍一种基于GPRS技术的生理数据传输的方法。
1 方法
实验中,采用GPRS数据模块G18来完成通信的任务,所以传输的生理数据为心率。由于GPRS技术是一种基于TCP/IP协议的分包传输技术,所以数据在传输前必须进行TCP/IP协议的封装处理。这个任务由协议处理芯片E5112完成。单片机测量心率数据,然后通过串行口,送至E5112进行TCP/IP协议的处理和封装,再送至G18发送。
javascript:window.open(this.src);" style="cursor:pointer;"/>
由于心率数据采用TCP/IP协议进行分包传输,所以在接收端不需要再配置G18,只需一台以某种方式联入互联网(必须具有公司的IP地址)的计算机即可。计算机中的系统软件(Windows系统)具有TCP/IP协议处理功能,能提取出网络传输的心率数据,在屏幕上显示。系统框图如图1。
(1)G18
Motorola G18是摩托罗拉嵌入式三频900/1800/1900MHz GSM/GPRS模块。该模块具有如下特点:①体积小(40mm×80.2mm×7.5mm)、质量软(22g);②天线插座(型号MMCX)支持直线或直角连接;③支持9针RS-232串行接口(3V CMOS电平);④内含用户识别卡(Subscriber Identity Module,SIM)读卡器;⑤3.0~6.0V工作电压;⑥支持语音、数据、传真、短消息和WAP功能;⑦GPRS分组交换速率可达到57.6Kb/s;⑧待机电流7.2±0.5mA,使用时平均电流300mA;⑨支持CSD模式(AT命令集,包括GSM 07.07和GSM07.05)和GPRS模式(AT命令集,支持GSM07.60和07.07 7.5版)。
G19通过36针ZIF插座(或28针双排针式插座)与外部连接。36针插座中包括模拟语音输入/输出和数字语音输入/输出接口,外部SIM卡读卡器接口,以及RS-232串行通信 接口(3V CMOS逻辑电平)。由于本实验只用到了数据传输功能,且模块具有内置SIM卡读卡器,所以所有接口中只用到了RS-232串行通信接口。该接口采用串行异步通信方式,能自动识别波特率(300bps、1200bps、2400bps、4800bps、9600bps、19200bps)。在数据传输模式下,G18的初始化、功能控制以及数据的通信都通过RS-232串行异步通信接口进行,因此,该模块与外部的硬件接口相对简单,是标准的RS-232接口接法。
相比之下,该模块使用的通信协议则较为复杂,模块与外部所有的数据和控制信息都通过一套由字符组成的命令串(AT 命令集)来完成,而这些命令串就是通过RS-232串行异步通信接口进行传递的。命令串都以特定的字符(AT)开始;以特定的字符结束;中间部分根据命令的类型、长度不定,主要包括下列指令类型:模块管理(模块开、关机,状态检测等),语音通信 (拨号控制、通信状态报告等),数据、传真控制,短信息功能(短信息的撰写、管理和收发)。
(2)网络协议处理器E5112
E5112是上海精致科技有限公司研制的网络协议处理器,是完成TCP/IP协议的专用芯片,支持TCP(传输控制协议)和UDP(用户数据文报协议)协议,实现将嵌入式系统直接与Internet相连。E5112具有客户机功能,可以主动请求TCP连接远方服务器通信。E5112也具有服务器功能,可以监听来自客户机的TCP连接请求,建立TCP连接通信。因此,使用E5112的系统之间只要知道对方IP地址和端口号就可以通过Internet进行通信。
E5112一端通过RS-232接口与G18连接,另一端通过并口与上位机相连。E5112提供透明通道和非透明通道两种工作模式。在透明通道模式下,E5112对单片机发出的数据不进行处理直接将数据发送到G18,收到的数据也原封不动地传递给单片机。在这个模式下,短消息和语音功能可以由用户自己通过AT命令来实现。在非透明通道模式下,单片机通过串口采用帧格式与E5112通信。javascript:window.open(this.src);" style="cursor:pointer;"/>
E5112帧格式以十六进制数7E开始,然后是类型、长度、数据三个字段,最后以十六进制数7E结束。类型字段表示本帧的类型。E5112共有输入和输出两大类型。输入帧有读网关IP地址帧、设置服务器端口帧、设置ISP电话号码和用户名用户密码帧、设置SOCKET插口帧、发送TCP数据帧、发送UDP数据帧、读源IP地址帧等共13种。输出帧有物理层失败帧、PPP协商失败帧、PPP协商成功帧、SOCKET关闭帧、接收SOCKET数据帧、接收源IP地址帧等共16种。长度字符存有类型、长度、数据三个字段的长度(字节数)。数据字段只有当有数据发送和接收时才存在。类型、长度、数据三个字段中如含有十六进制数7E,则必须进行转义处理。
由于E5112能进行TCP/IP协议和AT命令集的处理,所以编程者完全不需了解TCP/IP协议和AT命令集,只需向E5112发送符合 帧格式的字符串,或接收E5112发出的帧,即可实现GPRS数据通信。
(3)单片机、E5112、G18之间的连接
E5112的接口是5V逻辑,而G18是3V逻辑,两者要连接起来使用必须要进行电平转换G18的RS-232接口输入针(TXD、DTR、RTS)具有5V的容限,最大可接收5.5V的电压,所以E5112的这三个输出脚可直接连接至G18相应引脚。G18的输出最大值不能达到E5112的输入容限,应进行电平转换,我们采用漏极开路的驱动芯片74LVC07完成这一功能。图2为某一路信号进行电平转换的电路,74LVC07电源为3V,所以可以接收3V输入;而输出端经一上拉电阻连至5V,所以输出被上拉至5V。
由于上位机只提供并口与上位机连接,所以在单片机与E5112之间插入一个串并转换芯片16C550,进行串行和并行数据的转换单片机、E5112之间的连接见图3。
(4)心率采集
心率采集采用了从心电信号中提取的方法。采集得到的心电信号放大后,经心率检测电路转化与心电R波同步的脉冲,再由单片机计时测量其频率,求倒数可得心率值。心率数据经单片机测量完成后,存储在单片机的存储器中,需要时经串行口发送,进行无线传输。
(5)单片机采用了AT89C51,单片机的软件采用C语言编制。心率脉冲连接至0号外部中断引脚(INT0),定时器0设为连续计时。每当INT0产生中断,即将定时器0数值记录下来,减去上次的记录值,计算心率数值。
单片机串行口设为方式1,波特率为9600bps,1位停止位,无奇偶校验。上电后,首先向E5112(通过16C550串并转换)发送设置ISP电话号码、用户名及用户密码帧,其中ISP电话号码必须为“*99#”,用户名和用户密码可以任意设置,但不能为空。成功后,再向E5112发送拨号指令,等待应答帧,当接收到PPP协议成功帧,则拨号成功,否则需继续拨号直至成功为止(拨号成功后,网络连接就一直建立,有数据发送时即可即时发送,不需要拨号)。然后,向E5112发送SOCKET设置帧,设置本地、远端的IP地址和端口,如成功,则点和点通信环境已建立,调用发送TCP数据帧和发送UDP数据帧就可以发送心率数据了,其中心率数据置于TCP和UDP数据帧的数据字段中。
(6)接收端编程
在接收端的计算机上,主要应用VB的一个Winsock控件来实现接收发送的生理参数。利用WinSock控件可以与远程计算机建立连接,并通过UDP或者TCP协议进行数据交换。这两种协议都可以用来创建客户与服务器应用程序。
使用时,只需在接收窗体中插入一个Winsock控件,将Protocol属性设定为使用的协议(TCP或UDP),设置远程(单片机端)IP地址和端口,调用Bind方法,即可建立双方的连接。当单片机端发送心率数据时,将触发Winsock控件的DataArrival事件,在事件处理程序中读取GetData属性的内容,即可获得远端发来的心率数据。
端口的设置可以任意,但最好大于1000,以避开与常用的端口冲突。javascript:window.open(this.src);" style="cursor:pointer;"/>
(7)实验过程
由于条件限制,接收端计算机上网方式选择了有线电话拨号方式,以获得公网IP。实验时,首先接收端需拨号上网,获得本地的IP地址,运行VB接收程序。然后,在单片机程序中设定远端IP地址和端口,运行单片机C语言程序,检测心率并发送。这时接收端计算机就能收到心率数据并显示。
2 结果与讨论
实验中,传送的心率数据都准确地无误地到达了接收方,传输质量非常稳定,且传输距离可以达到GSM网络能达到的地方。GPRS能实现“永远在线”,所以一旦建立GPRS连接,就可以随时发送数据,不需再拨号。由于心率数据传输的频率和数据量不大,所以耗费的GPRS通信费也是很少的。
利用GPRS技术传输生理数据,可以不用考虑建立无线网络的巨额投资,费用只是GPRS模块的一次性投资和传输时的GPRS通信费,且可随时发送,使用非常方便;GSM网络是一个非常成熟的网络,具有完善的纠错机制,因此传输的稳定性很好。由于GSM已经得到非常广泛的应用,传输的距离由网络的漫游功能而能达到全部的城市和绝大部分乡村。可以预见,GPRS技术将在各类数据传输应用(包括生理数据传输)中得到越来越广泛的应用。
由于条件限制,本实验在接收端采取了拨号上网的方式,拨号上网,得到的都是动态IP地址,所以单片机程序每一次拨号后都要更改IP地址,重新编译运行,在实际的系统中,接收端可租用固定的IP地址,单片机的程序就不需再修改。另外,采用专用网络协议处理器芯片,可以降低开发难度,但增加了系统成本、体积和功耗,如能用软件实现TCP/IP协议,或采用带TCP/IP协议栈的单片机,则可解决这一矛盾。