背景技术
随着汽车工业的发展,汽车诊断通讯系统的应用也越来越广泛:安全验证是诊断通讯系统应用中的一个典型例子。在常规车载诊断应用中,涉及安全的重要信息的写入、读取及其它一些特殊功能的实现,必须要经过安全验证服务进行解锁后才可操作。
如图1所示,现有的安全验证流程如下:外部设备请求给车载ECU(Electric Control Unit,电子控制单元)发送种子;ECU将随机的种子返回给外部设备;外部设备收到种子后,按照一种安全验证算法,计算出一个密钥,并将该密钥发送给ECU;ECU将收到的密钥与内部计算出来的密钥进行对比,如果匹配,则安全验证通过,ECU解锁,允许外部设备进行后续的相关操作;否则安全验证不通过,ECU拒绝解锁。
上述安全验证方法对ECU内部特殊功能起到一定的保护作用。但是,每次对ECU进行访问操作时,都需要通过繁琐的安全验证步骤进行解锁,工厂里的每套设备都需要集成ECU的安全算法。在汽车生产阶段,生产节拍要求很高。如果汽车在每个工位上进行下线检测前都要进行安全验证,重复地进行安全算法的计算,操作步骤繁琐,大大影响了生产效率。同时,主机厂需要将各个ECU的安全算法提供给各个生产设备供应商,使各个设备集成安全算法。由于多个厂家知悉这些安全算法,极其容易泄漏,保密性不高。
发明内容
本发明提出一种ECU安全访问处理方法,能够减少汽车在生产线上的检测步骤,提高生产效率,而且还能保证ECU的安全性。
本发明实施例提供的ECU安全访问处理方法,包括:
S1、外部设备向ECU发送访问请求;
S2、ECU读取模式标志位的值,判断ECU的状态;若ECU处于工厂模式,则执行S3;若ECU处于非工厂模式,则执行S4;
S3、ECU自动解锁,接受外部设备的访问操作;
S4、ECU对外部设备进行安全验证;若外部设备通过安全验证,则ECU解锁,接受外部设备的访问操作;否则ECU拒绝外部设备的访问操作;
所述ECU还配置有数据标识符,外部设备通过写数据流服务,设定所述数据标识符的参数值,使所述ECU在生产线上时被设置为工厂模式,使所述ECU出厂时被设置为非工厂模式。
其中,在所述步骤S2中,ECU读取模式标志位的值,若所述模式标志位的值为1,则判定ECU处于工厂模式;若所述模式标志位的值为0,则判定ECU处于非工厂模式。
进一步的,所述ECU还配置有数据标识符;当所述数据标识符的参数值在$00~$0F区段时,所述模式标志位的值为1;当所述数据标识符的参数值在$10~$FF区段时,所述模式标志位的值为0。
外部设备通过写数据流服务,将生产线上的ECU设置为工厂模式。
外部设备通过写数据流服务,将出厂的ECU的数据标识符的参数值写成$00,该ECU被设置为非工厂模式,且所述数据标识符的参数值被锁定,不可修改。
本发明实施例提供的ECU安全访问处理方法,将生产线上的ECU设置为工厂模式,外部设备与ECU之间不用安全验证即可进行所有访问操作,步骤简单,从而避免了安全算法的繁琐计算,缩短操作时间,大大提高生产效率。同时,各个ECU的安全算法不用释放给各个设备生产厂商,减少了安全算法泄密的可能性;生产线上的ECU的访问操作,都是由专业技术人员通过专用设备在固定的工位进行的,即使不用安全验证,直接进行操作也不会造成任何影响。整车出厂后,ECU被设定为非工厂模式,外部设备对ECU的所有访问操作都需要通过安全验证后才能进行,提高ECU的安全性。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
参见图2,是本发明实施一提供的ECU安全访问处理方法的流程示意图。
本发明实施例将ECU样件划分为工厂模式和非工厂模式:ECU在生产线上时被设置为工厂模式,ECU出厂时被设置为非工厂模式。工厂模式下的ECU不需要安全验证即可接受外部设备的访问操作;非工厂模式下的ECU必须通过安全验证后才接受外部设备的访问操作。
需要说明的是,“ECU在生产线上”既包括单个ECU部件在生产线上的情况,也包括ECU被安装在汽车上,汽车在主机厂生产线上的情况。“ECU出厂”既包括单个ECU部件出厂的情况,也包括ECU被安装在汽车上,汽车出厂的情况。
如图2所示,本实施例提供的ECU安全访问处理方法,包括以下步骤:
S1、外部设备向ECU发送访问请求;
S2、ECU读取模式标志位的值,判断ECU的状态;若ECU处于工厂模式,则执行S3;若ECU处于非工厂模式,则执行S4;
S3、ECU自动解锁,接受外部设备的访问操作;
S4、ECU对外部设备进行安全验证,若外部设备通过安全验证,则ECU解锁,接受外部设备的访问操作;否则ECU拒绝外部设备的访问操作。
具体的,外部设备对ECU的访问操作包括在线配置、防盗匹配、遥控钥匙学习、零位标定、排气加注等操作。
其中,在步骤S2中,ECU读取模式标志位的值,若模式标志位的值为1,则判定ECU处于工厂模式;若模式标志位的值为0,则判定ECU处于非工厂模式。
进一步的,ECU还配置有数据标识符;当数据标识符的参数值在$00~$0F区段时(即数据标识符取$00~$0F区段中的任一个值),模式标志位的值为1,ECU处于工厂模式;当数据标识符的参数值在$10~$FF区段时(即数据标识符取$10~$FF区段中的任一个值),模式标志位的值为0,ECU处于非工厂模式。
优选的,所述模式标志位、数据标识符均配置在ECU的内部存储器(例如EEPROM)中。外部设备通过写数据流服务,设定所述数据标识符的参数值,使ECU处于工厂模式或非工厂模式。而且,当外部设备通过写数据流服务将数据标识符的参数值写成$00后,数据标识符的参数值被锁定,不可修改。
需要说明的是,本发明实施例仅为数据标识符的参数值取16位的$00~$FF为例进行说明,数据标识符的参数值还可以使用其他数值。同理,数据标识符被锁定时的参数值除了$00外,还可以使用其他的数值。而且模式标志位除了取0、1外,也可以取其他的数值。
在具体实施当中,外部设备通过写数据流服务,将生产线上的ECU设置为工厂模式。在工厂生产阶段,外部设备对ECU的所有的访问操作都省去安全验证步骤,从而避免了安全算法的繁琐计算,提高生产效率。同时,由于生产线上的对ECU进行访问操作的外部设备不需要集成安全算法,因此主机厂不用将安全算法发给各个设备生产厂商,大大减少了安全算法泄密的可能性。
ECU出厂时,外部设备通过写数据流服务,将出厂的ECU的数据标识符的参数值写成$00,该ECU被设置为非工厂模式,且该参数值被锁定,不可以再修改。ECU出厂之后,外部设备对ECU的所有访问操作都要通过安全验证后才能进行,从而保证了ECU的安全性。例如,汽车整车出厂后,车载ECU被设定为非工厂模式,所有的对车载ECU的特殊诊断操作都需要4S店的专用诊断仪通过安全验证后才可进行。
参见图3,是本发明实施二提供的生产线上的ECU的检测流程图。
ECU零部件供应商向主机厂供货时,将ECU设置为工厂模式。在主机厂生产线上,ECU被安装在汽车上。在汽车下线检测过程中,从检测线起始点到终检点,ECU一直处于工厂模式,专用的下线检测设备可以跳过安全验证步骤直接对ECU进行钥匙学习、零位标定等操作,减少了操作步骤,提高了生产效率。在整车出厂时,ECU被锁定为非工厂模式。
本发明实施例提供的ECU安全访问处理方法,将生产线上的ECU设置为工厂模式,外部设备与ECU之间不用安全验证即可进行所有访问操作,步骤简单,从而避免了安全算法的繁琐计算,缩短操作时间,大大提高生产效率。同时,各个ECU的安全算法不用释放给各个设备生产厂商,减少了安全算法泄密的可能性;生产线上的ECU的访问操作,都是由专业技术人员通过专用设备在固定的工位进行的,即使不用安全验证,直接进行操作也不会造成任何影响。整车出厂后,ECU被设定为非工厂模式,外部设备对ECU的所有访问操作都需要通过安全验证后才能进行,提高ECU的安全性。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。