一种基于CAN总线的ARM应用程序在线升级的方法技术

技术编号:27576525 阅读:15 留言:0更新日期:2021-03-09 22:26
本发明专利技术提供了一种基于CAN总线的ARM应用程序在线升级的方法,通过CAN总线接口实现ARM应用程序的在线升级的目的,进入BOOT程序中,当升级指示信号为低电平时,进入在线升级模式,在规定时间内通过总线接收到在线升级指令时,完成升级握手,ARM通过总线接受在线升级数据,通过头文件获知升级数据包的数量,开始计数操作,同时将接收到数据写入片外SRAM,并对升级数据进行CRC校验。本发明专利技术解决了ARM应用程序远程在线升级的问题,简化了基于ARM的产品应用程序升级流程,有效提高产品升级效率,节省了人力、物力和时间成本。物力和时间成本。物力和时间成本。

【技术实现步骤摘要】
一种基于CAN总线的ARM应用程序在线升级的方法


[0001]本专利技术涉及电子电路设计领域,尤其是一种应用程序在线升级的方法。

技术介绍

[0002]ARM是一个32位精简指令集的处理器架构,ARM广泛应用于许多嵌入式系统设计中。具有指令长度固定、执行效率高、体积小、低功耗、低成本、高性能等特点。ARM通常由控制单元、算数逻辑单元和寄存器组成。ARM广泛应用于商业微控制器、汽车控制系统、电机控制系统、大型家用电器控制器、医疗设备、网络设备和机载设备等产品。由于ARM低成本和高性能等特点,ARM被应用的越来越广泛。
[0003]ARM通常片内集成FLASH存储器,用于存储代码和数据。程序更新过程是对FLASH存储的应用程序更新的过程。ARM常用程序更新模式存在两种方式,仿真器烧写通过串行JTAG接口升级,串口升级通过串口在系统编程。两种方式都需升级人员到达现场通过升级设备对ARM程序进行更新,升级存在一定的不便性。

技术实现思路

[0004]为了克服现有技术的不足,本专利技术提供一种基于CAN总线的ARM应用程序在线升级的方法,通过CAN总线接口实现ARM应用程序的在线升级的目的。
[0005]本专利技术解决其技术问题所采用的技术方案包括如下步骤:
[0006]步骤1:ARM上电后,进入BOOT程序中,首先对升级指示信号进行判断,当升级指示信号为高电平时,对应不升级,程序跳转到应用程序,当升级指示信号为低电平时,进入在线升级模式;
[0007]步骤2:在线升级模式下,ARM等待CAN总线在线升级指令,当在规定时间T内未接收到升级指令时,ARM通过总线上报升级失败消息,升级失败;当在规定时间T内通过总线接收到在线升级指令时,完成升级握手,ARM等待总线发送升级数据包;
[0008]步骤3:ARM通过总线接受在线升级数据,通过头文件获知升级数据包的数量,开始计数操作,同时将接收到数据写入片外SRAM;
[0009]为确保升级数据传输过程未发生改变,数据写入SRAM后,ARM对升级数据进行CRC校验,并将CRC校验结果与升级文件结尾的CRC校验结果进行比对,当比对一致时,证明数据未发生改变;如比对不一致时,则总线上报升级失败;
[0010]步骤4:ARM对片内应用程序执行擦除操作,擦除完成后将SRAM中存储的应用升级数据写入片内存储;
[0011]写入完成后,ARM将片内写入的升级数据回读并与片外SRAM中的升级数据进行对比校验,对比无误后通过总线上报升级成功消息,至此完成ARM应用程序的在线升级。
[0012]所述升级数据包组成如图2所示,由3部分组成,规定每8个字节为1包数据,升级数据由头文件、升级数据和CRC校验结果组成,头文件对应为在线升级数据包的数量,数据包结尾为CRC校验结果。
[0013]所述规定时间T为2S。
[0014]本专利技术的有益效果在于由于采用了基于CAN总线的ARM在线升级方案,解决了ARM应用程序远程在线升级的问题,简化了基于ARM的产品应用程序升级流程,有效提高产品升级效率,节省了人力、物力和时间成本。
附图说明
[0015]图1为本专利技术ARM在线升级原理框图。
[0016]图2为本专利技术升级数据包组成。
[0017]图3为本专利技术ARM在线升级流程图。
具体实施方式
[0018]下面结合附图和实施例对本专利技术进一步说明。
[0019]ARM内的程序分为BOOT程序和应用程序,BOOT程序负责完成总线通信、升级状态判断、ARM应用程序升级数据写入、数据校验、状态上报等工作。ARM上电进入BOOT程序,根据CAN总线指令完成升级数据包接收、数据CRC校验、程序数据更新、数据比对等功能,当写入程序数据校验完成后说明ARM应用程序升级成功。
[0020]图1为在线升级的原理框图,ARM通过总线接收升级所需数据并完成自身应用程序的升级,具体升级流程如下:
[0021]ARM中同时存在BOOT程序和应用程序,两者存储位置不同,在线升级所用到的程序存储在BOOT程序中,二者在存储中存储位置不同,通过BOOT中的升级程序可完成对应用程序的升级。
[0022]在线升级流程图如图3所示,详细步骤为:
[0023]步骤1:ARM上电后,进入BOOT程序中,首先对升级指示信号进行判断,当升级指示信号为高电平时,对应不升级,程序跳转到应用程序,当升级指示信号为低电平时,进入在线升级模式;
[0024]步骤2:在线升级模式下,ARM等待CAN总线在线升级指令,当在2S内未接收到升级指令时,ARM通过总线上报升级失败消息,升级失败;当在2S内通过总线接收到在线升级指令时,完成升级握手,ARM等待总线发送升级数据包;
[0025]步骤3:ARM通过总线接受在线升级数据,通过头文件获知升级数据包的数量,开始计数操作,同时将接收到数据写入片外SRAM;
[0026]为确保升级数据传输过程未发生改变,数据写入SRAM后,ARM对升级数据进行CRC校验,并将CRC校验结果与升级文件结尾的CRC校验结果进行比对,当比对一致时,证明数据未发生改变;如比对不一致时,则总线上报升级失败;
[0027]步骤4:ARM对片内应用程序执行擦除操作,擦除完成后将SRAM中存储的应用升级数据写入片内存储;
[0028]写入完成后,ARM将片内写入的升级数据回读并与片外SRAM中的升级数据进行对比校验,对比无误后通过总线上报升级成功消息,至此完成ARM应用程序的在线升级。
[0029]所述升级数据包组成如图2所示,由3部分组成,规定每8个字节为1包数据,升级数据由头文件、升级数据和CRC校验结果组成,头文件对应为在线升级数据包的数量,数据包
结尾为CRC校验结果。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于CAN总线的ARM应用程序在线升级的方法,其特征在于包括下述步骤:步骤1:ARM上电后,进入BOOT程序中,首先对升级指示信号进行判断,当升级指示信号为高电平时,对应不升级,程序跳转到应用程序,当升级指示信号为低电平时,进入在线升级模式;步骤2:在线升级模式下,ARM等待CAN总线在线升级指令,当在规定时间T内未接收到升级指令时,ARM通过总线上报升级失败消息,升级失败;当在规定时间T内通过总线接收到在线升级指令时,完成升级握手,ARM等待总线发送升级数据包;步骤3:ARM通过总线接受在线升级数据,通过头文件获知升级数据包的数量,开始计数操作,同时将接收到数据写入片外SRAM;为确保升级数据传输过程未发生改变,数据写入SRAM后,ARM对升级数据进行CRC校验,并将CRC校验结果与升级文件结尾的...

【专利技术属性】
技术研发人员:关辽原
申请(专利权)人:中国航空工业集团公司洛阳电光设备研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1