基于S3C2410设计三导联远程心电监护
时间:12-02
来源:互联网
点击:
2.3 数据无线传输模块原文位置
本系统为远程移动终端,涉及数据的无线传输,为实现此功能采用了Siemens公司的MC35模块,并移植了TCPIP协议栈和PPP协议,以完成心电数据的发送和诊断结果的接收。MC35是Siemens公司推出的第一款支持GPRS的GSM/GPRS模块,它体积小,易于集成到便携式手持终端中,支持VOICE、DATA、FAX以及SMS等业务。处理器S3C2410通过异步串行通信接口与MC35相连,并通过AT命令对该模块进行控制和数据传输。
在发送数据时,首先,应用层将采集到的心电数据提交给TCPIP协议栈;然后,TCPIP协议栈根据目的地址和端口将该心电数据封装成完整的IP数据报,再提交至PPP层;最后,该IP数据报经PPP层封装之后,通过串口逐字节地提交至MC35并发送。在接收数据时,MC35首先将接收的数据逐字节地提交至PPP层;经PPP层将分散的各字节重组成一帧完整的IP数据报之后,再提交至TCPIP层进行详细的处理,具体流程如图4所示。
在开机初始化时要完成MC35的启动并登录移动梦网网关,建立与服务提供商的连接。一般在发送指令之前先要发送一条测试指令,以检测MC35的当前状态,该指令的格式为“ATr”;在入网网关及流量控制等参数通过AT指令设置完成之后,便可通过服务编码99开始呼叫与服务提供商建立连接,指令格式为ATDT*99***1#rn。若在该指令执行之后给定的时间内返回CONNECT信息,则表明与服务提供商的连接建立成功;否则,表明拨号失败,无线传输功能无法正常启动。MC35成功登录移动梦网网关之后,将自动从命令模式切换到数据通信模式,且串口通信方式由原来的查询式变为中断方式。此时由系统主动发送一帧PPP请求信息,服务提供商接到该请求信息后主动发出询问帧,协商相关参数的设置。待服务参数及用户身份验证成功之后,服务提供商为系统分配一独立IP,至此便可认为GPRS成功上线。
图4 GPRS无线数据传输流程
GPRS成功上线后可以认为MC35主要处在两种工作状态:数据传输状态和空闲状态。在数据传输状态,MC35的峰值电流可达400 mA;在空闲状态一般为15 mA。另外,在空闲状态MC35还支持多种休眠模式。考虑到系统的功耗问题,启用了MC35的休眠功能。系统采用了MC35的休眠模式七。在该休眠模式下,电流一般为3 mA左右;MC35无论从串口还是从服务提供商接收到数据,都会立刻将MC35设置为正常模式,待数据传输结束之后自动进入休眠模式。该休眠模式的设置可以通过指令“AT+CFUN=7rn”来完成,且该指令必须在GPRS上线之后执行。这样在空闲状态下即可自动将MC35设置为休眠模式,将电流值从15 mA降到3 mA。在休眠指令执行前涉及MC35的状态切换,因为在执行该指令前MC35处在数据通信模式,所以要通过指令“+++”将其切换到命令模式之后再执行该休眠指令。在休眠指令执行之后还需通过指令“ATOr”将MC35切换到数据通信模式;否则MC35会把将要发送的数据也当作指令来处理。
2.4 图形用户界面原文位置
系统采用深圳蓬远公司生产的低功耗、128×64点阵液晶模块MOBI2006来图形化显示系统信息。MOBI2006支持并行和串行两种数据通信方式,工作电压为3.3 V。在本系统应用中,使用S3C2410的I/O口模拟LCD的控制时序来实现对液晶的控制。
在具体实现相关信息的显示时采用了Framebuffer技术。首先预分配一块缓冲区并声明为二维数组,数组的一维长度和二维长度分别与液晶的宽和高相对应,这样数组的每个元素都代表液晶中的一个点。在系统运行中若要刷新液晶显示,则首先要更新Framebuffer缓冲区,再从Framebuffer更新液晶显示。MOBI2006列向基于点寻址;横向基于页寻址,每一页由8个点组成。基于液晶的特点,如果不采用Framebuffer技术,刷新屏幕中的一小块,则会导致整个屏幕的变动,给上层应用的开发带来很大困难。因此,虽说采用Framebuffer技术将占用一部分内存和刷新时间,但会为后续的开发带来很大方便:在上层具体应用中不再受页寻址的限制,在上层开发者看来列向、横向均为点寻址,可以方便灵活地操纵液晶。另外,为了保证Framebuffer与液晶的同步,采用基于事件的方法刷新液晶屏并且是局部刷新,这样既节省了液晶的刷新时间又减小了屏幕的抖动。
例如,应用层要显示一张图片,只须给出图片的显示位置,即对应于二维数组的行列值、图片的宽和高,以及相应的点阵数据。首先将图片的点阵数据刷新到Framebuffer缓冲区,然后再根据显示位置确定液晶的刷新区域,其中缓冲的列值对应于液晶的列值,而行值要转换为液晶的页面值,可通过如下公式转换:
Page_end=(row+high-1)/8
其中:Page_start和Page_end分别对应于液晶的起始、终止页面值;row对应于图片显示位置的横坐标;high对应于图片的高度。计算出相应的页面值之后便可通过如下过程刷新液晶的指定区域,完成预期图片的显示。
for(page=p_s;pagel_c_e;lc--) //2
{
GUI_Lcd_SetALL((u8_t)page,(u8_t)lc);
for(f_bit=7;f_bit>=0;f_bit--)
{
if(!(Frame_Buffer[page*LCD_PAGE+f_bit][fc]))
GUI_Lcd_SendData(0);
else
GUI_Lcd_SendData(1);
}Delay(10);
fc++;
}
}
本系统为远程移动终端,涉及数据的无线传输,为实现此功能采用了Siemens公司的MC35模块,并移植了TCPIP协议栈和PPP协议,以完成心电数据的发送和诊断结果的接收。MC35是Siemens公司推出的第一款支持GPRS的GSM/GPRS模块,它体积小,易于集成到便携式手持终端中,支持VOICE、DATA、FAX以及SMS等业务。处理器S3C2410通过异步串行通信接口与MC35相连,并通过AT命令对该模块进行控制和数据传输。
在发送数据时,首先,应用层将采集到的心电数据提交给TCPIP协议栈;然后,TCPIP协议栈根据目的地址和端口将该心电数据封装成完整的IP数据报,再提交至PPP层;最后,该IP数据报经PPP层封装之后,通过串口逐字节地提交至MC35并发送。在接收数据时,MC35首先将接收的数据逐字节地提交至PPP层;经PPP层将分散的各字节重组成一帧完整的IP数据报之后,再提交至TCPIP层进行详细的处理,具体流程如图4所示。
在开机初始化时要完成MC35的启动并登录移动梦网网关,建立与服务提供商的连接。一般在发送指令之前先要发送一条测试指令,以检测MC35的当前状态,该指令的格式为“ATr”;在入网网关及流量控制等参数通过AT指令设置完成之后,便可通过服务编码99开始呼叫与服务提供商建立连接,指令格式为ATDT*99***1#rn。若在该指令执行之后给定的时间内返回CONNECT信息,则表明与服务提供商的连接建立成功;否则,表明拨号失败,无线传输功能无法正常启动。MC35成功登录移动梦网网关之后,将自动从命令模式切换到数据通信模式,且串口通信方式由原来的查询式变为中断方式。此时由系统主动发送一帧PPP请求信息,服务提供商接到该请求信息后主动发出询问帧,协商相关参数的设置。待服务参数及用户身份验证成功之后,服务提供商为系统分配一独立IP,至此便可认为GPRS成功上线。
图4 GPRS无线数据传输流程
GPRS成功上线后可以认为MC35主要处在两种工作状态:数据传输状态和空闲状态。在数据传输状态,MC35的峰值电流可达400 mA;在空闲状态一般为15 mA。另外,在空闲状态MC35还支持多种休眠模式。考虑到系统的功耗问题,启用了MC35的休眠功能。系统采用了MC35的休眠模式七。在该休眠模式下,电流一般为3 mA左右;MC35无论从串口还是从服务提供商接收到数据,都会立刻将MC35设置为正常模式,待数据传输结束之后自动进入休眠模式。该休眠模式的设置可以通过指令“AT+CFUN=7rn”来完成,且该指令必须在GPRS上线之后执行。这样在空闲状态下即可自动将MC35设置为休眠模式,将电流值从15 mA降到3 mA。在休眠指令执行前涉及MC35的状态切换,因为在执行该指令前MC35处在数据通信模式,所以要通过指令“+++”将其切换到命令模式之后再执行该休眠指令。在休眠指令执行之后还需通过指令“ATOr”将MC35切换到数据通信模式;否则MC35会把将要发送的数据也当作指令来处理。
2.4 图形用户界面原文位置
系统采用深圳蓬远公司生产的低功耗、128×64点阵液晶模块MOBI2006来图形化显示系统信息。MOBI2006支持并行和串行两种数据通信方式,工作电压为3.3 V。在本系统应用中,使用S3C2410的I/O口模拟LCD的控制时序来实现对液晶的控制。
在具体实现相关信息的显示时采用了Framebuffer技术。首先预分配一块缓冲区并声明为二维数组,数组的一维长度和二维长度分别与液晶的宽和高相对应,这样数组的每个元素都代表液晶中的一个点。在系统运行中若要刷新液晶显示,则首先要更新Framebuffer缓冲区,再从Framebuffer更新液晶显示。MOBI2006列向基于点寻址;横向基于页寻址,每一页由8个点组成。基于液晶的特点,如果不采用Framebuffer技术,刷新屏幕中的一小块,则会导致整个屏幕的变动,给上层应用的开发带来很大困难。因此,虽说采用Framebuffer技术将占用一部分内存和刷新时间,但会为后续的开发带来很大方便:在上层具体应用中不再受页寻址的限制,在上层开发者看来列向、横向均为点寻址,可以方便灵活地操纵液晶。另外,为了保证Framebuffer与液晶的同步,采用基于事件的方法刷新液晶屏并且是局部刷新,这样既节省了液晶的刷新时间又减小了屏幕的抖动。
例如,应用层要显示一张图片,只须给出图片的显示位置,即对应于二维数组的行列值、图片的宽和高,以及相应的点阵数据。首先将图片的点阵数据刷新到Framebuffer缓冲区,然后再根据显示位置确定液晶的刷新区域,其中缓冲的列值对应于液晶的列值,而行值要转换为液晶的页面值,可通过如下公式转换:
Page_end=(row+high-1)/8
其中:Page_start和Page_end分别对应于液晶的起始、终止页面值;row对应于图片显示位置的横坐标;high对应于图片的高度。计算出相应的页面值之后便可通过如下过程刷新液晶的指定区域,完成预期图片的显示。
for(page=p_s;pagel_c_e;lc--) //2
{
GUI_Lcd_SetALL((u8_t)page,(u8_t)lc);
for(f_bit=7;f_bit>=0;f_bit--)
{
if(!(Frame_Buffer[page*LCD_PAGE+f_bit][fc]))
GUI_Lcd_SendData(0);
else
GUI_Lcd_SendData(1);
}Delay(10);
fc++;
}
}
USB ARM S3C2410 嵌入式 LCD PWM ADC 电源模块 电压 电路 模拟电路 滤波器 电流 相关文章:
- 基于Blackfin DSP的哮喘管理设备(12-18)
- “聪明的药丸”(07-20)
- 手持式医疗电子设备的设计实现(05-18)
- 基于LabVIEW的食管动力检测系统设计(02-26)
- 基于MSP430的便携式医疗监护系统的设计(06-12)
- 采用 MAXQ2010的低功耗医学数据记录仪的设计(03-08)