前文讲述了CAN的物理层标准,约定了电气特性,以下介绍的协议层则规定了通讯逻辑。
【资料图】
在这些帧当中,数据帧和遥控帧由用户设定,其他的帧由CAN的硬件部分完成。
(7) 帧结束:表示数据帧结束。
(6) 帧结束:表示遥控帧结束。
(1) 错误标志:错误标志包括有效错误标志和无效错误标志两种。
(2) 错误间隔符:错误间隔符由8位隐性电平构成。
(2) 过载间隔符:8个隐性位。过载间隔符的构成与错误间隔符的构成相同。
(3) 延迟传送(发送暂时停止):8个隐性电平。处于错误无效态的单元在发送完一个消息后的帧间隔中必须包含的段。
在总线空闲态,最先开始发送消息的单元获得通信权。
多个单元同时开始传送时,各发送单元从仲裁段的第一位开始进行仲裁。位电平第一次出现不同而且位电平为显性的单元获得通信权发送。仲裁失败的单元在下一个位开始进入接收状态。
仲裁的过程如下图所示:
(1) 数据帧和遥控帧的优先级
(2) 标准格式和扩展格式的优先级
具有相同基本ID的标准格式与扩展格式的数据帧或遥控帧在总线上竞争时,由于标准格式的RTR位为显性电平,具有更高的优先权,可进行发送。
错误的种类、错误的内容、出错的帧和检出错误的单元如下表所示。
这些段由最小时间单位Tq(Time Quantum)构成。
消息中的1位被分为4个段,每个段又由若干个Tq构成,这称为位时序。
消息中的1位由多少个Tq构成、每个段又由多少个Tq构成、这些是可以任意设定的。通过设定位时序,总线上数个单元可以以相同的时序对消息采样,可以设定采样点。采样点设置在PBS1的结束处,以此时检测到的总线上的电平值作为该位的电平值。
各段的用途和Tq数如下表所示。
1位的构成如下图所示。
CAN 协议的通信方法为非归零NRZ(Non-Return to Zero)方式。每个位上没有开始或终了的同步信号。发送单元以与位时序同步的方式开始发送数据。接收单元根据总线上电平的变化进行同步接收信号。
但是,发送单元和接收单元存在的时钟频率误差及传送路径上的(电缆、驱动器等)相位延迟会引起同步偏差。因此接收单元通过强制同步、再同步的方法调整时序进行接收。
接收单元在总线空闲状态检出帧起始时进行的同步调整。检出从隐性电平到显性电平的边沿时被认为是SS段,与SJW无关。
在接收过程中根据总线上的电平变化进行的同步。
检出边沿(总线上的电平跳变)时,对照误差值并且根据SJW值延长PBS1段,或缩短PBS2段,以配合同步。但如果发生了超出SJW值的误差,按照SJW值作修正。
(6) 发送单元观测到自身输出的显性电平有延迟时不进行再同步。
CAN FD可以理解成CAN协议的升级版,只升级了协议,物理层未改变。
CAN FD协议引入了经过调整的CAN数据帧,以实现额外的数据字节和灵活的比特率。
下面我们比较一个11位的传统CAN帧与一个11位的CAN FD帧(同时也支持29位):
• 错误状态指示器 Error State Indicator(ESI):表示发送节点状态,指示节点处于错误活动模式还是错误被动模式。
DLC:像在传统CAN中一样,CAN FD DLC是4位,表示帧中数据字节的数量。下表显示了这两种协议如何始终使用多达8个数据字节的DLC。为了维持4位DLC,CAN FD使用从9到15的其余7个值来表示所使用的数据字节数(12、16、20、24、32、48、64)。
标签:
Copyright © 2015-2022 南非兽药网版权所有 备案号:沪ICP备2022005074号-13 联系邮箱:58 55 97 3@qq.com