新闻详情

CAN协议规范介绍(4)

对于报文发送器和接收器,报文的实际有效时刻是不同的。对于发送器而言,如果直到帧结束末尾一直末出错,则对于发送器报文有效。如果报文受损,将允许按照优先权顺序自动重发送。为了能同其他报文进行总 线访问竞争,总线一旦空闲,重发送立即开始。
    对于接收器而言,如果直到帧结束的最后一位一直末出错,则对于接收器报文有效。

构成一帧的帧起始、仲裁场、控制场、数据场和CRC序列均借助位填充规则进行编码。
当发送器在发送的位流中检测到5位连续的相同数值时,将自动地在实际发送的位流中插入一个补码位。
数据帧和远程帧的其余位场采用固定格式,不进行填充。出错帧和超载帧同样是固定格式,也不进行位填充。
报文传送由4 种不同类型的帧表示和控制:
数据帧携带数据由发送器至接收器;远程帧通过总线单元发送,以请求发送具有相同标识符的数据帧;
出错帧由检测出总线错误的任何单元发送;超载帧用于提供当前的和后续的数据帧的附加延迟。
数据帧和远程帧借助帧间空间与当前帧分开。

同步机制
   CAN总线的位同步只有在节点检测到“隐性位”(逻辑1) 到“显性位”(逻辑0)的跳变时才会产生,当跳变沿不位于位周期的同步段之内时将会产生相位误差。该相位误差就是跳变沿与 同步段结束位置之间的距离。
    如果跳变沿发生在同步段之后采样点之前为正的相位误差;如果跳变沿位于同步段之前采样点之后为负的相位误差。相位误差源于节点的振荡器漂移,网络节点之间的传播延迟以及噪声干扰等。CAN协议规定了两种类型的同步:硬同步和重同步。

硬同步
   硬同步只在总线空闲时通过一个下降沿(帧起始)来完成, 此时不管有没有相位误差,所有节点的位时间重新开始。强迫引 起硬同步的跳变沿位于重新开始的位时间的同步段之内。
重同步
   在消息帧的随后位中,每当有从“隐性位”到“显性位”的跳变,并且该跳变落在了同步段之外,就会引起一次重同步。重同 步机制可以根据跳变沿增长或者缩短位时间以调整采样点的位 置,保证正确采样。
CAN协议的位填充机制除实现仲裁场、控制场、数据场和CRC序列的数据的透明性外,还增加了从“隐性位”到“显性位”跳变的机会,也就是增多重同步的数量,提高同步质量。