军博网站建设,谷歌搜索引擎下载,务分销系统,做网站公司专业在 【CAN通讯系列7】波特率是什么#xff1f;已经介绍了CAN位时间和采样点等概念#xff0c;每1位由同步段(SS)、传播时间段(PTS)、相位缓冲段1(PBS1)和相位缓冲段2(PBS2)四个段组成#xff0c;这个也成为位时序#xff0c;采样点位置处于PBS1和PBS2的交界处#xff0c;如…在 【CAN通讯系列7】波特率是什么已经介绍了CAN位时间和采样点等概念每1位由同步段(SS)、传播时间段(PTS)、相位缓冲段1(PBS1)和相位缓冲段2(PBS2)四个段组成这个也成为位时序采样点位置处于PBS1和PBS2的交界处如下所示 这样定义的目的是为了保证当发送节点发送一帧数据到总线时接收节点能准确接收到这帧数据收发双方数据同步下面具体了解其机制。
1 数据传输同步
CAN协议的通信方法为NRZ(不归零)编码方式即1和0都分别由不同的电子显著状态来表现除此之外没有中性状态、也没有其他种状态而且各个位的开头或者结尾都没有附加同步信号。发送节点以与位时序同步的方式开始发送数据相应地接收节点根据总线上电平的变化进行同步和接收。发送节点和接收节点存在时钟频率误差传输路径上电缆和驱动器等的相位延迟这些情况会引起同步偏差因此接收节点需要采取一些方法来调整时序针对帧结构在空闲状态检测出第一个下降沿帧起始SOF下降沿时进行硬同步则在其余各段进行再同步。 1.1 硬同步
在总线空闲状态接收节点检测出帧起始SOF位时会调整当前位的同步(SS)段调整宽度不限这就是硬同步即接收节点直接将此下降沿的位置认为是SS段强行将自己的SS段与发送节点的SS段直接拉齐然后按照位时序对信号进行采样达到同步的效果。 发送节点在发送SOF位时SOF位的下降沿在SS段此时接收节点发现自己当前位的SS段和发送节点SOF位的SS段不同步于是接收节点强行将自己的SS段拉到与SOF位的SS段同步。
1.2 再同步
再同步是指接收节点检测出除SOF位以外的其他位时通过加长PSB1段或缩短PBS2段进行的同步调整以保证采样点的准确。
比较发送节点和接收节点的时序存在两种情况需要进行再同步一种发送节点慢于接收节点产生SS段另一种是发送节点快于接收节点产生SS段。
情况1发送节点慢于接收节点
发送节点比接收节点的时间慢了也就是说发送节点当前位的ss段产生的时候接收节点当前位的ss段已经在2个Tq之前产生了此时接收节点就将PBS1延长2个Tq的时间。以使得两者的采样点同步如下所示。 source一篇易懂的CAN通讯协议指南1
情况2发送节点快于接收节点
发送节点当前位的SS段诞生2Tq时长之后接收节点当前位才产生SS段于是接收节点当前位的PBS2段缩短使得接收节点的下一位能够提前2个Tq从而接收节点的下一位采样点和发送节点下一位的采样点能够同步。 source一篇易懂的CAN通讯协议指南1
对于这两种情况存在延长或缩短若干个Tq这里对于Tq数量是有限制的使用同步跳转宽度SJW来做限制。SJW是指PSB1或PSB2段进行再同步时允许跳转的最大宽度其必须满足以下2个条件1SJW必须小于PBS1和PBS2的最小值2SJW最大值不能超过4个Tq。
通过上述内容的介绍应该会对同步段、传播时间段、相位缓冲段1和相位缓冲段2有更深入的理解可以再回顾下这四个段的定义
1同步段CAN网络中的所有节点在接收一位数据时以此段作为位起始的参考点进行下降沿的检测统计下降沿基于SS段的偏移然后进行位时序的调整使接收趋于同步下降沿在理想情况下应出现在SS段。
2传播时间段CAN总线上数据的传输会受到物理延迟比如发送节点的发送延迟、总线上信号的传播延迟、接收节点的输入延迟等PTS段就是用来补偿这些因素产生的时间延迟。
3相位缓冲段1若下降沿延后n个Tq且延迟不大于同步跳转宽度使得原本位时序中采样点位置提前n个Tq则需要对PBS1段增加n个Tq数使采样点位置延后n个Tq吸收这段误差。
4相位缓冲段2若跳变边沿提前n个Tq, 且不大于同步跳转宽度使得原本位时序中采样点位置延后n个Tq,则需要对上一个位时序的PBS2段减少n个Tq数使采样点位置提前n个Tq吸收这段误差。
因此有了这样的机制后接收节点才能采样准确获取发送节点的真实数据。
2 小结
理解了同步段、传播时间段、相位缓冲段1和相位缓冲段2之后那我们就可以结合一个实际的例子来看在实际开发过程中如何对芯片配置这四段的Tq数以实现波特率请关注下篇文章。