N_Bs:等流控帧超时
N_Bs 是发送方等待接收方回复流控帧 FC 的最大时间。
触发条件通常有:
- 发送方发了首帧 FF后,在 N_Bs 内没有收到接收方的 FC;
- 如果接收方先回了
FS=Wait,发送方后续在 N_Bs 内仍未收到新的 FC; - 在带块大小 BS 的传输中,发送方发完一个块后,等待下一个 FC 时超时。
标准默认值通常是1000 ms,实车诊断里常见会收紧到100~500 ms。
Trace 现象:
- 能看到
1x xx首帧; - 后面长时间没有
3x流控帧; - 随后多帧传输中断;
- 上层可能表现为诊断请求无响应、刷写中断、NRC 0x72/0x73 一类错误。
N_Cr:等连续帧超时
N_Cr 是接收方等待下一个连续帧 CF 的最大时间。
触发条件通常是:
- 接收方已经回了 FC,允许发送方继续发 CF;
- 但后续在 N_Cr 内没有收到下一个 CF;
- 或者 CF 序列号 SN 异常、帧丢失、总线仲裁失败导致 CF 中断。
标准默认值也常为1000 ms。
Trace 现象:
- 能看到
1x xx首帧; - 能看到
3x流控帧; - 能看到
21, 22, 23 ...连续帧,但中间突然断掉; - 序列号不连续,或者最后一帧之后再无 CF;
- 接收方放弃本次多帧接收,传输中止。
排查时怎么快速判断?
FF 之后没有 FC→ 优先看N_Bs;
FC 之后 CF 断了→ 优先看N_Cr;
FF/FC/CRC/Counter 异常→ 先看 CANoe 的 E2E 或 TP 层错误标记。
一句话记忆:N_Bs 管“首帧后等流控”,N_Cr 管“流控后等连续帧”,STmin 管“连续帧之间别发太快”。