诊断协议安全验证状态机的控制方法转让专利

申请号 : CN200710031198.X

文献号 : CN101150403B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 左从兵

申请人 : 奇瑞汽车股份有限公司

摘要 :

本发明涉及一种混合动力整车控制器的诊断协议安全状态机的验证控制方法,就是将生产线诊断模式、刷新诊断模式中那些透明的诊断服务设置在各自的上锁状态诊断服务中,而将生产线诊断模式、刷新诊断模式中那些受保护需密钥验证的诊断服务统一设置在各自的开锁状态诊断服务中,这样,诊断设备通过了整车控制器诊断系统的seed-key安全验证后,整车控制器诊断系统中的安全验证状态机中的状态标志位将由上锁状态切换到开锁状态;每次状态机开锁状态位要受诊断安全时限的控制。本发明的优点是提高了底层软件的执行效率,避免了每次调用受保护的诊断服务时安全密钥seed-key的反复验证,同时有效避免了非授权诊断设备的越权操作。

权利要求 :

1.一种诊断协议安全状态机的控制方法,其特征在于:将生产线诊断模式、刷新诊断模式中受保护的诊断服务统一设置在各自的开锁状态诊断服务中,而将透明的诊断服务统一设置在各自的上锁状态诊断服务中,上锁和开锁状态切换的满足以下条件:进入安全验证状态机的时候,首先判断当前的状态标志位是上锁状态还是开锁状态:

在上锁状态时:

首先判断是否通过了安全钥匙验证,并在通过验证后开锁,重新开始5秒安全时限的计时;在未通过验证时判断5秒安全时限是否已到,并在5秒安全时限到时保持上锁状态,切换到标准诊断模式并重新开始5秒安全时限的计时;在5秒安全时限未到时判断是否收到了停止诊断服务请求,并在收到停止诊断服务请求时保持上锁状态,切换到标准诊断模式并重新开始5秒安全时限的计时,否则判断是否收到了诊断服务请求,并在收到诊断服务请求时保持上锁状态并重新开始5秒安全时限的计时,否则保持上锁状态继续计时;

在开锁状态时:

首先判断5秒安全时限是否已到,若5秒安全时限已到则将状态标志位设为上锁状态,切换到标准诊断模式并重新开始5秒安全时限的计时;若5秒安全时限未到则判断是否收到了停止诊断服务请求,并在收到停止诊断服务请求时将状态标志位设为上锁状态,切换到标准诊断模式并重新开始5秒安全时限的计时;否则继续判断是否收到了诊断服务请求,并在收到诊断服务请求时保持开锁状态并重新开始5秒安全时限的计时,否则保持开锁状态继续计时。

说明书 :

诊断协议安全验证状态机的控制方法

技术领域

[0001] 本发明涉及一种混合动力整车控制器的诊断协议安全状态机的验证控制方法。

背景技术

[0002] 诊断技术越来越多地运用于汽车控制器OBD(在线诊断模块)软件开发过程,控制器下线检测,以及汽车售后服务中。通常诊断有三种模式:标准模式,生产线模式和刷新模式,标准模式中的所有诊断服务是透明的,不需要通过seed-key安全验证,而生产线模式和刷新模式中有的服务是受保护,需要通过安全密钥seed-key验证。
[0003] 所有的控制器诊断系统都会设计一种安全密钥seed-key验证来保护那些受保护的诊断服务,控制器发送一个种子数seed给诊断设备,要求授权的诊断设备返回一个正确的密钥key,才能执行那些受保护的诊断服务,这样避免了非授权诊断设备的越权操作。
[0004] 以前的设计中每次执行一个受保护的诊断服务都要进行一次seed-key验证,这就增加了程序负担、降低了诊断效率。

发明内容

[0005] 本发明的目的就是提供一种诊断协议安全状态机的控制方法,将生产线诊断模式、刷新诊断模式中受保护的诊断服务统一设置在各自的开锁状态诊断服务中,而将透明的诊断服务统一设置在各自的上锁状态诊断服务中,在状态机开锁状态下,诊断设备可以多次执行受保护的诊断服务,无须执行一条受保护的诊断服务就通过一次seed-key安全验证,减少程序负担、提高诊断效率。
[0006] 为实现上述发明目的,诊断协议安全状态机的控制方法,包括上锁状态和开锁状态的切换过程,上锁和开锁状态切换的满足以下条件:
[0007] 进入安全验证状态机的时候,首先判断当前的状态标志位是上锁状态还是开锁状态:
[0008] 在上锁状态时:
[0009] 首先判断是否通过了安全钥匙验证,并在通过验证后开锁,重新开始5秒安全时限的计时;在未通过验证时判断5秒安全时限是否已到,并在5秒安全时限到时保持上锁状态,切换到标准诊断模式并重新开始5秒安全时限的计时;在5秒安全时限未到时判断是否收到了停止诊断服务请求,并在收到停止诊断服务请求时保持上锁状态,切换到标准诊断模式并重新开始5秒安全时限的计时,否则判断是否收到了诊断服务请求,并在收到诊断服务请求时保持上锁状态并重新开始5秒安全时限的计时,否则保持上锁状态继续计时;
[0010] 在开锁状态时:
[0011] 首先判断5秒安全时限是否已到,若5秒安全时限已到则将状态标志位设为上锁状态,切换到标准诊断模式并重新开始5秒安全时限的计时;若5秒安全时限未到则判断是否收到了停止诊断服务请求,并在收到停止诊断服务请求时将状态标志位设为上锁状态,切换到标准诊断模式并重新开始5秒安全时限的计时;否则继续判断是否收到了诊断服务请求,并在收到诊断服务请求时保持开锁状态并重新开始5秒安全时限的计时,否则保持开锁状态继续计时。
[0012] 采用上述技术方案后,安全状态机用来管理上锁状态和开锁状态的切换过程,这样通过一次seed-key验证,实现由上锁状态到开锁状态之间的切换,在开锁状态下可以多次执行对应诊断模式下的所有受保护的服务,避免了每次执行受保护服务时的seed-key重复验证。
[0013] 由此可以大大提高诊断效率,显著减少了重复seed-key验证的程序负担,优点主要表现在以下几个方面:统一的安全状态机方便了诊断设备在执行透明诊断服务和受保护诊断服务时的切换;提高了底层软件的执行效率,避免了安全密钥seed-key的反复验证;5秒安全时限到和收到停止诊断请求服务后的诊断模式复位到标准诊断模式,避免了越权操作。

附图说明

[0014] 图1诊断模式及其上锁状态诊断服务、开锁状态诊断服务分类示意图;
[0015] 图2安全状态标志位切换判断流程图;
[0016] 图3诊断模式转换原理图;

具体实施方式

[0017] 进入安全验证状态机的时候,首先判断当前的状态标志位是上锁状态还是开锁状态:
[0018] 在上锁状态时:
[0019] 首先判断是否通过了安全钥匙验证,并在通过验证后开锁,重新开始5秒安全时限的计时;在未通过验证时判断5秒安全时限是否已到,并在5秒安全时限到时保持上锁状态,切换到标准诊断模式并重新开始5秒安全时限的计时;在5秒安全时限未到时判断是否收到了停止诊断服务请求,并在收到停止诊断服务请求时保持上锁状态,切换到标准诊断模式并重新开始5秒安全时限的计时,否则判断是否收到了诊断服务请求,并在收到诊断服务请求时保持上锁状态并重新开始5秒安全时限的计时,否则保持上锁状态继续计时;
[0020] 在开锁状态时:
[0021] 首先判断5秒安全时限是否已到,若5秒安全时限已到则将状态标志位设为上锁状态,切换到标准诊断模式并重新开始5秒安全时限的计时;若5秒安全时限未到则判断是否收到了停止诊断服务请求,并在收到停止诊断服务请求时将状态标志位设为上锁状态,切换到标准诊断模式并重新开始5秒安全时限的计时;否则继续判断是否收到了诊断服务请求,并在收到诊断服务请求时保持开锁状态并重新开始5秒安全时限的计时,否则保持开锁状态继续计时。
[0022] 在相同诊断模式下,需要调用受保护的诊断服务时,必须通过安全密钥seed-key验证才能开锁,进入开锁状态,执行受保护的诊断服务,在规定的诊断5秒安全时限内收到诊断设备发送的新的诊断服务,安全状态机才能保持自身的开锁状态,否则安全状态机的状态标志位将自动切换回上锁状态。
[0023] 在不同诊断模式下,需要调用受保护的诊断服务时,首先必须进行诊断模式转换,如果是在相同安全状态下(开锁状态或上锁状态)进行诊断模式转换,那么安全状态机中的状态标志位保持不变。反之,如果诊断设备需要进行不同安全状态下的模式转换,那么将会发生安全状态机标志位的切换:此时,如果是要实现安全状态标志位从上锁状态到开锁状态的转换,必须要通过seed-key安全验证,如果要实现安全状态标志位从开锁状态服务上锁状态的切换,可以通过等待安全时限5秒时间溢出,或诊断设备及时发送停止诊断服务请求,让诊断模式自动回复到标准诊断模式。
[0024] 诊断过程中控制器诊断系统需要不断的在透明的诊断服务和受保护的诊断服务中转换,如果每次执行受保护的诊断服务都去通过seed-key安全验证的话,会增加程序的负担,程序效率降低。本发明设计了专门的安全状态机来监视安全状态位的变化,通过seed-key安全验证,进入某种诊断模式的开锁状态服务后,可以多次执行对应诊断模式下的所有受保护的服务,避免了反复通过seed-key安全验证。
[0025] 同时,诊断服务的安全性不受影响,如果收到停止诊断服务请求,或者安全时限5秒溢出,那么,诊断系统自动回复到上锁状态,保护受保护的诊断服务,避免越权操作。
[0026] 本发明中,诊断模式分为三种模式,标准诊断模式,生产线诊断模式,刷新诊断模式;标准诊断模式下所有诊断服务都设为透明上锁状态服务,而将生产线诊断模式,刷新诊断模式中受保护的诊断服务统一设置在各自的开锁状态诊断服务中,将它们的透明诊断服务统一设置在各自的上锁状态诊断服务中。在控制器底层软件中设计安全状态机统一管理控制器诊断系统上锁状态和开锁状态的切换过程。