一种基于CAN总线的控制器固件升级方法与流程

本申请涉及通信,具体而言,涉及一种基于can总线的控制器固件升级方法。
背景技术:
1、在现代农业机械设备领域,can总线技术是一种广泛应用的通信技术,常用的can总线设计方案通常会将一个主控制器与多个附属控制器连接在一条总线上,可以极大程度便利控制单元的集成组装和维护。
2、当拖拉机挂载机具进行作业时,其总线设计方案为主控制器与智能显示终端通过can0接口相连,其他附属控制器或子控制器与主控制器通过can1接口连接。其中,子控制器包括但不限于单行电机控制器、智能种子传感器等,子控制器的共性是都用相同的硬件控制器和相同的固件程序,依靠自动识别或者提前录入设备识别编号,使其在can总线中被主控制器区分和识别。
3、在这种总线中,设备的固件升级是非常重要的一环,它可以提高设备的性能和功能,满足用户的需求。
4、然而,传统的固件升级方式通常需要将设备拆壳,由专业人员到场进行操作,且多台设备逐一进行升级时,耗费工时太长,效率低下。
技术实现思路
1、本申请实施例的目的在于提供一种基于can总线的控制器固件升级方法,减少对设备的拆壳,提高效率,可对多台控制器进行批量升级,减少升级耗时,并且能够保证某台设备升级失败后,仍可对其进行单独的二次升级尝试,且升级期间其他控制器不受影响。
2、本发明提供一种基于can总线的控制器固件升级方法,包括以下步骤:
3、s1,选择要升级的设备,终端解析出升级文件的类型以及升级文件的地址,并根据地址下载升级文件至终端本地;
4、s2,终端根据升级文件的类型的不同,通过can0接口发送指定canid的升级请求给主控制器,告知主控制器升级类型;
5、s3,主控制器根据不同canid的升级请求,分别执行自身升级直至升级完成,或者子控制器升级操作流程;
6、s4,当待升级的子控制器数量大于1台时,主控制器会先执行广播升级流程,主控制器发送广播升级请求,然后等待各子控制器响应;
7、在广播升级模式中,如果某台子控制器升级失败,主控制器记录升级失败设备的id号,并在广播升级流程结束后,主控制器采用一对一升级模式,对升级失败的子控制器进行二次升级,直至所有的子控制器完成升级流程。
8、在可选的实施方式中,步骤s1中,终端包括智能显示终端,智能显示终端包括流量卡,当需要对某个设备或多台设备进行升级时,通过云平台选择要升级的设备,并点击升级按钮;
9、智能显示终端通过ftp协议解析出升级文件的类型以及升级文件的url地址,并根据地址下载升级文件至智能显示终端本地。
10、在可选的实施方式中,步骤s3中,当执行自身升级时,主控制器会直接跳转至boot,在boot中接收升级文件并写入到flash备份区,当升级文件接收完成且校验正确后,擦除flash执行区,并将备份区代码复制到执行区,然后主控器软复位重启,完成升级。
11、在可选的实施方式中,当主控制器收到子控制器升级请求时,无需跳转boot,而是将升级文件接收并保存至片外flash,当升级文件接收完成且校验正确后,主控制器将作为发送方,通过can1接口向子控制器发送升级请求。
12、在可选的实施方式中,步骤s4中,各子控制器接入总线后,按照实际安装位置从左到右的自身设备编号由1逐个向后累加,各子控制器在执行广播升级流程时,收到主控制器的升级请求信息后,向主控制器发送响应报文前需以自身序号编号乘以10ms作为延时时间,延时向主控制器发送信息。
13、在可选的实施方式中,广播升级模式中,主控制器收到子控制器响应的报文后,不会立即执行下一升级流程的下一步骤,而是轮询判断各子控制器的响应情况,对不响应升级请求的子控制器进行记录。
14、在可选的实施方式中,一对一升级模式中,主控制器会以广播模式升级失败后待二次升级的子控制器的自身序号id为canid发送升级请求,使得仅唯一的待升级子控制器响应升级报文。
15、在可选的实施方式中,主控制器发送的升级数据中,每个数据包共计600个字节,包括数据包识别标志head1、head2,用于识别升级数据包,数据包中包括当前数据包的有效字节总数,以及当前数据包512个升级数据的crc校验值,且数据包中包括当前帧数以及总帧数的升级信息;
16、当主控制器发送的crc校验值与子控制器自行计算的crc校验值一致时,则表示传输的数据无误,否则表示数据传输过程中有丢失。
17、在可选的实施方式中,广播升级模式中,当某台子控制器校验到当前数据包crc校验值与原校验值不同时,表示通讯过程中存在信号干扰导致数据错乱,此时,校验出错的子控制器将无法要求主控制重发当前数据包,校验出错的单台子控制器自行退出广播升级流程,且在剩余的广播升级流程中,将不再做任何响应。
18、在可选的实施方式中,一对一升级模式中,当子控制器校验到当前数据包的crc校验值出错后,会要求主控制器重发当前数据包并再次校验收到的数据包的crc校验值,如同一个数据包重发多次均校验失败则退出升级流程。
19、与现有技术相比,本发明中的技术方案主要解决了:
20、1、传统固件升级方式需要将设备拆壳,由专业人员进行操作,耗时耗力,效率低下;
21、2、无法对多台控制器进行批量升级,升级过程重复且繁琐,耗时过久;
22、3、无法保证某台设备升级失败后,仍可对其进行单独的二次升级尝试,且升级期间其他子控制器不受影响等技术问题。
23、通过本发明中基于can总线的控制器固件升级方法,可以方便快捷地对农业机械设备进行升级,提高了工作效率,节省了升级的时间。
技术特征:
1.一种基于can总线的控制器固件升级方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于can总线的控制器固件升级方法,其特征在于,步骤s1中,终端包括智能显示终端,智能显示终端包括流量卡,当需要对某个设备或多台设备进行升级时,通过云平台选择要升级的设备,并点击升级按钮;
3.根据权利要求1所述的基于can总线的控制器固件升级方法,其特征在于,步骤s3中,当执行自身升级时,主控制器会直接跳转至boot,在boot中接收升级文件并写入到flash备份区,当升级文件接收完成且校验正确后,擦除flash执行区,并将备份区代码复制到执行区,然后主控器软复位重启,完成升级。
4.根据权利要求3所述的基于can总线的控制器固件升级方法,其特征在于,当主控制器收到子控制器升级请求时,无需跳转boot,而是将升级文件接收并保存至片外flash,当升级文件接收完成且校验正确后,主控制器将作为发送方,通过can1接口向子控制器发送升级请求。
5.根据权利要求1所述的基于can总线的控制器固件升级方法,其特征在于,步骤s4中,各子控制器接入总线后,按照实际安装位置从左到右的自身设备编号由1逐个向后累加,各子控制器在执行广播升级流程时,收到主控制器的升级请求信息后,向主控制器发送响应报文前需以自身序号编号乘以10ms作为延时时间,延时向主控制器发送信息。
6.根据权利要求5所述的基于can总线的控制器固件升级方法,其特征在于,广播升级模式中,主控制器收到子控制器响应的报文后,不会立即执行下一升级流程的下一步骤,而是轮询判断各子控制器的响应情况,对不响应升级请求的子控制器进行记录。
7.根据权利要求5所述的基于can总线的控制器固件升级方法,其特征在于,一对一升级模式中,主控制器会以广播模式升级失败后待二次升级的子控制器的自身序号id为canid发送升级请求,使得仅唯一的待升级子控制器响应升级报文。
8.根据权利要求5所述的基于can总线的控制器固件升级方法,其特征在于,主控制器发送的升级数据中,每个数据包共计600个字节,包括数据包识别标志head1、head2,用于识别升级数据包,数据包中包括当前数据包的有效字节总数,以及当前数据包512个升级数据的crc校验值,且数据包中包括当前帧数以及总帧数的升级信息;
9.根据权利要求8所述的基于can总线的控制器固件升级方法,其特征在于,广播升级模式中,当某台子控制器校验到当前数据包crc校验值与原校验值不同时,表示通讯过程中存在信号干扰导致数据错乱,此时,校验出错的子控制器将无法要求主控制重发当前数据包,校验出错的单台子控制器自行退出广播升级流程,且在剩余的广播升级流程中,将不再做任何响应。
10.根据权利要求8所述的基于can总线的控制器固件升级方法,其特征在于,一对一升级模式中,当子控制器校验到当前数据包的crc校验值出错后,会要求主控制器重发当前数据包并再次校验收到的数据包的crc校验值,如果同一个数据包重发多次均校验失败则退出升级流程。
技术总结
本申请提供了一种基于CAN总线的控制器固件升级方法,包括以下步骤:S1,选择要升级的设备,终端解析出升级文件的类型以及升级文件的地址,下载升级文件至终端本地;S2,终端根据升级文件的类型的不同,通过CAN0接口发送指定CANID的升级请求给主控制器,告知主控制器升级类型;S3,主控制器根据不同CANID的升级请求,分别执行自身升级直至升级完成,或者子控制器升级操作流程;S4,当待升级的子控制器数量大于1台时,主控制器会先执行广播升级流程,如果某台子控制器升级失败,主控制器记录升级失败设备的ID号,并在广播升级流程结束后,主控制器采用一对一升级模式,依次对升级失败的子控制器重新执行一次升级操作。
技术研发人员:李德芳,赵允贵,王淼,孙瑶瑶
受保护的技术使用者:潍柴雷沃智慧农业科技股份有限公司
技术研发日:
技术公布日:2024/11/28
技术研发人员:李德芳,赵允贵,王淼,孙瑶瑶
技术所有人:潍柴雷沃智慧农业科技股份有限公司
备 注:该技术已申请专利,仅供学习研究,如用于商业用途,请联系技术所有人。
声 明 :此信息收集于网络,如果你是此专利的发明人不想本网站收录此信息请联系我们,我们会在第一时间删除
