2.1 SequenceNumber(SN)的取值
其取值范围为:0~F;
通常,首帧的SN值为0(虽然首帧数据中没用SN,但依然将SN值当作是0)。首帧后的第一个连续帧的SN值为1,之后每遇到一个连续帧,SN值加1。当SN=15后再遇到一个连续帧时,其值变为0,依次类推。
SN的值不受流控帧(FC)的影响;
2.2 FlowStatus(FS)的取值
以下数据均为十六进制数。
0 -> 继续发送;
1 -> 等待;
2 -> 溢出;
3~F -> 保留字段;
2.3 BlockSize(BS)的取值
以下数据均为十六进制数。
0 -> 接收方向发送端告知:接收端后续将不会再发送流控帧响应,发送端也不需要等待流控帧,发送端直接发送余下的连接帧数据;
01~FF -> 接收方向发送端告知:接收端能接收的连续帧大小,单位:字节;
2.4 SeparationTime minimum(STmin)的取值
此值由接收方定义,表示接收两个连续帧的时间间隔;
00~7F -> 0~127毫秒;
80~F0 -> 保留字段;
F1~F9 -> 100~900微秒;
FA~FF -> 保留字段;
3. 示例一
以下图“密钥不正确”的操作为例说明“03 7F 27 35 AA AA AA AA”报文的含义。
以上图来进行说明:
报文:03 7F 27 35 AA AA AA AA, 其中:
A). 0表示这个是一个SF,即单帧;
B). 第二位非0,表示这是一个长度为8字节的报文;
C). 3表示,playload负载长度是3个字节;
D). 7F,是诊断负响应码标识;
E). 27表示的是诊断安全访问服务(SecuritySession);
F). 35为具体的负响应码,“非法密钥”;
G). AA 是位填充符;
因此,03 7F 27 35 AA AA AA AA报文表示就是:密钥不正确;
4. 示例二
下图为一个通过指定DID来读取相关数据的服务(诊断22服务)。
Step1:
0:表示单帧(SF);
3:表示一个长度为8字节的报文,后面的负载长度是3个字节;
22:表示诊断的22服务;
F1 B3:指定的DID值
Step2:
1:表示首帧(FF);
8:表示整个数据包的长度为8个字节;即:62 32 15 16 16 51 36 36
Step3:
3:表示流控帧(FC);