基于嵌入式ARM处理器的M2M终端总体设计(2)
基于状态机设计GPRS连接任务
由于网络和信号较弱等原因,可能导致节点与GPRS网络连接的失败,采用基于状态机的结构设计方法对各个阶段产生的错误进行处理,能保障模块与GPRS网络建立可靠连接。程序状态机如图2所示。
闲待命态:此时MC35i处在离线关闭状态,节点处在低功耗模式下,系统复位后处于此状态。
GPRS参数设置态:处理器控制启动MC35i模块后进入此状态,通过发送AT命令对模块及必要的网络参数进行设置,为使各个参数均设置成功,软件设计中增加了容错重试机制。
PPP协商态:GPRS参数设置完成后,通过发送AT*99***1#<CR>命令开始MC35i模块与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将接收到的数据透明地传输到Internet网络中。通过Internet网络路由器中转,最终将数据传输到监控中心。接收端对接收到的数据按照相应的层次进行解析,从而确定数据的目标程序。
系统软件设计采用分层的结构,从底到上分别为:串口驱动层(物理层)、PPP协议层(链路层)、IP协议层(网络层)、UDP协议和ICMP层(传输 层)以及应用层。在移植好的LwIP协议栈中,通过在各层中建立相应功能的线程,实现数据的封装。底层软件为上层软件提供函数支持,上层软件利用底层软件 完成应用程序的编写和实现。软件采用自底向上的设计方法逐步实现系统中各个函数的功能,各部分函数实现均采用模块化的设计方法。每个任务对应一个模块 对 每个任务单独进行设计后,最终由FreeRTOS操作系统统一管理,通过采用信号量和邮箱的方式实现多个任务之间的通信,软件各部分主要函数之间的关系如 图3所示。
在MC35SerialISR()中将接收的数据存放到xQRxChars队列中后,发送SemMC35Rx信号量来激活PPPRxTask()任务,通过对接收数据的解析,确定数据包的类型,然后由相应的函数对接收数据进行处理。
如果接收的数据是应用程序的数据,将由IPRx()函数判断目标主机是否正确,再经过传输层解析数据从而判定对数据处理的应用程序。最后由应用程序解析 数据并执行相应的功能,如将数据通过串口发送到主机、向数据采集系统发送控制命令、接收数据采集系统的数据并发送等。当接收队列中所有数据均处理完毕后, 延时250ms如果还没有接收到数据,则任务通过等待信号量SemMC35Rx将自己挂起。数据的发送过程是一个相反的过程。(责任编辑:admin)
- “扫一扫”关注融合网微信号
免责声明:我方仅为合法的第三方企业注册用户所发布的内容提供存储空间,融合网不对其发布的内容提供任何形式的保证:不保证内容满足您的要求,不保证融合网的服务不会中断。因网络状况、通讯线路、第三方网站或管理部门的要求等任何原因而导致您不能正常使用融合网,融合网不承担任何法律责任。
第三方企业注册用户在融合网发布的内容(包含但不限于融合网目前各产品功能里的内容)仅表明其第三方企业注册用户的立场和观点,并不代表融合网的立场或观点。相关各方及作者发布此信息的目的在于传播、分享更多信息,并不代表本网站的观点和立场,更与本站立场无关。相关各方及作者在我方平台上发表、发布的所有资料、言论等仅代表其作者个人观点,与本网站立场无关,不对您构成任何投资、交易等方面的建议。用户应基于自己的独立判断,自行决定并承担相应风险。
根据相关协议内容,第三方企业注册用户已知悉自身作为内容的发布者,需自行对所发表内容(如,字体、图片、文章内容等)负责,因所发表内容(如,字体、图片、文章内容等)等所引发的一切纠纷均由该内容的发布者(即,第三方企业注册用户)承担全部法律及连带责任。融合网不承担任何法律及连带责任。
第三方企业注册用户在融合网相关栏目上所发布的涉嫌侵犯他人知识产权或其他合法权益的内容(如,字体、图片、文章内容等),经相关版权方、权利方等提供初步证据,融合网有权先行予以删除,并保留移交司法机关查处的权利。参照相应司法机关的查处结果,融合网对于第三方企业用户所发布内容的处置具有最终决定权。
个人或单位如认为第三方企业注册用户在融合网上发布的内容(如,字体、图片、文章内容等)存在侵犯自身合法权益的,应准备好具有法律效应的证明材料,及时与融合网取得联系,以便融合网及时协调第三方企业注册用户并迅速做出相应处理工作。
融合网联系方式:(一)、电话:(010)57722280;(二)、电子邮箱:2029555353@qq.com dwrh@dwrh.net
对免责声明的解释、修改及更新权均属于融合网所有。