CN110244972A - 一种控制器刷新方法及诊断设备 - Google Patents
一种控制器刷新方法及诊断设备 Download PDFInfo
- Publication number
- CN110244972A CN110244972A CN201910537357.6A CN201910537357A CN110244972A CN 110244972 A CN110244972 A CN 110244972A CN 201910537357 A CN201910537357 A CN 201910537357A CN 110244972 A CN110244972 A CN 110244972A
- Authority
- CN
- China
- Prior art keywords
- sector
- target
- refreshed
- refresh
- refreshing
- 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
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
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)
- Read Only Memory (AREA)
Abstract
本发明提供的控制器刷新方法及诊断设备,应用于汽车技术领域,该方法在获取并响应启动刷新指令,基于UDS协议将预设刷新数据更新至目标控制器的待刷新扇区之后,对待刷新扇区进行校验,如果待刷新扇区校验未通过,需要在待刷新扇区之中确定一个或多个存在错误数据的目标扇区以及与目标扇区对应的扇区刷新数据,然后针对每一目标扇区,将与目标扇区对应的扇区刷新数据更新至目标扇区并进行校验,直至各目标扇区校验通过。本发明提供的刷新方法及诊断设备,仅针对存在错误数据的目标扇区进行重复刷新,与现有技术中在控制器刷新失败的情况下,重启整个刷新流程的方法相比,可以有效缩短刷新时长,提高刷新效率。
Description
技术领域
本发明涉及汽车技术领域,特别涉及一种控制器刷新方法及诊断设备。
背景技术
在汽车控制器的研发、试验,以及售后服务中,需要对汽车控制器内部的程序或配置数据进行刷新升级,以修复控制器中发现的软件缺陷或者优化控制器的性能指标。
随着车载网络总线技术的普及,通过OBD(On Board Diagnostics,车载自动诊断系统)接口与车载网络中的控制器建立通讯连接,并基于UDS(Unified DiagnosticServices,统一诊断服务)协议刷新控制器成为一种主流选择,这种刷新方式不必将汽车控制器从整车上拆卸下来,进而避免因为拆卸而导致的控制器异常损坏。
参见图1,图1是现有技术中基于UDS协议的控制器刷新流程图,在诊断设备退出数据传输后,控制器FLASH扇区中的数据已经被刷新,此时,需要对控制器FLASH扇区中实际存储的数据与诊断设备提供的刷新数据进行校验,以确保二者完全相同。如果校验失败,即控制器中存在错误数据,就必须手动重启整个刷新流程,对控制器进行再次刷新,直至校验通过。显然,在这种情况下,现有技术中的刷新方式将造成刷新时间成倍的增加,严重降低控制器的刷新效率。
发明内容
本发明提供一种控制器刷新方法及诊断设备,以解决现有技术中在控制器刷新失败的情况下,重启刷新流程导致刷新过程耗时长、刷新效率低的问题。
为实现上述目的,本申请提供的技术方案如下:
第一方面,本发明提供一种控制器刷新方法,应用于诊断设备,所述方法包括:
获取并响应启动刷新指令,基于UDS协议将预设刷新数据更新至目标控制器的待刷新扇区;
对所述待刷新扇区进行校验;
若所述待刷新扇区校验未通过,确定目标扇区以及所述目标扇区对应的扇区刷新数据;其中,所述目标扇区为所述待刷新扇区中的一个或多个存在错误数据的扇区,全部所述扇区刷新数据的集合构成所述预设刷新数据;
针对每一所述目标扇区,将与所述目标扇区对应的扇区刷新数据更新至所述目标扇区,并对所述目标扇区进行校验,直至所述目标扇区校验通过。
可选的,所述确定目标扇区,包括:
按照预设分组规则划分所述待刷新扇区,得到多个扇区分组;
针对每一所述扇区分组进行校验,得到至少一个校验未通过的扇区分组;
确定所述校验未通过的扇区分组内的全部扇区为目标扇区。
可选的,所述预设分组规则为:单个扇区逐一分组、递进折半分组以及连续扇区分组中的任意一个。
可选的,当所述预设分组规则为递进折半分组或连续扇区分组时,在得到至少一个校验未通过的扇区分组之后,本发明第一方面提供的控制器刷新方法,还包括:
对所述校验未通过的扇区分组内的全部扇区,再按照所述预设分组规则进行进一步的划分;并针对进一步划分后得到的新的扇区分组进行校验,直至得到至少一个校验未通过的扇区;
确定所述校验未通过的扇区为目标扇区。
可选的,确定目标扇区对应的扇区刷新数据,包括:
获取目标扇区的起始地址;
根据起始地址与扇区刷新数据之间的预设映射关系,确定与所述目标扇区对应的扇区刷新数据。
可选的,本发明第一方面任一项提供的控制器刷新方法,还包括,若任一所述目标扇区的更新次数达到第一预设阈值,则输出校验失败提示,并在进行编程后处理之后结束刷新。
可选的,在直至所述目标扇区校验通过之后,本发明第一方面任一项提供的控制器刷新方法,还包括;
返回对所述待刷新扇区进行校验的步骤;
若所述待刷新扇区校验通过,或者,所述待刷新扇区的更新次数达到第二预设阈值时输出校验失败提示,并在进行编程后处理之后结束刷新。
可选的,本发明第一方面任一项提供的控制器刷新方法,所述基于UDS协议将预设刷新数据更新至目标控制器的待刷新扇区,包括:
在完成目标控制器基于UDS协议预设的编程预处理后,向所述目标控制器发起刷新请求;
若接收到所述目标控制器针对所述刷新请求反馈的肯定响应信息,则擦除所述目标控制器的待刷新扇区内的原始数据,并下载预设刷新数据至所述待刷新扇区。
可选的,本发明第一方面任一项提供的控制器刷新方法,所述校验为:一致性校验,或者,一致性校验与完整性校验。
第二方面,本发明提供一种诊断设备,包括:存储器和处理器;所述存储器存储有适于所述处理器执行的程序,以实现本发明第一方面任一项所述的控制器刷新方法。
本发明提供的控制器刷新方法及诊断设备,在获取并响应启动刷新指令,基于UDS协议将预设刷新数据更新至目标控制器的待刷新扇区之后,对待刷新扇区进行校验,如果待刷新扇区校验未通过,需要在待刷新扇区之中确定一个或多个存在错误数据的目标扇区以及与目标扇区对应的扇区刷新数据,然后针对每一目标扇区,将与目标扇区对应的扇区刷新数据更新至目标扇区并进行校验,直至各目标扇区校验通过。本发明提供的刷新方法及诊断设备,仅针对存在错误数据的目标扇区进行重复刷新,与现有技术中在控制器刷新失败的情况下,重启整个刷新流程的方法相比,可以有效缩短刷新时长,提高刷新效率。
进一步的,本发明提供的刷新方法及诊断设备,仅针对存在错误数据的目标扇区进行重复刷新,可以避免多次重启刷新流程、造成目标控制器待刷新扇区整体经历多次刷新操作,在一定程度上提高目标控制器的使用寿命。
附图说明
为了更清楚地说明本发明实施例或现有技术内的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述内的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中基于UDS协议的控制器刷新流程图;
图2是本发明实施例提供的一种控制器刷新方法流程图;
图3是本发明实施例提供的另一种控制器刷新方法流程图;
图4是本发明实施例提供的一种诊断设备的机构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在使用诊断设备对控制器进行刷新时,诊断设备通过CAN总线与控制器建立连接,并进一步基于UDS协议规定的通讯协议进行信息交互,进而完成刷新、诊断等操作。在诊断设备基于UDS协议对控制器进行操作时,诊断设备控制着每个请求的发起时机,即掌握着每一次与控制器进行信息交互的主动权,同时,能够获知每一步操作、每一个请求的执行结果。并且,如果诊断设备与控制器之间的通讯是建立在CAN网络的基础上的,诊断设备与控制器之间的信息交互过程能够通过CAN监测设备完整的分析出来。
控制器中的待刷新扇区,可以为一个扇区,也可以包括多个扇区,并且,当待刷新扇区为多个扇区时,这些扇区可以是地址连续的扇区,也可以是地址不连续的扇区,即待刷新扇区分散于对应的存储空间内。相应的,如果待刷新扇区包括多个扇区,预设刷新数据也将划分为对应的、与待刷新扇区内扇区数量相等的多个扇区刷新数据,全部扇区刷新数据的总和,即为该预设刷新数据。在刷新时,待刷新扇区中的每一扇区都有着对应的扇区刷新数据,诊断设备在刷新过程开始前,已然获知每一扇区所对应的扇区刷新数据。
需要说明的是,预设刷新数据可以划分为多个扇区刷新数据,并不意味着各个扇区刷新数据是以某种独立的数据包的形式存储于诊断设备之中的,同样可以是以整体的形式存在。
基于上述前提,参见图2,图2是本发明实施例提供的一种控制器刷新方法的流程图,该方法可应用于电子设备,该电子设备可选如应用于车辆的诊断设备、上位机等能够基于UDS协议与车辆控制器进行信息交互,并对车辆控制器进行刷新、诊断等操作的电子设备,显然,该电子设备在某些情况下也可选用网络侧的服务器实现;下面,以应用本发明实施例提供的控制器刷新方法的电子设备为诊断设备为例,阐明本发明实施例提供的控制器刷新方法的流程,参照图2,该流程可以包括:
步骤S100,获取并响应启动刷新指令,基于UDS协议将预设刷新数据更新至目标控制器的待刷新扇区。
应用本发明实施例提供的控制器刷新方法的诊断设备,可以通过多种方式获取启动刷新指令。比如,当诊断设备设置有用于启动刷新流程的物理按键时,可以通过获取物理按键被按下时的电压信号或电流信号以获取启动刷新指令;当诊断设备设置有触控屏幕,且触控屏幕预设有启动刷新功能时,可以通过获取触控屏幕启动刷新功能的点击操作以获取启动刷新指令。总之,现有技术中可以获取启动刷新指令以启动刷新流程的方法都是可选的,本发明对此不做限定。
在获取启动刷新指令之后,即可响应该启动刷新指令,基于UDS协议将预设刷新数据更新至目标控制器的待刷新扇区之中。
可选的,按照UDS协议的相关规定,在对目标控制器进行刷新前,还需要进行编程预处理。具体的,编程预处理所需要执行的操作可以包括:$22服务-读取控制器硬件编程、$22服务-读取引导程序软件版本号、$10服务-切换至扩展会话模式、$85服务-关闭DTC、$28服务使能应用报文Rx、禁用Tx等。
在完成目标控制器的编程预处理后,诊断设备即可向目标控制器发起刷新请求,具体的,根据UDS协议的相关规定,刷新请求可以通过$10服务-切换至编程会话请求子功能的方式实现,目标控制器在接收到请求后,会对自身的运行状态、相关参量进行检验,如果能够执行前述切换至编程会话请求子功能,则向诊断设备反馈肯定响应信息,诊断设备在接收到目标控制器针对该请求反馈的肯定响应信息后,会进一步请求擦除目标控制器的待刷新扇区内的原始数据,并请求下载预设刷新数据至待刷新扇区,当全部预设刷新数据更新完成且一致性、完整性校验通过后,即完成对待刷新扇区的刷新操作。
需要说明的是,UDS协议仅仅规定了刷新流程的大体框架,其中有许多可选流程,每个整车厂基于对协议的不同理解,对协议中各可选步骤的选择和处理都可以是不同的。前述编程预处理过程所包含的操作,仅仅是一种可选示例。进一步的,本发明实施例对于完成编程预处理后的刷新流程的说明,可以理解为对具体刷新流程的概括,在对待刷新扇区整体进行刷新操作时,可以根据UDS协议内容做出适当调整。
步骤S110,对待刷新扇区进行校验。
在待刷新扇区整体刷新完成后,需要对待刷新扇区进行校验。
可选的,可以对待刷新扇区进行一致性校验,或者,对待刷新扇区进行一致性校验和完整性校验。其中,一致性校验用于保证诊断设备所提供的预设刷新数据与目标控制器待刷新扇区中更新完成后实际存储的数据完全一致。完整性校验用于验证刷新完成后,是否所有的待刷新扇区都得到刷新,同时,还用于验证刷新过程是否导致待刷新扇区以外的其他扇区的数据被错误的删除或更新。
具体的,一致性校验一般使用CRC(Cyclic Redundancy Check,循环冗余校验)算法,基于CRC算法的一致性校验过程大致如下:
步骤一、诊断设备向目标控制器发送$31校验例程,对待刷新分区进行校验,该服务请求的具体格式因不同整车厂有所区别,一般为$31+01子功能启动例程+校验例程ID(2Bytes)+0x44(地址和长度格式)+起始地址(4Bytes)+数据长度(4Bytes)+CRC值(4Bytes)。
步骤二、目标控制器获取到该校验服务请求后,提取校验服务请求中包含的起始地址、数据长度、CRC值,然后,对自身待刷新扇区内对应的起始地址、数据长度范围内的更新后数据进行CRC校验,得出计算的CRC值。
步骤三、目标控制器将计算得到的CRC值与从诊断设备接收的CRC值进行对比,若一致,即认为一致性校验通过,若不一致,即认为一致性校验未通过。
如前所述,对于校验服务请求的具体格式,以及校验例程ID,不同的整车厂会有所区别,同时,0x44(地址和长度格式)因整车厂不同同样可能会省略或有所变化,但校验服务器请求中包含的待校验扇区的起始地址、数据长度、CRC值都是校验服务请求所必须包含的。
完整性校验的一般格式为:$31+01子功能启动例程+完整性校验例程ID(2Bytes)。需要特别说明的是,许多整车厂并没有单独的完整性校验的服务请求,会把一致性校验和完整性校验合并在同个服务请求中。与一致性校验类似,完整性校验服务请求的具体格式,同样因整车厂的不同而有所区别,此处不再赘述。
步骤S120,判断待刷新扇区是否校验通过。
如果待刷新扇区校验通过,则可以执行步骤S170,结束刷新流程;如果待刷新扇区校验未通过,则执行步骤S130,确定存在错误数据的目标扇区以及目标扇区所对应的扇区刷新数据。
步骤S130,确定目标扇区以及目标扇区对应的扇区刷新数据。
如前所述,待刷新扇区可能仅仅包括一个扇区,也有可能包括多个扇区,相应的,经过数据更新之后的待刷新扇区中,也有可能存在一个或者多个更新后实际存储的数据与前述预设刷新数据不一致的扇区,即包括一个或多个存在错误数据、需要重新刷新的目标扇区。而为实现针对目标扇区的再次刷新,还需要确定与目标扇区对应的扇区刷新数据。
确定目标扇区的过程,实际上就是针对待刷新扇区中的每一个扇区进行再次校验,校验通过的扇区即说明数据更新没有问题,校验未通过的扇区,即可确定为存在错误数据的扇区。具体校验的方法可以采用前述对整个待刷新扇区进行校验时所采用的校验方法,有所区别的是,确定目标扇区的校验服务请求中所包含的起始地址、数据长度都是需要针对性设置的,不同的校验对象设置不同的内容。
可选的,对于任何一个扇区而言,如果不能通过一致性校验,就足以说明其存储有错误数据,可以直接将一致性校验未通过的扇区确定为目标扇区,而不必再针对同一扇区进行完整性校验,从而可以缩短整个刷新流程的耗时,提高刷新效率。
可选的,本发明实施例提供多种预设分组规则,根据待刷新扇区实际包括的扇区数量,灵活运用预设分组规则对待刷新扇区进行分组,并以分组结果为校验对象进行一致性校验,可以显著提高确定目标扇区的效率。具体的,本发明实施例所述及的预设分组规则至少包括单个扇区逐一分组、递进折半分组以及连续扇区分组中的任意一个。
不论采用哪种预设分组规则,首先需要按照选定的预设分组规则划分待刷新扇区,进而得到多个至少包括一个扇区的扇区分组。划分得到多个扇区分组之后,以扇区分组为基本校验对象,针对每一扇区分组进行校验,从而得到至少一个校验未通过的扇区分组,可以直接确定所得校验未通过的扇区分组内的全部扇区为目标扇区。
具体的,如果待刷新扇区中的扇区数量较少,可以采用单个扇区逐一分组的规则,即将每个独立的扇区划分为一组,每个扇区分组内只包括一个扇区,划分完成后,采用遍历的方式,针对每一扇区分组进行一致性校验,从而很快的确定目标扇区。
但如果待刷新扇区中包含大量的扇区,采用单个扇区逐一分组的划分规则以及遍历的筛选方式,将很难在短时间内筛选出目标扇区,这种情况下,可以使用递进折半分组规则或连续扇区分组规则。
其中,递进折半分组规则具体为:
假设待刷新扇区中共包括M个扇区。首先,把M个扇区,拆分成[1,M/2)和[M/2,M]两个扇区分组。然后,诊断设备分别对[1,M/2)和[M/2,M]两个扇区分组发起$31校验例程,从中筛选校验未通过的扇区分组。比如[1,M/2)段校验失败,即可以将[1,M/2)段扇区分组内的全部扇区确定为目标扇区。
显然,经过一次折半查找所确定的目标扇区的数量是比较多的,筛选效率虽高,但刷新过程必然耗时较长,此时,可以在得到一个校验未通过的扇区分组之后,对校验未通过的扇区分组内的全部扇区,再按照预设分组规则进行进一步的划分,并针对进一步划分后得到的新的扇区分组进行校验,直至得到至少一个校验未通过的扇区,最终确定校验未通过的扇区为目标扇区。
具体的,进一步对[1,M/2)段扇区分组内的全部扇区进行折半分组,即划分为[1,M/4)和[M/4,M/2)两个扇区分组,并分别对两个扇区分组进行校验。依此类推,直到找到相应的存有错误数据的目标扇区为止。
可以想到的是,采用递进折半查找规则对待刷新进行分组,需要综合考虑确定目标扇区的效率以及目标扇区的刷新效率,需要合理的平衡二者的关系。需要在具体执行过程中设定递进折半的迭代次数,迭代次数越多,筛选得到的目标扇区越准确,刷新效率越高,但确定目标扇区的耗时会更长;相应的,如果迭代次数较少,确定目标扇区的效率会提高,但针对目标扇区的刷新效率会有所降低。
需要说明的是,上述示例中,假定待刷新扇区中各个扇区在存储器中的地址是连续的。如果待刷新扇区中的各个扇区不是连续设置的,需要针对每一部分连续设置的扇区采用前述递进折半分组规则,直至确定待刷新扇区中的全部目标扇区。
可选的,连续分组规则即是以地址连续的扇区为校验对象进行划分的。将待刷新扇区中地址连续的扇区划分为一个扇区分组,进而得到至少一个扇区分组,并且每一扇区分组内至少包括一个扇区。与递进折半分组规则类似,在得到至少一个校验未通过扇区分组之后,可以进一步对校验未通过的扇区分组内的全部扇区,再按照预设分组规则进行进一步的划分,并针对进一步划分后得到的新的扇区分组进行校验,直至得到至少一个校验未通过的扇区,并确定所得校验未通过的扇区为目标扇区。
可以想到的是,将校验未通过的扇区分组内的全部扇区均作为目标扇区,即以校验未通过的扇区分组作为整体开展后续流程,虽然可以提高确定目标扇区的效率,但当校验未通过的扇区分组中同时包括目标扇区和正确刷新的扇区时,这种处理方式会降低刷新效率。比如,校验未通过的扇区分组中包括两个扇区,在这两个扇区中只有一个扇区存在错误数据,由于将整个校验未通过的扇区分组内的两个扇区均作为目标扇区,诊断设备需要再次下载两个扇区的数据量,才能纠正只在一个扇区里存在的错误数据,将刷新流程的耗时至少提高一倍。
在确定目标扇区之后,需要进一步确定目标扇区对应的扇区刷新数据。可选的,如前所述,诊断设备中存储有待刷新扇区中各个扇区的起始地址和长度,同时,作为一种可选的实现方式,诊断设备中可以建立待刷新扇区中各个扇区的起始地址与扇区刷新数据之间一一对应的预设映射关系,即在该预设映射关系中,通过扇区的起始地址,可以唯一的确定与该起始地址对应的扇区刷新数据。在确定目标扇区之后,诊断设备获取目标扇区的起始地址,并进一步根据起始地址与扇区刷新数据之间的预设映射关系,确定与目标扇区唯一对应的扇区刷新数据。
步骤S140,将与目标扇区i对应的扇区刷新数据更新至目标扇区i,其中,1≤i≤N,N为目标扇区总数。
在确定目标扇区以及与目标扇区对应的扇区刷新数据之后,需要针对每一目标扇区进行重复的数据更新,直至目标扇区校验通过。
可选的,针对每一目标扇区的刷新过程,与刷新整个待刷新扇区的过程是基本一致的,比如,在刷新开始前,诊断设备同样需要向控制器发起数据擦除服务请求,以实现对目标扇区原有数据的擦除;在数据擦除完毕之后,下载扇区刷新数据至目标扇区,完成对目标扇区存储数据的更新,并在数据更新完成后退出数据传输流程。对目标扇区的刷新过程可以参照现有技术中的刷新流程进行,此处不再赘述。
步骤S150,判断目标扇区i是否校验通过。
针对每一目标扇区,在目标扇区刷新完毕之后,对目标扇区进行校验,如果校验通过,则继续对下一目标扇区进行刷新及校验操作,如果当前的目标扇区在刷新后校验未通过,则返回执行步骤S140,继续对该目标扇区进行刷新及校验,直至当前的目标扇区校验通过。
步骤S160,判断是否全部目标扇区均校验通过。
在任一目标扇区校验通过后,判断是否所有的目标扇区均已通过校验,如果是,执行步骤S170,结束刷新,如果否,返回执行步骤S140,继续刷新下一目标扇区。
步骤S170,结束刷新。
在全部目标扇区校验通过之后,即可结束刷新,完成对目标控制器的刷新操作。
通过本发明实施例提供的控制器刷新方法,仅针对存在错误数据的目标扇区进行重复刷新,与现有技术中在控制器刷新失败的情况下,重启整个刷新流程的方法相比,可以有效缩短刷新时长,提高刷新效率。
进一步的,本发明提供的刷新方法,仅针对存在错误数据的目标扇区进行重复刷新,可以避免多次重启刷新流程,进而造成目标控制器待刷新扇区整体经历多次刷新操作,在一定程度上提高目标控制器的使用寿命。
可选的,在图2所示实施例中,如果任一目标扇区发生严重故障,始终无法正确刷新,那么程序将在该目标扇区中重复的进行更新,刷新流程进入死循环,使得刷新过程无法停止,这显然是无法满足使用需求的。因此,在图2所示实施例的基础上,本发明还提供另一种控制器刷新方法。参见图3,图3是本发明实施例提供的另一种控制器刷新方法的流程图,该流程在图2所示实施例中步骤S150对任一目标扇区进行校验,并对校验结果进行判断的基础上,还包括:
步骤S200,判断当前的目标扇区的更新次数是否达到第一预设阈值,若是,执行步骤S210,若否,返回执行步骤S140。
在执行步骤S140,对目标扇区i,即当前的目标扇区,更新完毕后,执行步骤S150,对目标扇区i进行校验,如果目标扇区i校验通过,继续执行前述步骤S160。如果目标扇区i校验未通过,则进一步执行步骤S200判断当前的目标扇区的更新次数是否达到第一预设阈值,如果更新次数达到第一预设阈值,说明目标扇区i已经无法正确刷新,则执行步骤S210,输出校验失败提示;如果更新次数未达到第一预设阈值,则返回步骤S140,继续对当前的目标扇区i进行更新。
步骤S210,输出校验失败提示。
在任一目标扇区的更新次数达到第一预设阈值之后,诊断设备输出校验失败提示,提醒操作人员无法继续对目标控制器进行刷新操作。
步骤S220,编程后处理。
根据UDS协议的相关规定,在确定刷新操作无法继续进行,即输出校验失败提示信息之后,或者,在全部目标扇区均校验通过之后,可以进一步执行编程后处理操作。
可选的,UDS协议仅仅规定编程后处理的大体框架,其中有许多可选流程,每个整车厂基于对协议的不同理解,对协议中可选步骤的选择和处理都可以是不同的。编程后处理流程中可以包括如$10服务-切换至扩展会话模式、$28服务-使能应用报文Rx及Tx、$85服务开启DTC、$10服务-切换至默认会话模式等,本发明申请对编程后处理步骤的具体内容不做限定。
在步骤S220执行完毕后,即可执行步骤S170,结束刷新,此处不再赘述。
通过本发明实施例提供的控制器刷新方法,在目标扇区的更新过程中,对每一目标扇区的更新次数进行监控,当任一目标扇区的更新次数达到第一预设阈值时,输出校验失败提示信息,并最终结束刷新,可以有效防止刷新进入死循环,满足实际使用需求。
可选的,为提高刷新过程的可靠性,在全部目标扇区均校验通过之后,还可以选择在此对待刷新扇区整体进行校验,即图2或图3实施例中的步骤S110,如果待刷新扇区校验通过,则执行图3所示实施例中的步骤S220,执行编程后处理流程,并在编程后处理执行完毕后,结束刷新;如果待刷新扇区校验未通过,则需要返回执行图2或图3所示实施例中的步骤S130,重新确定目标扇区以及目标扇区对应的扇区刷新数据,并对目标扇区进行更新操作等后续流程。依此类推,如果待刷新扇区的更新次数达到第二预设阈值时,仍不能通过校验,则输出校验失败提示,并在进行编程后处理之后结束刷新。
通过本发明实施例提供的控制器刷新方法,在全部目标扇区校验通过之后再次对待刷新扇区整体进行校验,可以有效提高刷新过程的可靠性。
可选的,参见图4,图4为本发明实施例提供的诊断设备的结构框图,参见图4所示,可以包括:至少一个处理器100,至少一个通信接口200,至少一个存储器300和至少一个通信总线400;
在本发明实施例中,处理器100、通信接口200、存储器300、通信总线400的数量为至少一个,且处理器100、通信接口200、存储器300通过通信总线400完成相互间的通信;显然,图4所示的处理器100、通信接口200、存储器300和通信总线400所示的通信连接示意仅是可选的;
可选的,通信接口200可以为通信模块的接口,如与车载OBD接口相适配的接口或其他CAN网络接口;
处理器100可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器300,存储有应用程序,可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
其中,处理器100具体用于执行存储器内的应用程序,以实现上述所述的控制器刷新方法的任一实施例。
本发明中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (10)
1.一种控制器刷新方法,其特征在于,应用于诊断设备,所述方法包括:
获取并响应启动刷新指令,基于UDS协议将预设刷新数据更新至目标控制器的待刷新扇区;
对所述待刷新扇区进行校验;
若所述待刷新扇区校验未通过,确定目标扇区以及所述目标扇区对应的扇区刷新数据;其中,所述目标扇区为所述待刷新扇区中的一个或多个存在错误数据的扇区,全部所述扇区刷新数据的集合构成所述预设刷新数据;
针对每一所述目标扇区,将与所述目标扇区对应的扇区刷新数据更新至所述目标扇区,并对所述目标扇区进行校验,直至所述目标扇区校验通过。
2.根据权利要求1所述的控制器刷新方法,其特征在于,所述确定目标扇区,包括:
按照预设分组规则划分所述待刷新扇区,得到多个扇区分组;
针对每一所述扇区分组进行校验,得到至少一个校验未通过的扇区分组;
确定所述校验未通过的扇区分组内的全部扇区为目标扇区。
3.根据权利要求2所述的控制器刷新方法,其特征在于,所述预设分组规则为:单个扇区逐一分组、递进折半分组以及连续扇区分组中的任意一个。
4.根据权利要求3所述的控制器刷新方法,其特征在于,当所述预设分组规则为递进折半分组或连续扇区分组时,在得到至少一个校验未通过的扇区分组之后,还包括:
对所述校验未通过的扇区分组内的全部扇区,再按照所述预设分组规则进行进一步的划分;并针对进一步划分后得到的新的扇区分组进行校验,直至得到至少一个校验未通过的扇区;
确定所述校验未通过的扇区为目标扇区。
5.根据权利要求1所述的控制器刷新方法,其特征在于,确定目标扇区对应的扇区刷新数据,包括:
获取目标扇区的起始地址;
根据起始地址与扇区刷新数据之间的预设映射关系,确定与所述目标扇区对应的扇区刷新数据。
6.根据权利要求1-5任一项所述的控制器刷新方法,其特征在于,还包括,若任一所述目标扇区的更新次数达到第一预设阈值,则输出校验失败提示,并在进行编程后处理之后结束刷新。
7.根据权利要求1-5任一项所述的控制器刷新方法,其特征在于,在直至所述目标扇区校验通过之后,还包括;
返回对所述待刷新扇区进行校验的步骤;
若所述待刷新扇区校验通过,或者,所述待刷新扇区的更新次数达到第二预设阈值时输出校验失败提示,并在进行编程后处理之后结束刷新。
8.根据权利要求1-5任一项所述的控制器刷新方法,其特征在于,所述基于UDS协议将预设刷新数据更新至目标控制器的待刷新扇区,包括:
在完成目标控制器基于UDS协议预设的编程预处理后,向所述目标控制器发起刷新请求;
若接收到所述目标控制器针对所述刷新请求反馈的肯定响应信息,则擦除所述目标控制器的待刷新扇区内的原始数据,并下载预设刷新数据至所述待刷新扇区。
9.根据权利要求1-5任一项所述的控制器刷新方法,其特征在于,所述校验为:一致性校验,或者,一致性校验与完整性校验。
10.一种诊断设备,其特征在于,包括:存储器和处理器;所述存储器存储有适于所述处理器执行的程序,以实现权利要求1至9任一项所述的控制器刷新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910537357.6A CN110244972A (zh) | 2019-06-20 | 2019-06-20 | 一种控制器刷新方法及诊断设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910537357.6A CN110244972A (zh) | 2019-06-20 | 2019-06-20 | 一种控制器刷新方法及诊断设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110244972A true CN110244972A (zh) | 2019-09-17 |
Family
ID=67888520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910537357.6A Pending CN110244972A (zh) | 2019-06-20 | 2019-06-20 | 一种控制器刷新方法及诊断设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110244972A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795129A (zh) * | 2019-11-04 | 2020-02-14 | 阳光电源股份有限公司 | 一种数据刷写方法、装置和设备 |
CN113377407A (zh) * | 2020-03-10 | 2021-09-10 | 上汽通用汽车有限公司 | 基于posix接口的域控制器刷新方法和装置 |
CN113377393A (zh) * | 2020-03-10 | 2021-09-10 | 上汽通用汽车有限公司 | 一种车载系统主节点的诊断刷新系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103412561A (zh) * | 2013-08-08 | 2013-11-27 | 奇瑞汽车股份有限公司 | 一种汽车控制器的刷新方法及装置 |
CN103631609A (zh) * | 2012-08-21 | 2014-03-12 | 广州汽车集团股份有限公司 | 一种车载ecu应用程序的刷新方法及系统 |
CN104008777A (zh) * | 2013-02-25 | 2014-08-27 | 北京兆易创新科技股份有限公司 | 一种非易失性存储器的擦除方法和装置 |
CN107977220A (zh) * | 2017-12-04 | 2018-05-01 | 清华大学 | 一种刷写应用程序的方法、装置及系统 |
-
2019
- 2019-06-20 CN CN201910537357.6A patent/CN110244972A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631609A (zh) * | 2012-08-21 | 2014-03-12 | 广州汽车集团股份有限公司 | 一种车载ecu应用程序的刷新方法及系统 |
CN104008777A (zh) * | 2013-02-25 | 2014-08-27 | 北京兆易创新科技股份有限公司 | 一种非易失性存储器的擦除方法和装置 |
CN103412561A (zh) * | 2013-08-08 | 2013-11-27 | 奇瑞汽车股份有限公司 | 一种汽车控制器的刷新方法及装置 |
CN107977220A (zh) * | 2017-12-04 | 2018-05-01 | 清华大学 | 一种刷写应用程序的方法、装置及系统 |
Non-Patent Citations (2)
Title |
---|
张洋 等: "《STM32F7原理与应用 HAL库版 下》", 北京:北京航空航天大学出版社, pages: 178 - 182 * |
李英等: "汽车电子控制单元Bootloader刷新功能测试方法", 《汽车电器》, no. 11, 20 November 2017 (2017-11-20), pages 77 - 80 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795129A (zh) * | 2019-11-04 | 2020-02-14 | 阳光电源股份有限公司 | 一种数据刷写方法、装置和设备 |
CN110795129B (zh) * | 2019-11-04 | 2023-11-07 | 阳光电源股份有限公司 | 一种数据刷写方法、装置和设备 |
CN113377407A (zh) * | 2020-03-10 | 2021-09-10 | 上汽通用汽车有限公司 | 基于posix接口的域控制器刷新方法和装置 |
CN113377393A (zh) * | 2020-03-10 | 2021-09-10 | 上汽通用汽车有限公司 | 一种车载系统主节点的诊断刷新系统及方法 |
CN113377407B (zh) * | 2020-03-10 | 2023-02-17 | 上汽通用汽车有限公司 | 基于posix接口的域控制器刷新方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110244972A (zh) | 一种控制器刷新方法及诊断设备 | |
US20060150018A1 (en) | Diagnostic method and system | |
CN107861876A (zh) | 测试方法、装置、计算机设备及可读存储介质 | |
CN112748713A (zh) | 一种车载ecu总线刷新的测试系统及方法 | |
CN108282365A (zh) | 一种车辆配置方法、装置、终端、车载终端及车辆 | |
CN115422048A (zh) | 链路稳定性测试方法、装置、计算机设备和存储介质 | |
CN115373981A (zh) | 一种用于整车在产线环境下进行ota自动化测试系统和方法 | |
US20070204071A1 (en) | Apparatus, system, and method for automated device configuration and testing | |
CN116383021A (zh) | 软件包性能的测试方法、系统、计算设备及可读存储介质 | |
CN113433921A (zh) | 一种实车功能的测试方法、装置及控制设备 | |
CN110795304A (zh) | 分布式存储系统性能测试的方法及装置 | |
CN114338451B (zh) | 一种控制器局域网总线测试系统、方法和存储介质 | |
CN113886274A (zh) | 车联网终端的稳定性测试方法、装置、设备及存储介质 | |
CN112925546B (zh) | 一种防止车载ecu刷新出错的多级校验方法及系统 | |
CN111682987B (zh) | 基于osek nm的实车环境模拟及快速测试系统 | |
CN115118577A (zh) | 远程升级异常原因确定方法、装置、电子设备及存储介质 | |
CN114356769A (zh) | 软件的学习方法、装置、设备及存储介质 | |
CN112346441A (zh) | 一种汽车在线诊断方法、系统和汽车诊断设备 | |
CN107453914A (zh) | 一种基于windows多存储系统的统一管理方法 | |
CN115543387A (zh) | 集成soc软件的升级方法、装置、车辆及存储介质 | |
CN112596677B (zh) | 电子控制单元的数据存储方法、装置及存储介质 | |
CN114371683B (zh) | 诊断仪的诊断功能验证方法、系统、存储介质及设备 | |
CN115495127A (zh) | Ota升级系统的测试方法、装置、测试设备及系统 | |
CN115426381A (zh) | 一种发送报文的方法、系统及电子设备 | |
Manasa et al. | Automation for Vehicle Communication Diagnostics |
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 |