比如下面的例子,2n-1是一个子服务,这里我们先用n=1,即01子服务来举例子。通过首轮Tester种子的请求(27+01),ECU会返回67+01+AA+BB+CC+DD,AA~DD就是种子了。之后第二轮,诊断端的Tester会利用种子进行运算(根据整车厂的算法),生成k1(不一定是1个字节),之后发送请求,子服务是2n,这里我们还是假定n=1,即02...
这一步骤主要是做刷写前的准备工作。诊断仪Tester向ECU发出10 01,进入到默认会话状态。然后,在默认状态下,Tester再发出10 03,使ECU从默认会话转到拓展会话。在拓展会话模式下,Tester将进行一系列刷写前的检查。 (图2 刷写前指令流程图) 首先,Tester会使用31服务来检测一些车辆状态。整车厂通常会定义一些控制器刷...
1)Send seed响应报文 $27服务ECU的第1条响应报文目的是向Tester发送seed,seed是一串随机数,长度由具体项目规范确定,seed的产生是ECU根据内置的算法随机产生的。ECU将seed发送给Tester时,本身也会根据seed值通过算法得出key值。举例,本报文通常有67 01 XX XX XX XX、67 05 XX XX XX XX、67 09 XX XX XX...
1)Send seed响应报文 $27服务ECU的第1条响应报文目的是向Tester发送seed,seed是一串随机数,长度由具体项目规范确定,seed的产生是ECU根据内置的算法随机产生的。ECU将seed发送给Tester时,本身也会根据seed值通过算法得出key值。 举例,本报文通常有67 01 XX XX XX XX、67 05 XX XX XX XX、67 09 XX XX XX XX...
汽车嵌入式开发中,开发ECU网关节点(GW:Gateway)时,难度会提升不少,这些难度中就包含对时间参数的解读问题。本文着重给大家聊一下P2Client、▲P2 = ▲P2Request + ▲P2Response、N_As时间参数。 1 背景介绍 假设:Tester发送功能寻址指令Request01给GW::VCU,因为VCU的GW属性,VCU需要将Request01转发,即由Flexray总线...
报文2) Tester接收,ECU发送ID71F,数据长度8字节,正响应SID10的会话控制服务,发送了报文“02 50 01”,其中首字节“02”表明本报文后面有效数据长度为2字节,第二字节“50”表明SID10+0x40属于SID10服务的正响应,第三字节“01”是对应子功能。 2)多帧通讯...
(2)on diagResponse NewResponse:Tester端收到诊断响应时调用。(3)on diagRequestSent NewRequestsent...
解锁成功正响应报文,$27服务ECU的第2条响应报文,是ECU根据Tester发送过来的key,对比本身基于同样seed,同样算法计算出的key值,在两个key值相等的情况下,ECU通过安全认证服务,向Tester发送正响应,通知进入解锁状态成功。 举例,本报文通常有$67 02、$67 06、$67 0A。
每次$27服务的安全认证过程在Tester和ECU间会有两轮的信息报文交互,大体的交互过程如下图所示: 图4 2.1 请求报文 $27服务请求报文格式总体上跟上篇中UDS请求报文介绍一致,在交互过程图中我们可以看到$27服务发送了2次请求报文。 1)Seed请求报文 $27服务开始时,第1条发送报文是用于向ECU请求获取seed,seed通常由ECU...
解锁成功正响应报文,$27服务ECU的第2条响应报文,是ECU根据Tester发送过来的key,对比本身基于同样seed,同样算法计算出的key值,在两个key值相等的情况下,ECU通过安全认证服务,向Tester发送正响应,通知进入解锁状态成功。 举例,本报文通常有$67 02、$67 06、$67 0A。