发明名称 基于CANOPEN协议的嵌入式软件升级方法
摘要 本发明涉及一种基于CANOPEN协议的嵌入式软件升级方法,该方法应用于通过CAN总线网络连接的上位机和下位机所组成的系统中,包括以下步骤:上位机与下位机进行联机,联机成功后进行编程地址有效性的确认,当确认有效后,采用SDO协议中的块传送机制,分包发送块数据直至应用程序的数据全部发送完成,然后跳转到存储器的应用程序区执行应用程序,程序升级结束。与现有技术相比,本发明具有抗干扰能力强、传送速率高、适用范围广、后续拓展方便等优点。
申请公布号 CN103559066B 申请公布日期 2017.03.08
申请号 CN201310581178.5 申请日期 2013.11.19
申请人 上海创程车联网络科技有限公司 发明人 戴永佳;张世平;范宣禄;张如欣
分类号 G06F9/445(2006.01)I;H04L29/06(2006.01)I 主分类号 G06F9/445(2006.01)I
代理机构 上海科盛知识产权代理有限公司 31225 代理人 宣慧兰
主权项 一种基于CANOPEN协议的嵌入式软件升级方法,该方法应用于通过CAN总线网络连接的上位机和下位机所组成的系统中,其特征在于,包括以下步骤:1)上位机与下位机进行联机,联机成功后执行步骤2),2)上位机与下位机进行编程地址有效性的确认,当确认有效后,分包发送块数据,3)下位机收到块数据的最后一包后回复确认,上位机收到下位机最后一包的回复后,发送包含CRC校验码的块结束命令给下位机,4)下位机收到块结束命令后,进行CRC校验,若CRC校验成功,下位机把收到的数据写入存储器中,回复块结束命令给上位机;若CRC校验失败,下位机回复下载错误报文,上位机收到下载错误报文,结束程序升级,5)上位机收到块结束命令后,判断应用程序的数据是否全部发送完成,若应用程序的所有数据都发送成功后,上位机发送编程结束命令给下位机,下位机收到后,回复编程结束应答给上位机,并跳转到存储器的应用程序区执行应用程序,程序升级结束;若应用程序的数据未发送完毕,则返回步骤2),所述步骤2)具体包括以下步骤:21)上位机向下位机发送编程地址报文,22)下位机收到编程地址报文,对其编程地址进行确认,若有效,则向上位机回复编程地址有效报文;若无效,则回复编程地址无效报文,上位机收到编程地址无效报文后,结束程序升级,23)上位机收到编程地址有效报文后,向下位机发送下载启动命令,下位机收到下载启动命令后,回复下载启动应答,24)上位机收到下位机回复的下载启动应答后,开始分包发送块数据;其中,所有命令采用加速传送机制传输,应用程序的数据采用块传送机制传输;所述步骤1)具体包含以下步骤:11)上位机软件解析要发送的应用程序文件,并等待下位机的联机请求,12)下位机重新上电,进行初始化,然后发送Boot‑up报文,通知上位机当前处于预操作状态,上位机收到下位机发送的Boot‑up报文,发送联机请求报文给下位机;13)下位机收到联机请求报文后,回复联机应答,若上位机收到该联机应答,则联机成功;若上位机未收到下位机的联机应答,则联机失败,结束程序升级;步骤12)中的初始化包括:首先初始化RAM基址,接着初始化堆栈,关闭看门狗,随后初始化全局变量,接着初始化CAN通讯接口,以完成Bootloader自身环境初始化,下位机从中断向量表取Bootloader程序首地址,跳转到Bootloader执行Bootloader程序,Bootloader接收上位机发送的应用程序数据,并写到应用程序区,应用程序接收完后Bootloader程序重定位中断向量表,把中断向量表定位到应用程序区,接着跳转到应用程序区执行应用程序。
地址 201101 上海市闵行区中春路7001号第3幢10楼1003室