CN105511912B - 一种基于can总线的程序下载方法 - Google Patents

一种基于can总线的程序下载方法 Download PDF

Info

Publication number
CN105511912B
CN105511912B CN201510855873.5A CN201510855873A CN105511912B CN 105511912 B CN105511912 B CN 105511912B CN 201510855873 A CN201510855873 A CN 201510855873A CN 105511912 B CN105511912 B CN 105511912B
Authority
CN
China
Prior art keywords
code
program
object code
indexed
application
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
Application number
CN201510855873.5A
Other languages
English (en)
Other versions
CN105511912A (zh
Inventor
徐文赋
任素云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huizhou Blueway New Energy Technology Co Ltd
Original Assignee
Huizhou Blueway New Energy Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huizhou Blueway New Energy Technology Co Ltd filed Critical Huizhou Blueway New Energy Technology Co Ltd
Priority to CN201510855873.5A priority Critical patent/CN105511912B/zh
Publication of CN105511912A publication Critical patent/CN105511912A/zh
Application granted granted Critical
Publication of CN105511912B publication Critical patent/CN105511912B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

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

本发明涉及基于CAN总线的程序下载方法,包括以下步骤:S1系统上电时判断程序更新标志变量Up_Flg是否有效和目标代码程序标志变量Code_ok是否有效,若程序更新标志变量Up_Flg无效且目标代码程序标志变量Code_ok有效则进入应用模式,否则进入BootLoad模式;BootLoad模式:S2判断在第一预定时间内是否收到FLASH驱动代码,若是则执行步骤S3,否则返回步骤S1;S3目标代码程序标志变量Code_ok置0;S4擦除应用程序目标代码;S5接收新程序代码;S6执行新应用程序。本发明基于CAN总线下载程序,可任意刷写,即使烧写进去的目标代码错误或刷写中意外中断也可以重新刷写且通过读取标志为来判断是进入BootLoad模式还是应用程序模式,使系统上电进入应用程序没有延时,达到零启动效果。

Description

一种基于CAN总线的程序下载方法
技术领域
本发明涉及电动汽车的电池管理系统技术领域,具体涉及一种基于CAN总线的程序下载方法。
背景技术
目前,在电动汽车领域,通过CAN总线将程序下载到电池管理系统是常见的程序下载方式。但现有的基于CAN总线的程序下载方式,在程序烧写过程中目标代码错误或刷写过程中意外中断时,不能进入刷写模式重新刷写。电池管理系统上电后需要先判断系统进入BootLoad模式还是应用程序模式,现有技术中对系统上电后的模式判断需要一定的时间,导致系统上电进入应用程序具有一定的延迟,影响用户使用的体验效果。此外,现有的基于CAN总线的程序下载容易出现FLASH的意外操作,造成FLASH的错误改写。
发明内容
本发明的目的是克服现有技术的不足和缺陷,提供一种基于CAN总线的程序下载方法。
本发明的目的是通过以下技术方案来实现的:
一种基于CAN总线的程序下载方法,包括以下步骤:
S1系统上电时判断程序更新标志变量Up_Flg是否有效和目标代码程序标志变量Code_ok是否有效,若程序更新标志变量Up_Flg无效且目标代码程序标志变量Code_ok有效则进入应用模式,否则进入BootLoad模式;
BootLoad模式:
S2判断在第一预定时间内是否收到FLASH驱动代码,若是则执行步骤S3,否则返回步骤S1;
S3目标代码程序标志变量Code_ok置0;
S4擦除应用程序目标代码;
S5接收新程序代码;
S6执行新应用程序。
具体地,所述步骤S5包括以下步骤:
S51判断是否接收完一行代码,若接收完成则执行步骤S52,否则继续执行步骤S51;
S52更新相应行代码;
S53判断新代码是否全部接收完成,若是则执行步骤S54,否则返回步骤S51;
S54发结束标志到上位机,并跳转到目标代码。
具体地,所述步骤S6包括以下步骤:
S61’若上位机接收到结束标志,则延时第二预定时间后发送相应命令到应用层;
S61判断在第二预定时间内是否收到上位机响应命令,若是则执行步骤S62,否则执行步骤S63;
S62目标代码程序标志变量Code_ok置1,即证明更新的目标代码有效;
S63目标代码程序标志变量Code_ok保持为0,即证明更新的目标代码无效。
具体地,所述第一预定时间为多少10ms。
具体地,所述第二预定时间为1s。
本发明相比现有技术包括以下优点及有益效果:
(1)本发明基于CAN总线下载程序,可以任意刷写,即使烧写进去的目标代码错误或刷写中意外中断,也可以重新刷写,不会造成不能重新进入BootLoad模式。
(2)通过读取标志为来判断是进入BootLoad模式还是应用程序模式,使系统上电进入应用程序没有延时,达到零启动效果。
(3)FLASH驱动代码由上位机导入,若应用层未接收到上位机的FLASH驱动代码则无法改写目标程序,可防止目标程序误改写,保护目标程序的安全。
(4)程序刷写时前将目标代码程序标志变量Code_ok置0,程序刷写成功后将目标代码程序标志变量Code_ok置1,否则将目标代码程序标志变量Code_ok保持为0,在程序刷写了无效程序或死循环程序的情况下,当系统重新上电时,目标代码程序标志变量无效,可直接进入BootLoad模式,重新刷写程序。
附图说明
图1为实施例中基于CAN总线的程序下载方法的流程图;
图2为图1的步骤Stept 5的流程图;
图3为图1的步骤Stept6的流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
如图1所示,一种基于CAN总线的程序下载方法,具体过程如下:
Step1在应用层中判断程序更新标志变量Up_Flg是否有效(Up_Flg==1?)和目标代码程序标志变量Code_ok是否有效(即Code_ok==1?),若程序更新标志变量Up_Flg无效(Up_Flg==0)且目标代码程序标志变量Code_ok有效(Code_ok==1),则跳转到应用程序,进入应用模式,否则进入BootLoad模式。通过读取标志位来判断是进入BootLoad模式还是应用程序模式,使系统上电进入应用程序没有延时,达到零启动效果。
其中,BootLoad模式的具体过程如下:
Step2判断在第一预定时间内是否收到FLASH驱动代码,若是则执行步骤Step3,否则返回步骤Step1。在本实施例中,所述第一预定时间可设置为10ms,也可根据实际需要设置为其他时间长度。FLASH驱动代码由上位机导入,若应用层未接收到上位机的FLASH驱动代码则无法改写目标程序,可防止目标程序误改写,保护目标程序的安全。
Step3将目标代码程序标志变量Code_ok置0(即Code_ok=0),使目标代码处于无效。具体为擦除目标代码程序标志变量所在地址块的代码。
Step4擦除应用程序目标代码。
Stept5接收新程序代码,如图2所示,包括以下步骤:
S51判断是否接收完一行代码,若接收完成则执行步骤S52,否则继续执行步骤S51;
S52更新相应行代码;
S53判断新代码是否全部接收完成,若是则执行步骤S54,否则返回步骤S51;
S54发结束标志到上位机,并跳转到目标代码。
Step6执行新应用程序,具体包括以下步骤:
S61’若上位机接收到结束标志,则延时第二预定时间后发送相应命令到应用层的应用程序。在本实施例中,所述第二预定时间设定为1s,也可根据实际需要设定为其他时间长度。
S61判断在第二预定时间内是否收到上位机响应命令,若是则执行步骤S62,否则执行步骤S63。
S62将目标代码程序标志变量Code_ok置1(Code_ok=1),即证明更新的目标代码有效。
S63将目标代码程序标志变量Code_ok保持为0(Code_ok=0),即证明更新的目标代码无效。
所述新应用程序中设置一段代码用于接收上位机的响应命令对应的特定帧,若接收到特定帧,则将目标代码程序标志变量Code_ok重新写回去,即将Code_ok置1(Code_ok=1),代表新刷写的应用程序有效;若未接收到上位机的相应命令对应的特定帧,则将目标代码程序标志变量Code_ok保持为0(Code_ok==0),即代表新刷写的应用程序是无效程序或死循环程序,目标代码程序标志变量无法写入,在这种情况下,当系统重新上电时,目标代码程序标志变量无效,则直接进入BootLoad模式。因此,即使刷写的目标代码是错误代码或是刷写过程意外中断,也可以重新刷写,不会造成不能重新进入BootLoad模式。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (4)

1.一种基于CAN总线的程序下载方法,其特征在于,包括以下步骤:
S1系统上电时判断程序更新标志变量Up_Flg是否有效和目标代码程序标志变量Code_ok是否有效,若程序更新标志变量Up_Flg无效且目标代码程序标志变量Code_ok有效则进入应用模式,否则进入BootLoad模式;
BootLoad模式:
S2判断在第一预定时间内是否收到FLASH驱动代码,若是则执行步骤S3,否则返回步骤S1;
S3目标代码程序标志变量Code_ok置0;
S4擦除应用程序目标代码;
S5接收新程序代码;
S6执行新应用程序;
所述步骤S6包括以下步骤:
S61’若上位机接收到结束标志,则延时第二预定时间后发送相应命令到应用层;
S61判断在第二预定时间内是否收到上位机响应命令,若是则执行步骤S62,否则执行步骤S63;
S62目标代码程序标志变量Code_ok置1,即证明更新的目标代码有效;
S63目标代码程序标志变量Code_ok保持为0,即证明更新的目标代码无效。
2.根据权利要求1所述的基于CAN总线的程序下载方法,其特征在于,所述步骤S5包括以下步骤:
S51判断是否接收完一行代码,若接收完成则执行步骤S52,否则继续执行步骤S51;
S52更新相应行代码;
S53判断新代码是否全部接收完成,若是则执行步骤S54,否则返回步骤S51;
S54发结束标志到上位机,并跳转到目标代码。
3.根据权利要求1或2所述的基于CAN总线的程序下载方法,其特征在于:所述第一预定时间为10ms。
4.根据权利要求1或2所述的基于CAN总线的程序下载方法,其特征在于:所述第二预定时间为1s。
CN201510855873.5A 2015-11-28 2015-11-28 一种基于can总线的程序下载方法 Active CN105511912B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510855873.5A CN105511912B (zh) 2015-11-28 2015-11-28 一种基于can总线的程序下载方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510855873.5A CN105511912B (zh) 2015-11-28 2015-11-28 一种基于can总线的程序下载方法

Publications (2)

Publication Number Publication Date
CN105511912A CN105511912A (zh) 2016-04-20
CN105511912B true CN105511912B (zh) 2017-09-12

Family

ID=55719919

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510855873.5A Active CN105511912B (zh) 2015-11-28 2015-11-28 一种基于can总线的程序下载方法

Country Status (1)

Country Link
CN (1) CN105511912B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112764786A (zh) * 2021-01-04 2021-05-07 东风商用车有限公司 汽车ECU Bootloader的启动方法及装置
CN115809078A (zh) * 2021-09-13 2023-03-17 长城汽车股份有限公司 一种车辆ecu的刷写方法、车辆及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101221506A (zh) * 2007-01-12 2008-07-16 深圳市科陆电子科技股份有限公司 一种对电能表芯片程序进行下载更新的方法
CN101751279A (zh) * 2009-12-29 2010-06-23 北京握奇数据系统有限公司 一种芯片及片上操作系统下载的方法
CN104750531A (zh) * 2015-04-15 2015-07-01 安徽师范大学 一种嵌入式系统在线刷新程序的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100476726C (zh) * 2007-08-03 2009-04-08 北京握奇数据系统有限公司 一种资源受限设备及数据访问方法
US9495250B2 (en) * 2008-09-02 2016-11-15 Fujitsu Limited Providing code to a programmable device
CN101872306B (zh) * 2009-04-21 2013-03-20 京信通信系统(中国)有限公司 一种实现软件更新和软件备份的嵌入式系统及其实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101221506A (zh) * 2007-01-12 2008-07-16 深圳市科陆电子科技股份有限公司 一种对电能表芯片程序进行下载更新的方法
CN101751279A (zh) * 2009-12-29 2010-06-23 北京握奇数据系统有限公司 一种芯片及片上操作系统下载的方法
CN104750531A (zh) * 2015-04-15 2015-07-01 安徽师范大学 一种嵌入式系统在线刷新程序的方法

Also Published As

Publication number Publication date
CN105511912A (zh) 2016-04-20

Similar Documents

Publication Publication Date Title
CN109358887B (zh) 一种单片机程序的在线升级方法、装置及系统
Biere Yet another local search solver and Lingeling and friends entering the SAT Competition 2014
CN102947135B (zh) 程序更新装置
CN104156237B (zh) 单片机的在线升级方法
CN102520948B (zh) 应用程序维护更新方法和装置
CN105511912B (zh) 一种基于can总线的程序下载方法
ATE555436T1 (de) System und verfahren zur verwendung von threadspezifischen zeichenkettengruppen
CN103761122A (zh) 一种芯片固件的升级方法和系统
ATE515771T1 (de) Verfahren zur nichtrealen zeitprogrammierung eines nichtflüchtigen speichers zum erreichen einer festeren verteilung von schwellenspannungen
CN102135922A (zh) 应用程序的刷新方法和系统
CN107566169A (zh) 一种基于openwrt的固件升级方法及路由器
CN106406955A (zh) RSU设备bootloader程序升级的方法、装置
CN104793975A (zh) 电子控制单元中应用程序的更新方法及装置
CN111638884B (zh) 一种插件化工程编译的方法、系统、装置和存储介质
CN105893072A (zh) 一种芯片的固件升级方法和装置
CN103777976B (zh) 单片机及其在线升级方法和在线升级装置
CN113220319A (zh) 一种数据更新方法、装置及车辆
CN105354061A (zh) 一种保护mcu工作程序的方法及系统
CN116431186A (zh) 一种车载ecu的升级方法、装置及介质
CN103677941B (zh) 一种实现智能卡操作系统模块升级的方法及装置
CN103425587A (zh) 一种非易失性存储器的擦写方法及擦写装置
CN103339603A (zh) 计算机重新编程方法、数据存储介质和机动车辆计算机
CN202383659U (zh) 一种程序下载系统
CN105630516A (zh) 适用于java卡上应用软件的补丁升级方法
CN114385525A (zh) 一种并发访问usb设备的方法及系统

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