CN102546784B - 一种基于can总线进行批量升级设备固件的方法 - Google Patents
一种基于can总线进行批量升级设备固件的方法 Download PDFInfo
- Publication number
- CN102546784B CN102546784B CN201110449001.0A CN201110449001A CN102546784B CN 102546784 B CN102546784 B CN 102546784B CN 201110449001 A CN201110449001 A CN 201110449001A CN 102546784 B CN102546784 B CN 102546784B
- Authority
- CN
- China
- Prior art keywords
- equipment
- packet
- upgrading
- upgrade
- bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
一种基于CAN总线进行批量升级设备固件的方法,涉及总线上的数据广播,更具体地,是涉及CAN总线上局域终端设备固件的升级。本方法基于连接到总线上并已经建立通讯协议的升级服务器和需升级固件的局域终端设备来完成,升级服务器中已经存储有升级文件,由升级服务器发出启动升级的广播请求,广播发送升级数据包,设备接收到升级数据包后,判断丢包情况并上传,服务器再广播丢失的数据包,直至设备都正确接收到文件或超过最大广播次数。
Description
技术领域
本发明涉及计算机技术领域,特别是总线上的数据广播,更具体地,是涉及CAN总线上局域终端设备固件的升级。
背景技术
CAN 是控制器局域网络(Controller Area Network, CAN)的简称,是国际上应用最广泛的现场总线之一,广泛应用于工业控制和汽车电子等领域。
一般来说,通过总线对设备进行固件升级,需要一台带有需要升级文件的升级服务器,由升级服务器发起升级命令,然后对每个设备进行升级。当总线上连接有多台设备,且设备的固件相同时,也需要依次为每台设备进行升级,花费较长的时间。由于CAN 总线所处的环境容易受到外界干扰,会导致数据帧的误码甚至丢失,处理这些错误情况也会占用时间,因此采用传统的设备固件升级方法,占用服务器和设备的时间长、效率低。
发明内容
本发明利用总线的特点,提出了一种带有重传功能的广播升级模式,它有效的利用了总线的带宽,同时为多台设备升级,提高了工作效率。
为实现上述目的,本发明采用的技术方案是:一种基于CAN总线进行批量升级设备固件的方法,本方法基于连接到CAN总线上并已经建立通讯协议的升级服务器和需升级固件的局域终端设备来完成,升级服务器中已经存储有升级文件,在升级过程中本方法包括以下步骤:
A、升级服务器通过总线向局域终端设备发送升级命令,命令中包括将要升级的文件名称、文件版本信息;
B、、总线上的局域终端设备接收到升级命令后,检查命令中的软件名称、软件版本信息,据此判断自身固件是否需要升级,如果需要升级,设置数据存储区,进入升级状态,准备接收服务器的升级数据包;
C、升级服务器读取升级文件,将文件分割成数据包,在每个数据包中插入序号和本数据包的数据长度以及经计算的校验信息,按序号顺序发送数据包,直至整个文件发送完毕;
D、总线上需升级的局域终端设备接收数据包,根据序号是否连续判断是否接收完整,根据数据包中的校验信息判断是否接收正确,将正确接收的数据包存储在数据存储区,记录未接收到的数据包序号和接收错误的数据包序号,当局域终端设备收到最后一个数据包或超过一定时间未收到新的数据包时,如果数据接收完整,局域终端设备开始升级,过程终止;否则,将未接收到的和接收错误的数据包序号发送给服务器;
E、服务器接收到所有局域终端设备的丢包信息后,将丢失的数据包按序号重新发送;
F、总线上未收到完整文件的局域终端设备接收数据包,根据数据包的序号和本局域终端设备拟接收的序号判断该数据包是否需要处理,如不需要则放弃该数据包,如需要则根据数据包中的校验信息判断是否接收正确,将正确接收的数据包存储在数据存储区,如错误则记录接收错误的数据包序号,当局域终端设备收到最后一个数据包或超过一定时间未收到新的数据包时,如果数据接收完整,局域终端设备开始升级,过程终止;否则,将未接收到的和接收错误的数据包序号发送给服务器;
G、重复步骤E和F,直至所有局域终端设备升级完毕或执行次数达到规定的最大值。
本发明中,广播式升级可以提高设备固件升级的效率,数据包中的校验信息可以验证数据的正确到达,丢/错包重传机制可以保证文件传输的完整性。采用本发明,可以快速、有效地升级设备中的固件。
附图说明
下面结合附图对本发明进行详细说明。
图1是本发明中设备布局示意图。
其中:1为升级服务器,2为CAN总线,3为总线上的局域终端设备。
具体实施方式
一种基于CAN总线进行批量升级设备固件的方法,本方法基于连接到总线上并已经建立通讯协议的升级服务器和需升级固件的局域终端设备来完成,升级服务器中已经存储有升级文件,在升级过程中本方法包括以下步骤:
A、升级服务器通过总线向局域终端设备发送升级命令,命令中包括将要升级的文件名称、文件版本信息;
B、、总线上的局域终端设备接收到升级命令后,检查命令中的软件名称、软件版本信息,据此判断自身固件是否需要升级,如果需要升级,设置数据存储区,进入升级状态,准备接收服务器的升级数据包;
C、升级服务器读取升级文件,将文件分割成数据包,在每个数据包中插入序号和本数据包的数据长度以及经计算的校验信息,按序号顺序发送数据包,直至整个文件发送完毕;
D、总线上需升级的局域终端设备接收数据包,根据序号是否连续判断是否接收完整,根据数据包中的校验信息判断是否接收正确,将正确接收的数据包存储在数据存储区,记录未接收到的数据包序号和接收错误的数据包序号,当局域终端设备收到最后一个数据包或超过一定时间未收到新的数据包时,如果数据接收完整,局域终端设备开始升级,过程终止;否则,将未接收到的和接收错误的数据包序号发送给服务器;
E、服务器接收到所有局域终端设备的丢包信息后,将丢失的数据包按序号重新发送;
F、总线上未收到完整文件的局域终端设备接收数据包,根据数据包的序号和本局域终端设备拟接收的序号判断该数据包是否需要处理,如不需要则放弃该数据包,如需要则根据数据包中的校验信息判断是否接收正确,将正确接收的数据包存储在数据存储区,如错误则记录接收错误的数据包序号,当局域终端设备收到最后一个数据包或超过一定时间未收到新的数据包时,如果数据接收完整,局域终端设备开始升级,过程终止;否则,将未接收到的和接收错误的数据包序号发送给服务器;
G、重复步骤E和F,直至所有局域终端设备升级完毕或执行次数达到规定的最大值。
所述需要升级的局域终端设备中,至少有两个具有相同的需要升级的固件。
所述序号是从0或某个正整数开始,加1递增。
所述数据包中还包括总的数据包数量。
所述的校验信息是本数据包中数据的校验和。
为了服务器的统计验证,在步骤B中,需要升级的局域终端设备向升级服务器发送响应命令,在步骤G后还有以下步骤:
H、局域终端设备将升级成功或失败的结果发送给服务器。
升级服务器接收步骤B和H中设备的响应,统计升级的结果和验证局域终端设备的有效性。
参看图1,升级服务器1连接到CAN总线2上,CAN总线2上的局域终端设备3中,至少有两台有相同的固件。设备固件需要升级时,升级服务器中已经存储有升级文件,文件中包括文件名称、版本号等信息。升级过程包括以下步骤:
A、升级服务器通过总线发送升级命令,命令中包括将要升级的文件名称、文件版本信息;
B、总线上的设备接收到升级命令后,首先检查文件名称,确定是否与本身的固件一致,其次判断本身的固件是否已经是最新版本,据此判断自身固件是否需要升级,如果需要升级,向升级服务器发送响应命令,设置数据存储区,进入升级状态,准备接收服务器的升级数据包;
C、升级服务器在发送升级命令并延迟一段时间后,读取升级文件,将文件分割成数据包,在每个数据包中插入序号和本数据包的数据长度以数据的校验和,按序号顺序发送数据包,直至整个文件发送完毕,这里的序号是从0或某个正整数开始,加1递增;
D、总线上需升级的设备接收数据包,根据序号是否连续判断是否接收完整,根据数据包中数据计算校验和,与数据包中的校验信息比对来判断是否接收正确,将正确接收的数据包存储在数据存储区,记录未接收到的数据包序号和接收错误的数据包序号,当设备收到最后一个数据包或超过一定时间未收到新的数据包时,如果数据接收完整,设备开始升级,过程终止;否则,将未接收到的和接收错误的数据包序号发送给服务器;
E、服务器接收到所有设备的丢包信息后,将丢失的数据包按序号重新发送;
F、总线上未收到完整文件的设备接收数据包,根据数据包的序号和本设备拟接收的序号判断该数据包是否需要处理,如不需要则放弃该数据包,如需要则根据数据包中的校验信息判断是否接收正确,将正确接收的数据包存储在数据存储区,如错误则记录接收错误的数据包序号,当设备收到最后一个数据包或超过一定时间未收到新的数据包时,如果数据接收完整,设备开始升级,过程终止;否则,将未接收到的和接收错误的数据包序号发送给服务器;
G、重复步骤E和F,直至所有设备升级完毕或执行次数达到规定的最大值;
H、局域终端设备将升级成功或失败的结果发送给服务器。
升级服务器在生成数据包时,可以将数据包数量插入其中,以便设备在接收过程中判断是否接收完成。
在步骤B中,需要升级的设备向升级服务器发送响应命令,升级服务器接收响应命令,并据此以及H步骤中局域终端设备的响应统计升级的结果和验证设备的有效性。
实施例中,局域终端设备至少有两台有相同的固件,显而易见,本发明也适用只有一台设备需要升级的情况。
上述实施例是基于CAN总线实现的,显然,本发明不仅限于 CAN 总线,也可用于RS485 总线,以及其它具有广播功能的总线上。
Claims (8)
1.一种基于CAN总线进行批量升级设备固件的方法,本方法基于连接到控制器局域网络(CAN)总线上并已经建立通讯协议的升级服务器和需升级固件的局域终端设备来完成,升级服务器中已经存储有升级文件,其特征在于:本方法包括以下步骤:
A、升级服务器通过总线向局域终端设备发送升级命令,命令中包括将要升级的文件名称、文件版本信息;
B、总线上的局域终端设备接收到升级命令后,检查命令中的软件名称、软件版本信息,据此判断自身固件是否需要升级,如果需要升级,设置数据存储区,进入升级状态,准备接收服务器的升级数据包;
C、升级服务器读取升级文件,将文件分割成数据包,在每个数据包中插入序号和本数据包的数据长度以及经计算的校验信息,按序号顺序发送数据包,直至整个文件发送完毕;
D、总线上需升级的局域终端设备接收数据包,根据序号是否连续判断是否接收完整,根据数据包中的校验信息判断是否接收正确,将正确接收的数据包存储在数据存储区,记录未接收到的数据包序号和接收错误的数据包序号,当局域终端设备收到最后一个数据包或超过一定时间未收到新的数据包时,如果数据接收完整,局域终端设备开始升级,过程终止;否则,将未接收到的和接收错误的数据包序号发送给服务器;
E、服务器接收到所有局域终端设备的丢包信息后,将丢失的数据包按序号重新发送;
F、总线上未收到完整文件的局域终端设备接收步骤E重新发送的丢失数据包,根据重新接收的丢失数据包的序号和本局域终端设备拟接收的序号判断该重新接收的丢失数据包是否需要处理,如不需要则放弃该重新接收的丢失数据包,如需要则根据该重新接收的丢失数据包中的校验信息判断是否接收正确,将正确接收的重新发送的丢失数据包存储在数据存储区,如错误则记录接收错误的丢失数据包序号,当局域终端设备收到最后一个数据包或超过一定时间未收到新的数据包时,如果数据接收完整,局域终端设备开始升级,过程终止;否则,将未接收到的和接收错误的数据包序号发送给服务器;
G、重复步骤E和F,直至所有局域终端设备升级完毕或执行次数达到规定的最大值。
2.根据权利要求1所述的一种基于CAN总线进行批量升级设备固件的方法,其特征在于:所述需要升级固件的局域终端设备中,至少有两个具有相同的需要升级的固件。
3.根据权利要求1所述的一种基于CAN总线进行批量升级设备固件的方法,其特征在于:所述序号是从0或某个正整数开始,加1递增。
4.根据权利要求1所述的一种基于CAN总线进行批量升级设备固件的方法,其特征在于:所述数据包中还包括总的数据包数量。
5.根据权利要求1所述的一种基于CAN总线进行批量升级设备固件的方法,其特征在于:所述的校验信息是本数据包中数据的校验和。
6.根据权利要求1所述的一种基于CAN总线进行批量升级设备固件的方法,其特征在于:在步骤B中,需要升级固件的局域终端设备向升级服务器发送响应命令。
7.根据权利要求6所述的一种基于CAN总线进行批量升级设备固件的方法,其特征在于:在步骤G后还有以下步骤:
H、局域终端设备将升级成功或失败的结果发送给服务器。
8.根据权利要求7所述的一种基于CAN总线进行批量升级设备固件的方法,其特征在于:升级服务器接收步骤B中的响应命令和步骤H中升级成功或失败的结果,统计升级的结果和验证局域终端设备的有效性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110449001.0A CN102546784B (zh) | 2011-12-29 | 2011-12-29 | 一种基于can总线进行批量升级设备固件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110449001.0A CN102546784B (zh) | 2011-12-29 | 2011-12-29 | 一种基于can总线进行批量升级设备固件的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102546784A CN102546784A (zh) | 2012-07-04 |
CN102546784B true CN102546784B (zh) | 2014-03-26 |
Family
ID=46352730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110449001.0A Active CN102546784B (zh) | 2011-12-29 | 2011-12-29 | 一种基于can总线进行批量升级设备固件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102546784B (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853105A (zh) * | 2012-11-28 | 2014-06-11 | 北汽福田汽车股份有限公司 | 一种基于can总线的控制器刷写方法 |
CN103916440B (zh) * | 2013-01-05 | 2018-03-06 | 尼尔森网联媒介数据服务有限公司 | 一种远程升级的方法及其装置 |
CN103425507A (zh) * | 2013-05-27 | 2013-12-04 | 林永宗 | 一种替换zigbee协议栈的zigbee固件更新方法 |
CN103763351A (zh) * | 2014-01-03 | 2014-04-30 | 中达电通股份有限公司 | 基于上位机与下位机的软件在线升级方法 |
CN104038538A (zh) * | 2014-05-29 | 2014-09-10 | 广州视睿电子科技有限公司 | 局域网主机软件升级方法与系统 |
CN104102519A (zh) * | 2014-07-24 | 2014-10-15 | 英业达科技有限公司 | 机架式服务器系统的固件更新方法及其装置 |
CN104991795B (zh) * | 2015-06-19 | 2018-11-02 | 汉王科技股份有限公司 | 主动电容笔的固件升级方法及装置 |
CN105045611B (zh) * | 2015-06-24 | 2018-08-07 | 深圳市海蕴新能源有限公司 | 一种升级方法及装置 |
CN105119749B (zh) * | 2015-09-07 | 2018-12-28 | 烽火通信科技股份有限公司 | 一种家庭网关本地批量升级的方法和系统 |
WO2017070855A1 (zh) * | 2015-10-27 | 2017-05-04 | 深圳还是威健康科技有限公司 | 一种基于蓝牙的数据传输方法以及装置 |
WO2017113080A1 (zh) * | 2015-12-29 | 2017-07-06 | 深圳配天智能技术研究院有限公司 | 一种从站固件更新的方法、系统、主站及从站 |
CN105721204A (zh) * | 2016-01-27 | 2016-06-29 | 厦门科灿信息技术有限公司 | 一种网络适配器的固件升级方法及系统 |
CN106888102A (zh) * | 2017-01-18 | 2017-06-23 | 深圳市方大自动化系统有限公司 | 屏蔽门门控器的软件更新方法 |
CN107832076A (zh) * | 2017-10-24 | 2018-03-23 | 北京天地玛珂电液控制系统有限公司 | 一种工业控制器程序升级管理系统 |
CN109800565B (zh) * | 2017-11-16 | 2024-07-26 | 深圳市优必选科技有限公司 | 软件升级方法及终端设备 |
CN108304202B (zh) * | 2017-12-20 | 2022-04-08 | 珠海派诺科技股份有限公司 | 一种基于总线的多仪表固件升级方法及装置 |
CN108304203B (zh) * | 2017-12-20 | 2021-04-30 | 珠海派诺科技股份有限公司 | 一种多仪表固件升级方法及装置 |
CN108494818B (zh) * | 2018-02-10 | 2021-02-05 | 西安融盛智汇电子科技有限公司 | 一种光伏数据采集网关设备的在线升级方法 |
CN108664262A (zh) * | 2018-05-09 | 2018-10-16 | 顺丰科技有限公司 | 无线分拣设备的固件批量升级方法、系统及存储介质 |
CN109039779B (zh) * | 2018-09-20 | 2020-09-29 | 珠海格力电器股份有限公司 | 设备升级方法、数据传输单元、控制器局域网络设备和网络 |
CN110471687A (zh) * | 2019-08-21 | 2019-11-19 | 江苏佳讯纳通能源技术有限公司 | 一种适用于rs485总线的快速固件升级方法 |
CN111459517A (zh) * | 2020-03-30 | 2020-07-28 | 中国电子科技集团公司第五十四研究所 | 一种光纤环网架构下的主从设备在线程序升级方法 |
CN113157300A (zh) * | 2021-05-19 | 2021-07-23 | 深圳Tcl新技术有限公司 | 一种数据处理方法、装置和存储介质 |
CN113472744B (zh) * | 2021-05-31 | 2023-04-07 | 浪潮(北京)电子信息产业有限公司 | 不同存储协议下的数据交互方法、装置、设备及介质 |
CN114151933B (zh) * | 2021-12-07 | 2023-04-07 | 青岛海信日立空调系统有限公司 | 多联机空调机组升级系统、升级控制器及升级方法 |
CN114221866A (zh) * | 2021-12-14 | 2022-03-22 | 歌尔科技有限公司 | 一种终端升级的方法、装置及介质 |
CN114844780A (zh) * | 2022-04-28 | 2022-08-02 | 浙江灵鹿智能科技有限公司 | 一种批量固件升级的方法和系统 |
CN115314384A (zh) * | 2022-06-13 | 2022-11-08 | 珠海派诺科技股份有限公司 | Rs485总线下设备升级方法、设备升级系统以及采集器 |
CN116841591B (zh) * | 2023-08-30 | 2023-12-26 | 杭州炬源智能科技有限公司 | 计量设备的固件升级方法、系统以及介质 |
CN117873536A (zh) * | 2024-03-11 | 2024-04-12 | 深圳优能新能源科技有限公司 | 储能电源多级网络环境设备的程序同步更新方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1351473A1 (en) * | 2002-04-02 | 2003-10-08 | Huawei Technologies Co., Ltd. | Software upgrade method for a switching device in a two-layer network environment |
CN101621411A (zh) * | 2009-07-22 | 2010-01-06 | 中兴通讯股份有限公司 | 微控制器远程更新方法和更新系统 |
CN101686145A (zh) * | 2008-09-26 | 2010-03-31 | 深圳华为通信技术有限公司 | 一种具有升级功能的设备、升级方法及系统 |
CN101807155A (zh) * | 2010-03-03 | 2010-08-18 | 京信通信系统(中国)有限公司 | 一种嵌入式软件在线更新方法 |
-
2011
- 2011-12-29 CN CN201110449001.0A patent/CN102546784B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1351473A1 (en) * | 2002-04-02 | 2003-10-08 | Huawei Technologies Co., Ltd. | Software upgrade method for a switching device in a two-layer network environment |
CN101686145A (zh) * | 2008-09-26 | 2010-03-31 | 深圳华为通信技术有限公司 | 一种具有升级功能的设备、升级方法及系统 |
CN101621411A (zh) * | 2009-07-22 | 2010-01-06 | 中兴通讯股份有限公司 | 微控制器远程更新方法和更新系统 |
CN101807155A (zh) * | 2010-03-03 | 2010-08-18 | 京信通信系统(中国)有限公司 | 一种嵌入式软件在线更新方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102546784A (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102546784B (zh) | 一种基于can总线进行批量升级设备固件的方法 | |
CN106031072A (zh) | 一种harq帧数据结构以及在采用盲检的系统中使用harq进行传输与接收的方法 | |
CN102082649B (zh) | 使用针对选择性重传的滑动窗口协议进行数据通信的系统和方法 | |
CN103685487A (zh) | 无线通信网络中的子节点升级方法 | |
CN101809953A (zh) | 用于外围设备的毫米波通信 | |
CN113721966B (zh) | 节点升级方法、装置、存储介质及电子装置 | |
CN102281121A (zh) | 一种数据文件传输和校验的方法、设备及系统 | |
WO2012012983A1 (zh) | Fota升级的处理方法及装置 | |
CN111629368B (zh) | 耳机与充电盒的通信方法、充电盒、耳机及可读存储介质 | |
CN111240713A (zh) | 一种用电检测远程断点续传的方法 | |
WO2011137640A1 (zh) | 文件传输方法、文件发送装置和文件接收装置 | |
CN113746892B (zh) | 一种远程升级方法及无线终端设备 | |
CN101621411A (zh) | 微控制器远程更新方法和更新系统 | |
CN108886713B (zh) | 一种数据传输方法、数据接收设备及数据发送设备 | |
CN111641638A (zh) | 一种数据传输方法及相关装置 | |
CN101944983B (zh) | 用于在通信网络中发送和接收管理消息的方法及系统 | |
CN114866525B (zh) | 一种一主多从模式嵌入式设备远程在线固件升级方法及系统 | |
KR101428778B1 (ko) | 원격검침 단말의 원격 펌웨어 업그레이드 장치 및 방법 | |
WO2012051906A1 (zh) | 机顶盒无线升级方法及其控制终端 | |
CN115687226A (zh) | i2c总线通信方法、装置及可读存储介质 | |
CN109688208B (zh) | 一种基于fc-ae-asm消息的数据加载方法 | |
CN111224837A (zh) | 自动识别车辆ecu的can通信波特率的方法及其系统 | |
CN1988537A (zh) | 一种数据传输协议 | |
CN104079371A (zh) | 一种数据通信方法、设备及系统 | |
WO2017049557A1 (zh) | 为适配器升级的方法、移动终端和适配器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |