微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 医疗电子 > 基于S3C2410设计三导联远程心电监护

基于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++;
  }
  }

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top