本发明专利技术涉及一种控制器刷写文件的解析方法、系统及计算机可读介质,该解析方法包括:步骤S1:读取控制器刷写文件的当前数据行;步骤S2:解析该数据行获得储存地址、数据以及校验和;步骤S3:判断校验和是否校验通过,若通过,则进入步骤S4;若不通过,则结束解析任务;步骤S4:判断储存地址与上一数据行的地址是否连续,若不连续,则创建新文件并进入步骤S5;若连续,则进入步骤S5;步骤S5:将数据转换为第一格式并存储至当前的新文件;步骤S6:判断控制器刷写文件是否读取结束,若未结束,则读取下一数据行;若读取结束,则结束解析任务。本发明专利技术可以提前暴露控制器刷写文件中存在的问题,刷写任务不会中断,保证刷写任务成功。保证刷写任务成功。保证刷写任务成功。
【技术实现步骤摘要】
控制器刷写文件的解析方法、系统及计算机可读介质
[0001]本专利技术主要涉及文件解析
,具体地涉及一种控制器刷写文件的解析方法、系统及计算机可读介质。
技术介绍
[0002]在电子控制单元(Electronic Control Unit,ECU)的更新过程中,需要根据特定格式的目标文件中的数据来刷写芯片上的数据,以实现对控制器ECU的管理和升级。通常刷写使用的文件格式包括S19与HEX,控制器刷写文件中包括一系列字符串,并且控制器刷写文件中可能包括多段不连续的地址。
[0003]目前在刷写控制器的过程中,常用的方式为读取控制器刷写文件的一行数据行,解析该数据行,该数据行的内容校验通过后,在控制器上刷写相应数据,继续读取文件中的下一数据行。这种边解析边刷写的方法需要占用刷写控制器的诊断仪中大量的算力资源,并且可能刷写任务进行到一半,会解析到文件中有不连续的地址段,导致刷写任务中断。在刷写任务中,刷写的目的是全部数据被完整刷写到控制器,而不是部分数据被刷写到控制器。现有技术在刷写控制器的过程中无法提前暴露控制器刷写文件中存在的问题,导致控制器刷写任务经常中断,刷写任务失败。
技术实现思路
[0004]本申请所要解决的技术问题是提供一种控制器刷写文件的解析方法、系统及计算机可读介质,可以提前暴露控制器刷写文件中存在的问题,执行控制器刷写任务过程中不会中断,保证刷写任务成功。
[0005]本申请为解决上述技术问题而采用的技术方案是一种控制器刷写文件的解析方法,包括:步骤S1:读取控制器刷写文件的当前数据行;步骤S2:根据解析规则解析当前数据行,获得当前数据行的储存地址、当前数据行的数据以及当前数据行的校验和;步骤S3:判断当前数据行的校验和是否校验通过,若校验通过,则进入步骤S4;若校验不通过,则结束解析任务;步骤S4:判断当前数据行的储存地址与上一数据行的地址是否连续,若地址不连续,则创建新文件并进入步骤S5;若地址连续,则进入步骤S5;步骤S5:将当前数据行的数据转换为第一格式的数据,存储第一格式的数据至当前的新文件;步骤S6:判断控制器刷写文件是否读取结束,若未读取结束,则读取控制器刷写文件的下一数据行,重复步骤S2~步骤S6;若读取结束,则结束解析任务。
[0006]在本申请的一实施例中,第一格式的数据为二进制格式的数据。
[0007]在本申请的一实施例中,判断当前数据行的储存地址与上一数据行的地址是否连续的步骤包括:匹配当前数据行的储存地址与上一数据行的结束地址,若匹配不一致,则表示地址不连续;若匹配一致,则表示地址连续。
[0008]在本申请的一实施例中,上一数据行的结束地址的计算方式为:上一数据行的储存地址加上上一数据行的数据长度。
[0009]在本申请的一实施例中,在判断当前数据行的校验和是否校验通过的步骤中,若校验不通过,还包括发出第一告警以及指示出当前数据行的行号。
[0010]在本申请的一实施例中,判断当前数据行的校验和是否校验通过的步骤包括:匹配当前数据行的校验和Checksum1与计算出的校验和Checksum2,若匹配成功,则表示校验通过;若匹配不成功,则表示校验不通过。
[0011]在本申请的一实施例中,控制器刷写文件为S19文件,在根据解析规则解析当前数据行的步骤之后,还包括获得当前数据行的记录类型和当前数据行的记录长度;根据下面的公式计算校验和Checksum2:
[0012]Checksum2=0xFF
–
(Count+Address+Data)
[0013]其中,Count为当前数据行的记录长度,Address为当前数据行的储存地址,Data为当前数据行的数据。
[0014]在本申请的一实施例中,控制器刷写文件为HEX文件,在根据解析规则解析当前数据行的步骤之后,还包括获得当前数据行的记录类型和当前数据行的记录长度;根据下面的公式计算校验和Checksum2:
[0015]Checksum2=0xFF
–
(Length+Load offset+Record type+Data)
[0016]其中,Length为当前数据行的记录长度,Load offset为当前数据行的储存地址,Record type为当前数据行的记录类型,Data为当前数据行的数据。
[0017]本申请为解决上述技术问题还提出一种控制器刷写文件的解析系统,包括:存储器,用于存储可由处理器执行的指令;处理器,用于执行指令以实现如上的控制器刷写文件的解析方法。
[0018]本申请为解决上述技术问题还提出一种存储有计算机程序代码的计算机可读介质,计算机程序代码在由处理器执行时实现如上的控制器刷写文件的解析方法。
[0019]本申请的技术方案在正式开始刷写控制器前统一解析控制器刷写文件,逐行读取并解析文件的每一数据行,若某一数据行解析失败或者校验和校验不通过,则会结束当前解析任务,可以在刷写控制器前暴露出控制器刷写文件中解析或者校验有误的问题;通过判断相邻数据行的数据储存地址是否连续,若地址不连续则创建新文件,并将储存地址连续的数据行中的数据内容先转换为第一格式的数据,再存入该新文件,这样设置可以在刷写控制器前暴露出控制器刷写文件中储存地址不连续的问题并及时解决该问题,后续在正式执行控制器刷写任务过程中,读取每个预先处理好的文件中的数据,刷写过程不会中断,保证刷写任务成功。
附图说明
[0020]为让本申请的上述目的、特征和优点能更明显易懂,以下结合附图对本申请的具体实施方式作详细说明,其中:
[0021]图1是本申请一实施例的控制器刷写文件的解析方法的示例性流程图;
[0022]图2是本申请一实施例的控制器刷写文件S19的解析方法的示例性流程图;
[0023]图3是本申请一实施例的控制器刷写文件HEX的解析方法的示例性流程图;
[0024]图4是本申请一实施例的控制器刷写文件的解析系统的系统框图。
具体实施方式
[0025]为让本申请的上述目的、特征和优点能更明显易懂,以下结合附图对本申请的具体实施方式作详细说明。
[0026]在下面的描述中阐述了很多具体细节以便于充分理解本申请,但是本申请还可以采用其它不同于在此描述的其它方式来实施,因此本申请不受下面公开的具体实施例的限制。
[0027]如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
[0028]本申请中使用了流程图用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,或将其他操作添加到这些过程中,或从这些过程移除某一步或数步本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种控制器刷写文件的解析方法,其特征在于,包括:步骤S1:读取所述控制器刷写文件的当前数据行;步骤S2:根据解析规则解析所述当前数据行,获得当前数据行的储存地址、当前数据行的数据以及当前数据行的校验和;步骤S3:判断所述当前数据行的校验和是否校验通过,若校验通过,则进入步骤S4;若校验不通过,则结束解析任务;步骤S4:判断所述当前数据行的储存地址与上一数据行的地址是否连续,若地址不连续,则创建新文件并进入步骤S5;若地址连续,则进入步骤S5;步骤S5:将所述当前数据行的数据转换为第一格式的数据,存储所述第一格式的数据至当前的新文件;步骤S6:判断所述控制器刷写文件是否读取结束,若未读取结束,则读取所述控制器刷写文件的下一数据行,重复所述步骤S2~所述步骤S6;若读取结束,则结束解析任务。2.如权利要求1所述的解析方法,其特征在于,所述第一格式的数据为二进制格式的数据。3.如权利要求1所述的解析方法,其特征在于,判断所述当前数据行的储存地址与上一数据行的地址是否连续的步骤包括:匹配所述当前数据行的储存地址与上一数据行的结束地址,若匹配不一致,则表示地址不连续;若匹配一致,则表示地址连续。4.如权利要求3所述的解析方法,其特征在于,所述上一数据行的结束地址的计算方式为:上一数据行的储存地址加上上一数据行的数据长度。5.如权利要求1所述的解析方法,其特征在于,在判断所述当前数据行的校验和是否校验通过的步骤中,若校验不通过,还包括发出第一告警以及指示出所述当前数据行的行号。6.如权利要求1所述的解析方法,其特征在于,判断所述当前数据行的校验和是否校验通过的步骤包括:匹配所述当前数据行的校验和Checksum1与计算出的...
【专利技术属性】
技术研发人员:姜力为,孟凡兵,喻志敏,
申请(专利权)人:合众新能源汽车股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。