本文来介绍一下网络层传输出错时的处理方式。
1. 格式错误
这里再贴一下符合规则的所有传输层帧格式,下面的错误类型都是不符合这张图的:
(1)SF_DL错误
对于单帧来说SF_DL需要满足以下两个条件:
- SF_DL < CAN_DL
- SF_DL != 0 且SF_DL <= 6/7(传统CAN)或62/63(CAN FD)
如果不满足上面两个条件,则该单帧无效,接收方应忽略。
(2)FF_DL错误
多帧传输的首帧中,FF_DL如果小于6/7,则使用单帧传输即可完成,不应使用多帧,此时接收方应忽略该首帧,发送方发送完该首帧后启动N_Bs定时器,超时后未收到流控阵,向上层报告N_Bs超时错误。
(3)SN错误
如果发送方发送的SN不连续,则接收方应停止多帧传输流程,并向上层报告SN错误。
(4)FS错误
如果接收方发送的流控帧中的FS参数不是有效值,则发送方应停止多帧传输流程并向上层报告FS错误,