前文已经大概介绍了多帧传输,本文我们详细展开讲讲。
【首先要注意的是:多帧传输只能使用物理寻址,不支持功能寻址,功能寻址发送的多帧传输的首帧应被接收方忽略。】
我们假设发送方要向接收方发送32字节的数据,用传统CAN,CAN帧的DLC为8。下图是整个多帧传输过程的示例:
我们来详细看一下每个步骤:
① 发送方先向接收方发送首帧,首帧前两字节是N_PCI,包含了整个多帧传输过程所要传输的有效数据总长度,示例中是32字节。
② 接收方发送流控帧,流控帧中有三个参数:
- FS-FlowState:流控制状态,0是继续发送,代表发送方可以继续发送连续帧;1是等待,代表接收方当前不能接收连续帧,需要发送方进行等待,接收方在条件允许后会再次发送流控帧告诉发送方可以发送连续帧(如步骤⑤和⑥);2是溢出ÿ