CN104834286A - 一种重编程方法、系统、重编程设备及电子控制单元 - Google Patents

一种重编程方法、系统、重编程设备及电子控制单元 Download PDF

Info

Publication number
CN104834286A
CN104834286A CN201510144548.8A CN201510144548A CN104834286A CN 104834286 A CN104834286 A CN 104834286A CN 201510144548 A CN201510144548 A CN 201510144548A CN 104834286 A CN104834286 A CN 104834286A
Authority
CN
China
Prior art keywords
reprogrammed
electronic control
control module
target electronic
order
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.)
Granted
Application number
CN201510144548.8A
Other languages
English (en)
Other versions
CN104834286B (zh
Inventor
尚鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingwei Hirain Tech Co Ltd
Original Assignee
Beijing Jingwei Hirain Tech Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingwei Hirain Tech Co Ltd filed Critical Beijing Jingwei Hirain Tech Co Ltd
Priority to CN201510144548.8A priority Critical patent/CN104834286B/zh
Publication of CN104834286A publication Critical patent/CN104834286A/zh
Application granted granted Critical
Publication of CN104834286B publication Critical patent/CN104834286B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/4185Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication
    • G05B19/4186Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication by protocol, e.g. MAP, TOP
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Selective Calling Equipment (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种重编程方法、系统、重编程设备及电子控制单元,重编程设备与目标电子控制单元建立连接后,首先重编程设备对目标电子控制单元进行安全访问,在目标电子控制单元由当前的刷写功能状态转变为解锁状态后,重编程设备对目标电子控制单元中的应用程序进行擦除重编程,并在应用程序重编程完成后,利用由编程数据得到的校验和对目标电子控制单元下载数据的完整性和正确性进行校验,并在确定校验和通过后,告知相应的目标电子控制单元。重编程设备和目标电子控制单元信息交互过程采用的命令为CAN标定协议预先定义的命令,因此实现了在基于CAN标定协议的基础上对重编程过程进行完善,解决了重编程功能不完善、操作过程繁琐等问题。

Description

一种重编程方法、系统、重编程设备及电子控制单元
技术领域
本发明涉及重编程技术领域,更具体的说,涉及一种重编程方法、系统、重编程设备及电子控制单元。
背景技术
随着汽车电子产业的高速发展,越来越多的电子控制单元被装载到机动车辆上,各电子控制单元之间保持着高速稳定的通信,其中最普遍的通信方式为CAN(Controller Area Network,控制器局域网络)总线通信。CAN总线在机动车辆上的广泛应用,使得衍生出多种基于该总线的标准协议,比如,CAN标定协议。
CAN标定协议主要应用在电子控制单元开发阶段中的标定阶段,在标定过程中,标定工程师经常会携带多个版本的应用程序数据文件,然后根据自己的需要更新相应版本的应用程序。标定过程一般在台架或实车环境,而此时,电子控制单元已经被安装外壳并且装配在执行器上,因此需要通过基于CAN标定协议的重编程方法对电子控制单元进行重编程。
由于CAN标定协议本身的一些局限性,使目标电子控制单元无法确认重编程程序是否完整地下载,下载的重编程程序是否正确,因此,亟需一种可靠的重编程方法及系统在基于CAN标定协议的基础上对重编程过程进行完善,以解决因重编程程序下载不完全或是下载错误而导致的重编程功能不完善、操作过程繁琐等问题。
发明内容
有鉴于此,本发明提供一种重编程方法、系统、重编程设备及电子控制单元,以实现在基于CAN标定协议的基础上对重编程过程进行完善,解决因重编程程序下载不完全或是下载错误而导致的重编程功能不完善、操作过程繁琐等问题。
一种重编程方法,包括:
向所有目标电子控制单元发送连接Connect命令,所述Connect命令携带有重编程请求指示和与各目标电子控制单元对应的逻辑地址;
接收各在线的目标电子控制单元反馈的连接肯定响应,与各在线的目标电子控制单元建立连接,所述连接肯定响应由各在线的目标电子控制单元确定当前需要重编程后生成;
依次对每一个在线的目标电子控制单元中的应用程序进行重编程,重编程过程具体包括:
向所述目标电子控制单元发送包含刷写功能请求掩码的请求种子GetSeed命令;
接收所述目标电子控制单元通过响应报文反馈的种子,所述响应报文由所述目标电子控制单元判定刷写功能符合安全访问要求后生成;
利用安全访问算法计算所述种子对应的密钥;
将所述密钥通过密钥解锁Unlock命令发送给所述目标电子控制单元;
接收所述目标电子控制单元发送的密钥正确肯定响应和功能状态掩码,所述密钥正确肯定响应由所述目标电子控制单元在判定所述密钥符合预设要求后生成,所述功能状态掩码表征所述目标电子控制单元已将当前的刷写功能状态转变为解锁状态;
向所述目标电子控制单元发送指针放置SetMta命令和擦除ClearMemory命令,使所述目标电子控制单元从控制器局域网络CAN标定协议中MTA指针指向的应用程序擦除的首地址开始,擦除与所述ClearMemory命令相同的数据长度;
接收所述目标电子控制单元发送的擦除肯定响应,所述擦除肯定响应由所述目标电子控制单元在判定利用所述首地址和所述数据长度得到的擦除长度没有超过所述应用程序地址长度范围后发送;
向所述目标电子控制单元发送SetMta命令和Program/Program_6命令,使所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程;
利用校验算法计算编程数据的第一校验和;
获取所述目标电子控制单元发送的第二校验和,所述第二校验和由所述目标电子控制单元在重编程完成后对编程数据利用校验算法计算得到;
判断所述第一校验和与所述第二校验和是否相等;
若所述第一校验和与所述第二校验和相等,则向所述目标电子控制单元发送校验和通过的提示信息。
优选的,在若所述第一校验和与所述第二校验和相等,则向所述目标电子控制单元发送校验和通过的提示信息之后,还包括:
向所述目标电子控制单元发送断开连接Disconnect命令,与所述目标电子控制单元断开连接,所述Disconnect命令中携带有与所述目标电子控制单元对应的逻辑地址。
优选的,在向所述目标电子控制单元发送SetMta命令和Program/Program_6命令,使所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程包括:
将连续的重编程数据作为一个数据段,判断所述数据段中未进行编程的数据长度是否大于预设字节数;
若所述数据长度大于所述预设字节数,则向所述目标电子控制单元发送SetMta命令和Program_6命令;
若所述数据长度不大于所述预设字节数,则向所述目标电子控制单元发送SetMta命令和Program命令。
一种重编程方法,包括:
接收重编程设备发送的Connect命令,所述Connect命令携带有重编程请求指示和接收所述Connect命令的电子控制单元的逻辑地址;
在确定当前需要重编程后,向所述重编程设备反馈连接肯定响应,与所述重编程设备建立连接;
接收所述重编程设备发送的包含刷写功能请求掩码的GetSeed命令;
在确定刷写功能符合安全访问要求后,将种子通过响应报文反馈给所述重编程设备;
接收所述重编程设备通过Unlock命令发送的密钥,所述密钥由所述重编程设备利用安全访问算法计算所述种子后得到;
在判定所述密钥符合预设要求后,向所述重编程设备发送密钥正确肯定响应和功能状态掩码,所述功能状态掩码表征已将当前的刷写功能状态转变为解锁状态;
接收所述重编程设备发送的SetMta命令和ClearMemory命令,并从CAN标定协议中MTA指针指向的应用程序擦除的首地址开始,擦除与所述ClearMemory命令相同的数据长度;
在判定利用所述首地址和所述数据长度得到的擦除长度没有超过所述应用程序地址长度范围后,向所述重编程设备发送擦除肯定响应;
接收所述重编程设备发送的SetMta命令和Program/Program_6命令,控制所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程;
在重编程完成后,对编程数据利用校验算法计算得到第二校验和;
将所述第二校验和发送给所述重编程设备,使所述重编程设备判定所述第二校验和和第一校验和是否相等,所述第一校验和由所述重编程设备利用校验算法计算编程数据得到;
接收所述重编程设备发送的校验和通过的提示信息,所述校验和通过的提示信息由所述重编程设备判定所述第一校验和与所述第二校验和相等后生成。
优选的,在接收所述重编程设备发送的校验和通过的提示信息之后,还包括:
接收所述重编程设备发送的Disconnect命令,与所述重编程设备断开连接,所述Disconnect命令中携带有接收所述Disconnect命令的目标电子控制单元的逻辑地址。
一种重编程设备,包括:
发送单元,用于向所有目标电子控制单元发送连接Connect命令,所述Connect命令携带有重编程请求指示和与各目标电子控制单元对应的逻辑地址;
连接单元,用于接收各在线的目标电子控制单元反馈的连接肯定响应,与各在线的目标电子控制单元建立连接,所述连接肯定响应由各在线的目标电子控制单元确定当前需要重编程后生成;
重编程单元,用于依次对每一个在线的目标电子控制单元中的应用程序进行重编程,重编程过程具体包括:
向所述目标电子控制单元发送包含刷写功能请求掩码的请求种子GetSeed命令;
接收所述目标电子控制单元通过响应报文反馈的种子,所述响应报文由所述目标电子控制单元判定刷写功能符合安全访问要求后生成;
利用安全访问算法计算所述种子对应的密钥;
将所述密钥通过密钥解锁Unlock命令发送给所述目标电子控制单元;
接收所述目标电子控制单元发送的密钥正确肯定响应和功能状态掩码,所述密钥正确肯定响应由所述目标电子控制单元在判定所述密钥符合预设要求后生成,所述功能状态掩码表征所述目标电子控制单元已将当前的刷写功能状态转变为解锁状态;
向所述目标电子控制单元发送指针放置SetMta命令和擦除ClearMemory命令,使所述目标电子控制单元从控制器局域网络CAN标定协议中MTA指针指向的应用程序擦除的首地址开始,擦除与所述ClearMemory命令相同的数据长度;
接收所述目标电子控制单元发送的擦除肯定响应,所述擦除肯定响应由所述目标电子控制单元在判定利用所述首地址和所述数据长度得到的擦除长度没有超过所述应用程序地址长度范围后发送;
向所述目标电子控制单元发送SetMta命令和Program/Program_6命令,使所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程;
利用校验算法计算编程数据的第一校验和;
获取所述目标电子控制单元发送的第二校验和,所述第二校验和由所述目标电子控制单元在重编程完成后对编程数据利用校验算法计算得到;
判断所述第一校验和与所述第二校验和是否相等;
若所述第一校验和与所述第二校验和相等,则向所述目标电子控制单元发送校验和通过的提示信息。
一种电子控制单元,包括:
第一接收单元,用于接收重编程设备发送的Connect命令,所述Connect命令携带有重编程请求指示和接收所述Connect命令的电子控制单元的逻辑地址;
第一反馈单元,用于在确定当前需要重编程后,向所述重编程设备反馈连接肯定响应,与所述重编程设备建立连接;
第二接收单元,用于接收所述重编程设备发送的包含刷写功能请求掩码的GetSeed命令;
第二反馈单元,用于在确定刷写功能符合安全访问要求后,将种子通过响应报文反馈给所述重编程设备;
第三接收单元,用于接收所述重编程设备通过Unlock命令发送的密钥,所述密钥由所述重编程设备利用安全访问算法计算所述种子后得到;
第一发送单元,用于在判定所述密钥符合预设要求后,向所述重编程设备发送密钥正确肯定响应和功能状态掩码,所述功能状态掩码表征已将当前的刷写功能状态转变为解锁状态;
擦除单元,用于接收所述重编程设备发送的SetMta命令和ClearMemory命令,并从CAN标定协议中MTA指针指向的应用程序擦除的首地址开始,擦除与所述ClearMemory命令相同的数据长度;
第二发送单元,用于在判定利用所述首地址和所述数据长度得到的擦除长度没有超过所述应用程序地址长度范围后,向所述重编程设备发送擦除肯定响应;
第四接收单元,用于接收所述重编程设备发送的SetMta命令和Program/Program_6命令,控制所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程;
计算单元,用于在重编程完成后,对编程数据利用校验算法计算得到第二校验和;
第三发送单元,用于将所述第二校验和发送给所述重编程设备,使所述重编程设备判定所述第二校验和和第一校验和是否相等,所述第一校验和由所述重编程设备利用校验算法计算编程数据得到;
第五接收单元,用于接收所述重编程设备发送的校验和通过的提示信息,所述校验和通过的提示信息由所述重编程设备判定所述第一校验和与所述第二校验和相等后生成。
优选的,还包括:
第六接收单元,用于在所述第五接收单元收所述重编程设备发送的校验和通过的提示信息之后,接收所述重编程设备发送的Disconnect命令,与所述重编程设备断开连接,所述Disconnect命令中携带有接收所述Disconnect命令的目标电子控制单元的逻辑地址。
一种重编程系统,包括:重编程设备和与所述重编程设备相连接的至少一个电子控制单元;
所述重编程设备,用于向所有目标电子控制单元发送连接Connect命令,所述Connect命令携带有重编程请求指示和与各目标电子控制单元对应的逻辑地址;接收各在线的目标电子控制单元反馈的连接肯定响应,与各在线的目标电子控制单元建立连接,所述连接肯定响应由各在线的目标电子控制单元确定当前需要重编程后生成;依次对每一个在线的目标电子控制单元中的应用程序进行重编程,重编程过程具体包括:向所述目标电子控制单元发送包含刷写功能请求掩码的请求种子GetSeed命令;接收所述目标电子控制单元通过响应报文反馈的种子,所述响应报文由所述目标电子控制单元判定刷写功能符合安全访问要求后生成;利用安全访问算法计算所述种子对应的密钥;将所述密钥通过密钥解锁Unlock命令发送给所述目标电子控制单元;接收所述目标电子控制单元发送的密钥正确肯定响应和功能状态掩码,所述密钥正确肯定响应由所述目标电子控制单元在判定所述密钥符合预设要求后生成,所述功能状态掩码表征所述目标电子控制单元已将当前的刷写功能状态转变为解锁状态;向所述目标电子控制单元发送指针放置SetMta命令和擦除ClearMemory命令,使所述目标电子控制单元从控制器局域网络CAN标定协议中MTA指针指向的应用程序擦除的首地址开始,擦除与所述ClearMemory命令相同的数据长度;接收所述目标电子控制单元发送的擦除肯定响应,所述擦除肯定响应由所述目标电子控制单元在判定利用所述首地址和所述数据长度得到的擦除长度没有超过所述应用程序地址长度范围后发送;向所述目标电子控制单元发送SetMta命令和Program/Program_6命令,使所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程;利用校验算法计算编程数据的第一校验和;获取所述目标电子控制单元发送的第二校验和,所述第二校验和由所述目标电子控制单元在重编程完成后对编程数据利用校验算法计算得到;判断所述第一校验和与所述第二校验和是否相等;若所述第一校验和与所述第二校验和相等,则向所述目标电子控制单元发送校验和通过的提示信息;
所述电子控制单元,用于接收重编程设备发送的Connect命令,所述Connect命令携带有重编程请求指示和接收所述Connect命令的电子控制单元的逻辑地址;在确定当前需要重编程后,向所述重编程设备反馈连接肯定响应,与所述重编程设备建立连接;接收所述重编程设备发送的包含刷写功能请求掩码的GetSeed命令;在确定刷写功能符合安全访问要求后,将种子通过响应报文反馈给所述重编程设备;接收所述重编程设备通过Unlock命令发送的密钥,所述密钥由所述重编程设备利用安全访问算法计算所述种子后得到;在判定所述密钥符合预设要求后,向所述重编程设备发送密钥正确肯定响应和功能状态掩码,所述功能状态掩码表征已将当前的刷写功能状态转变为解锁状态;接收所述重编程设备发送的SetMta命令和ClearMemory命令,并从CAN标定协议中MTA指针指向的应用程序擦除的首地址开始,擦除与所述ClearMemory命令相同的数据长度;在判定利用所述首地址和所述数据长度得到的擦除长度没有超过所述应用程序地址长度范围后,向所述重编程设备发送擦除肯定响应;接收所述重编程设备发送的SetMta命令和Program/Program_6命令,控制所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程;在重编程完成后,对编程数据利用校验算法计算得到第二校验和;将所述第二校验和发送给所述重编程设备,使所述重编程设备判定所述第二校验和和第一校验和是否相等,所述第一校验和由所述重编程设备利用校验算法计算编程数据得到;接收所述重编程设备发送的校验和通过的提示信息,所述校验和通过的提示信息由所述重编程设备判定所述第一校验和与所述第二校验和相等后生成。
从上述的技术方案可以看出,本发明提供了一种重编程方法、系统、重编程设备及电子控制单元,重编程设备与目标电子控制单元建立连接后,首先重编程设备对目标电子控制单元进行安全访问,在目标电子控制单元由当前的刷写功能状态转变为解锁状态后,重编程设备对目标电子控制单元中的应用程序进行擦除重编程,并在应用程序重编程完成后,利用由编程数据得到的校验和对目标电子控制单元下载数据的完整性和正确性进行校验,并在确定校验和通过后,告知相应的目标电子控制单元。本发明中,重编程设备和目标电子控制单元信息交互过程采用的命令为CAN标定协议预先定义的命令,因此本发明实现了在基于CAN标定协议的基础上对重编程过程进行了完善,解决了因重编程程序下载不完全或是下载错误而导致的重编程功能不完善、操作过程繁琐等问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种重编程方法流程图;
图2为本发明实施例公开的一种应用程序的重编程方法流程图;
图3为本发明实施例公开的另一种重编程方法流程图;
图4为本发明实施例公开的一种重编程设备的结构示意图;
图5为本发明实施例公开的一种电子控制单元的结构示意图;
图6为本发明实施例公开的一种重编程系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种重编程方法、系统、重编程设备及电子控制单元,以实现在基于CAN标定协议的基础上对重编程过程进行完善,解决因重编程程序下载不完全或是下载错误而导致的重编程功能不完善、操作过程繁琐等问题。
参见图1,本发明实施例公开的一种重编程方法流程图,该方法应用于重编程设备,包括:
步骤S11、向所有目标电子控制单元发送Connect命令;
其中,Connect命令即为连接命令,用来使重编程设备与目标电子控制单元连接,Connect命令携带有重编程请求指示和与各目标电子控制单元对应的逻辑地址,重编程请求指示用于告知目标电子控制单元连接时重编程设备是否有重编程请求,逻辑地址用于区分不同的目标电子控制单元。
步骤S12、接收各在线的目标电子控制单元反馈的连接肯定响应,与各在线的目标电子控制单元建立连接;
其中,所述连接肯定响应由各在线的目标电子控制单元确定当前需要重编程后生成。目标电子控制单元根据自身当前状况进行判断,如果当前在重编程程序中运行,则直接根据在线情况向重编程设备反馈连接肯定响应;如果当前在应用程序中运行,则需要先进行复位,由在应用程序中运行转为在重编程程序中运行,然后再根据当前的在线情况向重编程设备反馈连接肯定响应。
若在线的目标电子控制单元确定当前不需要重编程,则向重编程设备反馈连接否定响应。
步骤S13、依次对每一个在线的目标电子控制单元中的应用程序进行重编程,重编程过程具体参见图2,本发明实施例公开的一种应用程序的重编程方法流程图,包括:
步骤S131、向所述目标电子控制单元发送包含刷写功能请求掩码的GetSeed命令;
其中,GetSeed命令即为请求种子命令,用来使重编程设备向目标电子控制单元获取种子。
GetSeed命令包含一条功能请求掩码,分别表示对数据采集、标定和刷写功能进行安全访问请求,本申请中只需对刷写功能进行访问请求。
步骤S132、接收所述目标电子控制单元通过响应报文反馈的种子;
所述响应报文由所述目标电子控制单元判定刷写功能符合安全访问要求后生成。当目标电子控制单元判定刷写功能不符合安全访问要求时,会向重编程设备反馈否定响应并终止整个流程。
步骤S133、利用安全访问算法计算所述种子对应的密钥;
步骤S134、将所述密钥通过Unlock命令发送给所述目标电子控制单元;
Unlock命令即为密钥解锁命令,用于使重编程设备根据种子计算得到的密钥发送给对应的目标电子控制单元。
步骤S135、接收所述目标电子控制单元发送的密钥正确肯定响应和功能状态掩码;
所述密钥正确肯定响应由所述目标电子控制单元在判定所述密钥符合预设要求后生成,具体为目标电子控制单元将接收到的密钥和利用自身的安全访问算法计算得到的密钥进行比较,并在两个密钥相同时认定安全访问通过,从而向重编程设备发送密钥正确肯定响应。
所述功能状态掩码表征所述目标电子控制单元已将当前的刷写功能状态转变为解锁状态,若重编程设备没有接收到功能状态掩码,则表明整个流程已结束。
当目标电子控制单元判定所述密钥不合符预设要求时,则向重编程设备发送否定响应。
步骤S136、向所述目标电子控制单元发送SetMta命令和ClearMemory命令,使所述目标电子控制单元从CAN标定协议中MTA指针指向的应用程序擦除的首地址开始,擦除与所述ClearMemory命令相同的数据长度;
SetMta命令即为指针放置命令,主要作用是告知目标电子控制单元需要将CAN标定协议中MTA指针指向某一地址,目标电子控制单元将MTA指针具体指向某地址主要由于下一条命令需要通过该地址执行操作,所以一般SetMta命令是需要配套使用的。
ClearMemory命令即为擦除命令,用于对应用程序中的原程序进行擦除,进行擦除操作一般需要擦除的首地址以及擦除数据长度信息,首地址信息在SetMta命令中已获取,数据长度信息则是通过ClearMemory命令进行传输。
本步骤中,SetMta命令的MTA指针指向应用程序擦除的首地址,用于配合ClearMemory命令的操作,因此重编程设备需要向目标电子控制单元同时发送SetMta命令和ClearMemory命令。
步骤S137、接收所述目标电子控制单元发送的擦除肯定响应;
所述擦除肯定响应由所述目标电子控制单元在判定利用所述首地址和所述数据长度得到的擦除长度没有超过所述应用程序地址长度范围后发送,否则向重编程设备反馈否定响应。
步骤S138、向所述目标电子控制单元发送SetMta命令和Program/Program_6命令,使所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程;
本步骤中,SetMta命令的MTA
指针指向应用程序编程的首地址,用于配合Program/Program_6命令的操作,因此重编程设备需要向目标电子控制单元同时发送SetMta命令和Program/Program_6命令。
步骤S139、利用校验算法计算编程数据的第一校验和;
本申请采用的校验算法为32位循环冗余校验算法,简称CRC32,当然,也可以采用其它的算法,本发明在此不做限定。
步骤S140、获取所述目标电子控制单元发送的第二校验和;
所述第二校验和由所述目标电子控制单元在重编程完成后对编程数据利用校验算法计算得到。
具体的,目标电子控制单元接收到重编程设备发送的SetMta命令和BuildChksum命令后,对编程数据利用校验算法计算得到第二校验和。
BuildChksum命令即为建立校验和命令,BuildChksum命令中包含了一次需要进行校验的数据长度,再加上SetMta命令传递的地址信息,则可以对该长度的数据进行校验。
若有多组待校验数据,则每校验完一组待校验数据后,需再次接收到重编程设备发送的SetMta命令和BuildChksum命令后,才可对下一组待校验数据进行校验,直到所有重编程的数据校验完毕。
步骤S141、判断所述第一校验和与所述第二校验和是否相等,如果是,则执行步骤S142;
步骤S142、向所述目标电子控制单元发送校验和通过的提示信息。
综上可以看出,重编程设备与目标电子控制单元建立连接后,首先重编程设备对目标电子控制单元进行安全访问,在目标电子控制单元由当前的刷写功能状态转变为解锁状态后,重编程设备对目标电子控制单元中的应用程序进行擦除重编程,并在应用程序重编程完成后,利用由编程数据得到的校验和对目标电子控制单元下载数据的完整性和正确性进行校验,并在确定校验和通过后,告知相应的目标电子控制单元。本发明中,重编程设备和目标电子控制单元信息交互过程采用的命令为CAN标定协议预先定义的命令,因此本发明实现了在基于CAN标定协议的基础上对重编程过程进行了完善,解决了因重编程程序下载不完全或是下载错误而导致的重编程功能不完善、操作过程繁琐等问题。
为进一步优化上述实施例,在步骤S142之后,还包括:
向所述目标电子控制单元发送Disconnect命令,与所述目标电子控制单元断开连接。
Disconnect命令即为断开连接命令,表示重编程设备和目标电子控制单元断开连接,表示流程结束。Disconnect命令中携带有与目标电子控制单元对应的逻辑地址,用于区分不同的目标电子控制单元。
在校验阶段过后,重编程设备通过Disconnect命令将校验结果发送给对应的目标电子控制单元,若传输的逻辑地址正确,则对应的目标电子控制单元会与重编程设备断开连接并发送肯定响应,否则发送否定响应并终止流程。
断开连接后的目标电子控制单元接收到重编程设备发送的校验和通过的提示信息后,会将应用程序标识为有效并进行复位,然后整个系统进行启动并引导运行应用程序。
其中,重编程设备向目标电子控制单元发送校验和通过的提示信息也是通过Disconnect命令发送。
在上述流程架构的指导下,应用程序已经能够完整地下载到目标电子控制单元中。在实际应用中经常还有一种需求,当应用程序只有一部分需要更新时,采用上述方法可以只更新其所在块的数据,不必更新整个应用程序,从而节约了更新数据的时间。
需要说明的是,本申请提供的重编程方法除可以解决CAN标定协议的局限性外,还可以满足“程序分割独立下载”和“多节点下载”等应用方面的需求,也就是说,本申请提供的重编程方法具有兼容性强的优点。
为进一步优化上述实施例,步骤S138具体包括:
将连续的重编程数据作为一个数据段,判断所述数据段中未进行编程的数据长度是否大于预设字节数,如果是,则向所述目标电子控制单元发送SetMta命令和Program_6命令,否则,向所述目标电子控制单元发送SetMta命令和Program命令。
具体的,假设预设字节数为6字节,则若数据段中还未进行编程的数据长度大于6字节,则使用Program_6命令进行编程操作,该命令依次能够进行6字节数据的编程;若数据段中未进行编程的数据长度不大于6字节,则使用Program命令进行编程操作,该命令中有一个字节表示数据长度,该数据长度与数据段中剩余的数据长度相等,表示进行当前数据段中最后一组数据的编程任务。目标电子控制单元收到SetMta命令和Program_6/Program命令后进行编程以及下一条SetMta命令和Program_6/Program命令的MTA指针的偏移计算,如果编程成功,则回复下一次MTA指针的数值及肯定响应,否则进行否定响应并终止流程。
需要说明的是,数据段包括两种:一种当重编程数据为连续数据时,将整个重编程数据作为一个数据段;另一种是当重编程数据为非连续数据时,将重编程数据分成多个数据段,每个数据段中为连续的数据。
需要说明的是,上述实施例中,若重编程设备接收到目标电子控制单元发送的否定响应后,会向对应的目标电子控制单元发送Disconnect命令,目标电子控制单元接收到该Disconnect命令后进行复位重启。
参见图3,本发明实施例公开的另一种重编程方法流程图,该方法应用于电子控制单元,包括:
步骤S21、接收重编程设备发送的Connect命令;
其中,Connect命令即为连接命令,用来使重编程设备与目标电子控制单元连接,Connect命令携带有重编程请求指示和与各目标电子控制单元对应的逻辑地址,重编程请求指示用于告知目标电子控制单元连接时重编程设备是否有重编程请求,逻辑地址用于区分不同的目标电子控制单元。
步骤S22、在确定当前需要重编程后,向所述重编程设备反馈连接肯定响应,与所述重编程设备建立连接;
电子控制单元根据自身当前状况进行判断,如果当前在重编程程序中运行,则直接根据在线情况向重编程设备反馈连接肯定响应;如果当前在应用程序中运行,则需要先进行复位,由在应用程序中运行转为在重编程程序中运行,然后再根据当前的在线情况向重编程设备反馈连接肯定响应。
步骤S23、接收所述重编程设备发送的包含刷写功能请求掩码的GetSeed命令;
其中,GetSeed命令即为请求种子命令,用来使重编程设备向目标电子控制单元获取种子。
步骤S24、在确定刷写功能符合安全访问要求后,将种子通过响应报文反馈给所述重编程设备;
步骤S25、接收所述重编程设备通过Unlock命令发送的密钥;
所述密钥由所述重编程设备利用安全访问算法计算所述种子后得到。
Unlock命令即为密钥解锁命令,用于使重编程设备根据种子计算得到的密钥发送给对应的目标电子控制单元。
步骤S26、在判定所述密钥符合预设要求后,向所述重编程设备发送密钥正确肯定响应和功能状态掩码;
具体的,目标电子控制单元将接收到的密钥和利用自身的安全访问算法计算得到的密钥进行比较,并在两个密钥相同时认定安全访问通过,从而向重编程设备发送密钥正确肯定响应。
所述功能状态掩码表征目标电子控制单元已将当前的刷写功能状态转变为解锁状态,若重编程设备没有接收到功能状态掩码,则表明整个流程已结束。
步骤S27、接收所述重编程设备发送的SetMta命令和ClearMemory命令,并从CAN标定协议中MTA指针指向的应用程序擦除的首地址开始,擦除与所述ClearMemory命令相同的数据长度;
SetMta命令即为指针放置命令,主要作用是告知目标电子控制单元需要将CAN标定协议中MTA指针指向某一地址,目标电子控制单元将MTA指针具体指向某地址主要由于下一条命令需要通过该地址执行操作,所以一般SetMta命令是需要配套使用的。
ClearMemory命令即为擦除命令,用于对应用程序中的原程序进行擦除,进行擦除操作一般需要擦除的首地址以及擦除数据长度信息,首地址信息在SetMta命令中已获取,数据长度信息则是通过ClearMemory命令进行传输。
本步骤中,SetMta命令的MTA指针指向应用程序擦除的首地址,用于配合ClearMemory命令的操作,因此重编程设备需要向目标电子控制单元同时发送SetMta命令和ClearMemory命令。
步骤S28、在判定利用所述首地址和所述数据长度得到的擦除长度没有超过所述应用程序地址长度范围后,向所述重编程设备发送擦除肯定响应;
步骤S29、接收所述重编程设备发送的SetMta命令和Program/Program_6命令,控制所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程;
本步骤中,SetMta命令的MTA指针指向应用程序编程的首地址,用于配合Program/Program_6命令的操作,因此重编程设备需要向目标电子控制单元同时发送SetMta命令和Program/Program_6命令。
Program命令和Program_6命令的选取具体参见上述实施例,此次不再赘述。
步骤S30、在重编程完成后,对编程数据利用校验算法计算得到第二校验和;
具体的,目标电子控制单元接收到重编程设备发送的SetMta命令和BuildChksum命令后,对编程数据利用校验算法计算得到第二校验和。
BuildChksum命令即为建立校验和命令,BuildChksum命令中包含了一次需要进行校验的数据长度,再加上SetMta命令传递的地址信息,则可以对该长度的数据进行校验。
若有多组待校验数据,则每校验完一组待校验数据后,需再次接收到重编程设备发送的SetMta命令和BuildChksum命令后,才可对下一组待校验数据进行校验,直到所有重编程的数据校验完毕。
步骤S31、将所述第二校验和发送给所述重编程设备,使所述重编程设备判定所述第二校验和和第一校验和是否相等;
所述第一校验和由所述重编程设备利用校验算法计算编程数据得到。
本申请采用的校验算法为32位循环冗余校验算法,简称CRC32,当然,也可以采用其它的算法,本发明在此不做限定。
步骤S32、接收所述重编程设备发送的校验和通过的提示信息。
所述校验和通过的提示信息由所述重编程设备判定所述第一校验和与所述第二校验和相等后生成。
综上可以看出,重编程设备与目标电子控制单元建立连接后,首先重编程设备对目标电子控制单元进行安全访问,在目标电子控制单元由当前的刷写功能状态转变为解锁状态后,重编程设备对目标电子控制单元中的应用程序进行擦除重编程,并在应用程序重编程完成后,利用由编程数据得到的校验和对目标电子控制单元下载数据的完整性和正确性进行校验,并在确定校验和通过后,告知相应的目标电子控制单元。本发明中,重编程设备和目标电子控制单元信息交互过程采用的命令为CAN标定协议预先定义的命令,因此本发明实现了在基于CAN标定协议的基础上对重编程过程进行了完善,解决了因重编程程序下载不完全或是下载错误而导致的重编程功能不完善、操作过程繁琐等问题。
为进一步优化上述实施例,在步骤S32之后,还包括:
接收所述重编程设备发送的Disconnect命令,与所述重编程设备断开连接。
Disconnect命令即为断开连接命令,表示重编程设备和目标电子控制单元断开连接,表示流程结束。Disconnect命令中携带有与目标电子控制单元对应的逻辑地址,用于区分不同的目标电子控制单元。
在校验阶段过后,重编程设备通过Disconnect命令将校验结果发送给对应的目标电子控制单元,若传输的逻辑地址正确,则对应的目标电子控制单元会与重编程设备断开连接并发送肯定响应,否则发送否定响应并终止流程。
断开连接后的目标电子控制单元接收到重编程设备发送的校验和通过的提示信息后,会记录应用程序标识并进行复位,然后整个系统进行启动并引导运行应用程序。
在上述流程架构的指导下,应用程序已经能够完整地下载到目标电子控制单元中。在实际应用中经常还有一种需求,当应用程序只有一部分需要更新时,采用上述方法可以只更新其所在块的数据,不必更新整个应用程序,从而节约了更新数据的时间。
需要说明的是,本申请提供的重编程方法除可以解决CAN标定协议的局限性外,还可以满足“程序分割独立下载”和“多节点下载”等应用方面的需求,也就是说,本申请提供的重编程方法具有兼容性强的优点。
需要说明的是,本实施例中,若重编程设备接收到目标电子控制单元发送的否定响应后,会向对应的目标电子控制单元发送Disconnect命令,目标电子控制单元接收到该Disconnect命令后进行复位重启。
与上述方法实施例相对应,本发明还提供了重编程设备、电子控制单元和重编程系统。
参见图4,本发明实施例公开的一种重编程设备的结构示意图,包括:
发送单元41,用于向所有目标电子控制单元发送连接Connect命令,所述Connect命令携带有重编程请求指示和与各目标电子控制单元对应的逻辑地址;
连接单元42,用于接收各在线的目标电子控制单元反馈的连接肯定响应,与各在线的目标电子控制单元建立连接,所述连接肯定响应由各在线的目标电子控制单元确定当前需要重编程后生成;
重编程单元43,用于依次对每一个在线的目标电子控制单元中的应用程序进行重编程,重编程过程具体包括:
向所述目标电子控制单元发送包含刷写功能请求掩码的请求种子GetSeed命令;
接收所述目标电子控制单元通过响应报文反馈的种子,所述响应报文由所述目标电子控制单元判定刷写功能符合安全访问要求后生成;
利用安全访问算法计算所述种子对应的密钥;
将所述密钥通过密钥解锁Unlock命令发送给所述目标电子控制单元;
接收所述目标电子控制单元发送的密钥正确肯定响应和功能状态掩码,所述密钥正确肯定响应由所述目标电子控制单元在判定所述密钥符合预设要求后生成,所述功能状态掩码表征所述目标电子控制单元已将当前的刷写功能状态转变为解锁状态;
向所述目标电子控制单元发送指针放置SetMta命令和擦除ClearMemory命令,使所述目标电子控制单元从控制器局域网络CAN标定协议中MTA指针指向的应用程序擦除的首地址开始,擦除与所述ClearMemory命令相同的数据长度;
接收所述目标电子控制单元发送的擦除肯定响应,所述擦除肯定响应由所述目标电子控制单元在判定利用所述首地址和所述数据长度得到的擦除长度没有超过所述应用程序地址长度范围后发送;
向所述目标电子控制单元发送SetMta命令和Program/Program_6命令,使所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程;
利用校验算法计算编程数据的第一校验和;
获取所述目标电子控制单元发送的第二校验和,所述第二校验和由所述目标电子控制单元在重编程完成后对编程数据利用校验算法计算得到;
判断所述第一校验和与所述第二校验和是否相等;
若所述第一校验和与所述第二校验和相等,则向所述目标电子控制单元发送校验和通过的提示信息。
综上可以看出,重编程设备与目标电子控制单元建立连接后,首先重编程设备对目标电子控制单元进行安全访问,在目标电子控制单元由当前的刷写功能状态转变为解锁状态后,重编程设备对目标电子控制单元中的应用程序进行擦除重编程,并在应用程序重编程完成后,利用由编程数据得到的校验和对目标电子控制单元下载数据的完整性和正确性进行校验,并在确定校验和通过后,告知相应的目标电子控制单元。本发明中,重编程设备和目标电子控制单元信息交互过程采用的命令为CAN标定协议预先定义的命令,因此本发明实现了在基于CAN标定协议的基础上对重编程过程进行了完善,解决了因重编程程序下载不完全或是下载错误而导致的重编程功能不完善、操作过程繁琐等问题。
为进一步优化上述实施例,重编程单元43在向所述目标电子控制单元发送校验和通过的提示信息之后,还向所述目标电子控制单元发送Disconnect命令,与所述目标电子控制单元断开连接。
断开连接后的目标电子控制单元接收到重编程设备发送的校验和通过的提示信息后,会记录应用程序标识并进行复位,然后整个系统进行启动并引导运行应用程序。
需要说明的是,重编程设备中,各组成部分的具体工作原理以及各命令的具体含义,请参见上述相对应的方法实施例部分,此处不再赘述。
参见图5,本发明实施例公开的一种电子控制单元的结构示意图,包括:
第一接收单元51,用于接收重编程设备发送的Connect命令,所述Connect命令携带有重编程请求指示和接收所述Connect命令的电子控制单元的逻辑地址;
第一反馈单元52,用于在确定当前需要重编程后,向所述重编程设备反馈连接肯定响应,与所述重编程设备建立连接;
第二接收单元53,用于接收所述重编程设备发送的包含刷写功能请求掩码的GetSeed命令;
第二反馈单元54,用于在确定刷写功能符合安全访问要求后,将种子通过响应报文反馈给所述重编程设备;
第三接收单元55,用于接收所述重编程设备通过Unlock命令发送的密钥,所述密钥由所述重编程设备利用安全访问算法计算所述种子后得到;
第一发送单元56,用于在判定所述密钥符合预设要求后,向所述重编程设备发送密钥正确肯定响应和功能状态掩码,所述功能状态掩码表征已将当前的刷写功能状态转变为解锁状态;
擦除单元57,用于接收所述重编程设备发送的SetMta命令和ClearMemory命令,并从CAN标定协议中MTA指针指向的应用程序擦除的首地址开始,擦除与所述ClearMemory命令相同的数据长度;
第二发送单元58,用于在判定利用所述首地址和所述数据长度得到的擦除长度没有超过所述应用程序地址长度范围后,向所述重编程设备发送擦除肯定响应;
第四接收单元59,用于接收所述重编程设备发送的SetMta命令和Program/Program_6命令,控制所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程;
计算单元60,用于在重编程完成后,对编程数据利用校验算法计算得到第二校验和;
第三发送单元61,用于将所述第二校验和发送给所述重编程设备,使所述重编程设备判定所述第二校验和和第一校验和是否相等,所述第一校验和由所述重编程设备利用校验算法计算编程数据得到;
第五接收单元62,用于接收所述重编程设备发送的校验和通过的提示信息,所述校验和通过的提示信息由所述重编程设备判定所述第一校验和与所述第二校验和相等后生成。
综上可以看出,重编程设备与目标电子控制单元建立连接后,首先重编程设备对目标电子控制单元进行安全访问,在目标电子控制单元由当前的刷写功能状态转变为解锁状态后,重编程设备对目标电子控制单元中的应用程序进行擦除重编程,并在应用程序重编程完成后,利用由编程数据得到的校验和对目标电子控制单元下载数据的完整性和正确性进行校验,并在确定校验和通过后,告知相应的目标电子控制单元。本发明中,重编程设备和目标电子控制单元信息交互过程采用的命令为CAN标定协议预先定义的命令,因此本发明实现了在基于CAN标定协议的基础上对重编程过程进行了完善,解决了因重编程程序下载不完全或是下载错误而导致的重编程功能不完善、操作过程繁琐等问题。
为进一步优化上述实施例,还包括:
第六接收单元,用于在第五接收单元62收所述重编程设备发送的校验和通过的提示信息之后,接收所述重编程设备发送的Disconnect命令,与所述重编程设备断开连接,所述Disconnect命令中携带有接收所述Disconnect命令的目标电子控制单元的逻辑地址。
在校验阶段过后,重编程设备通过Disconnect命令将校验结果发送给对应的目标电子控制单元,若传输的逻辑地址正确,则对应的目标电子控制单元会与重编程设备断开连接并发送肯定响应,否则发送否定响应并终止流程。
断开连接后的目标电子控制单元接收到重编程设备发送的校验和通过的提示信息后,会记录应用程序标识并进行复位,然后整个系统进行启动并引导运行应用程序。
在上述流程架构的指导下,应用程序已经能够完整地下载到目标电子控制单元中。在实际应用中经常还有一种需求,当应用程序只有一部分需要更新时,采用上述方法可以只更新其所在块的数据,不必更新整个应用程序,从而节约了更新数据的时间。
需要说明的是,电子控制单元中,各组成部分的具体工作原理以及各命令的具体含义,请参见上述相对应的方法实施例部分,此处不再赘述。
参见图6,本发明实施例公开的一种重编程系统的结构示意图,包括:重编程设备01和与重编程设备01相连接的至少一个电子控制单元02;
重编程设备01,用于向所有目标电子控制单元发送连接Connect命令,所述Connect命令携带有重编程请求指示和与各目标电子控制单元对应的逻辑地址;接收各在线的目标电子控制单元反馈的连接肯定响应,与各在线的目标电子控制单元建立连接,所述连接肯定响应由各在线的目标电子控制单元确定当前需要重编程后生成;依次对每一个在线的目标电子控制单元中的应用程序进行重编程,重编程过程具体包括:向所述目标电子控制单元发送包含刷写功能请求掩码的请求种子GetSeed命令;接收所述目标电子控制单元通过响应报文反馈的种子,所述响应报文由所述目标电子控制单元判定刷写功能符合安全访问要求后生成;利用安全访问算法计算所述种子对应的密钥;将所述密钥通过密钥解锁Unlock命令发送给所述目标电子控制单元;接收所述目标电子控制单元发送的密钥正确肯定响应和功能状态掩码,所述密钥正确肯定响应由所述目标电子控制单元在判定所述密钥符合预设要求后生成,所述功能状态掩码表征所述目标电子控制单元已将当前的刷写功能状态转变为解锁状态;向所述目标电子控制单元发送指针放置SetMta命令和擦除ClearMemory命令,使所述目标电子控制单元从控制器局域网络CAN标定协议中MTA指针指向的应用程序擦除的首地址开始,擦除与所述ClearMemory命令相同的数据长度;接收所述目标电子控制单元发送的擦除肯定响应,所述擦除肯定响应由所述目标电子控制单元在判定利用所述首地址和所述数据长度得到的擦除长度没有超过所述应用程序地址长度范围后发送;向所述目标电子控制单元发送SetMta命令和Program/Program_6命令,使所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程;利用校验算法计算编程数据的第一校验和;获取所述目标电子控制单元发送的第二校验和,所述第二校验和由所述目标电子控制单元在重编程完成后对编程数据利用校验算法计算得到;判断所述第一校验和与所述第二校验和是否相等;若所述第一校验和与所述第二校验和相等,则向所述目标电子控制单元发送校验和通过的提示信息;
电子控制单元02,用于接收重编程设备01发送的Connect命令,所述Connect命令携带有重编程请求指示和接收所述Connect命令的电子控制单元的逻辑地址;在确定当前需要重编程后,向所述重编程设备01反馈连接肯定响应,与所述重编程设备01建立连接;接收所述重编程设备01发送的包含刷写功能请求掩码的GetSeed命令;在确定刷写功能符合安全访问要求后,将种子通过响应报文反馈给所述重编程设备01;接收所述重编程设备01通过Unlock命令发送的密钥,所述密钥由所述重编程设备01利用安全访问算法计算所述种子后得到;在判定所述密钥符合预设要求后,向所述重编程设备01发送密钥正确肯定响应和功能状态掩码,所述功能状态掩码表征已将当前的刷写功能状态转变为解锁状态;接收所述重编程设备01发送的SetMta命令和ClearMemory命令,并从CAN标定协议中MTA指针指向的应用程序擦除的首地址开始,擦除与所述ClearMemory命令相同的数据长度;在判定利用所述首地址和所述数据长度得到的擦除长度没有超过所述应用程序地址长度范围后,向所述重编程设备01发送擦除肯定响应;接收所述重编程设备01发送的SetMta命令和Program/Program_6命令,控制所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程;在重编程完成后,对编程数据利用校验算法计算得到第二校验和;将所述第二校验和发送给所述重编程设备01,使所述重编程设备01判定所述第二校验和和第一校验和是否相等,所述第一校验和由所述重编程设备01利用校验算法计算编程数据得到;接收所述重编程设备01发送的校验和通过的提示信息,所述校验和通过的提示信息由所述重编程设备01判定所述第一校验和与所述第二校验和相等后生成。
综上可以看出,重编程设备01与目标电子控制单元02建立连接后,首先重编程设备01对目标电子控制单元02进行安全访问,在目标电子控制单元02由当前的刷写功能状态转变为解锁状态后,重编程设备01对目标电子控制单元02中的应用程序进行擦除重编程,并在应用程序重编程完成后,利用由编程数据得到的校验和对目标电子控制单元02下载数据的完整性和正确性进行校验,并在确定校验和通过后,告知相应的目标电子控制单元02。本发明中,重编程设备01和目标电子控制单元02信息交互过程采用的命令为CAN标定协议预先定义的命令,因此本发明实现了在基于CAN标定协议的基础上对重编程过程进行了完善,解决了因重编程程序下载不完全或是下载错误而导致的重编程功能不完善、操作过程繁琐等问题。
需要说明的是,重编程系统的具体工作原理以及各命令的具体含义,请参见上述相对应的方法实施例部分,此处不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种重编程方法,其特征在于,包括:
向所有目标电子控制单元发送连接Connect命令,所述Connect命令携带有与各目标电子控制单元对应的逻辑地址;
接收各在线的目标电子控制单元反馈的连接肯定响应,与各在线的目标电子控制单元建立连接,所述连接肯定响应由各在线的目标电子控制单元确定当前需要重编程后生成;
依次对每一个在线的目标电子控制单元中的应用程序进行重编程,重编程过程具体包括:
向所述目标电子控制单元发送包含刷写功能请求掩码的请求种子GetSeed命令;
接收所述目标电子控制单元通过响应报文反馈的种子,所述响应报文由所述目标电子控制单元判定刷写功能符合安全访问要求后生成;
利用安全访问算法计算所述种子对应的密钥;
将所述密钥通过密钥解锁Unlock命令发送给所述目标电子控制单元;
接收所述目标电子控制单元发送的密钥正确肯定响应和功能状态掩码,所述密钥正确肯定响应由所述目标电子控制单元在判定所述密钥符合预设要求后生成,所述功能状态掩码表征所述目标电子控制单元已将当前的刷写功能状态转变为解锁状态;
向所述目标电子控制单元发送指针放置SetMta命令和擦除ClearMemory命令,使所述目标电子控制单元从控制器局域网络CAN标定协议中MTA指针指向的应用程序擦除的首地址开始,擦除与所述ClearMemory命令相同的数据长度;
接收所述目标电子控制单元发送的擦除肯定响应,所述擦除肯定响应由所述目标电子控制单元在判定利用所述首地址和所述数据长度得到的擦除长度没有超过所述应用程序地址长度范围后发送;
向所述目标电子控制单元发送SetMta命令和Program/Program_6命令,使所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程;
利用校验算法计算编程数据的第一校验和;
获取所述目标电子控制单元发送的第二校验和,所述第二校验和由所述目标电子控制单元在重编程完成后对编程数据利用校验算法计算得到;
判断所述第一校验和与所述第二校验和是否相等;
若所述第一校验和与所述第二校验和相等,则向所述目标电子控制单元发送校验和通过的提示信息。
2.根据权利要求1所述的重编程方法,其特征在于,在若所述第一校验和与所述第二校验和相等,则向所述目标电子控制单元发送校验和通过的提示信息之后,还包括:
向所述目标电子控制单元发送断开连接Disconnect命令,与所述目标电子控制单元断开连接,所述Disconnect命令中携带有与所述目标电子控制单元对应的逻辑地址。
3.根据权利要求1所述的重编程方法,其特征在于,在向所述目标电子控制单元发送SetMta命令和Program/Program_6命令,使所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程包括:
将连续的重编程数据作为一个数据段,判断所述数据段中未进行编程的数据长度是否大于预设字节数;
若所述数据长度大于所述预设字节数,则向所述目标电子控制单元发送SetMta命令和Program_6命令;
若所述数据长度不大于所述预设字节数,则向所述目标电子控制单元发送SetMta命令和Program命令。
4.一种重编程方法,其特征在于,包括:
接收重编程设备发送的Connect命令,所述Connect命令携带有重编程请求指示和接收所述Connect命令的电子控制单元的逻辑地址;
在确定当前需要重编程后,向所述重编程设备反馈连接肯定响应,与所述重编程设备建立连接;
接收所述重编程设备发送的包含刷写功能请求掩码的GetSeed命令;
在确定刷写功能符合安全访问要求后,将种子通过响应报文反馈给所述重编程设备;
接收所述重编程设备通过Unlock命令发送的密钥,所述密钥由所述重编程设备利用安全访问算法计算所述种子后得到;
在判定所述密钥符合预设要求后,向所述重编程设备发送密钥正确肯定响应和功能状态掩码,所述功能状态掩码表征已将当前的刷写功能状态转变为解锁状态;
接收所述重编程设备发送的SetMta命令和ClearMemory命令,并从CAN标定协议中MTA指针指向的应用程序擦除的首地址开始,擦除与所述ClearMemory命令相同的数据长度;
在判定利用所述首地址和所述数据长度得到的擦除长度没有超过所述应用程序地址长度范围后,向所述重编程设备发送擦除肯定响应;
接收所述重编程设备发送的SetMta命令和Program/Program_6命令,控制所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程;
在重编程完成后,对编程数据利用校验算法计算得到第二校验和;
将所述第二校验和发送给所述重编程设备,使所述重编程设备判定所述第二校验和和第一校验和是否相等,所述第一校验和由所述重编程设备利用校验算法计算编程数据得到;
接收所述重编程设备发送的校验和通过的提示信息,所述校验和通过的提示信息由所述重编程设备判定所述第一校验和与所述第二校验和相等后生成。
5.根据权利要求4所述的重编程方法,其特征在于,在接收所述重编程设备发送的校验和通过的提示信息之后,还包括:
接收所述重编程设备发送的Disconnect命令,与所述重编程设备断开连接,所述Disconnect命令中携带有接收所述Disconnect命令的目标电子控制单元的逻辑地址。
6.一种重编程设备,其特征在于,包括:
发送单元,用于向所有目标电子控制单元发送连接Connect命令,所述Connect命令携带有重编程请求指示和与各目标电子控制单元对应的逻辑地址;
连接单元,用于接收在线的各目标电子控制单元反馈的连接肯定响应,与各在线的目标电子控制单元建立连接,所述连接肯定响应由各在线的目标电子控制单元确定当前需要重编程后生成;
重编程单元,用于依次对每一个在线的目标电子控制单元中的应用程序进行重编程,重编程过程具体包括:
向所述目标电子控制单元发送包含刷写功能请求掩码的请求种子GetSeed命令;
接收所述目标电子控制单元通过响应报文反馈的种子,所述响应报文由所述目标电子控制单元判定刷写功能符合安全访问要求后生成;
利用安全访问算法计算所述种子对应的密钥;
将所述密钥通过密钥解锁Unlock命令发送给所述目标电子控制单元;
接收所述目标电子控制单元发送的密钥正确肯定响应和功能状态掩码,所述密钥正确肯定响应由所述目标电子控制单元在判定所述密钥符合预设要求后生成,所述功能状态掩码表征所述目标电子控制单元已将当前的刷写功能状态转变为解锁状态;
向所述目标电子控制单元发送指针放置SetMta命令和擦除ClearMemory命令,使所述目标电子控制单元从控制器局域网络CAN标定协议中MTA指针指向的应用程序擦除的首地址开始,擦除与所述ClearMemory命令相同的数据长度;
接收所述目标电子控制单元发送的擦除肯定响应,所述擦除肯定响应由所述目标电子控制单元在判定利用所述首地址和所述数据长度得到的擦除长度没有超过所述应用程序地址长度范围后发送;
向所述目标电子控制单元发送SetMta命令和Program/Program_6命令,使所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程;
利用校验算法计算编程数据的第一校验和;
获取所述目标电子控制单元发送的第二校验和,所述第二校验和由所述目标电子控制单元在重编程完成后对编程数据利用校验算法计算得到;
判断所述第一校验和与所述第二校验和是否相等;
若所述第一校验和与所述第二校验和相等,则向所述目标电子控制单元发送校验和通过的提示信息。
7.一种电子控制单元,其特征在于,包括:
第一接收单元,用于接收重编程设备发送的Connect命令,所述Connect命令携带有重编程请求指示和接收所述Connect命令的电子控制单元的逻辑地址;
第一反馈单元,用于在确定当前需要重编程后,向所述重编程设备反馈连接肯定响应,与所述重编程设备建立连接;
第二接收单元,用于接收所述重编程设备发送的包含刷写功能请求掩码的GetSeed命令;
第二反馈单元,用于在确定刷写功能符合安全访问要求后,将种子通过响应报文反馈给所述重编程设备;
第三接收单元,用于接收所述重编程设备通过Unlock命令发送的密钥,所述密钥由所述重编程设备利用安全访问算法计算所述种子后得到;
第一发送单元,用于在判定所述密钥符合预设要求后,向所述重编程设备发送密钥正确肯定响应和功能状态掩码,所述功能状态掩码表征已将当前的刷写功能状态转变为解锁状态;
擦除单元,用于接收所述重编程设备发送的SetMta命令和ClearMemory命令,并从CAN标定协议中MTA指针指向的应用程序擦除的首地址开始,擦除与所述ClearMemory命令相同的数据长度;
第二发送单元,用于在判定利用所述首地址和所述数据长度得到的擦除长度没有超过所述应用程序地址长度范围后,向所述重编程设备发送擦除肯定响应;
第四接收单元,用于接收所述重编程设备发送的SetMta命令和Program/Program_6命令,控制所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程;
计算单元,用于在重编程完成后,对编程数据利用校验算法计算得到第二校验和;
第三发送单元,用于将所述第二校验和发送给所述重编程设备,使所述重编程设备判定所述第二校验和和第一校验和是否相等,所述第一校验和由所述重编程设备利用校验算法计算编程数据得到;
第五接收单元,用于接收所述重编程设备发送的校验和通过的提示信息,所述校验和通过的提示信息由所述重编程设备判定所述第一校验和与所述第二校验和相等后生成。
8.根据权利要求7所述的电子控制单元,其特征在于,还包括:
第六接收单元,用于在所述第五接收单元收所述重编程设备发送的校验和通过的提示信息之后,接收所述重编程设备发送的Disconnect命令,与所述重编程设备断开连接,所述Disconnect命令中携带有接收所述Disconnect命令的目标电子控制单元的逻辑地址。
9.一种重编程系统,其特征在于,包括:重编程设备和与所述重编程设备相连接的至少一个电子控制单元;
所述重编程设备,用于向所有目标电子控制单元发送连接Connect命令,所述Connect命令携带有重编程请求指示和与各目标电子控制单元对应的逻辑地址;接收各在线的目标电子控制单元反馈的连接肯定响应,与各在线的目标电子控制单元建立连接,所述连接肯定响应由各在线的目标电子控制单元确定当前需要重编程后生成;依次对每一个在线的目标电子控制单元中的应用程序进行重编程,重编程过程具体包括:向所述目标电子控制单元发送包含刷写功能请求掩码的请求种子GetSeed命令;接收所述目标电子控制单元通过响应报文反馈的种子,所述响应报文由所述目标电子控制单元判定刷写功能符合安全访问要求后生成;利用安全访问算法计算所述种子对应的密钥;将所述密钥通过密钥解锁Unlock命令发送给所述目标电子控制单元;接收所述目标电子控制单元发送的密钥正确肯定响应和功能状态掩码,所述密钥正确肯定响应由所述目标电子控制单元在判定所述密钥符合预设要求后生成,所述功能状态掩码表征所述目标电子控制单元已将当前的刷写功能状态转变为解锁状态;向所述目标电子控制单元发送指针放置SetMta命令和擦除ClearMemory命令,使所述目标电子控制单元从控制器局域网络CAN标定协议中MTA指针指向的应用程序擦除的首地址开始,擦除与所述ClearMemory命令相同的数据长度;接收所述目标电子控制单元发送的擦除肯定响应,所述擦除肯定响应由所述目标电子控制单元在判定利用所述首地址和所述数据长度得到的擦除长度没有超过所述应用程序地址长度范围后发送;向所述目标电子控制单元发送SetMta命令和Program/Program_6命令,使所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程;利用校验算法计算编程数据的第一校验和;获取所述目标电子控制单元发送的第二校验和,所述第二校验和由所述目标电子控制单元在重编程完成后对编程数据利用校验算法计算得到;判断所述第一校验和与所述第二校验和是否相等;若所述第一校验和与所述第二校验和相等,则向所述目标电子控制单元发送校验和通过的提示信息;
所述电子控制单元,用于接收重编程设备发送的Connect命令,所述Connect命令携带有重编程请求指示和接收所述Connect命令的电子控制单元的逻辑地址;在确定当前需要重编程后,向所述重编程设备反馈连接肯定响应,与所述重编程设备建立连接;接收所述重编程设备发送的包含刷写功能请求掩码的GetSeed命令;在确定刷写功能符合安全访问要求后,将种子通过响应报文反馈给所述重编程设备;接收所述重编程设备通过Unlock命令发送的密钥,所述密钥由所述重编程设备利用安全访问算法计算所述种子后得到;在判定所述密钥符合预设要求后,向所述重编程设备发送密钥正确肯定响应和功能状态掩码,所述功能状态掩码表征已将当前的刷写功能状态转变为解锁状态;接收所述重编程设备发送的SetMta命令和ClearMemory命令,并从CAN标定协议中MTA指针指向的应用程序擦除的首地址开始,擦除与所述ClearMemory命令相同的数据长度;在判定利用所述首地址和所述数据长度得到的擦除长度没有超过所述应用程序地址长度范围后,向所述重编程设备发送擦除肯定响应;接收所述重编程设备发送的SetMta命令和Program/Program_6命令,控制所述MTA指针指向所述应用程序编程的首地址,对所述应用程序进行编程;在重编程完成后,对编程数据利用校验算法计算得到第二校验和;将所述第二校验和发送给所述重编程设备,使所述重编程设备判定所述第二校验和和第一校验和是否相等,所述第一校验和由所述重编程设备利用校验算法计算编程数据得到;接收所述重编程设备发送的校验和通过的提示信息,所述校验和通过的提示信息由所述重编程设备判定所述第一校验和与所述第二校验和相等后生成。
CN201510144548.8A 2015-03-30 2015-03-30 一种重编程方法、系统、重编程设备及电子控制单元 Active CN104834286B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510144548.8A CN104834286B (zh) 2015-03-30 2015-03-30 一种重编程方法、系统、重编程设备及电子控制单元

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510144548.8A CN104834286B (zh) 2015-03-30 2015-03-30 一种重编程方法、系统、重编程设备及电子控制单元

Publications (2)

Publication Number Publication Date
CN104834286A true CN104834286A (zh) 2015-08-12
CN104834286B CN104834286B (zh) 2017-07-11

Family

ID=53812231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510144548.8A Active CN104834286B (zh) 2015-03-30 2015-03-30 一种重编程方法、系统、重编程设备及电子控制单元

Country Status (1)

Country Link
CN (1) CN104834286B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106843979A (zh) * 2017-01-24 2017-06-13 北京经纬恒润科技有限公司 一种应用程序的更新方法及装置
CN107544473A (zh) * 2017-10-13 2018-01-05 北京经纬恒润科技有限公司 一种重编程方法及装置
CN110632909A (zh) * 2019-09-29 2019-12-31 潍柴动力股份有限公司 反查map数据合理性检测方法及设备
CN112859809A (zh) * 2021-01-11 2021-05-28 上海星融汽车科技有限公司 车辆ecu刷写方法、系统及车辆诊断设备的下位机
CN113093694A (zh) * 2021-03-18 2021-07-09 东风汽车集团股份有限公司 一种基于uds的车载电控单元数据刷写方法及系统
CN113434163A (zh) * 2021-05-24 2021-09-24 瑞浦能源有限公司 适用于电子控制单元的在线标定方法、系统、设备及介质
CN113544602A (zh) * 2019-03-15 2021-10-22 欧姆龙株式会社 控制系统、中继装置以及中继程序
CN113778061A (zh) * 2021-09-16 2021-12-10 广州锦红源电子科技有限公司 电子控制器程序完整性的校验方法、装置、电子控制器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000022525A1 (fr) * 1998-10-09 2000-04-20 Bull Cp8 Protocole d'echange interne de donnees entre applications d'un objet portatif multi-applications et objet portatif multi-applications correspondant
JP2001516907A (ja) * 1997-09-09 2001-10-02 コニンクリジケ ケーピーエヌ エヌブィー 端末の安全保障モジュールへのコマンドのローディング方法
CN103294511A (zh) * 2013-05-31 2013-09-11 哈尔滨工业大学 基于CAN总线的bootloader软件的升级方法
CN103713932A (zh) * 2014-01-21 2014-04-09 北京经纬恒润科技有限公司 一种电子控制单元中应用程序的更新方法及装置
CN103984340A (zh) * 2014-05-21 2014-08-13 安徽江淮汽车股份有限公司 一种变速箱控制单元的软件刷写方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001516907A (ja) * 1997-09-09 2001-10-02 コニンクリジケ ケーピーエヌ エヌブィー 端末の安全保障モジュールへのコマンドのローディング方法
WO2000022525A1 (fr) * 1998-10-09 2000-04-20 Bull Cp8 Protocole d'echange interne de donnees entre applications d'un objet portatif multi-applications et objet portatif multi-applications correspondant
CN103294511A (zh) * 2013-05-31 2013-09-11 哈尔滨工业大学 基于CAN总线的bootloader软件的升级方法
CN103713932A (zh) * 2014-01-21 2014-04-09 北京经纬恒润科技有限公司 一种电子控制单元中应用程序的更新方法及装置
CN103984340A (zh) * 2014-05-21 2014-08-13 安徽江淮汽车股份有限公司 一种变速箱控制单元的软件刷写方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106843979A (zh) * 2017-01-24 2017-06-13 北京经纬恒润科技有限公司 一种应用程序的更新方法及装置
CN106843979B (zh) * 2017-01-24 2020-11-03 北京经纬恒润科技有限公司 一种应用程序的更新方法及装置
CN107544473A (zh) * 2017-10-13 2018-01-05 北京经纬恒润科技有限公司 一种重编程方法及装置
CN107544473B (zh) * 2017-10-13 2019-08-30 北京经纬恒润科技有限公司 一种重编程方法及装置
CN113544602A (zh) * 2019-03-15 2021-10-22 欧姆龙株式会社 控制系统、中继装置以及中继程序
CN110632909A (zh) * 2019-09-29 2019-12-31 潍柴动力股份有限公司 反查map数据合理性检测方法及设备
CN112859809A (zh) * 2021-01-11 2021-05-28 上海星融汽车科技有限公司 车辆ecu刷写方法、系统及车辆诊断设备的下位机
CN113093694A (zh) * 2021-03-18 2021-07-09 东风汽车集团股份有限公司 一种基于uds的车载电控单元数据刷写方法及系统
CN113093694B (zh) * 2021-03-18 2022-05-20 东风汽车集团股份有限公司 一种基于uds的车载电控单元数据刷写方法及系统
CN113434163A (zh) * 2021-05-24 2021-09-24 瑞浦能源有限公司 适用于电子控制单元的在线标定方法、系统、设备及介质
CN113778061A (zh) * 2021-09-16 2021-12-10 广州锦红源电子科技有限公司 电子控制器程序完整性的校验方法、装置、电子控制器

Also Published As

Publication number Publication date
CN104834286B (zh) 2017-07-11

Similar Documents

Publication Publication Date Title
CN104834286A (zh) 一种重编程方法、系统、重编程设备及电子控制单元
CN108132795B (zh) 一种电子控制单元的软件更新方法及装置
CN112000355B (zh) 用于固件升级的方法及装置、家电设备
CN104967497B (zh) 一种基于网络通信协议的数据可靠传输方法及升级方法
US9557981B2 (en) Method and apparatus for automatic module upgrade
CN105224362A (zh) 上位机对下位机进行程序升级的方法及系统
CN111399884A (zh) 一种车辆组件的升级方法、装置及电子设备
CN106484453B (zh) 一种实现系统升级的方法及装置
CN105183515A (zh) 云台固件升级的方法及装置
CN107168739A (zh) Pos机、pos机无线通讯模块固件升级方法及装置
CN111949288A (zh) 一种基于车载以太网的智能元件远程升级方法及系统
CN107273158B (zh) 程序升级方法及装置、主机、从机和多联机空调系统
CN107357595A (zh) 一种基于总线的多驱动器固件在线更新系统
CN105302613A (zh) 采用合并文件对eoc软件进行升级的方法及系统
EP4394583A1 (en) Charging stand, charging stand upgrading method and apparatus, device, and storage medium
CN107908417A (zh) 固件升级方法及电子设备
CN109416629A (zh) 固件升级方法、电子设备、相机系统和无人飞行器
CN107395666A (zh) 一种操作数控机床升级数据包的方法及装置
CN105045640A (zh) 一种软件升级方法、装置及智能设备
CN116028092A (zh) 汽车ota升级任务熔断方法、装置、设备及存储介质
CN112506536A (zh) 一种车载控制器软件更新方法、装置、设备和介质
CN112995806A (zh) 一种升级光网络单元方法、装置、系统及存储介质
CN104239109A (zh) 嵌入式系统固件在线管理方法
US11327842B2 (en) Backing up a software update of a control device of transport vehicle
CN114567552A (zh) 车载v2x设备升级方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 4 / F, building 1, No.14 Jiuxianqiao Road, Chaoyang District, Beijing 100020

Patentee after: Beijing Jingwei Hirain Technologies Co.,Inc.

Address before: 8 / F, block B, No. 11, Anxiang Beili, Chaoyang District, Beijing 100101

Patentee before: Beijing Jingwei HiRain Technologies Co.,Ltd.

CP03 Change of name, title or address