CN106445592A - 一种基于wifi与can总线远程多机程序升级方法 - Google Patents
一种基于wifi与can总线远程多机程序升级方法 Download PDFInfo
- Publication number
- CN106445592A CN106445592A CN201610840480.1A CN201610840480A CN106445592A CN 106445592 A CN106445592 A CN 106445592A CN 201610840480 A CN201610840480 A CN 201610840480A CN 106445592 A CN106445592 A CN 106445592A
- Authority
- CN
- China
- Prior art keywords
- program
- bootloader
- slave computer
- upgrading
- application program
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于WIFI与CAN总线的远程多机程序升级方法,传统的分布式工业控制领域中对多设备进行程序升级的方法大多是对每个单元进行单独的升级或是基于某种总线的现场多机升级模式。本发明克服以上缺陷,通过挂载在CAN总线上的WIFI中转模块与安置在现场的无线路由器,实现远程多机应用程序和BOOTLOADER程序在线升级。用户只需远程将PC机连接到路由器,即可随时随地对特定WIFI中转下的设备程序进行升级,同时友好的上位机显示界面能实时显示升级进度以及最终的升级状态。应用程序的分段设计与更新过程中双重校验模式大大提高了程序升级的效率与成功率。
Description
技术领域
本发明涉及的是分布式工业控制领域,特别是指一种基于WIFI与CAN总线的分布式工业控制系统中多机程序的远程在线升级方法。
背景技术
传统的工业控制领域中对多机设备进行程序更新的方法大多为对每个单元进行单独的更新。复杂的工业环境和单一更新的方式使得程序更新效率大大降低,机器数量的增加对更新工作更是一种巨大的挑战。近年来,虽然出现了一些多机应用程序在线升级的方法,但是对引导程序BOOTLOADER的升级基本都是采用单一更新的方式。应用程序在线升级的方法也大多是基于某种单一的总线,因此程序的更新或是要到现场采用专用的转接器连接到总线对程序进行更新,或是不能精确对具体某一设备进行更新,又或是因为巨大的代码量使得更新时间大大加长。
发明内容
本发明针对现有技术的不足,提出了一种基于WIFI与CAN总线远程多机程序升级方法。
一种基于WIFI与CAN总线远程多机程序升级方法,该方法具体包括以下步骤:
步骤一:系统上电后,在线的中转编号将会显示到PC机,用户根据需要决定对部分或所有中转下的单元进行更新,被选中的中转暂停当前工作转到升级模式,同时该中转所管辖下的相应下位机将接收到PC机下发的升级命令。
步骤二:根据用户提供的更新程序,决定是对应用程序部分升级或是全部升级,或是对BOOTLOADER程序进行升级,并选择相应的文件拷贝到PC机。为了缩短应用程序升级时间,通常在会将应用程序中某些相对独立且只读的大批量数据固定在一个地址范围,即程序段A,而其他的程序数据和代码则分配在另一个地址范围,即程序段B。第一次将应用程序全部升级后,后续的程序功能修改就可以选择只更新程序段B的部分程序升级方式。
步骤三:所有的下位机单元上电后自动进入BOOTLOADER并对应用程序进行校验,校验通过后由BOOTLOADER跳转到应用程序,否则等待更新。
下位机在运行应用程序时,如果PC机执行过步骤一和二时,下位机将接收中转模块转发的PC机命令,自动复位,进入BOOTLOADER,等待更新。下位机应用程序接收到PC机准备升级程序命令时,将对比程序自身校验码和PC机命令中的升级程序校验码,如果两个校验码不一致,则执行复位命令准备进行更新;如果两个校验码相等,表示下位机已经升级过该程序,则不执行复位更新命令。这样即可以避免同一个WIFI中转下某些已经升级过应用程序的下位机重复升级,减少下位机程序存储器的烧写次数。
步骤五:更新开始后,PC机将更新程序分成多段数据进行下发,中转每接收一段更新数据即进行校验。若是校验有误则请求上位机重新发送本段,否则将该段程序通过CAN总线发送到下位机。
步骤六:下位机每接收一段更新数据即进行校验,若是校验有误则通过中转请求PC机重新发送本段,否则将接收的更新数据写入下位机应用程序存储区,并请求发送下一段更新数据。
步骤七:PC机判断是否已经发送结束,若是结束则发送升级结束的标志,否则重复步骤五与步骤六。
步骤八:中转接收到升级结束的标志,恢复正常工作,同时下位机对接收的所有更新数据(升级后应用程序)再次进行校验,校验通过后则跳转到升级后的应用程序,校验不通过则上报PC机相应的下位机编号,重复步骤一到七。
对BOOTLOADER程序进行升级,具体包括如下三个步骤:
步骤1:需要先将下位机应用程序更新为特定的BOOTLOADER写入程序;该写入程序与普通的BOOTLOADER程序类似,不过其程序存放地址和更新程序时写入地址不同。如普通的BOOTLOADER程序地址范围为段A,更新应用程序时写入地址范围在段B;而BOOTLOADER写入程序的地址范围为段B,更新应用程序时写入地址范围为段A。在步骤二选择BOOTLOADER写入程序的更新文件后,按照步骤三至步骤八操作完成更新。更新完成后,下位机将启动BOOTLOADER写入程序,继续等待下一步程序更新。
步骤2:更新真正的BOOTLOADER程序,此时选择真正的BOOTLOADER程序更新文件,重复步骤三至八操作完成BOOTLOADER程序的升级。
步骤3:完成BOOTLOADER程序升级后,下位机当前的特定BOOTLOADER写入程序已不需要使用,可以将下位机的应用程序更新回正常的应用程序。
本发明的有益效果是:可以远程对下位机的部分或全部单元进行应用程序或引导程序BOOTLOADER的升级,而不需要亲临现场。采用中转与下位机双重校验的模式,同时可以对升级失败的设备进行单独定点升级,避免对总线上单个设备的升级而使得其他设备重复升级问题。采用分段更新的方式,可解决升级程序大小超出下位机内存可用容量无法一次更新的问题。采用程序分段设计的方式,仅对修改的程序段进行更新,避免单一修改全部更新的弊端,大大提高了更新的效率与成功率。
附图说明
图1:系统组成框图
图2:系统运行流程图
图3:BOOTLOADER更新流程图
具体实施方式
结合图1说明本实施方式。根据现场需求,将下位机之间通过CAN总线进行连接,同时每个CAN总线上连接有一个WIFI中转。在现场的适当位置安置工业无线路由器并且将所有WIFI中转与之相连。同时将路由器连接到互联网,PC机连接到路由器即可对下位机程序进行升级。
结合图2说明本实施方式,本具体实施方式:
步骤一:系统上电后,在线的中转编号将会显示到PC机,用户根据需要决定对部分或所有中转下的单元进行更新,被选中的中转暂停当前工作转到升级模式,同时该中转所管辖下的相应下位机将接收到PC机下发的升级命令。
步骤二:根据用户提供的更新程序,决定是对应用程序部分升级或是全部升级,或是对BOOTLOADER程序进行升级,并选择相应的文件拷贝到PC机。为了缩短应用程序升级时间,通常在会将应用程序中某些相对独立且只读的大批量数据(如点阵字库)固定在一个地址范围,即程序段A,而其他的程序数据和代码则分配在另一个地址范围,即程序段B。第一次将应用程序全部升级后,后续的程序功能修改就可以选择只更新程序段B的部分程序升级方式。
步骤三:所有的下位机单元上电后自动进入BOOTLOADER并对应用程序进行校验,校验通过后由BOOTLOADER跳转到应用程序,否则等待更新。
下位机在运行应用程序时,如果PC机执行过步骤一和二时,下位机将接收中转模块转发的PC机命令,自动复位,进入BOOTLOADER,等待更新。下位机应用程序接收到PC机准备升级程序命令时,将对比程序自身校验码和PC机命令中的升级程序校验码,如果两个校验码不一致,则执行复位命令准备进行更新;如果两个校验码相等,表示下位机已经升级过该程序,则不执行复位更新命令。这样即可以避免同一个WIFI中转下某些已经升级过应用程序的下位机重复升级,减少下位机程序存储器的烧写次数。
步骤五:更新开始后,PC机将更新程序分成多段数据进行下发,中转每接收一段更新数据即进行校验。若是校验有误则请求上位机重新发送本段,否则将该段程序通过CAN总线发送到下位机。
步骤六:下位机每接收一段更新数据即进行校验,若是校验有误则通过中转请求PC机重新发送本段,否则将接收的更新数据写入下位机应用程序存储区,并请求发送下一段更新数据。
步骤七:PC机判断是否已经发送结束,若是结束则发送升级结束的标志,否则重复步骤五与步骤六。
步骤八:中转接收到升级结束的标志,恢复正常工作,同时下位机对接收的更新数据(升级后应用程序)再次进行校验,校验通过后则跳转到升级后的应用程序,校验不通过则上报PC机相应的下位机编号,重复步骤一到七。
结合图3说明本实施方式,本具体实施方式:
若是对BOOTLOADER程序进行升级,比较通用的方法为如下三个步骤:
首先,需要先将下位机应用程序更新为特定的BOOTLOADER写入程序,该写入程序与普通的BOOTLOADER程序类似,不过其程序存放地址和更新程序时写入地址不同。如普通的BOOTLOADER程序地址范围为段A,更新应用程序时写入地址范围在段B;而BOOTLOADER写入程序的地址范围为段B,更新新的BOOTLOADER时写入地址范围为段A。在步骤二选择BOOTLOADER写入程序的更新文件后,按照步骤三至步骤八操作完成更新。更新完成后,下位机将启动BOOTLOADER写入程序,继续等待程序更新。
接下来,更新真正的BOOTLOADER程序,此时选择真正的BOOTLOADER程序更新文件,重复步骤三至八操作完成BOOTLOADER程序的升级。
最后,完成BOOTLOADER程序升级后,下位机当前的特定BOOTLOADER写入程序已不需要使用,可以将下位机的应用程序更新回正常的应用程序。
Claims (2)
1.一种基于WIFI与CAN总线远程多机程序升级方法,其特征在于,该方法具体包括以下步骤:
步骤一:系统上电后,在线的中转编号将会显示到PC机,用户根据需要决定对部分或所有中转下的单元进行更新,被选中的中转暂停当前工作转到升级模式,同时该中转所管辖下的相应下位机将接收到PC机下发的升级命令;
步骤二:根据用户提供的更新程序,决定是对应用程序部分升级或是全部升级,或是对BOOTLOADER程序进行升级,并选择相应的文件拷贝到PC机;
步骤三:所有的下位机单元上电后自动进入BOOTLOADER并对应用程序进行校验,校验通过后由BOOTLOADER跳转到应用程序,否则等待更新;
下位机在运行应用程序时,如果PC机执行过步骤一和二时,下位机将接收中转模块转发的PC机命令,自动复位,进入BOOTLOADER,等待更新;下位机应用程序接收到PC机准备升级程序命令时,将对比程序自身校验码和PC机命令中的升级程序校验码,如果两个校验码不一致,则执行复位命令准备进行更新;如果两个校验码相等,表示下位机已经升级过该程序,则不执行复位更新命令;
步骤五:更新开始后,PC机将更新程序分成多段数据进行下发,中转每接收一段更新数据即进行校验;若是校验有误则请求上位机重新发送本段,否则将该段程序通过CAN总线发送到下位机;
步骤六:下位机每接收一段更新数据即进行校验,若是校验有误则通过中转请求PC机重新发送本段,否则将接收的更新数据写入下位机应用程序存储区,并请求发送下一段更新数据;
步骤七:PC机判断是否已经发送结束,若是结束则发送升级结束的标志,否则重复步骤五与步骤六;
步骤八:中转接收到升级结束的标志,恢复正常工作,同时下位机对接收的所有更新数据再次进行校验,校验通过后则跳转到升级后的应用程序,校验不通过则上报PC机相应的下位机编号,重复步骤一到七。
2.根据权利要求1所述的一种基于WIFI与CAN总线远程多机程序升级方法,其特征在于:对BOOTLOADER程序进行升级,具体包括如下三个步骤:
步骤1:需要先将下位机应用程序更新为特定的BOOTLOADER写入程序;该写入程序与普通的BOOTLOADER程序类似,不过其程序存放地址和更新程序时写入地址不同;在步骤二选择BOOTLOADER写入程序的更新文件后,按照步骤三至步骤八操作完成更新;更新完成后,下位机将启动BOOTLOADER写入程序,继续等待下一步程序更新;
步骤2:更新真正的BOOTLOADER程序,此时选择真正的BOOTLOADER程序更新文件,重复步骤三至八操作完成BOOTLOADER程序的升级;
步骤3:完成BOOTLOADER程序升级后,下位机当前的特定BOOTLOADER写入程序已不需要使用,可以将下位机的应用程序更新回正常的应用程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610840480.1A CN106445592A (zh) | 2016-09-22 | 2016-09-22 | 一种基于wifi与can总线远程多机程序升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610840480.1A CN106445592A (zh) | 2016-09-22 | 2016-09-22 | 一种基于wifi与can总线远程多机程序升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106445592A true CN106445592A (zh) | 2017-02-22 |
Family
ID=58165898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610840480.1A Pending CN106445592A (zh) | 2016-09-22 | 2016-09-22 | 一种基于wifi与can总线远程多机程序升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106445592A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107797815A (zh) * | 2017-10-18 | 2018-03-13 | 北京聚利科技股份有限公司 | 车载设备的升级方法、车载设备和升级设备 |
CN108108176A (zh) * | 2017-12-15 | 2018-06-01 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种基于Android系统的多余度目标机软件升级方法 |
CN108255510A (zh) * | 2017-12-22 | 2018-07-06 | 芯海科技(深圳)股份有限公司 | 一种基于iap在线升级待升级固件传输校验设计方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202773080U (zh) * | 2012-07-31 | 2013-03-06 | 石家庄开发区天远科技有限公司 | 一种车载电控单元的远程升级系统 |
CN103414741A (zh) * | 2013-07-02 | 2013-11-27 | 深圳市汇川技术股份有限公司 | 一种远程升级plc的方法和系统 |
CN104102508A (zh) * | 2014-07-01 | 2014-10-15 | 杭州电子科技大学 | 一种基于FlexRay总线的多机程序在线升级方法 |
CN104468235A (zh) * | 2014-12-25 | 2015-03-25 | 浙江中控研究院有限公司 | 一种基于iap的可配置全网络远程节点固件升级系统及装置 |
CN104809014A (zh) * | 2015-04-29 | 2015-07-29 | 无锡悟莘科技有限公司 | 一种系统远程无线升级方法 |
US20150271660A1 (en) * | 2012-09-03 | 2015-09-24 | Zte Corporation | Method, system and device for automatically configuring a remote radio unit |
CN105224362A (zh) * | 2015-09-18 | 2016-01-06 | 深圳市新产业生物医学工程股份有限公司 | 上位机对下位机进行程序升级的方法及系统 |
CN105511929A (zh) * | 2015-12-31 | 2016-04-20 | 青岛高校信息产业股份有限公司 | 一种设备远程无线升级方法 |
-
2016
- 2016-09-22 CN CN201610840480.1A patent/CN106445592A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202773080U (zh) * | 2012-07-31 | 2013-03-06 | 石家庄开发区天远科技有限公司 | 一种车载电控单元的远程升级系统 |
US20150271660A1 (en) * | 2012-09-03 | 2015-09-24 | Zte Corporation | Method, system and device for automatically configuring a remote radio unit |
CN103414741A (zh) * | 2013-07-02 | 2013-11-27 | 深圳市汇川技术股份有限公司 | 一种远程升级plc的方法和系统 |
CN104102508A (zh) * | 2014-07-01 | 2014-10-15 | 杭州电子科技大学 | 一种基于FlexRay总线的多机程序在线升级方法 |
CN104468235A (zh) * | 2014-12-25 | 2015-03-25 | 浙江中控研究院有限公司 | 一种基于iap的可配置全网络远程节点固件升级系统及装置 |
CN104809014A (zh) * | 2015-04-29 | 2015-07-29 | 无锡悟莘科技有限公司 | 一种系统远程无线升级方法 |
CN105224362A (zh) * | 2015-09-18 | 2016-01-06 | 深圳市新产业生物医学工程股份有限公司 | 上位机对下位机进行程序升级的方法及系统 |
CN105511929A (zh) * | 2015-12-31 | 2016-04-20 | 青岛高校信息产业股份有限公司 | 一种设备远程无线升级方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107797815A (zh) * | 2017-10-18 | 2018-03-13 | 北京聚利科技股份有限公司 | 车载设备的升级方法、车载设备和升级设备 |
CN108108176A (zh) * | 2017-12-15 | 2018-06-01 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种基于Android系统的多余度目标机软件升级方法 |
CN108108176B (zh) * | 2017-12-15 | 2021-05-28 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种基于Android系统的多余度目标机软件升级方法 |
CN108255510A (zh) * | 2017-12-22 | 2018-07-06 | 芯海科技(深圳)股份有限公司 | 一种基于iap在线升级待升级固件传输校验设计方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106647238B (zh) | 一种基于can线刷新冗余控制器的方法 | |
CN107870775A (zh) | 一种处理器及BootLoader程序的更新方法 | |
CN106445613B (zh) | 一种代码升级方法及系统 | |
CN101815988A (zh) | 固件映像更新和管理 | |
US20120198292A1 (en) | Test apparatus and test method | |
US7480905B2 (en) | Interface device, and method and computer readable product for updating firmware in the interface device | |
CN106445592A (zh) | 一种基于wifi与can总线远程多机程序升级方法 | |
CN110597675B (zh) | 芯片的测试方法、装置、存储介质及烧录器 | |
CN110633091A (zh) | 一种电子模块及其软件无线升级方法 | |
CN110727255B (zh) | 一种整车控制器软件升级测试系统及车辆 | |
CN105094877A (zh) | 一种固件升级的方法和主机端装置及系统 | |
CN104346179A (zh) | 通过can总线远程升级的嵌入式系统及方法 | |
CN103336701B (zh) | 智能型引导升级方法 | |
CN105488000A (zh) | 实现usb设备快速访问的方法和系统 | |
CN109388413A (zh) | 一种fpga程序更新方法及系统 | |
CN110569053A (zh) | 电子设备中应用芯片的升级方法及电子设备 | |
CN106911507A (zh) | 一种用于整机柜服务器bmc固件更新管理的方法及系统 | |
WO2023077826A1 (zh) | 一种一体机的系统修复方法、系统、设备及存储介质 | |
CN106055420A (zh) | 一种数据校验方法、装置及设备 | |
CN104428751A (zh) | 程序数据的更新方法及设备 | |
CN102495746A (zh) | 一种机载嵌入式计算机数据加载方法 | |
CN105468390B (zh) | Boot在线升级装置及方法 | |
CN115357262A (zh) | 一种驱动器固件批量升级的方法 | |
CN108196861A (zh) | 一种数据升级方法及其诊断设备 | |
CN112445670B (zh) | 一种eMMC测试方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170222 |