协议控制单元(N_PDU)
N_PDU指的是协议控制单元,能够将数据在网络层从一个节点传输到另一个或多个节点。所有的协议控制单元一般包括三个领域:N_AI,N_PCI,N_Data。
缩写 | 参数名称 | 含义 |
---|---|---|
N_AI | 地址信息 | 存放发送源和目标源的地址,以及寻址方式 |
N_PCI | 协议控制信息 | 数据长度、帧类型:单帧、首帧、连续帧、流控帧 |
N_Data | 数据块 | 要传输的数据 |
错误帧处理
DLC小于预期DL时
在网络层传输过程在,会从接收到的CAN帧中,根据N_PCI协议控制信息计算出最小的预期Data长度,也就是DL(SF_DL、FF_DL)。
当实际DLC值小于预期的CAN帧接收长度时(小于协议控制信息中规定的DL),网络层应当忽略该帧报文,不采取任何进一步的行动。
SF单帧–错误帧处理
- 当网络层收到一个SF_DL等于0的SF时,网络层忽略收到的SF N_PDU,不做任何回应。
- 当采取普通地址,网络层收到一个SF_DL大于7的SF时,网络层忽略收到的SF N_PDU,不做任何回应。
- 当采取扩展或混合地址,网络层收到SF_DL大于扩展或混合接收帧的(CAN_DL-2)时,网络层忽略收到的SF N_PDU,不做任何回应。
- 当采取CAN帧数据填充,网络层收到SF帧的CAN_DL不等于8时,网络层忽略收到的SF N_PDU,不做任何回应。
- 当采取CAN帧数据优化,网络层收到SF的SF_DL的值和Table12中的有效值不匹配时,网络层忽略收到的SF N_PDU,不做任何回应。
-
FF首帧–错误帧处理
- 当网络层收到FF首帧且FF_DL<8,网络层忽略收到的FF N_PDU,不做任何回应。
- 当网络层收到FF_DL大于可用接收器缓冲区大小,这将被视为错误情况。网络层应该放弃消息的接收且发送带有溢出符号的流控帧FC。
- 注:如果使用转义序列,只支持12bit的传统设备将不会发送流控帧FC,因为设备会将FF_DL转义为小于DD_DLmin。
CF连续帧-错误处理
- 网络层如果收到的连续帧CF的序列号不符合协议规范,则终止接收。
FC流控帧-错误处理
-
网络层收到的FC流控帧中FS参数如果是无效值,则中止消息传输。
-
网络层收到的FC流控帧中保留了STmin参数值,则发送的分段消息(CF)之间的间隔时间应使用ISO15765中规定的最长STmin。
-
当网络层收到的分段数据两个CF之间时间间隔(N_As+N_Cs)小于接收器所发送FC中的STmin值,则不能保证接收器能够正确接收和处理所有帧。(如果接收器能够正确接收和处理,说明接收器性能好)
-
分段数据传输的接收方不需要监测STmin的遵守情况。