一种更新应用程序的方法及装置与流程

文档序号:14609165发布日期:2018-06-05 20:26阅读:190来源:国知局
一种更新应用程序的方法及装置与流程

本发明涉及汽车电子技术领域,尤其涉及一种更新应用程序的方法及装置。



背景技术:

目前市场上的汽车电子嵌入式软件基于UDS(Unified Diagnostic Services,统一诊断服务)协议更新应用程序的方法已经非常成熟,基于CCP(CAN Calibration Protocol,CAN总线标定协议)更新应用程序也已有成功案例。

传统的基于UDS协议更新应用程序的方法,只能按照UDS协议更新流程实现应用程序的更新。这种方法无法处理CCP协议的请求报文,无法通过CCP协议来更新应用程序。而基于CCP协议更新应用程序的方法,只能按照CCP协议更新流程完成应用程序的更新。相应的,这种方法无法处理UDS协议的请求报文,无法通过UDS协议来更新应用程序。

随着汽车电子技术的不断发展,既支持基于UDS协议更新应用程序又支持基于CCP协议更新应用程序的兼容协议电子控制单元应运而生,并且已经应用到电子控制单元网络中。当需要对上述兼容协议电子控制单元进行应用程序更新时,通常是先由人工自由地为上述兼容协议电子控制单元设定基于UDS协议或CCP协议中的某一种协议更新应用程序,然后再基于设定的协议更新上述兼容协议电子控制单元的应用程序。但是人工设定的更新应用程序的协议类型可能并不与上述兼容协议电子控制单元当前运行的协议类型相符合,因此会导致上述兼容协议电子控制单元更新应用程序失败,此时只能由人工再重新为上述兼容协议电子控制单元设定基于其他协议更新应用程序,然后再次对兼容协议电子控制单元进行应用程序更新。上述对兼容协议电子控制单元的应用程序更新过程繁琐,当电子控制单元网络中包含大量的上述兼容协议电子控制单元时,会严重降低对电子控制单元网络应用程序的更新效率。



技术实现要素:

基于上述现有技术的缺陷和不足,本发明提出一种更新应用程序的方法及装置,能够对既支持基于UDS协议更新应用程序又支持基于CCP协议更新应用程序的兼容协议电子控制单元进行更高效的应用程序更新。

为了达到上述目的,本发明提出如下技术方案:

一种更新应用程序的方法,应用于电子控制单元,所述方法包括:

所述电子控制单元接收上位机发送的更新应用程序指令;

依据所述更新应用程序指令,判断所述电子控制单元的预设地址中的原有协议标识是否与所述更新应用程序指令指定的更新协议相对应;

若不对应,则删除所述原有协议标识,写入与所述更新应用程序指令指定的更新协议相对应的协议标识,所述电子控制单元依据所述更新应用程序指令指定的更新协议更新应用程序;

若对应,则所述电子控制单元依据所述更新应用程序指令指定的更新协议更新应用程序。

优选地,所述更新应用程序指令包括:依据UDS协议对应用程序进行更新,或,依据CCP协议对应用程序进行更新;所述协议标识包括CCP标识或非CCP标识;

当所述更新应用程序指令为依据UDS协议对应用程序进行更新的指令时,所述依据所述更新应用程序指令,判断所述电子控制单元的预设地址中的原有协议标识是否与所述更新应用程序指令指定的更新协议相对应;若不对应,则删除所述原有协议标识,写入与所述更新应用程序指令指定的更新协议相对应的协议标识,所述电子控制单元依据所述更新应用程序指令指定的更新协议更新应用程序;若对应,则所述电子控制单元依据所述更新应用程序指令指定的更新协议更新应用程序,包括:

判断所述电子控制单元的预设地址中的原有协议标识是否为所述非CCP标识;若所述原有协议标识为所述非CCP标识,则依据UDS协议对应用程序进行更新;若所述原有协议标识为所述CCP标识,则删除所述CCP标识,写入所述非CCP标识,所述电子控制单元依据UDS协议对应用程序进行更新;

当所述更新应用程序指令为依据CCP协议对应用程序进行更新的指令时,所述依据所述更新应用程序指令,判断所述电子控制单元的预设地址中的原有协议标识是否与所述更新应用程序指令指定的更新协议相对应;若不对应,则删除所述原有协议标识,写入与所述更新应用程序指令指定的更新协议相对应的协议标识,所述电子控制单元依据所述更新应用程序指令指定的更新协议更新应用程序;若对应,则所述电子控制单元依据所述更新应用程序指令指定的更新协议更新应用程序,包括:

判断所述电子控制单元的预设地址中的原有协议标识是否为所述CCP标识;若所述原有协议标识为所述CCP标识,则依据CCP协议对应用程序进行更新;若所述原有协议标识为所述非CCP标识,则删除所述非CCP标识,写入所述CCP标识,所述电子控制单元依据CCP协议对应用程序进行更新。

优选地,所述依据CCP协议对应用程序进行更新,包括:

与所述上位机建立连接;

判断所述上位机访问所述电子控制单元是否符合预设的安全性要求;

如果所述上位机访问所述电子控制单元符合预设的安全性要求,则向所述上位机发送安全访问确认信息,并根据所述上位机发送的控制指令,更新所述应用程序;

计算所述应用程序的数据校验和并发送给所述上位机,使所述上位机根据所述数据校验和判断对所述应用程序进行更新的数据是否符合预设的正确性和完整性要求;

如果接收到所述上位机发送的表征对所述应用程序进行更新的数据符合预设的正确性和完整性要求的信息,则断开与所述上位机的连接。

优选地,所述根据所述上位机发送的控制指令,更新所述应用程序,包括:

根据所述上位机发送的第一控制指令,擦除所述应用程序中需要更新的数据;

根据所述上位机发送的第二控制指令,向所述应用程序中写入所述上位机发送的重程序设计的数据。

优选地,所述依据UDS协议对应用程序进行更新,包括:

在所述上位机的控制下进入程序设计模式;

判断所述上位机访问所述电子控制单元是否符合预设的安全性要求;

如果所述上位机访问所述电子控制单元符合预设的安全性要求,则根据所述上位机发送的下载指令,下载驱动程序;

根据所述上位机发送的控制指令,更新所述应用程序;

根据所述上位机发送的数据校验指令,判断对所述应用程序进行更新的数据是否符合预设的正确性和完整性要求,并将判断结果发送给所述上位机;

当接收到所述上位机发送的复位指令时,退出程序设计模式。

优选地,所述根据所述上位机发送的控制指令,更新所述应用程序,包括:

根据所述上位机发送的第三控制指令,擦除所述应用程序中需要更新的数据;

接收重程序设计的数据;

根据所述上位机发送的第四控制指令,将所述重程序设计的数据写入所述电子控制单元的应用程序中。

一种更新应用程序的装置,应用于电子控制单元,所述装置包括:

指令接收单元,用于接收上位机发送的更新应用程序指令;

判断单元,用于依据所述更新应用程序指令,判断所述电子控制单元的预设地址中的原有协议标识是否与所述更新应用程序指令指定的更新协议相对应;

第一处理单元,用于当所述判断单元判断所述电子控制单元的预设地址中的原有协议标识与所述更新应用程序指令指定的更新协议不对应时,删除所述原有协议标识,写入与所述更新应用程序指令指定的更新协议相对应的协议标识,依据所述更新应用程序指令指定的更新协议更新应用程序;

第二处理单元,用于当所述判断单元判断所述电子控制单元的预设地址中的原有协议标识与所述更新应用程序指令指定的更新协议对应时,依据所述更新应用程序指令指定的更新协议更新应用程序。

优选地,所述更新应用程序指令包括:依据UDS协议对应用程序进行更新,或,依据CCP协议对应用程序进行更新;所述协议标识包括CCP标识或非CCP标识;

当所述更新应用程序指令为依据UDS协议对应用程序进行更新的指令时,所述判断单元、所述第一处理单元、所述第二处理单元,分别具体用于:

所述判断单元判断所述电子控制单元的预设地址中的原有协议标识是否为所述非CCP标识;

若所述原有协议标识为所述非CCP标识,则所述第二处理单元依据UDS协议对应用程序进行更新;

若所述原有协议标识为所述CCP标识,则所述第一处理单元删除所述CCP标识,写入所述非CCP标识,依据UDS协议对应用程序进行更新;

当所述更新应用程序指令为依据CCP协议对应用程序进行更新的指令时,所述判断单元、所述第一处理单元、所述第二处理单元,分别具体用于:

所述判断单元判断所述电子控制单元的预设地址中的原有协议标识是否为所述CCP标识;

若所述原有协议标识为所述CCP标识,则所述第二处理单元依据CCP协议对应用程序进行更新;

若所述原有协议标识为所述非CCP标识,则所述第一处理单元删除所述非CCP标识,写入所述CCP标识,所述电子控制单元依据CCP协议对应用程序进行更新。

优选地,所述第一处理单元或所述第二处理单元依据CCP协议对应用程序进行更新时,具体用于:

与所述上位机建立连接;

判断所述上位机访问所述电子控制单元是否符合预设的安全性要求;

如果所述上位机访问所述电子控制单元符合预设的安全性要求,则向所述上位机发送安全访问确认信息,并根据所述上位机发送的控制指令,更新所述应用程序;

计算所述应用程序的数据校验和并发送给所述上位机,使所述上位机根据所述数据校验和判断对所述应用程序进行更新的数据是否符合预设的正确性和完整性要求;

如果接收到所述上位机发送的表征对所述应用程序进行更新的数据符合预设的正确性和完整性要求的信息,则断开与所述上位机的连接。

优选地,所述第一处理单元或所述第二处理单元依据UDS协议对应用程序进行更新时,具体用于:

在所述上位机的控制下进入程序设计模式;

判断所述上位机访问所述电子控制单元是否符合预设的安全性要求;

如果所述上位机访问所述电子控制单元符合预设的安全性要求,则根据所述上位机发送的下载指令,下载驱动程序;

根据所述上位机发送的控制指令,更新所述应用程序;

根据所述上位机发送的数据校验指令,判断对所述应用程序进行更新的数据是否符合预设的正确性和完整性要求,并将判断结果发送给所述上位机;

当接收到所述上位机发送的复位指令时,退出程序设计模式。

采用本发明技术方案,当接收到更新应用程序指令时,既支持基于UDS协议更新应用程序,又支持基于CCP协议更新应用程序的电子控制单元首先判断电子控制单元预设地址中的原有协议标识是否与更新应用程序指令制定的更新协议相对应;如果对应,则可以直接依据更新应用程序指令指定的更新协议更新应用程序;如果不对应,则删除所述原有协议标识,写入与所述更新应用程序指令指定的更新协议相对应的协议标识,然后依据所述更新应用程序指令指定的更新协议更新应用程序。可见,采用上述方案能够保证电子控制单元根据更新应用程序指令指定的更新协议更新应用程序,因此可以保证更新应用程序成功率,从而提高对既支持基于UDS协议更新应用程序,又支持基于CCP协议更新应用程序的电子控制单元的应用程序更新效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1是本发明实施例提供的一种电子控制单元网络应用程序更新系统示意图;

图2是本发明实施例提供的一种更新应用程序的方法的流程示意图;

图3是本发明实施例提供的另一种更新应用程序的方法的流程示意图;

图4是本发明实施例提供的又一种更新应用程序的方法的流程示意图;

图5是本发明实施例提供的一种更新应用程序的装置的结构示意图。

具体实施方式

本发明实施例技术方案适用于对汽车电子控制单元网络,具体是包含既支持基于统一诊断服务协议更新应用程序,又支持基于CAN总线标定协议更新应用程序的兼容协议电子控制单元的电子控制单元网络的应用程序更新的应用场景。上述应用场景参见图1所示,重程序设计设备1通过车载总线接口接入电子控制单元网络2,其功能是将应用程序下载到需要刷新程序的电子控制单元里。重程序设计设备1可以通过统一诊断服务(Unified Diagnostic Services,UDS)协议/CAN总线标定协议(CAN Calibration Protocol,CCP)对网络里的电子控制单元进行重程序设计。

在电子控制单元网络2中,电子控制单元1(以下简称E1)只支持基于UDS协议更新应用程序;电子控制单元2(简称E2)只支持基于CCP协议更新应用程序,电子控制单元3(简称E3)既支持基于UDS协议更新应用程序,又支持基于CCP协议更新应用程序。

本发明实施例所提出的技术方案,具体为应用于如图1中所示的既支持基于UDS协议更新应用程序,又支持基于CCP协议更新应用程序的电子控制单元(E3)的技术方案,用于对电子控制单元进行应用程序更新。采用本发明实施例技术方案,能够提高对上述既支持基于UDS协议更新应用程序,又支持基于CCP协议更新应用程序的电子控制单元的应用程序更新效率。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种更新应用程序的方法,应用于电子控制单元,具体为既支持基于UDS协议更新应用程序,又支持基于CCP协议更新应用程序的电子控制单元,参见图2所示,该方法包括:

S201、电子控制单元接收上位机发送的更新应用程序指令;

具体的,上述上位机,是指如图1中所示的重程序设计设备,在电子控制单元更新应用程序过程中,重程序设计设备作为上位机向电子控制单元发送指令,以及发送重程序设计的数据等,配合电子控制单元完成应用程序更新。

上位机发送的更新应用程序指令,用于指示电子控制单元对应用程序进行更新,同时,还指示电子控制单元基于哪种协议更新应用程序。本发明实施例技术方案适用于对既支持基于UDS协议更新应用程序,又支持基于CCP协议更新应用程序的电子控制单元的应用程序进行更新的场景。因此,上述上位机发送的更新应用程序指令具体包括:指示电子控制单元依据UDS协议对应用程序进行更新,或指示电子控制单元依据CCP协议对应用程序进行更新,即上述上位机发送的更新应用程序指令可以是依据UDS协议对应用程序进行更新的指令,也可以是依据CCP协议对应用程序进行更新的指令。

S202、依据所述更新应用程序指令,判断所述电子控制单元的预设地址中的原有协议标识是否与所述更新应用程序指令指定的更新协议相对应;

具体的,上述预设地址中原有的协议标识,包括CCP标识或非CCP标识,由于本发明实施例技术方案应用于既支持基于UDS协议更新应用程序,又支持基于CCP协议更新应用程序的电子控制单元,因此,上述非CCP标识具体为UDS标识。上述预设地址中原有的协议标识,用于指示更新应用程序的协议类型。如果上述预设地址中原有的协议标识为CCP标识,则电子控制单元可以识别CCP协议指令,应当基于CCP协议更新应用程序;如果上述预设地址中原有的协议标识为非CCP标识,也就是UDS标识,则电子控制单元可以识别UDS协议指令,应当基于UDS协议更新应用程序。

可以理解,电子控制单元预设地址中的协议标识,指示了电子控制单元更新应用程序所采用的协议类型,并且,电子控制单元只能基于预设地址中的协议标识对应的协议类型更新应用程序。

因此,本发明实施例设定,当电子控制单元接收到上位机发送的,指定更新协议的更新应用程序指令后,首先判断电子控制单元的预设地址中的原有协议标识是否与更新应用程序指令指令的更新协议相对应,从而可以进一步决定应当采用哪种协议更新应用程序。

若不对应,则执行步骤S203、删除所述原有协议标识,写入与所述更新应用程序指令指定的更新协议相对应的协议标识,然后执行步骤S204、所述电子控制单元依据所述第一更新应用程序指令指定的更新协议更新应用程序;若对应,则直接执行步骤S204、所述电子控制单元依据所述更新应用程序指令指定的更新协议更新应用程序。

具体的,由于上述既支持基于UDS协议更新应用程序,又支持基于CCP协议更新应用程序的电子控制单元只能基于其预设地址中的协议标识所对应的协议类型更新应用程序,因此,如果需要依据更新应用程序指令指定的更新协议更新应用程序时,需要确保上述电子控制单元预设地址中的协议标识是与更新应用程序指令指定的更新协议相对应的协议标识。

本发明实施例在判断上述电子控制单元的预设地址中的原有协议标识是否与更新应用程序指令指定的更新协议相对应后,如果确认上述电子控制单元的预设地址中的原有协议标识与更新应用程序指令指定的更新协议不对应,则删除上述电子控制单元预设地址中的原有协议标识,写入与更新应用程序指令指定的更新协议相对应的协议标识,然后控制上述电子控制单元复位,此时上述电子控制单元的预设地址中的协议标识,就是更新应用程序指令指定的更新协议对应的协议标识,此时上述电子控制单元即可执行步骤S204、依据更新应用程序指令指定的更新协议更新应用程序。

如果确认上述电子控制单元的预设地址中的原有协议标识与更新应用程序指令指定的更新协议相对应,则说明电子控制单元的预设地址中的协议标识,就是更新应用程序指令指定的更新协议对应的协议标识,此时可以直接执行步骤S204、依据更新应用程序指令指定的更新协议更新应用程序。

进一步的,由于上位机发送的更新应用程序指令具体可以为依据UDS协议对应用程序进行更新的指令,还可以为依据CCP协议对应用程序进行更新的指令,因此当更新应用程序指令所指示的内容不同时,上述步骤S202~S204的具体处理内容也不相同。

在本发明的另一个实施例中,分别公开了当更新应用程序指令为依据UDS协议对应用程序进行更新的指令,或者为依据CCP协议对应用程序进行更新的指令时,本发明实施例技术方案的具体执行内容。

参见图3所示,当执行步骤S301、电子控制单元接收上位机发送的更新应用程序指令后,如果该更新应用程序指令为依据UDS协议对应用程序进行更新的指令,则所述依据所述更新应用程序指令,判断所述电子控制单元的预设地址中的原有协议标识是否与所述更新应用程序指令指定的更新协议相对应;若不对应,则删除所述原有协议标识,写入与所述更新应用程序指令指定的更新协议相对应的协议标识,所述电子控制单元依据所述更新应用程序指令指定的更新协议更新应用程序;若对应,则所述电子控制单元依据所述更新应用程序指令指定的更新协议更新应用程序,具体包括:

S302、判断所述电子控制单元的预设地址中的原有协议标识是否为所述非CCP标识;

若所述原有协议标识为所述CCP标识,则执行步骤S303、删除所述CCP标识,写入所述非CCP标识,然后所述电子控制单元执行步骤S304、依据UDS协议对应用程序进行更新;

若所述原有协议标识为所述非CCP标识,则直接执行步骤S304、依据UDS协议对应用程序进行更新。

具体的,当更新应用程序指令指示依据UDS协议对应用程序进行更新时,判断上述电子控制单元的预设地址中的协议标识是否为非CCP标识,即判断是否为UDS标识;

如果上述电子控制单元的预设地址中的协议标识为CCP标识,则说明上述电子控制单元只能识别CCP协议指令,此时,本发明实施例删除上述电子控制单元的预设地址中原有的CCP标识,写入非CCP标识,即写入UDS标识,并控制上述电子控制单元复位,此时上述电子控制单元的预设地址中的协议标识为非CCP标识,即UDS标识,上述电子控制单元可以识别UDS协议指令。此时,可以执行步骤S304、依据UDS协议对应用程序进行更新。

如果上述电子控制单元的预设地址中的协议标识为非CCP标识,即UDS标识,则说明上述电子控制单元只能识别UDS协议指令,此时,可以依据UDS协议对电子控制单元的应用程序进行更新,即可直接执行步骤S304、依据UDS协议对应用程序进行更新。

在本发明的另一个实施例中,还公开了上述基于UDS协议对应用程序进行更新的具体处理过程。

以对图1中的既支持基于UDS协议更新应用程序,又支持基于CCP协议更新应用程序的电子控制单元E3进行基于UDS协议的应用程序更新为例说明,上述依据UDS协议对应用程序进行更新,具体包括以下处理流程:

1.在上位机的控制下进入程序设计模式,即进入程序设计会话。

重程序设计工具1会发送进入程序设计模式命令(0x 10 02),目的是让E3进入程序设计模式。E3接收到命令后,会检查自身当前状态能否进行重程序设计。若不能,则返回否定响应,重程序设计流程中断。若可以进行重程序设计,则进入程序设计模式,并发送肯定响应。

2.判断上位机访问电子控制单元是否符合预设的安全性要求。

进入程序设计会话后,需要对系统进行安全访问,其中包含请求种子(0x27 01命令)和密钥解锁(0x27 02)两个步骤,首先由重程序设计工具1向E3请求种子(0x27 01命令),E3将种子通过响应报文回馈给重程序设计工具1,然后重程序设计工具1根据该种子通过调用Seed&Key安全访问算法库计算密钥,并通过密钥解锁命令(0x27 02)将计算的密钥发送给E3,E3将该密钥和自身的安全访问算法计算的密钥进行比较,如果符合要求则认定安全访问通过并回复肯定响应。

如果上位机访问电子控制单元符合预设的安全性要求,则执行下述步骤3:

3.根据上位机发送的下载指令,下载驱动程序;

安全访问通过后,重程序设计工具1将驱动程序的下载命令(通过0x34/0x36/0x37三个服务完成)发送到E3。E3将驱动程序存储在随机读取内存,并发送肯定响应给重程序设计工具1。

4.根据上位机发送的控制指令,更新所述应用程序;

数据更新主要有擦除内存(0x31 01 FF 00服务)、请求传输(0x34服务)和写入数据(0x36)三个步骤。

1).根据上位机发送的第三控制指令,擦除应用程序中需要更新的数据,即擦除内存(0x31 01 FF 00服务)。

驱动程序下载完后,需要对应用程序(不包括重程序设计程序)进行擦除。重程序设计工具1将擦除命令发送到E3。该擦除命令中包含将要擦除的地址和长度信息。E3接收到擦除命令后,调用驱动程序中的擦除接口,根据命令中的地址和长度信息,执行相应内存的擦除操作,并发送响应信息给重程序设计工具1。

2).接收重程序设计的数据(0x34服务)。

成功进行系统擦除后,开始请求进行数据传输。一般情况下,需要进行重程序设计的数据不一定是连续的,所以需要将重程序设计的数据分成段,每个段为连续的数据。重程序设计工具1将请求下载命令发送到E3。该请求下载命令中包含请求下载的地址和长度信息。E3接收到请求下载命令后,根据命令中的地址和长度信息,确认内存,并发送响应信息给重程序设计工具。

3).根据上位机发送的第四控制指令,将重程序设计的数据写入电子控制单元的应用程序中,即数据写入(0x36服务)。

数据写入前,重程序设计工具1将应用程序数据传输命令发送到E3。E3接收到命令后,调用驱动程序中的写接口,根据请求传输命令中的地址和长度信息,执行写操作,并发送回应给重程序设计工具1。

5.根据上位机发送的数据校验指令,判断对应用程序进行更新的数据是否符合预设的正确性和完整性要求,并将判断结果发送给上位机,即数据校验(0x31 01 FF 01服务)。

所有需要重程序设计的数据程序设计完毕后,为了验证传输数据的正确性和完整性,需要进行数据校验。

重程序设计工具1将数据完整性校验命令发送到E3。该数据完整性校验命令中包含重程序设计工具1通过调用校验算法库(本发明实施例所采用的校验算法为32位循环冗余校验算法(简称CRC32))计算的应用程序的数据校验和信息。E3接收到命令后,对下载的应用程序数据进行完整性校验。然后,发送响应信息给重程序设计工具1。

当接收到上位机发送的复位指令时,退出程序设计模式;即上位机请求复位(0x11服务)。

经过数据校验后,重程序设计工作就已基本完成。重程序设计工具1将复位命令发送到E3。E3接收到命令后,退出重程序设计模式,并发送响应信息给重程序设计工具1。

本实施例中的步骤S301对应图2所示的方法实施例中的步骤S201,其具体内容请参见图2所示的方法实施例的内容,此处不再赘述。

参见图4所示,当执行步骤S401、电子控制单元接收上位机发送的更新应用程序指令后,如果该更新应用程序指令为依据CCP协议对应用程序进行更新的指令,则所述依据所述更新应用程序指令,判断所述电子控制单元的预设地址中的原有协议标识是否与所述更新应用程序指令指定的更新协议相对应;若不对应,则删除所述原有协议标识,写入与所述更新应用程序指令指定的更新协议相对应的协议标识,所述电子控制单元依据所述更新应用程序指令指定的更新协议更新应用程序;若对应,则所述电子控制单元依据所述更新应用程序指令指定的更新协议更新应用程序,具体包括:

S402、判断所述电子控制单元的预设地址中的原有协议标识是否为所述CCP标识;

若所述原有协议标识为所述非CCP标识,则执行步骤S403、删除所述非CCP标识,写入所述CCP标识,然后所述电子控制单元执行步骤S404、依据CCP协议对应用程序进行更新;

若所述原有协议标识为所述CCP标识,则直接执行步骤S404、依据CCP协议对应用程序进行更新。

具体的,当更新应用程序指令指示依据CCP协议对应用程序进行更新时,判断上述电子控制单元的预设地址中的协议标识是否为CCP标识;

如果上述电子控制单元的预设地址中的协议标识为CCP标识,则说明上述电子控制单元只能识别CCP协议指令,此时,可以依据CCP协议对电子控制单元的应用程序进行更新,即可直接执行步骤S404、依据CCP协议对应用程序进行更新。

如果上述电子控制单元的预设地址中的协议标识为非CCP标识,即UDS标识,则说明上述电子控制单元只能识别UDS协议指令,此时,本发明实施例删除上述电子控制单元的预设地址中原有的非CCP标识,写入CCP标识,并控制上述电子控制单元复位,此时上述电子控制单元的预设地址中的协议标识为CCP标识,上述电子控制单元可以识别CCP协议指令。此时,可以执行步骤S404、依据CCP协议对应用程序进行更新。

在本发明的另一个实施例中,还公开了上述基于CCP协议对应用程序进行更新的具体处理过程。

以对图1中的既支持基于UDS协议更新应用程序,又支持基于CCP协议更新应用程序的电子控制单元E3进行基于CCP协议的应用程序更新为例说明,上述依据CCP协议对应用程序进行更新,具体包括以下处理流程:

1.与上位机建立连接。

重程序设计工具1向E3发送CCP协议中所定义的Connect命令,来判断E3是否在线,并且向E3传递重程序设计请求。E3收到命令后根据情况进行肯定响应或否定响应。

2.判断上位机访问电子控制单元是否符合预设的安全性要求。

建立连接之后需要对系统进行安全访问,其中包含GetSeed(0x12)和Unlock(0x13)两个CCP协议命令,首先由重程序设计工具1向建立连接的E3发送GetSeed命令,E3将Seed通过响应报文回馈给重程序设计工具1,然后重程序设计工具1根据该Seed通过安全访问算法计算密钥,并通过Unlock命令将计算的密钥发送给E3,E3将该密钥和自身的安全访问算法计算的密钥进行比较,如果符合要求则认定安全访问通过并回复肯定回应。

如果上位机访问电子控制单元符合预设的安全性要求,则向上位机发送安全访问确认信息。

3.根据上位机发送的控制指令,更新应用程序。

数据更新主要分系统擦除和系统程序设计两个步骤。

1).根据上位机发送的第一控制指令,擦除应用程序中需要更新的数据。

通过安全访问算法后,需要对应用程序进行擦除。在进行擦除操作时,首先需要重程序设计工具1发送CCP协议的SetMta命令(0x02),该命令的主要作用是将CCP协议中的MTA指针指向系统擦除的首地址,然后通过ClearMemory(0x10)中的数据长度判断需要擦除的范围,E3根据这组信息判断能否正常进行擦除操作,如果能则回复肯定响应。

2).根据上位机发送的第二控制指令,向应用程序中写入上位机发送的重程序设计的数据。

成功进行系统擦除后,开始进行系统程序设计阶段。一般情况下,需要进行重程序设计的数据不一定是连续的,所以需要将重程序设计的数据分成段,每个段为连续的数据。这样在每个段的数据开始进行程序设计时,首先需要重程序设计工具1发送SetMta命令,将CCP协议中的MTA指针指向系统程序设计的首地址,然后重程序设计工具1发送Program6/Program(0x22/0x18)命令,E3根据之前地址信息进行系统程序设计,如果程序设计成功则回复肯定响应。

4.计算应用程序的数据校验和并发送给上位机,使上位机根据所述数据校验和判断对应用程序进行更新的数据是否符合预设的正确性和完整性要求。

所有需要重程序设计的数据程序设计完毕后,为了验证传输数据的正确性和完整性,需要进行数据校验,重程序设计工具1需要给E3发送BuildCheckSum(0x0E)命令,其过程主要是由重程序设计工具1和E3分别计算各自程序设计数据的校验和,计算校验和需要通过CRC32校验算法来计算,重程序设计工具1会根据E3所发送的校验和结果来判断是否通过资料校验。

如果接收到上位机发送的表征对应用程序进行更新的数据符合预设的正确性和完整性要求的信息,则执行5.断开与上位机的连接。

经过数据校验后,重程序设计工作已经基本完成。但由于CCP协议的局限性,E3目前并不清楚资料校验是否通过,从而无法进行下一步工作,因此需要重程序设计工具1向E3通知校验是否通过。此时重程序设计工具1向E3发送Disconnect(0x07)命令,通知E3校验是否通过,以及验证应用程序是否处于有效状态,这样E3才能根据当前所判断的状况进行下一步工作。

本实施例中的步骤S401对应图2所示的方法实施例中的步骤S201,其具体内容请参见图2所示的方法实施例的内容,此处不再赘述。

通过上述介绍可见,采用本发明实施例技术方案,当接收到更新应用程序指令时,既支持基于UDS协议更新应用程序,又支持基于CCP协议更新应用程序的电子控制单元首先判断电子控制单元预设地址中的原有协议标识是否与更新应用程序指令制定的更新协议相对应;如果对应,则可以直接依据更新应用程序指令指定的更新协议更新应用程序;如果不对应,则删除所述原有协议标识,写入与所述更新应用程序指令指定的更新协议相对应的协议标识,然后依据所述更新应用程序指令指定的更新协议更新应用程序。可见,采用上述方案能够保证电子控制单元根据更新应用程序指令指定的更新协议更新应用程序,因此可以保证更新应用程序成功率,从而提高对既支持基于UDS协议更新应用程序,又支持基于CCP协议更新应用程序的电子控制单元的应用程序更新效率。

本发明实施例还公开了一种更新应用程序的装置,该装置应用于电子控制单元,具体为既支持基于UDS协议更新应用程序,又支持基于CCP协议更新应用程序的电子控制单元,参见图5所示,该装置包括:

指令接收单元100,用于接收上位机发送的更新应用程序指令;

判断单元110,用于依据所述更新应用程序指令,判断所述电子控制单元的预设地址中的原有协议标识是否与所述更新应用程序指令指定的更新协议相对应;

第一处理单元120,用于当所述判断单元判断所述电子控制单元的预设地址中的原有协议标识与所述更新应用程序指令指定的更新协议不对应时,删除所述原有协议标识,写入与所述更新应用程序指令指定的更新协议相对应的协议标识,依据所述更新应用程序指令指定的更新协议更新应用程序;

第二处理单元130,用于当所述判断单元判断所述电子控制单元的预设地址中的原有协议标识与所述更新应用程序指令指定的更新协议对应时,依据所述更新应用程序指令指定的更新协议更新应用程序。

具体的,本实施例中的各个单元的具体工作内容,请参见上述方法实施例的内容,此处不再赘述。

可选的,在本发明的另一个实施例中,所述更新应用程序指令包括:依据UDS协议对应用程序进行更新,或,依据CCP协议对应用程序进行更新;所述协议标识包括CCP标识或非CCP标识;

当所述更新应用程序指令为依据UDS协议对应用程序进行更新的指令时,所述判断单元110、所述第一处理单元120、所述第二处理单元130,分别具体用于:

所述判断单元110判断所述电子控制单元的预设地址中的原有协议标识是否为所述非CCP标识;

若所述原有协议标识为所述非CCP标识,则所述第二处理单元130依据UDS协议对应用程序进行更新;

若所述原有协议标识为所述CCP标识,则所述第一处理单元120删除所述CCP标识,写入所述非CCP标识,依据UDS协议对应用程序进行更新;

当所述更新应用程序指令为依据CCP协议对应用程序进行更新的指令时,所述判断单元110、所述第一处理单元120、所述第二处理单元130,分别具体用于:

所述判断单元110判断所述电子控制单元的预设地址中的原有协议标识是否为所述CCP标识;

若所述原有协议标识为所述CCP标识,则所述第二处理单元130依据CCP协议对应用程序进行更新;

若所述原有协议标识为所述非CCP标识,则所述第一处理单元120删除所述非CCP标识,写入所述CCP标识,所述电子控制单元依据CCP协议对应用程序进行更新。

具体的,本实施例中的各个单元的具体工作内容,请参见上述方法实施例的内容,此处不再赘述。

可选的,在本发明的另一个实施例中,第一处理单元120或第二处理单元130依据CCP协议对应用程序进行更新时,具体用于:

与所述上位机建立连接;

判断所述上位机访问所述电子控制单元是否符合预设的安全性要求;

如果所述上位机访问所述电子控制单元符合预设的安全性要求,则向所述上位机发送安全访问确认信息,并根据所述上位机发送的控制指令,更新所述应用程序;

计算所述应用程序的数据校验和并发送给所述上位机,使所述上位机根据所述数据校验和判断对所述应用程序进行更新的数据是否符合预设的正确性和完整性要求;

如果接收到所述上位机发送的表征对所述应用程序进行更新的数据符合预设的正确性和完整性要求的信息,则断开与所述上位机的连接。

具体的,本实施例中的第一处理单元120或第二处理单元130的具体工作内容,请参见上述方法实施例的内容,此处不再赘述。

可选的,在本发明的另一个实施例中,第一处理单元120或第二处理单元130依据UDS协议对应用程序进行更新时,具体用于:

在所述上位机的控制下进入程序设计模式;

判断所述上位机访问所述电子控制单元是否符合预设的安全性要求;

如果所述上位机访问所述电子控制单元符合预设的安全性要求,则根据所述上位机发送的下载指令,下载驱动程序;

根据所述上位机发送的控制指令,更新所述应用程序;

根据所述上位机发送的数据校验指令,判断对所述应用程序进行更新的数据是否符合预设的正确性和完整性要求,并将判断结果发送给所述上位机;

当接收到所述上位机发送的复位指令时,退出程序设计模式。

具体的,本实施例中的第一处理单元120或第二处理单元130的具体工作内容,请参见上述方法实施例的内容,此处不再赘述。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1