书签 分享 收藏 举报 版权申诉 / 27

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

  • 上传人:111****11
  • 文档编号:4576338
  • 上传时间:2018-10-21
  • 格式:PDF
  • 页数:27
  • 大小:1.86MB
  • 摘要
    申请专利号:

    CN201510144548.8

    申请日:

    2015.03.30

    公开号:

    CN104834286A

    公开日:

    2015.08.12

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G05B 19/418申请日:20150330|||公开

    IPC分类号:

    G05B19/418

    主分类号:

    G05B19/418

    申请人:

    北京经纬恒润科技有限公司

    发明人:

    尚鑫

    地址:

    100101北京市朝阳区安翔北里11号B座8层

    优先权:

    专利代理机构:

    北京集佳知识产权代理有限公司11227

    代理人:

    王宝筠

    PDF完整版下载: PDF下载
    内容摘要

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

    权利要求书

    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指针指向所述应用程序编程的首地址,对所述应用程序进行编程;在重编程完成后,对编程数据利用校验算法计算得到第二校验和;将所述第二校验和发送给所述重编程设备,使所述重编程设备判定所述第二校验和和第一校验和是否相等,所述第一校验和由所述重编程设备利用校验算法计算编程数据得到;接收所述重编程设备发送的校验和通过的提示信息,所述校验和通过的提示信息由所述重编程设备判定所述第一校验和与所述第二校验和相等后生成。

    说明书

    一种重编程方法、系统、重编程设备及电子控制单元
    技术领域
    本发明涉及重编程技术领域,更具体的说,涉及一种重编程方法、系统、重编程设备及电子控制单元。
    背景技术
    随着汽车电子产业的高速发展,越来越多的电子控制单元被装载到机动车辆上,各电子控制单元之间保持着高速稳定的通信,其中最普遍的通信方式为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标定协议的基础上对重编程过程进行了完善,解决了因重编程程序下载不完全或是下载错误而导致的重编程功能不完善、操作过程繁琐等问题。
    需要说明的是,重编程系统的具体工作原理以及各命令的具体含义,请参见上述相对应的方法实施例部分,此处不再赘述。
    本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
    对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

    关 键  词:
    一种 编程 方法 系统 设备 电子 控制 单元
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种重编程方法、系统、重编程设备及电子控制单元.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4576338.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1