CN114443111B - 一种控制器本地差分刷写的方法及系统 - Google Patents
一种控制器本地差分刷写的方法及系统 Download PDFInfo
- Publication number
- CN114443111B CN114443111B CN202210371418.8A CN202210371418A CN114443111B CN 114443111 B CN114443111 B CN 114443111B CN 202210371418 A CN202210371418 A CN 202210371418A CN 114443111 B CN114443111 B CN 114443111B
- Authority
- CN
- China
- Prior art keywords
- data
- controller
- block
- characteristic value
- upper computer
- 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
- 238000000034 method Methods 0.000 title claims abstract description 12
- 238000013524 data verification Methods 0.000 claims description 20
- 238000012795 verification Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 239000002904 solvent Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
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
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种控制器本地差分刷写的方法及系统,该方法包括的步骤为:S01:上位机将待刷写二进制数据按起始地址和固定的块大小进行分块,并对每一块分块数据进行校验,得到每一块分块数据的固定长度的特征值;S02:上位机比对S01中的每一块分块数据的特征值与已存储于控制器本地的对应块的分块数据的特征值,找到控制器内特征值不同的分块数据;S03:基于控制器内特征值不同的分块数据排序确定目标分块数据地址;S04:上位机发送数据下载请求至控制器;S05:控制器下载S01中特征值异于控制器内特征值的分块数据。本发明刷写效率高,成本低。
Description
技术领域
本发明属于控制器刷写技术领域,具体涉及控制器本地差分刷写的技术。
背景技术
随着软件定义汽车概念的推进和实施,汽车上各控制器的软件更新越发频繁。随着软件数据量的扩展和需要更新的控制器的数量上升,软件更新的速度成为影响用户体验的关键指标。现有刷写手段为云端差分刷写和本地全量刷写。云端差分刷写需要依赖云端服务器资源来生成差分包,该方案需要消耗云端服务器资源,且对嵌入式控制器不适用;本地全量刷写需要传输软件包的全部数据,消耗的刷写时间较长。
发明内容
本发明的目的是提出一种控制器本地差分刷写的方法及系统,解决的技术问题:
其一,云端差分刷写消耗云端服务器资源,成本高;
其二,本地全量刷写,效率低。
为解决上述技术问题,本发明采用的技术方案为:
一种控制器本地差分刷写的方法,包括的步骤为:
S01:上位机将待刷写二进制数据按起始地址和固定的块大小进行分块,并对每一块分块数据进行校验,得到每一块分块数据的固定长度的特征值;
S02:上位机比对S01中的每一块分块数据的特征值与已存储于控制器本地的对应块的分块数据的特征值,找到控制器内特征值不同的分块数据;
S03:基于所述控制器内特征值不同的分块数据排序确定目标分块数据地址;
S04:上位机发送数据下载请求至所述控制器;
S05:所述控制器下载S01中特征值异于控制器内特征值的分块数据;
S06:将所述目标分块数据地址内的数据擦除,并将S05中下载的分块数据写入目标分块数据地址,完成本地差分刷写。
优选地,
在所述S05中,控制器完成分块数据下载后,控制器开始执行全盘数据校验任务,得到特征值,并将特征值反馈至上位机;
将特征值与上位机使用本地刷写数据校验计算的值比对,若相同,则刷写符合预期;
若不同,则全盘擦除控制器内的数据并重写、校验,直至符合预期。
优选地,
当控制器内的数据完成校验后,上位机将已写入控制器内的分块数据的对应的特征值覆盖控制器保存的原特征值。
本发明还提供一种控制器本地差分刷写的系统,包括:
分块模块,用于上位机将待刷写二进制数据按起始地址和固定的块大小进行分块,并对每一块分块数据进行校验,得到每一块分块数据的固定长度的特征值;
比对模块,用于上位机比对分块模块中的每一块分块数据的特征值与已存储于控制器本地的对应块的分块数据的特征值,找到控制器内特征值不同的分块数据;
目标地址确定模块,用于基于所述控制器内特征值不同的分块数据排序确定目标分块数据地址;
发送模块,用于上位机发送数据下载请求至所述控制器;
下载模块,用于控制器下载分块模块中特征值异于控制器内特征值的分块数据;
写入模块,用于将目标分块数据地址内的数据擦除,并经下载模块中下载的分块数据写入目标分块数据地址,完成本地差分刷写。
优选地,
在所述下载模块中,控制器完成分块数据下载后,控制器开始执行全盘数据校验任务,得到特征值,并将特征值反馈至上位机;
将特征值与上位机使用本地刷写数据校验计算的值比对,若相同,则刷写符合预期;
若不同,则全盘擦除控制器内的数据并重写、校验,直至符合预期。
优选地,
当控制器内的数据完成校验后,上位机将已写入控制器内的分块数据的对应的特征值覆盖控制器保存的原特征值。
通过采用上述技术方案,本发明可达到的有益技术效果为:
第一,本发明不消耗云端服务器资源,本发明通过上位机执行本地差分刷写控制器,没涉及到云端;
第二,本发明通过校验和比对分块数据的特征值,避免特征值相同的分块数据的传输和写入,可就减少刷写过程的数据的传递,从而提升刷写速度。
附图说明
图1为本发明流程图;
图2为分块数据校验示意图。
具体实施方式
下面结合附图对本发明作进一步说明。
如图1所示,本发明的原理分为三大部分,第一部分为主体架构,即比对待刷写二进制数据的特征值与控制器本地待刷写数据的特征值,根据比对结果,仅刷新不同的那部分数据至控制器,有效减少刷写过程中的数据传递,刷写速度有效提升。
第二部分,为防止因校验算法和校验值长度导致的校验结果不唯一问题,设置有全盘数据校验。
第三部分,为保证下一次刷写访问到的控制器本地的全部数据特征值的准确性,本发明额外增加了一个最新特征值(校验值)更新模块。
如图1所示,本发明提供一种控制器本地差分刷写的方法,包括的步骤为:
S01:上位机将待刷写二进制数据按起始地址和固定的块大小进行分块,并对每一块分块数据进行校验,得到每一块分块数据的固定长度的特征值;
S02:上位机比对S01中的每一块分块数据的特征值与已存储于控制器本地的对应块的分块数据的特征值,找到控制器内特征值不同的分块数据;
S03:基于控制器内特征值不同的分块数据排序确定目标分块数据地址;
S04:上位机发送数据下载请求至所述控制器;
S05:控制器下载S01中特征值异于控制器内特征值的分块数据;
S06:将目标分块数据地址内的数据擦除,并将S05中下载的分块数据写入目标分块数据地址,完成本地差分刷写。
进一步,在S05中,控制器完成分块数据下载后,控制器开始执行全盘数据校验任务,得到特征值,并将特征值反馈至上位机;
将特征值与上位机使用本地刷写数据校验计算的值比对,若相同,则刷写符合预期;
若不同,则全盘擦除控制器内的数据并重写、校验,直至符合预期。
进一步,当控制器内的数据完成校验后,上位机将已写入控制器内的分块数据的对应的特征值覆盖控制器保存的原特征值。
具体地,将烧录到控制器P-Flash(Programming Flash即编程闪存)的待刷写二进制数据按起始地址和固定的块大小(Block Size)进行分块,对每一块数据块进行校验并得到一个固定长度的特征值(校验值)。例如,将4096字节的数据通过CRC32算法校验为一个4字节的特征值。将该特征值存储在特定的DID中。根据UDS规范,单个DID的最大长度为4096字节,即一个DID可以存储1024个特征值,对应4MB的P-Flash大小。
具体地,在需要对控制器进行刷写时,上位机首先将要刷入的待刷写二进制数据按起始地址和固定的块大小进行分块,通过对每一块数据块进行校验得到每一块数据的固定长度的特征值。上位机通过0x22服务访问控制器存储特征值的DID。
具体地,上位机通过比对待刷写二进制数据的全部特征值和控制器本地的全部数据特征值可以得到控制器P-Flash内哪些分块数据与待刷写二进制数据的分块数据不同。
具体地,当上位机得到控制器P-Flash内哪些分块数据与待刷写二进制数据的分块数据不同时,对分块数据执行擦除和写入对应的待刷写二进制数据。
具体地,为防止因校验算法和特征值长度导致的校验结果不唯一问题,在完成全部差异数据的下载后,上位机将请求控制器对全盘数据进行校验,并反馈特征值,若反馈的特征值与上位机使用本地刷写数据校验计算的值相同,则代表控制器P-Flash内存储的数据符合预期,数据刷写成功。若反馈的特征值与上位机使用本地刷写数据校验计算的值不同,则需要对控制器P-Flash中的数据进行全盘擦除重写和再校验,以保证P-Flash内存储的数据符合预期。
具体地,当P-Flash内的数据完成全盘校验并校验通过后,上位机需要更新控制器存储特征值的DID,即将已写入控制器P-Flash的全部分块数据对应的特征值覆盖控制器保存的原特征值,以保证下一次刷写访问到的控制器本地的全部数据特征值的准确性。
如图2所示,具体地,将待刷写二进制数据进行分块并进行校验,得到每一块分块数据的特征值分别等于X0 X1 X2… Xn。
当产生刷写需求时,上位机线控制器请求本地存储的分块数据的特征值。
控制器本地的每一块分块数据的特征值分别等于Z0 Z1 Z2… Zn。
获取控制器本地的特征值后对下标相同的X值和Z值进行比对,若X=Z则说明分块数据内容相同不需要进行改写,若X≠Z,则说明分块数据内容不同需要下载重写。
本发明还提供一种控制器本地差分刷写的系统,包括:
分块模块,用于上位机将待刷写二进制数据按起始地址和固定的块大小进行分块,并对每一块分块数据进行校验,得到每一块分块数据的固定长度的特征值;
比对模块,用于上位机比对分块模块中的每一块分开数据的特征值与已存储于控制器本地的对应块的分块数据的特征值,找到控制器内特征值不同的分块数据;
目标地址确定模块,用于基于控制器内特征值不同的分块数据排序确定目标分块数据地址;
发送模块,用于上位机发送数据下载请求至控制器;
下载模块,用于控制器下载分块模块中特征值异于控制器内特征值的分块数据;
写入模块,用于将目标分块数据地址内的数据擦除,并经下载模块中下载的分块数据写入目标分块数据地址,完成本地差分刷写。
具体地,
在下载模块中,控制器完成分块数据下载后,控制器开始执行全盘数据校验任务,得到特征值,并将特征值反馈至上位机;
将特征值与上位机使用本地刷写数据校验计算的值比对,若相同,则刷写符合预期;
若不同,则全盘擦除控制器内的数据并重写、校验,直至符合预期。
具体地,
当控制器内的数据完成校验后,上位机将已写入控制器内的分块数据的对应的特征值覆盖控制器保存的原特征值。
Claims (6)
1.一种控制器本地差分刷写的方法,其特征在于,包括的步骤为:
S01:上位机将待刷写二进制数据按起始地址和固定的块大小进行分块,并对每一块分块数据进行校验,得到每一块分块数据的固定长度的特征值;
S02:上位机比对S01中的每一块分块数据的特征值与已存储于控制器本地的对应块的分块数据的特征值,找到控制器内特征值不同的分块数据;
S03:基于所述控制器内特征值不同的分块数据排序确定目标分块数据地址;
S04:上位机发送数据下载请求至所述控制器;
S05:所述控制器下载S01中特征值不同于控制器内特征值的分块数据;
S06:将所述目标分块数据地址内的数据擦除,并将S05中下载的分块数据写入目标分块数据地址,完成本地差分刷写。
2.根据权利要求1所述的控制器本地差分刷写的方法,其特征在于,
在所述S05中,控制器完成分块数据下载后,控制器开始执行全盘数据校验任务,得到特征值,并将特征值反馈至上位机;
将特征值与上位机使用本地刷写数据校验计算的值比对,若相同,则刷写符合预期;
若不同,则全盘擦除控制器内的数据并重写、校验,直至符合预期。
3.根据权利要求2所述的控制器本地差分刷写的方法,其特征在于,
当控制器内的数据完成校验后,上位机将已写入控制器内的分块数据的对应的特征值覆盖控制器保存的原特征值。
4.一种控制器本地差分刷写的系统,其特征在于,包括:
分块模块,用于上位机将待刷写二进制数据按起始地址和固定的块大小进行分块,并对每一块分块数据进行校验,得到每一块分块数据的固定长度的特征值;
比对模块,用于上位机比对分块模块中的每一块分块数据的特征值与已存储于控制器本地的对应块的分块数据的特征值,找到控制器内特征值不同的分块数据;
目标地址确定模块,用于基于所述控制器内特征值不同的分块数据排序确定目标分块数据地址;
发送模块,用于上位机发送数据下载请求至所述控制器;
下载模块,用于控制器下载分块模块中特征值异于控制器内特征值的分块数据;
写入模块,用于将目标分块数据地址内的数据擦除,并经下载模块中下载的分块数据写入目标分块数据地址,完成本地差分刷写。
5.根据权利要求4所述的控制器本地差分刷写的系统,其特征在于,
在所述下载模块中,控制器完成分块数据下载后,控制器开始执行全盘数据校验任务,得到特征值,并将特征值反馈至上位机;
将特征值与上位机使用本地刷写数据校验计算的值比对,若相同,则刷写符合预期;
若不同,则全盘擦除控制器内的数据并重写、校验,直至符合预期。
6.根据权利要求5所述的控制器本地差分刷写的系统,其特征在于,
当控制器内的数据完成校验后,上位机将已写入控制器内的分块数据的对应的特征值覆盖控制器保存的原特征值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210371418.8A CN114443111B (zh) | 2022-04-11 | 2022-04-11 | 一种控制器本地差分刷写的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210371418.8A CN114443111B (zh) | 2022-04-11 | 2022-04-11 | 一种控制器本地差分刷写的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114443111A CN114443111A (zh) | 2022-05-06 |
CN114443111B true CN114443111B (zh) | 2022-07-01 |
Family
ID=81360426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210371418.8A Active CN114443111B (zh) | 2022-04-11 | 2022-04-11 | 一种控制器本地差分刷写的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114443111B (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134422A (zh) * | 2019-04-19 | 2019-08-16 | 东风汽车集团有限公司 | 基于obd与can总线下载闪存驱动升级控制器软件的系统及方法 |
CN111124464B (zh) * | 2019-11-19 | 2024-05-17 | 红石阳光(北京)科技股份有限公司 | 一种用于嵌入式系统的差分升级的方法、系统及计算机可读存储介质 |
CN111399411A (zh) * | 2020-03-25 | 2020-07-10 | 江苏科技大学 | 一种采用usb接口与pc上位机通讯的交流伺服电机控制器及控制方法 |
CN114115965A (zh) * | 2020-09-01 | 2022-03-01 | 广州汽车集团股份有限公司 | 一种ota系统动态差分升级方法 |
CN112286566B (zh) * | 2020-12-30 | 2021-05-25 | 延锋伟世通电子科技(南京)有限公司 | 一种基于usb传输的汽车仪表差分升级方法 |
-
2022
- 2022-04-11 CN CN202210371418.8A patent/CN114443111B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114443111A (zh) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10162625B2 (en) | Vehicle control storage methods and systems | |
US11150891B2 (en) | Method and device for updating software executed from non-volatile memory | |
CN111309364B (zh) | 芯片程序的升级方法、装置及存储介质 | |
CN101617299B (zh) | 数据库管理方法 | |
US9021246B2 (en) | Method to replace bootloader public key | |
CN110032339B (zh) | 数据迁移方法、装置、系统、设备和存储介质 | |
CN110704335A (zh) | 一种基于异步环形缓冲区的数据读取、写入方法及装置 | |
CN108121813B (zh) | 数据管理方法、装置、系统、存储介质及电子设备 | |
CN110825403A (zh) | 一种汽车电子控制单元ecu刷写的方法及系统 | |
KR20040004557A (ko) | 임베디드 환경에서 어플리케이션을 로딩 및 실행하는 방법 | |
CN111045713A (zh) | 一种计算机系统的升级方法、系统及装置 | |
MX2012010827A (es) | Unidad de control electronico de un vehiculo y metodo de escritura de datos. | |
CN114443111B (zh) | 一种控制器本地差分刷写的方法及系统 | |
US9336410B2 (en) | Nonvolatile memory internal signature generation | |
CN111831639A (zh) | 一种全局唯一id生成方法及装置、车辆管理系统 | |
CN112346771B (zh) | 升级文件生成方法及装置 | |
CN113448596A (zh) | 一种车辆控制器刷写系统、方法及相关设备 | |
US11954480B2 (en) | Center, OTA master, system, method, non-transitory storage medium, and vehicle | |
US11947824B2 (en) | Electronic control unit, method, and program | |
US20040064634A1 (en) | Method of emulating electrically erasable memory in a motor vehicle microcontroller | |
CN112578772A (zh) | 电子控制单元的数据处理方法及相关装置 | |
CN115803712A (zh) | 设备固件描述符 | |
CN114567628B (zh) | 一种ota升级方法和装置 | |
CN110162488A (zh) | 缓存一致性校验方法、装置、服务器和存储介质 | |
JP7559600B2 (ja) | Otaマスタ、センタ、システム、方法、プログラム、及び車両 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 211200 floor 5, block a, Kechuang building, Huizhi Industrial Park, Lishui District, Nanjing, Jiangsu Province Patentee after: Shenzhen Blue Automobile Nanjing Research Institute Co.,Ltd. Country or region after: China Address before: 211200 floor 5, block a, Kechuang building, Huizhi Industrial Park, Lishui District, Nanjing, Jiangsu Province Patentee before: Chang'an new energy Nanjing Research Institute Co.,Ltd. Country or region before: China |