CN114816490A - 一种双Boot启动与程序刷写系统及方法 - Google Patents

一种双Boot启动与程序刷写系统及方法 Download PDF

Info

Publication number
CN114816490A
CN114816490A CN202110070475.8A CN202110070475A CN114816490A CN 114816490 A CN114816490 A CN 114816490A CN 202110070475 A CN202110070475 A CN 202110070475A CN 114816490 A CN114816490 A CN 114816490A
Authority
CN
China
Prior art keywords
boot
program
flash
oem
flashing
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
Application number
CN202110070475.8A
Other languages
English (en)
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.)
Hunan Crrc Times Electric Drive Technology Co ltd
Original Assignee
Zhuzhou CRRC Times Electric 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 Zhuzhou CRRC Times Electric Co Ltd filed Critical Zhuzhou CRRC Times Electric Co Ltd
Priority to CN202110070475.8A priority Critical patent/CN114816490A/zh
Publication of CN114816490A publication Critical patent/CN114816490A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种双Boot启动与程序刷写系统及方法,此系统包括存储于同一存储模块上的第一Boot启动程序和第二Boot启动程序,所述第一Boot启动程序对应有第一刷写系统,所述第二Boot启动程序对应有第二刷写系统,所述第一Boot启动程序和第二Boot启动程序根据编程请求有效标志启动第一刷写系统或第二刷写系统。本发明具有成本低、能够提高现场生产和测试时刷写程序的效率等优点。

Description

一种双Boot启动与程序刷写系统及方法
技术领域
本发明主要涉及软件技术领域,具体涉及一种双Boot启动与程序刷写系统及方法。
背景技术
近几年新能源汽车在国家的政策支持下得到了长足的发展,控制器或电驱动系统作为新能源汽车上的关键核心部件之一,其稳定的工作性能对整车有着重要的影响。通常一款电驱动系统软件在装车出厂前需要进行多次程序刷写,包括厂内的测试程序和刷入不同OEM厂家不同的程序,进行程序的刷新;但每个主机厂或不同车型的刷写流程、ID都是不相同的,从而导致程序的刷写效率低。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的问题,本发明提供一种成本低、刷写效率高的双Boot启动与程序刷写系统及方法。
为解决上述技术问题,本发明提出的技术方案为:
一种双Boot启动与程序刷写系统,包括存储于同一存储模块上的第一Boot启动程序和第二Boot启动程序,所述第一Boot启动程序对应有第一刷写系统,所述第二Boot启动程序对应有第二刷写系统,所述第一Boot启动程序和第二Boot启动程序根据编程请求有效标志启动第一刷写系统或第二刷写系统。
作为上述技术方案的进一步改进:
所述第一刷写系统和第二刷写系统的CAN驱动层和网络层是共用的,在接收和发送中通过识别编程请求有效标志区别两套系统的激活;第一刷写系统或第二刷写系统激活后,进入对应的协议应用层,通过两套刷写系统配置不同,实现UDS的不同诊断需求;进入不同刷写系统对应相应的协议应用层后,通过调用不同的执行函数,来实现同样服务不同的功能,进入功能应用层执行相应的功能,最后通过开始识别的标志回复相应的响应,完成一整套刷写系统的实现。
所述诊断需求包括诊断模式条件、NRC否定响应顺序、安全访问级别和子服务支持与禁用。
功能应用层执行相应的功能包括服务上传地址和长度计算、服务CRC校验、服务例程支持情况和对FLASH的不同操作。
所述第一刷写系统对应为厂内系统,第二刷写系统对应为OEM系统;通过网络层得到的数据后,取对应数组的指针得到具体数据数组,判断所激活的系统,取厂内的配置表或OEM的配置表;
当激活的系统是厂内系统时,选取厂内的配置表,根据配置在厂内应用中进行对应的配置判断和否定响应顺序的调整,以满足厂内刷写的配置需求;最后在功能配置处,执行具体的刷写功能;
当激活的系统是OEM系统时,选取OEM的配置表,根据配置在OEM应用中进行对应的配置判断和否定响应顺序的调整,以满足OEM刷写的配置需求;最后在功能配置处,执行具体的刷写功能。
本发明还公开了一种基于如上所述的双Boot启动与程序刷写系统的方法,包括双Boot启动方法和刷写准备方法,所述双Boot启动方法包括步骤:
读取编程请求有效标志,根据读取的值分三个处理:
检测到厂内的标志有效,则进行厂内命令的回复并停留在Boot中等待厂内刷写命令;
检测到OEM的标志有效,则进行OEM命令的回复并停留在Boot中等待OEM刷写命令;
检测到编程请求无效则进行下一条件检测:检测应用程序是否有效;
应用程序无效则停留在Boot中等待刷写命令,有效则进行下一条件检测:上电拦截判断;
根据读取的值分三个处理,检测到厂内拦截模式则进行厂内命令的回复并停留在Boot中等待厂内刷写命令;检测到OEM拦截模式则进行OEM命令的回复并停留在Boot中等待OEM刷写命令;没有检测到拦截模式则进行跳转前的安全处理,最后跳转到APP中运行。
作为上述技术方案的进一步改进:
所述刷写准备方法包括步骤:
识别CAN发送的刷写命令,接收到厂内刷写命令时,写入厂内编程请求标志;接收到OEM刷写命令时,写入OEM编程请求标志;然后进行跳转前的安全处理,最后执行复位。
与现有技术相比,本发明的优点在于:
本发明涉及嵌入式Boot启动和程序刷写,通过对CAN帧ID的识别,分别进入两个相对独立的刷写流程,实现在同一控制器上同时支持两套刷写流程的系统;本发明在同一个Boot中集成两套刷写流程,结合UDS软件刷写服务规则——ISO14229(ISO15765)协议,实现对新能源汽车电驱动系统软件自动识别流程进行程序的更新;并解决两套系统在上电或重启时自动识别和启动处理,能够提高现场生产和测试时刷写程序的效率。
本发明能在同一软件中实现两个系统相对独立的启动方式,包括独立的刷写回复、跳转和拦截方式;本发明能在同一软件中实现两个系统相对独立的程序刷写流程,包括独立的需求条件配置、响应回复、功能执行、刷写校验等。
本发明通过在同一个Boot中集成两套刷写流程,减少了制造部门由于厂家刷写流程不同需要购买多套刷写上位机的生产需求,降低了生产购买设备成本。本发明通过在同一个Boot中集成两套刷写流程,在售后或其他有升级软件需求的地方,OEM厂家可用OEM的诊断仪更新程序;而售后人员无论哪个厂家,只需要使用自己的上位机即可进行程序更新,减少软件管理、软件开发等经济成本;本发明通过在同一个软件中集成两套刷写流程,共用驱动层及网络层等,减少了代码量,更适用于FLASH空间小的芯片,降低了控制器的硬件成本。
附图说明
图1为本发明的系统在实施例的整体框架图。
图2为本发明的系统在实施例的架构框图。
图3为本发明的双Boot启动方法流程图。
图4为本发明的刷写准备方法流程图。
图5为本发明的网络层设计框图。
图6为本发明的协议层设计框图。
具体实施方式
以下结合说明书附图和具体实施例对本发明作进一步描述。
如图1所示,本发明的双Boot启动和程序刷写的系统分为启动和刷写两个处理机制,总体思路如图1所示,具体包括存储于同一存储模块上的第一Boot启动程序和第二Boot启动程序,所述第一Boot启动程序对应有第一刷写系统,所述第二Boot启动程序对应有第二刷写系统,所述第一Boot启动程序和第二Boot启动程序根据编程请求有效标志启动第一刷写系统或第二刷写系统。
如图2所示,刷写的处理机制从设计上来说,首先CAN驱动是共用,与一般CAN驱动相比,在接收和发送中通过识别ID区别两套系统的激活;同时接收和发送的数据网络层是共用的,即两套系统的网络层数据是相同的,因为在同一时刻只有一组ID发送;两套独立的刷写系统识别哪套激活后,进入对应的协议应用层,通过两套系统配置不同,实现UDS的不同诊断需求,如诊断模式条件、NRC否定响应顺序、安全访问级别、子服务支持与禁用等不同需求;进入不同系统对应相应的协议应用层后,又通过调用不同的执行函数,来实现同样服务不同的功能,进入功能应用层执行相应的功能,如两套系统服务上传地址和长度计算、服务CRC校验、服务例程支持情况、需要对FLASH的不同操作等;最后通过开始识别的ID回复相应的ID响应,完成一整套刷写系统的实现。
如图2所示,系统架构设计接收和发送的数据的网络层是共用的,即两套系统的网络层数据是相同的,因为在同一时刻只有一组ID发送;如图5中网络层设计,发送的CAN帧在CAN驱动处接收,在网络层处进行判断,图5中“判断帧类型”即为举例的判断帧类型的一种方式,判断接收的CAN的ID是OEM的ID还是厂内的ID;所接收的数据通过处理,全部存放在数据RpduInfo中,给应用层使用;应用层响应命令通过数组TpduInfo处理后,CAN驱动根据开始的“帧类型”和“接收的CAN的ID”发出OEM的ID的数据或是厂内的ID的数据;这样完成使用相同的网络层发送和接收不同的系统数据。
如图2所示,应用层可分为协议层和功能应用层,各部分是相互独立的,这样可以满足两套系统对否定响应顺序和条件的可配置区别;每套系统的协议层有多个服务,每个服务又可对应不同的功能应用函数,如图6协议层设计举例给出关于服务例程控制的例子:
首先,通过网络层得到的数据后,取对应数组的指针得到具体数据数组,判断所激活的系统,取厂内的配置表(UDS诊断配置)或OEM的配置表;
当激活的系统是厂内系统时,选取厂内的配置表,根据配置在厂内应用中进行对应的配置判断和否定响应顺序的调整,以满足厂内刷写的配置需求;最后在功能配置处,执行具体的刷写功能,如厂内下载数据格式、数据、校验等,或使用的例程服务ID为0xfa00/0xfa01/0xfa02/0xfa03,分别执行厂内自行定义的条件判断/擦除/数据校验/完整性验证等具体的功能;
当激活的系统是OEM系统时,选取OEM的配置表,根据配置在OEM应用中进行对应的配置判断和否定响应顺序的调整,以满足OEM刷写的配置需求;最后在功能配置处,执行具体的刷写功能,如OEM厂内下载数据格式、数据、校验等,或使用的例程服务ID为0x0203/0202/0204/0x0205,分别执行OEM规范定义的条件判断/擦除/数据校验/完整性验证等具体的功能;
同理,对于刷写流程的其他服务,如请求下载、数据下载、请求退出及其他涉及服务,原理与服务例程控制的例子类似,实现不同系统的刷写功能。
本发明还公开了一种基于如上所述的双Boot启动与程序刷写系统的方法,包括双Boot启动方法和刷写准备方法,双Boot启动方法包括步骤,如图3所示:
由于在一个程序中集成两套Boot,在程序启动处理时需要相应的处理。如图3双Boot启动功能,在程序刚开始启动,上电或复位后,先进行软硬件初始化,为程序启动做准备;然后读取编程请求有效标志,这里根据读取的值分3个处理:
检测到厂内的标志有效则进行厂内命令的回复并停留在Boot中等待厂内刷写命令;
检测到OEM的标志有效则进行OEM命令的回复并停留在Boot中等待OEM刷写命令;
检测到编程请求无效则进行下一条件检测:当编程请求标志无效时,检测应用程序是否有效,无效则停留在Boot中等待刷写命令,有效则进行下一条件检测;当检测应用程序是否有效,进行上电拦截判断:根据读取的值分3个处理,检测到厂内拦截模式则进行厂内命令的回复并停留在Boot中等待厂内刷写命令;检测到OEM拦截模式则进行OEM命令的回复并停留在Boot中等待OEM刷写命令;没有检测到拦截模式则进行跳转前的安全处理,最后跳转到APP中运行。
通过上述完成双Boot启动的功能,且在启动过程中识别OEM与厂内刷写功能,同时判断所需要进入的拦截模式,为后续程序刷写做好准备。
如图4所示,刷写准备方法包括:由于在一个程序中集成两套Boot,在程序运行时需要对命令相应的处理。当程序在正常运行在APP中时,识别CAN发送的刷写命令,接收到厂内刷写命令时,写入厂内编程请求标志;接收到OEM刷写命令时,写入OEM编程请求标志;然后进行跳转前的安全处理,最后执行复位,这样程序就会在按图3所示的流程中进行对应的系统识别。
本发明涉及嵌入式Boot启动和程序刷写,通过对CAN帧ID的识别,分别进入两个相对独立的刷写流程,实现在同一控制器上同时支持两套刷写流程的系统;本发明在同一个Boot中集成两套刷写流程,结合UDS软件刷写服务规则——ISO14229(ISO15765)协议,实现对新能源汽车电驱动系统软件自动识别流程进行程序的更新;并解决两套系统在上电或重启时自动识别和启动处理。
本发明能在同一软件中实现两个系统相对独立的启动方式,包括独立的刷写回复、跳转和拦截方式;本发明能在同一软件中实现两个系统相对独立的程序刷写流程,包括独立的需求条件配置、响应回复、功能执行、刷写校验等。
本发明通过在同一个Boot中集成两套刷写流程,减少了制造部门由于厂家刷写流程不同需要购买多套刷写上位机的生产需求,降低了生产购买设备成本。本发明通过在同一个Boot中集成两套刷写流程,在售后或其他有升级软件需求的地方,OEM厂家可用OEM的诊断仪更新程序;而售后人员无论哪个厂家,只需要使用自己的上位机即可进行程序更新,减少软件管理、软件开发等经济成本;本发明通过在同一个软件中集成两套刷写流程,共用驱动层及网络层等,减少了代码量,更适用于FLASH空间小的芯片,降低了控制器的硬件成本。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (7)

1.一种双Boot启动与程序刷写系统,其特征在于,包括存储于同一存储模块上的第一Boot启动程序和第二Boot启动程序,所述第一Boot启动程序对应有第一刷写系统,所述第二Boot启动程序对应有第二刷写系统,所述第一Boot启动程序和第二Boot启动程序根据编程请求有效标志启动第一刷写系统或第二刷写系统。
2.根据权利要求1所述的双Boot启动与程序刷写系统,其特征在于,所述第一刷写系统和第二刷写系统的CAN驱动层和网络层是共用的,在接收和发送中通过识别编程请求有效标志区别两套系统的激活;第一刷写系统或第二刷写系统激活后,进入对应的协议应用层,通过两套刷写系统配置不同,实现UDS的不同诊断需求;进入不同刷写系统对应相应的协议应用层后,通过调用不同的执行函数,来实现同样服务不同的功能,进入功能应用层执行相应的功能,最后通过开始识别的标志回复相应的响应,完成一整套刷写系统的实现。
3.根据权利要求2所述的双Boot启动与程序刷写系统,其特征在于,所述诊断需求包括诊断模式条件、NRC否定响应顺序、安全访问级别和子服务支持与禁用。
4.根据权利要求2所述的双Boot启动与程序刷写系统,其特征在于,功能应用层执行相应的功能包括服务上传地址和长度计算、服务CRC校验、服务例程支持情况和对FLASH的不同操作。
5.根据权利要求1所述的双Boot启动与程序刷写系统,其特征在于,所述第一刷写系统对应为厂内系统,第二刷写系统对应为OEM系统;通过网络层得到的数据后,取对应数组的指针得到具体数据数组,判断所激活的系统,取厂内的配置表或OEM的配置表;
当激活的系统是厂内系统时,选取厂内的配置表,根据配置在厂内应用中进行对应的配置判断和否定响应顺序的调整,以满足厂内刷写的配置需求;最后在功能配置处,执行具体的刷写功能;
当激活的系统是OEM系统时,选取OEM的配置表,根据配置在OEM应用中进行对应的配置判断和否定响应顺序的调整,以满足OEM刷写的配置需求;最后在功能配置处,执行具体的刷写功能。
6.一种基于权利要求1-5中任意一项所述的双Boot启动与程序刷写系统的方法,其特征在于,包括双Boot启动方法和刷写准备方法,所述双Boot启动方法包括步骤:
读取编程请求有效标志,根据读取的值分三个处理:
检测到厂内的标志有效,则进行厂内命令的回复并停留在Boot中等待厂内刷写命令;
检测到OEM的标志有效,则进行OEM命令的回复并停留在Boot中等待OEM刷写命令;
检测到编程请求无效则进行下一条件检测:检测应用程序是否有效;
应用程序无效则停留在Boot中等待刷写命令,有效则进行下一条件检测:上电拦截判断;
根据读取的值分三个处理,检测到厂内拦截模式则进行厂内命令的回复并停留在Boot中等待厂内刷写命令;检测到OEM拦截模式则进行OEM命令的回复并停留在Boot中等待OEM刷写命令;没有检测到拦截模式则进行跳转前的安全处理,最后跳转到APP中运行。
7.根据权利要求6所述的方法,其特征在于,所述刷写准备方法包括步骤:
识别CAN发送的刷写命令,接收到厂内刷写命令时,写入厂内编程请求标志;接收到OEM刷写命令时,写入OEM编程请求标志;然后进行跳转前的安全处理,最后执行复位。
CN202110070475.8A 2021-01-19 2021-01-19 一种双Boot启动与程序刷写系统及方法 Pending CN114816490A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110070475.8A CN114816490A (zh) 2021-01-19 2021-01-19 一种双Boot启动与程序刷写系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110070475.8A CN114816490A (zh) 2021-01-19 2021-01-19 一种双Boot启动与程序刷写系统及方法

Publications (1)

Publication Number Publication Date
CN114816490A true CN114816490A (zh) 2022-07-29

Family

ID=82524440

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110070475.8A Pending CN114816490A (zh) 2021-01-19 2021-01-19 一种双Boot启动与程序刷写系统及方法

Country Status (1)

Country Link
CN (1) CN114816490A (zh)

Similar Documents

Publication Publication Date Title
CN110231952B (zh) 一种ecu程序备份及循环升级控制方法及装置
US8539472B2 (en) Method and system of updating shared memory
US20160085538A1 (en) Over-the-air updates for ble devices
CN106020875B (zh) 嵌入式终端的固件更新管理方法和装置
US7418589B2 (en) System and method for updating a basic input/output system
CN111796848A (zh) Bootloader软件更新方法、装置、嵌入式控制器以及存储介质
KR20100063474A (ko) Fota 서비스 제공 방법 및 그 시스템
CN102945173A (zh) 用户程序在线升级系统和升级方法
CN112000358B (zh) 充电桩的升级方法与智能充电桩
US20090019435A1 (en) System and method for over the air programming
CN113094072A (zh) 车辆升级方法、装置、电子装置及存储介质
CN108920168B (zh) 支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法
CN110569053A (zh) 电子设备中应用芯片的升级方法及电子设备
US20240069906A1 (en) Server, software update system, distribution method, and non-transitory storage medium
CN111240753A (zh) 引导程序的加载方法、存储介质及嵌入式终端
CN112667265A (zh) 一种引导程序更新方法及装置
WO2022160816A1 (zh) 一种数据处理方法以及相关设备
CN115220758A (zh) 一种单片机固件在线升级的方法
US20200073654A1 (en) Apparatus for providing update of vehicle and computer-readable storage medium
CN106919423B (zh) 一种固件升级方法及装置
KR20130022804A (ko) 리프로그래밍 제어모듈 및 이를 이용한 리프로그래밍 시스템 및 방법
CN114816490A (zh) 一种双Boot启动与程序刷写系统及方法
CN109189457B (zh) 智能惯导传感系统的固件升级系统及方法
CN116431186A (zh) 一种车载ecu的升级方法、装置及介质
CN113360161A (zh) 资源升级方法及相关产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240109

Address after: 412005, No. 255 Tongxia Road, Tongtangwan Street, Shifeng District, Zhuzhou City, Hunan Province

Applicant after: Hunan CRRC Times Electric Drive Technology Co.,Ltd.

Address before: The age of 412001 in Hunan Province, Zhuzhou Shifeng District Road No. 169

Applicant before: ZHUZHOU CRRC TIMES ELECTRIC Co.,Ltd.