随着各地公交一卡通应用的兴起,一卡多用和跨区应用的技术受到了行业领域的关注。本文通过对传统一通卡终端程序在应用更新过程中存在的不合理现象进行分析,慧美鑫业提出一种IAP在线一卡通终端的远程升级方案,该方案具有硬件要求不高、维护及升级成本低等优势,有望成为一卡通行业终端升级的解决方案。
基于一卡通安全验证体系的终端程序远程升级方案采用基于软件触发的一卡通IAP在线升级技术,终端通过串口或者USB等接收升级代码,用户应用程序通过修改中断服务程序、添加或改变FLASH系统应用参数区来更新标志位。当一卡通系统需要进行升级时,使用特定命令报文,改变升级标志位,使升级系统进入Bootloader,从而完成应用代码区的更新操作。
(1)一卡通终端模块的功能设计
一卡通终端IAP在线升级流程需要调用四个模块,这四个模块分别实现不同功能:
(1) 数据收发模块:实现与IAP服务器通信,接受后台的控制命令、数据传输、反馈信息等;
(2) FLASH擦除与写入操作模块:先擦出加载的用户应用代码区域,将接收的数据写入指定FLASH区域,实现APP的更新。此模块为IAP的关键;
(3) 校验模块:对数据接收缓存区的数据与FLASH写入的数据进行循环冗余校验码(CRC32)校验,保证用户应用代码区域代码更新加载的准确性、安全性;
(4)差错控制模块:采用ARQ 等重传机制保证写入Flash的代码的高准确率。
(2)MCU的对接及升级流程设计
通过调用以上四个模块,可以实现对MCU的升级,如图2所示。
图2 IAP在线升级流程模块调用示意图
IAP在线升级的主要流程可大致描述如下:
图3 基于IAP在线升级流程图
值得注意的是,在网络升级过程中,有可能会出现阻塞或短时断开状态等通信故障或者设备故障,导致一卡通升级文件数据传输中断或升级会话中断。如果在重建升级会话链接后,重新下发全部升级文件数据,这就意味着一卡通终端需要重复下载大量升级文件数据,在实际无线网络环境的制约下,将严重影响一卡通终端设备程序升级的效率。
因此,需要采用ARQ等重传机制保证写入Flash的代码的高准确率。一旦某次升级会话链接因故障而中断,则一卡通终端设备将无法接收到完整、正确的升级文件数据。在上位机重建升级会话后,一卡通终端设备向上位机返回“设备升级信息”,里面包含上一次升级失败、无效数据包、未接收数据包等信息。上位机根据这些信息组织相应的数据包,从上一次升级会话的断点处继续下发升级文件数据包,而不需要重新下发全部一卡通升级文件数据包,从而提高上位机下发升级文件数据的效率和升级文件数据的利用率。
引导程序通过检测该更新升级标记的值,进一步判断应用空间的程序是否需要升级。本方案将升级标志位设在Flash系统参数区的某个地址中。程序升级更新标志位在应用程序接收到升级命令时擦除。若在引导程序中检测该标志不为0,就一直处于升级状态,通知上位机重传,直到最后升级成功时都清0为止。
文章来源:http://www.wisemax.cn
本文只用于技术学习与交流,如侵联删