在之前的文章中介绍了LIN主、从节点各自如何去做诊断测试,不太清楚的可以移步:LIN协议的诊断测试(附CAPL自动化代码)
文章目录
- 一、LIN诊断帧的帧结构
- 二、诊断数据内容分析
- 三、仿真测试实战
一、LIN诊断帧的帧结构
LIN诊断帧分为主机请求帧0x3C和从机应答帧0x3D,两者数据场固定为8个字节,都采用标准型校验和。
主机请求帧0x3C由帧头和携带诊断服务的数据段组成。
从机应答帧0x3D由帧头和携带从节点根据诊断服务的响应数据段组成。
需要注意区分的是:
1、主机请求帧应答部分的发布节点是主机节点;从机应答帧应答部分的发布节点是从机节点。
2、从机应答帧是一帧完整的LIN报文,要区别于LIN帧结构的应答部分。
二、诊断数据内容分析
如上图,诊断数据byte0为NAD节点地址,具体NAD是多少可以在LDF文件中看到,位置如下图
byte1为LIN诊断数据包含的长度,是多少就在其后包含多少个字节。
byte2-7为诊断数据内容,不够的用0xFF补齐。
三、仿真测试实战
仿真发送0x3C报文
NAD:05
数据长度:2
诊断数据内容:10 01,进入默认会话模式,其后补齐0xFF
仿真发送0x3D帧头
NAD:05
数据长度:6
从节点诊断应答数据内容:50 01 00 32 01 F4,肯定响应50 01。
这里需要指出两点:
1、从节点应答诊断数据,为什么还是Tx呢?0x3D之所以是Tx发送的,是因为帧头由仿真主节点发送。
2、仿真发送0x3C后,不能立刻仿真发送0x3D帧头,需要等待100ms,否则会出现错误帧。理由是从节点需要100ms以内进行初始化。(实现方式CAPL函数testwaitfortimeout(100))