嵌入式系统软件远程在线升级的研究与实现

随着嵌入式计算机技术的发展,嵌入式系统在化工、冶金、机电、国防等各行业应用越来越广泛,可以说现代工业嵌入式系统无处不在。

嵌入式系统直接制约着使用该嵌入式系统产品的功能,大多数情况,产品功能的提升都可以通过嵌入式系统软件升级来实现。

因此,对嵌入式系统软件升级特别是远程在线升级,已成为嵌入式计算机技术应用的重要方面。

嵌入式系统远程在线升级在无人值守或维护不便的场合更有意义,如化工业经常使用的有害气体监测系统、污水排放监测系统等。

嵌入式系统软件升级功能实现

有害气体监测系统等类似的计算机监测系统,一般包括监控管理中心和测控终端两部分。

监控管理中心采用SMS或Internet等通信方式实现对监测终端的管理。
测控终端使用无线Mdoern,通过GPRS或CDMA 1X移动通信网络接入Internet。

在这里插入图片描述
软件升级服务器运行升级应用软件,基于Internet通信方式,发送程序代码、接收嵌入式系统确认信息。

嵌入式系统利用无线Modern,以CDMA 1X无线分组交换方式接入Internet,与软件升级服务器进行相应的数据通信,并校验和固化程序代码,所有程序代码固化完整正确后,复位嵌入式系统CPU,即可完成嵌入式系统软件升级功能。

现阶段可以使用GPRS和CDMA-1X两种方式接入Internet,这两种方式具体使用差别不大,其中CDMA-1X由于通信速率快,实际使用较多。

嵌入式系统软件升级功能实现流程

在这里插入图片描述
软件升级服务器作为软件升级任务的主动发起者和组织者。软件升级的步骤如下:

  1. 软件升级服务器向嵌入式系统发送软件升级命令,软件升级服务器接收到嵌入式系统的确认回复后,即开始发送升级软件程序代码。
  2. 软件升级服务器向嵌入式系统发送升级软件程序代码。软件升级服务器将升级软件程序代码拆分成固定长度的多个数据单元,以每个数据单元为核心组成数据包,数据包内容包括数据包头标志、命令头、总包数、包序号、数据单元、CRC校验码、数据包尾标志灯,软件升级服务器依次将所有的程序代码数据包发送完毕。
  3. 嵌入式系统每接收到一个程序代码数据包,都将返回确认信息,如程序代码数据包校验正确,则在规定的Flash区域固化该程序代码数据单元。
  4. 软件升级服务器向嵌入式系统发送每个程序代码数据单元的校验数据包,嵌入式系统收到校验数据包后,与相应Flash区域固化数据CRC校验码进行比较,回复校验结果:软件升级服务器对没有正确固化的程序代码数据单元将重新发送并重复校验过程,直到软件升级服务器确认嵌入式系统正确固化所有程序代码或程序代码已重发了一定的次数。
  5. 软件升级服务器如确认嵌入式系统已正确固化了所有程序代码,则向嵌入式系统发送升级成功指令,嵌入式系统CPU复位,复位后运行升级后的软件。
  6. 如软件升级服务器已将程序代码或校验数据包重发了一定次数,仍不能确认嵌入式系统已正确固化所有程序代码,则向嵌入式系统发送升级失败指令,嵌入式系统CPU复位,复位后仍运行升级前的软件。

嵌入式系统设置了保护定时器,如在保护定时器规定的时限内未收到软件升级服务器发送的升级成功指令,将进行CPU复位,复位后仍运行升级前的程序代码。

嵌入式系统动态IP地址的处理

软件升级服务器的IP地址一般是固定的;而嵌入式系统采用CDMA 1X方式接入Internet网络,它的IP地址不固定,是动态IP地址。

动态IP地址的获取,我们可以采用通用的“心跳包”方式实现,即嵌入式系统每隔固定时间间隔向指定IP地址进行Internet连接,以保持该IP地址不变;或当IP地址改变时,向指定IP地址发送通知。

嵌入式系统使用的I地址属于移动运营商的专用IP地址,使用这些IP地址可以发起与普通IP地址的Internet连接,但反之则不能连接,我们通常使用的软件升级服务器的IP地址是普通IP地址,这与嵌入式软件升级由软件升级服务器发起存在矛盾。解决这个问题的方法是配合使用短消息。

嵌入式系统默认通信方式是短消息方式,当要进行软件升级时,软件升级服务器发送软件升级短消息,嵌入式系统收到短消息后,主动发起与升级服务器的Internet连接。当然我们也可以向移动运营商申请固定的专用IP地址,但需要较高的费用。

嵌入式系统硬件结构

在这里插入图片描述
嵌入式系统通过RS232串行通信接口与Modem进行数据通信。

嵌入式系统功能

嵌入式系统的运行分为两种模式:工作模式和升级模式,工作模式为默认模式。嵌入式系统软件必须保证这种运行模式能可靠运行和切换。

工作模式指设备正常工作状态,嵌入式系统按预定的程序进行规定测控任务的运行,并以SMS、Datacall或Internet方式与监控管理中心进行数据通信,上告告警信息和监测数据,接收监控管理中心的配置管理。

升级模式指嵌入式软件升级状态,包括接收软件升级服务器发送的程序代码数据包、在Flash区域固化程序代码等。

嵌入式系统软件设计

Flash分布区域设计
基于成本和Flash区域容量的考虑,嵌入式系统软件没有使用嵌入式操作系统,嵌入式系统程序代码保存在内部256K的Flash区域中。Flash区域分成四个部分,从低端零地址开始,依次为:

  1. 程序启动部分:CPU复位后,自动执行该段程序代码,该段程序代码功能是读取EEPROM中相关标志,判定嵌入式系统运行模式,如是工作模式,则根据EEPROM中其它标志,跳转到规定的应用程序区首地址;如果是升级模式,则进入软件升级处理部分首地址。
  2. 软件升级处理部分:该段程序代码功能是执行与软件升级相关的操作,如接收程序代码数据包、校验、固化程序代码等;嵌入式软件升级完毕后,修改EEPROM中相关标志,指示CPU复位后的运行模式和复位后应运行的应用程序区域。
  3. 应用程序0区
  4. 应用程序1区:两个区域均保存实际功能的代码区域,其中一个区域保存当前运行的程序代码,另一个区域保存上一次运行的代码,并作为下一次运行的程序代码的保存区域,软件升级的程序代码将保存在这个区域中。

嵌入式软件(软件升级部分)设计

在这里插入图片描述
嵌入式系统软件必须保证在各种意外情况下,如软件升级服务器失效、Modem通信失效、软件升级过程中嵌入式系统电源失效等,嵌入式系统能正常进入工作模式。

软件升级服务器升级应用软件

升级应用软件可以显示软件升级过程中每个数据包发送、接收、校验的状态,因此通过升级应用软件,用户可以方便地分析每次软件升级的进程和失败的原因。它主要包括串口操作、数据帧解析、GUI等方面的设计。

在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饼干饼干圆又圆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值