新闻中心

EEPW首页 > 测试测量 > 设计应用 > 基于mc35i的m2m终端设计与研究xkpf

基于mc35i的m2m终端设计与研究xkpf

作者:时间:2010-12-08来源:网络收藏


嵌入式软件设计

采用嵌入式实时操作系统可以更合适、有效地利用CPU的资源,简化应用软件的设计,缩短系统开发时间,更好地保证系统的实时陛和可靠性。 FreeRTOS是在Sourceforge网站上发布的微内核嵌入式实时操作系统,它是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点。作为一个轻量级的操作系统,FreeRTOS提供的功能包括:任务管理、时间管理、信号量、消息队列、内存管理等

FreeRTOS支持优先级和轮换时间片两种调度算法,可根据用户需要设置为可剥夺型内核或不可剥夺型内核。本文基于FreeRTOS给出了M2M终端实现PPP协商以及数据封装传输的软件设计方案。

基于状态机设计GPRS连接任务

由于网络和信号较弱等原因,可能导致节点与GPRS网络连接的失败,采用基于状态机的结构设计方法对各个阶段产生的错误进行处理,能保障模块与GPRS网络建立可靠连接。程序状态机如图2所示。

本文引用地址:http://www.eepw.com.cn/article/195191.htm

闲待命态:此时处在离线关闭状态,节点处在低功耗模式下,系统复位后处于此状态。

GPRS参数设置态:处理器控制启动MC模块后进入此状态,通过发送AT命令对模块及必要的网络参数进行设置,为使各个参数均设置成功,软件设计中增加了容错重试机制。

PPP协商态:GPRS参数设置完成后,通过发送AT*99***1#命令开始MC模块与GPRS网络ISP(网络服务提供商) 的PPP协商软件设计中采用LCPHandler()函数完成LCP协商,PAPHandler()完成认证,由IPCPHandler()完成IPCP 协商,如果最后获得ISP和本节点的IP地址,则进入PPPOVER态,此后就能进行数据的传输了,由于GPRS网络等原因,PPP协商有时会失败,此时应重启MC35i模块,再按照状态机流程重新连接。

UDP数据传输态:当程序采用UDP方式进行数据传输时,程序进入此状态,通过xDataTrsmtTask()任务进行数据的UDP/IP封装和解析。

TCP数据传输态:当节点调用uip_cionnect()函数与监控中心建立连接后,程序进入TCP数据传输态,进行基于TCP的数据传输。

数据的封装和传输

通过GPRS进行数据的传输需要经过Internet网络进行中转,因而传输的数据封装必须进行TCP/IP协议。文中利用软件进行了数据封装,需要传输的数据经过传输层UDP协议头封装,然后是IP协议头的封装,最后进行PPP协议的封装。经过封装传输到MC35i的数据格式如表1所示。


MC35i将接收到的数据透明地传输到Internet网络中。通过Internet网络路由器中转,最终将数据传输到监控中心。接收端对接收到的数据按照相应的层次进行解析,从而确定数据的目标程序。

系统软件设计采用分层的结构,从底到上分别为:串口驱动层(物理层)、PPP协议层(链路层)、IP协议层(网络层)、UDP协议和 ICMP层(传输层)以及应用层。在移植好的LwIP协议栈中,通过在各层中建立相应功能的线程,实现数据的封装。底层软件为上层软件提供函数支持,上层软件利用底层软件完成应用程序的编写和实现。软件采用自底向上的设计方法逐步实现系统中各个函数的功能,各部分函数实现均采用模块化的设计方法。每个任务对应一个模块



关键词: xkpf 35i m2m mc

评论


相关推荐

技术专区

关闭