Canoe 诊断接口函数(Diagnostic CAPL Functions)两种节点实现27服务解锁说明
一、使用接口函数前准备
1、配置cdd


2、导入27解锁密钥算法dll

二、在Test Module节点里解锁
1、创建对应节点

2、例程路径
在帮助文档路径 CAPL Functions » Diagnostics » diagGenerateKeyFromSeed 里有相关例程适用Test Module节点。

3、例程说明
(1)首先是发送27 01请求,等待收到响应,其中test开头函数(testWaitForDiagRequestSent,testWaitForDiagResponse)只能在TestModule节点使用。

(2)从响应中取出种子,种子经过算法计算出密钥



(3)将计算的密钥赋予密钥发送请求,等待发送完成,即完成解锁待测ECU

三、在Network Node节点里解锁
1、创建对应节点

2、例程路径
在帮助文档路径 CAPL Functions » Diagnostics » diagStartGenerateKeyFromSeed 里有相关例程适用Network普通节点。此方法适合无法使用test函数的节点以及密钥计算时间超过1ms的案例。


3、例程说明
27解锁流程说明如下图,和Test module节点一致,区别在于计算结果通过调用函数_Diag_GenerateKeyResult来表示。注意,安全密钥的计算可能需要超过1毫秒的时间,这将导致CANoe中的实时事件处理可能出现问题,如有需要,可使用定时器实现Test module节点testwait开头的等待函数的功能。

四、总结
保证解锁流程的顺序性,即首先确保种子请求发送成功,并成功收到种子请求的响应,再进行密钥计算,计算完成后,才发送密钥请求,即能成功解锁。
1万+

被折叠的 条评论
为什么被折叠?



