本发明涉及汽车领域,特别是涉及一种应用程序的更新方法及装置。
背景技术:
随着人们对汽车功能的智能化要求越来越高,汽车电子控制单元(electronic control unit,ECU)需要实现的功能越来越复杂。为了满足人们的需要,需要频繁更新汽车上的电子控制单元。
目前,对汽车上的电子控制单元的更新大多是通过更换新的电子控制单元硬件来实现的。然而,由于当前的大部分车型每年都会进行一次小改型、五年进行一次大改型,如果仍以更换硬件的方式更新电子控制单元,无疑会大大增加制造商以及消费者的成本。
因此,在不更换硬件的基础上,实现对电子控制单元的更新成为了本领域技术人员亟待解决的问题。
技术实现要素:
为解决上述技术问题,本发明实施例提供了一种应用程序的更新方法及装置,技术方案如下:
一种应用程序的更新方法,应用于通过CANFD总线与电子控制单元相连的重编程设备,所述方法包括:
向所述电子控制单元发送编程模式命令;
接收所述电子控制单元响应所述编程模式命令所发送的第一响应信息,所述响应信息用于指示所述电子控制单元已经进入编程模式;
向处于所述编程模式的所述电子控制单元发送驱动数据下载命令;
接收所述电子控制单元响应所述驱动数据下载命令所发送的第二响应信息,所述第二响应信息用于指示所述电子控制单元已经接收到所述驱动数据下载命令;
向所述电子控制单元发送与所述电子控制单元对应的驱动数据,所述驱动数据用于对所述电子控制单元中的应用程序进行更新。
优选地,还包括:
向所述电子控制单元发送请求种子命令;
接收所述电子控制单元依据所述请求种子命令所发送的种子,并依据所述种子,调用预设的与所述电子控制单元对应的安全访问算法计算第一密钥;
通过密钥解锁命令将所述密钥发送至所述电子控制单元,以使所述电子控制单元判断所述第一秘钥与第二秘钥是否相同,若是,则确定所述重编程设备的身份合法,所述第二秘钥为所述电子控制单元依据所述种子、调用自身的安全访问算法计算得到的秘钥。
优选地,还包括:
向所述电子控制单元发送擦除命令,所述擦除命令携带擦除起始地址和擦除长度,所述擦除命令用于使所述电子控制单元,调用所述驱动数据中的擦除接口,对第一存储空间中的应用程序执行擦除操作,所述第一存储空间为依据所处擦除起始地址和所述擦除长度构成的存储空间。
优选地,还包括:
向所述电子控制单元发送请求下载命令,所述请求下载命令携带数据写入起始地址和写入长度,所述请求下载命令用于使所述电子控制单元验证第二存储空间是否能写入数据,所述第二存储空间为依据所述写入起始地址和所述写入长度构成的存储空间。
优选地,还包括:
向所述电子控制单元发送数据传输命令;
在确定所述电子控制单元接收到所述数据传输命令后,向所述电子控制单元发送用于更新所述应用程序的数据,以使得所述电子控制单元调用所述驱动数据中的写入接口对所述第二存储空间执行写入操作。
优选地,还包括:
依据向所述电子控制单元发送的所述数据,调用预设的与所述电子控制单元对应的校验算法,获得第一数据校验和信息;
向所述电子控制单元发送数据完整性校验命令,所述数据完整性校验命令携带所述第一数据校验和信息,以使得所述电子控制单元判断所述第一数据校验和信息与第二数据校验和信息是否相同,若是,则确定所述数据完整,所述第二数据校验和信息为所述电子控制单元依据所述数据、调用自身的校验算法计算得到的数据校验和信息。
一种应用程序的更新装置,应用于通过CANFD总线与电子控制单元相连的重编程设备,所述装置包括:
第一发送单元,用于向所述电子控制单元发送编程模式命令;
第一接收单元,用于接收所述电子控制单元响应所述编程模式命令所发送的第一响应信息,所述响应信息用于指示所述电子控制单元已经进入编程模式;
第二发送单元,用于向处于所述编程模式的所述电子控制单元发送驱动数据下载命令;
第二接收单元,用于接收所述电子控制单元响应所述驱动数据下载命令所发送的第二响应信息,所述第二响应信息用于指示所述电子控制单元已经接收到所述驱动数据下载命令;
第三发送单元,用于向所述电子控制单元发送与所述电子控制单元对应的驱动数据,所述驱动数据用于对所述电子控制单元中的应用程序进行更新。
优选地,还包括:
第四发送单元,用于向所述电子控制单元发送擦除命令,所述擦除命令携带擦除起始地址和擦除长度,所述擦除命令用于使所述电子控制单元,调用所述驱动数据中的擦除接口,对第一存储空间中的应用程序执行擦除操作,所述第一存储空间为依据所处擦除起始地址和所述擦除长度构成的存储空间。
优选地,还包括:
第五发送单元,用于向所述电子控制单元发送请求下载命令,所述请求下载命令携带数据写入起始地址和写入长度,所述请求下载命令用于使所述电子控制单元验证第二存储空间是否能写入数据,所述第二存储空间为依据所述写入起始地址和所述写入长度构成的存储空间。
优选地,还包括:
第六发送单元,用于向所述电子控制单元发送数据传输命令;
第七发送单元,用于在确定所述电子控制单元接收到所述数据传输命令后,向所述电子控制单元发送用于更新所述应用程序的数据,以使得所述电子控制单元调用所述驱动数据中的写入接口对所述第二存储空间执行写入操作。
本发明实施例所提供的技术方案,电子控制单元通过CANFD总线与重编程设备相连,重编程设备通过设置电子控制单元的编程模式,并使电子控制单元下载驱动数据,从而使电子控制单元可以调动驱动数据对应用程序进行更行,可见,本发明的方案通过重编程设备,以软件方式,实现了对电子控制单元的应用程序的更新,以此解决了以更换硬件的方式更新电子控制单元带来的成本高的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的一种应用程序的更新方法的一种流程示意图;
图2为本发明实施例所提供的一种应用程序的更新的另一种流程示意图;
图3为本发明实施例所提供的一种应用程序的更新装置的一种结构示意图;
图4为本发明实施例所提供的一种应用程序的更新装置的另一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本申请实施例提供的应用程序的更新方法的一种实现流程图,该方法应用于通过CANFD总线与电子控制单元相连的重编程设备,所述方法包括:
步骤S101、向所述电子控制单元发送编程模式命令;
本实施例采用重编程设备,对通过CANFD(CAN with Flexible Data-Rate,具有灵活数据速率的控制器局域网络总线)总线与该重编程设备相连的电子控制单元的应用程序进行更新,因此,在使电子控制单元进入重编程模式前,需要预先设置重编程设备和电子控制单元的波特率,且,需要保证设置的重编程设备的波特率和电子控制单元的波特率相同,所述波特率包括仲裁场波特率和数据场波特率。
另外,由于需要使用驱动数据才能完成对电子控制单元的应用程序的更新,所以,在使电子控制单元进入重编程模式前,还需要预先选择重编程设备中与电子控制单元对应的驱动数据,同理地,为了对重编程设备的身份进行验证以及对更新电子控制单元的应用程序的数据进行校验,还需要预先选择重编程设备中与电子控制单元对应的安全访问算法及校验算法。
由于重编程设备不能对处于非编程模式下的电子控制单元的应用程序进行更新,所以,在更新之前,重编程设备向电子控制单元发送重编程模式命令,当电子控制单元接收到该重编程模式命令后,根据预设策略判断是否能对应用程序进行更新,若是,则进入重编程模式,并向重编程设备发送第一肯定响应。
步骤S102、接收所述电子控制单元响应所述编程模式命令所发送的第一响应信息;
所述响应信息用于指示所述电子控制单元已经进入编程模式;
电子控制单元接收重编程设备发送的编程模式命令后,响应该编程模式命令,进入编程模式,并向重编程设备发送第一响应信息,以通知重编程设备电子控制单元已进入重编程模式。
步骤S103、向处于所述编程模式的所述电子控制单元发送驱动数据下载命令;
步骤S104、接收所述电子控制单元响应所述驱动数据下载命令所发送的第二响应信息,所述第二响应信息用于指示所述电子控制单元已经接收到所述驱动数据下载命令;
步骤S105、向所述电子控制单元发送与所述电子控制单元对应的驱动数据,所述驱动数据用于对所述电子控制单元中的应用程序进行更新。
由于在对电子控制单元的应用程序更新时,需要调用驱动数据才能完成对应用程序的读写擦操作,所以,在确定电子控制单元进入重编程模式后,向电子控制单元发送驱动数据下载命令,并在接收到所述电子控制单元发送的第二响应后,向电子控制单元发送与之对应的驱动数据,其中,第二响应指示所述重编程设备接收到所述驱动数据下载命令。
本发明实施例所提供的技术方案,电子控制单元通过CANFD总线与重编程设备相连,重编程设备通过设置电子控制单元的编程模式,并使电子控制单元下载驱动数据,从而使电子控制单元可以调动驱动数据对应用程序进行更新,可见,本发明的方案通过重编程设备,以软件方式,实现了对电子控制单元的应用程序的更新,以此解决了以更换硬件的方式更新电子控制单元带来的成本高的问题。进一步地,由于CANFD总线不仅带宽利用率高,且传输速率更快,所以,采用CANFD总线对电子控制单元的应用程序更新不仅解决了更换硬件电子控制单元所带来的成本高的问题,同时,对电子控制单元应用程序更新的效率也更高。
请参阅图2,图2为本申请实施例提供的应用程序的更新方法的另一种实现流程图,该方法应用于通过CANFD总线与电子控制单元相连的重编程设备,所述方法包括:
步骤S201、向所述电子控制单元发送编程模式命令;
步骤S202、接收所述电子控制单元响应所述编程模式命令所发送的第一响应信息,所述响应信息用于指示所述电子控制单元已经进入编程模式;
步骤S203、向处于所述编程模式的所述电子控制单元发送驱动数据下载命令;
步骤S204、接收所述电子控制单元响应所述驱动数据下载命令所发送的第二响应信息,所述第二响应信息用于指示所述电子控制单元已经接收到所述驱动数据下载命令;
步骤S205、向所述电子控制单元发送与所述电子控制单元对应的驱动数据;
所述驱动数据用于对所述电子控制单元中的应用程序进行更新,其中,对所述应用程序更新包括对应用程序的擦除及擦除后对擦除后的空间的数据的再写入;
步骤S201-S205的执行过程与上述实施例提供的步骤S101-S105的执行过程相同,有关步骤S201-S205的详细过程,请参见上述对步骤S101-S105的描述,在此不做赘述。
步骤S206、向所述电子控制单元发送请求种子命令;
步骤S207、接收所述电子控制单元依据所述请求种子命令所发送的种子,并依据所述种子,调用预设的与所述电子控制单元对应的安全访问算法计算第一密钥;
步骤S208、通过密钥解锁命令将所述密钥发送至所述电子控制单元,以使所述电子控制单元判断所述第一秘钥与第二秘钥是否相同,若是,则确定所述重编程设备的身份合法,所述第二秘钥为所述电子控制单元依据所述种子、调用自身的安全访问算法计算得到的秘钥;
为了防止非法设备对电子控制单元的应用程序的篡改,本实施例增加了步骤S206-S208对重编程设备的身份进行验证的过程。
当电子控制单元接收到重编程设备发送的密钥后,会将该密钥与通过自身的安全访问算法计算的密钥进行比较,若比较结果一致,则确定重编程设备的身份合法,并向重编程设备发送肯定响应。
步骤S209、向所述电子控制单元发送擦除命令;
所述擦除命令携带擦除起始地址和擦除长度,所述擦除命令用于使所述电子控制单元,调用所述驱动数据中的擦除接口,对第一存储空间中的应用程序执行擦除操作,所述第一存储空间为依据所处擦除起始地址和所述擦除长度构成的存储空间。
当电子控制单元对第一存储空间中的应用程序执行擦除操作后,会向重编程设备发送肯定响应。
步骤S210、向所述电子控制单元发送请求下载命令;
所述请求下载命令携带数据写入起始地址和写入长度,所述请求下载命令用于使所述电子控制单元验证第二存储空间是否能写入数据,所述第二存储空间为依据所述写入起始地址和所述写入长度构成的存储空间。
由于向电子控制单元请求写入的地址空间与擦除的地址空间并不一定相同,所以,需要在向电子控制单元发送写入的数据之前验证请求写入的地址空间是否能写入数据。如,通过擦除命令所擦除的地址空间的地址为100~200,当第二存储空间的地址不为100~200时,说明不能在电子控制单元的第二存储空间写入数据,从而也就不能完成对电子控制单元的应用程序的更新。
当验证第二存储空间能写入数据时,电子控制单元会向重编程设备发送肯定响应。
步骤S211、向所述电子控制单元发送数据传输命令;
步骤S212、在确定所述电子控制单元接收到所述数据传输命令后,向所述电子控制单元发送用于更新所述应用程序的数据,以使得所述电子控制单元调用所述驱动数据中的写入接口对所述第二存储空间执行写入操作。
电子控制单元接收到所述数据传输命令后,会向重编程设备发送肯定响应,以使得重编程设备向电子控制单元发送数据。
步骤S213、依据向所述电子控制单元发送的所述数据,调用预设的与所述电子控制单元对应的校验算法,获得第一数据校验和信息;
步骤S214、向所述电子控制单元发送数据完整性校验命令,所述数据完整性校验命令携带所述第一数据校验和信息,以使得所述电子控制单元判断所述第一数据校验和信息与第二数据校验和信息是否相同,若是,则确定所述数据完整,所述第二数据校验和信息为所述电子控制单元依据所述数据、调用自身的校验算法计算得到的数据校验和信息。
为了验证电子控制单元所写入的数据与重编程设备发送的数据一致,即实现数据的完整性校验,当在第二存储空间中写入数据后,电子控制单元重新从第二存储空间中读取所写入的数据,并调用自身的校验算法,计算所读取的数据的数据校验和信息,进而将该数据检验和信息与重编程设备发送来的数据校验和信息进行比较,若比较结果一致,则向重编程设备发送肯定响应。
数据完整性校验结束后,重编程工具可以向电子控制单元发送结束编程命令,从而使电子控制单元退出编程模式,并向重编程设备发送肯定响应。
本发明实施例所提供的技术方案,电子控制单元通过CANFD总线与重编程设备相连,重编程设备通过设置电子控制单元的编程模式,并使电子控制单元下载驱动数据,从而使电子控制单元可以调动驱动数据对应用程序进行擦写的操作,可见,本发明的方案通过重编程设备,以软件方式,实现了对电子控制单元的应用程序的更新,以此解决了以更换硬件的方式更新电子控制单元带来的成本高的问题。另外,在进行擦写操作前对重编程设备的身份的合法性进行了验证,保证了操作的合法性,在写操作后,对写入的数据进也行了完整性校验,进一步地,由于CANFD总线不仅带宽利用率高,且传输速率更快,所以,采用CANFD总线对电子控制单元的应用程序更新不仅解决了更换硬件电子控制单元所带来的成本高的问题,同时,对电子控制单元应用程序更新的效率也更高。
请参阅图3,图3为本申请实施例提供的应用程序更新装置的一种结构示意图,该装置结构示意图中的各单元的工作过程参照图1对应的实施例中方法的执行过程,该装置应用于通过CANFD总线与电子控制单元相连的重编程设备,该装置包括:
第一发送单元301,用于向所述电子控制单元发送编程模式命令;
第一接收单元302,用于接收所述电子控制单元响应所述编程模式命令所发送的第一响应信息,所述响应信息用于指示所述电子控制单元已经进入编程模式;
第二发送单元303,用于向处于所述编程模式的所述电子控制单元发送驱动数据下载命令;
第二接收单元304,用于接收所述电子控制单元响应所述驱动数据下载命令所发送的第二响应信息,所述第二响应信息用于指示所述电子控制单元已经接收到所述驱动数据下载命令;
第三发送单元305,用于向所述电子控制单元发送与所述电子控制单元对应的驱动数据,所述驱动数据用于对所述电子控制单元中的应用程序进行更新。
本发明实施例所提供的技术方案,电子控制单元通过CANFD总线与重编程设备相连,重编程设备通过设置电子控制单元的编程模式,并使电子控制单元下载驱动数据,从而使电子控制单元可以调动驱动数据对应用程序进行更新,可见,本发明的方案通过重编程设备,以软件方式,实现了对电子控制单元的应用程序的更新,以此解决了以更换硬件的方式更新电子控制单元带来的成本高的问题。进一步地,由于CANFD总线不仅带宽利用率高,且传输速率更快,所以,采用CANFD总线对电子控制单元的应用程序更新不仅解决了更换硬件电子控制单元所带来的成本高的问题,同时,对电子控制单元应用程序更新的效率也更高。
请参阅图4,图4为本申请实施例提供的应用程序更新装置的一种结构示意图,该装置结构示意图中的各单元的工作过程参照图2对应的实施例中方法的执行过程,该装置应用于通过CANFD总线与电子控制单元相连的重编程设备,该装置包括:
第一发送单元401,用于向所述电子控制单元发送编程模式命令;
第一接收单元402,用于接收所述电子控制单元响应所述编程模式命令所发送的第一响应信息,所述响应信息用于指示所述电子控制单元已经进入编程模式;
第二发送单元403,用于向处于所述编程模式的所述电子控制单元发送驱动数据下载命令;
第二接收单元404,用于接收所述电子控制单元响应所述驱动数据下载命令所发送的第二响应信息,所述第二响应信息用于指示所述电子控制单元已经接收到所述驱动数据下载命令;
第三发送单元405,用于向所述电子控制单元发送与所述电子控制单元对应的驱动数据,所述驱动数据用于对所述电子控制单元中的应用程序进行更新;
第八发送单元406,用于向所述电子控制单元发送请求种子命令;
第三接收单元407,用于接收所述电子控制单元依据所述请求种子命令所发送的种子,并依据所述种子,调用预设的与所述电子控制单元对应的安全访问算法计算第一密钥;
第九发送单元408,用于通过密钥解锁命令将所述密钥发送至所述电子控制单元,以使所述电子控制单元判断所述第一秘钥与第二秘钥是否相同,若是,则确定所述重编程设备的身份合法,所述第二秘钥为所述电子控制单元依据所述种子、调用自身的安全访问算法计算得到的秘钥;
第四发送单元409,用于向所述电子控制单元发送擦除命令,所述擦除命令携带擦除起始地址和擦除长度,所述擦除命令用于使所述电子控制单元,调用所述驱动数据中的擦除接口,对第一存储空间中的应用程序执行擦除操作,所述第一存储空间为依据所处擦除起始地址和所述擦除长度构成的存储空间;
第五发送单元410,用于向所述电子控制单元发送请求下载命令,所述请求下载命令携带数据写入起始地址和写入长度,所述请求下载命令用于使所述电子控制单元验证第二存储空间是否能写入数据,所述第二存储空间为依据所述写入起始地址和所述写入长度构成的存储空间;
第六发送单元411,用于向所述电子控制单元发送数据传输命令;
第七发送单元412,用于在确定所述电子控制单元接收到所述数据传输命令后,向所述电子控制单元发送用于更新所述应用程序的数据,以使得所述电子控制单元调用所述驱动数据中的写入接口对所述第二存储空间执行写入操作;
计算单元413,用于依据向所述电子控制单元发送的所述数据,调用预设的与所述电子控制单元对应的校验算法,获得第一数据校验和信息;
第十发送单元414,用于向所述电子控制单元发送数据完整性校验命令,所述数据完整性校验命令携带所述第一数据校验和信息,以使得所述电子控制单元判断所述第一数据校验和信息与第二数据校验和信息是否相同,若是,则确定所述数据完整,所述第二数据校验和信息为所述电子控制单元依据所述数据、调用自身的校验算法计算得到的数据校验和信息。。
本发明实施例所提供的技术方案,电子控制单元通过CANFD总线与重编程设备相连,重编程设备通过设置电子控制单元的编程模式,并使电子控制单元下载驱动数据,从而使电子控制单元可以调动驱动数据对应用程序进行擦写的操作,可见,本发明的方案通过重编程设备,以软件方式,实现了对电子控制单元的应用程序的更新,以此解决了以更换硬件的方式更新电子控制单元带来的成本高的问题。另外,在进行擦写操作前对重编程设备的身份的合法性进行了验证,保证了操作的合法性,在写操作后,对写入的数据进也行了完整性校验,进一步地,由于CANFD总线不仅带宽利用率高,且传输速率更快,所以,采用CANFD总线对电子控制单元的应用程序更新不仅解决了更换硬件电子控制单元所带来的成本高的问题,同时,对电子控制单元应用程序更新的效率也更高。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。