标题:
基于GPRS的嵌入式系统远程监控和升级
[打印本页]
作者:
我是MT
时间:
2015-10-6 10:14
标题:
基于GPRS的嵌入式系统远程监控和升级
通用分组无线服务技术GPRS(General Packet Radio Service)是一种移动数据业务,该技术能满足日常网络行为,具有广域覆盖、高速传输等优点。野外作业的数据采集
嵌入式
系统工作于偏远无人地区,通常这些采集系统基于GPRS无线网络来传输远程数据,但系统的维护和升级受到距离和环境的较大限制,不但成本高,而且周期长。
为实现远程监测和升级野外作业
嵌入式
系统,本文提出一种基于GPRS网络、以电子邮件为载体的
嵌入式
系统远程监控和升级方案,达到远程修改系统参数、索取系统自检报告、索取指定数据文件和升级系统主控程序等目的,实现
嵌入式
系统的远程监控与升级。
与目前大多数
嵌入式
系统远程监控和升级的途径相比,这种以电子邮件为载体、系统定时收发邮件的方法,实现了系统的多功能性与灵活性,同时较好地满足了野外作业
嵌入式
系统低功耗的要求。
1 系统结构及远程监控与升级
1.1 系统结构
嵌入式
系统中的控制部分由ARM芯片(采用基于三星S3C2440-30的ARM9)和DSP芯片(采用TI公司的TMS320VC5509) [1]组成。ARM和GPRS Modem模块通过RS232串口进行连接,系统通过ARM利用GPRS Modem模块上网并访问网络邮箱,从而进行相应的操作。系统结构如图1所示。DSP作为主控单元完成数据采集和处理,ARM则负责数据后期处理和网络访问。
ARM是DSP的从设备,两者通过串口通信。其中,DSP端是多通道缓冲同步串行端口McBSP[2],而ARM端则是异步串口UART。为了在不增加外部复杂硬件的条件下实现两者通信,必须统一两端传输数据的格式[3]。
远程监控与升级过程中,为保证DSP和ARM之间数据传输的可靠性与稳定性,系统采用CRC8校验的数据传输方式:数据发送端发送每组数据时都附带发送此组数据的CRC校验码,数据接收端收到数据后重新计算数据的CRC校验码,对两端得到的CRC校验码相比较,相等则请求发送端发送下一组数据,不相等则请求重发本组数据。
1.2 系统远程监控和升级的总体流程
系统远程监控和升级的示意图及整体工作流程分别如图2、图3所示。系统进行远程监控和升级时,首先登录指定邮箱,分析后获取命令列表并记录各命令邮件的内容,然后对命令列表中的每1个命令进行分析,完成相应的任务,包括:修改系统参数、发送系统自检报告、发送指定数据文件和升级DSP程序。任务完成后系统自动返回报告邮件,告知本次操作的情况。整个系统基于GPRS网络,以电子邮件为载体,通过系统对邮件的读取和发送,达到远程监控和升级系统的目的。
2 系统的远程监控
系统的远程监控,是通过对系统中装有
嵌入式
操作系统WinCE[4]的ARM进行网络编程[5],基于GPRS无线网络实现其对电子邮件的读取与发送,其中涉及到了最常用的电子邮件收件协议POP3(Post Office Protocol 3)和发件协议SMTP[6](Simple Mail Transfer Protocol)。
2.1 系统远程监控原理
如表1所示,系统接收远程命令是基于对命令邮件的读取。命令邮件由两部分构成:主题命令和邮件内容。主题命令(即邮件的主题)为单个小写英文字母,不同的字母代表着系统将要完成的功能;邮件内容则包括了系统的新参数、需反馈的数据文件名、新的DSP程序等具体数据信息。
系统发送的邮件包括数据文件和报告文件,都以电子邮件附件的形式传送。数据文件反映系统采集的物理数据或自身的状态信息;报告文件则是对每次远程监控命令的回执,表明本次操作是否成功。
2.2 远程监控中邮件的读取和发送
系统远程监控时检查邮箱中邮件的流程如图4所示。所发送邮件的主题subject即代表了系统需要完成的任务,例如“修改系统参数”、“发送自检报告”、“索取指定文件”和“更新DSP程序”的邮件主题分别是单个小写字母a、b、c、d,而其余类型主题的邮件都被系统识别为无效邮件而滤掉。因此,系统在读取邮件时,先选出符合系统要求的邮件加入命令列表,再根据其代表的命令实现相应的功能。其中,最后一步删除邮件是为下次读邮件做准备,保证了系统再次读取的邮件都是最新的,避免了对已读邮件的重复操作,提高了可靠性。
系统以电子邮件附件的形式发送数据文件和报告文件。实验中发现,当发送的邮件小于2 KB时偶而会出现发送“伪成功”的情况,即程序显示邮件发送成功,但邮箱中却没有收到邮件。所以,在发送小于2 KB的邮件时,先用“空格”将其补足2 KB后再发送。实验证明,在进行邮件大小补足后,没有再出现过“伪成功”的现象。
3 系统的远程升级
系统基于GPRS网络,完成对邮箱中DSP新程序代码的读取,然后利用串口通信和Bootloader技术实现DSP程序的远程升级。系统内部的ARM和DSP采用串口通信,统一了两端收发数据的格式并建立了可靠的数据传输机制,保证了通信的稳定性。
3.1 远程升级系统DSP程序原理
系统采用TI公司的TMS320VC5509芯片作为主控单元。TMS320VC5509片内具有128 KB的高速静态RAM,片内ROM中固化了引导加载程序Bootloader(简称“DSP5509”),其Bootloader设置为外部SPI串行启动模式,外部储存媒介为 Flash。系统上电后,DSP5509在Bootloader引导下自动加载储存在片外Flash指定地址空间中的程序到片内的高速RAM中运行。
远程升级系统中,DSP程序是基于DSP5509的Bootloader技术[7]。将新的DSP5509程序按照一定的格式编码后发送到系统指定的邮箱中,系统利用GPRS模块访问此邮箱并读取出新程序,然后将新程序通过串口发送给DSP5509且保存到片外Flash的指定地址空间中。发送和保存结束后自动复位并重启DSP5509,在Bootloader的引导下DSP5509从外部Flash中加载并运行新程序,从而完成DSP5509程序的更新升级。
3.2 系统远程升级时的流程
在系统进行远程升级时,内部的DSP和ARM之间存在着较大数据量的传送,必须建立可靠的数据传输机制才能保证通信的稳定性。因此,系统将待发送的数据进行分割以分组形式传输,即将待发送的M字节数据分割成(x+1)组发送,前x组每次发送m=M/x个(M/x取整)字节,最后一组发送剩下的s= (M-m×x)个字节(若M/x为整数,则只需发送x组数据)。同时,DSP或ARM每次发送的数据格式均为3in1模式,即:(第1个字节表示本次发送数据的字节数+中间部分为m或者s字节的数据+最后1个字节为数据的CRC校验码),如图5所示。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0