CAN总线(Controller Area Network)是一种广泛应用于汽车、工业自动化、医疗设备等领域的现场总线标准。它由德国Bosch公司在20世纪80年代初提出,用于实现不同微控制器节点之间的可靠数据通信。本文重点讲解了CAN总线在信号传输中位定时与位同步的机制,这是保证数据准确传输的关键技术之一。 CAN协议与其他现场总线协议的一个重要区别在于其数据传输方式。与异步传输(面向字符)不同,CAN采用同步数据传输方式。这意味着,接收器不会在每个数据帧的起始位进行位同步,而是在一帧数据的开始处仅有一个起始位。因此,接收器需要依赖于位流中的信号边沿来不断重新同步,以保证在帧的结束时也能正确采样到数据流。 在CAN总线中,位定时是指数据帧中每个位的时长。位定时对于同步传输至关重要,因为位定时的准确性直接关系到位同步的效果。为了实现位同步,CAN协议规定了位时间的构成,包括同步段(Sync_Seg)、传播段(Prop_Seg1)、相位缓冲段1(Phase_Seg1)、相位缓冲段2(Phase_Seg2)以及采样点等部分。基本时间单位(tq)是位时间的基础,所有其他时间参数都是以tq为基准定义的。 在位时间中,同步段用于检测CAN信号电平的边沿,以便完成位同步。相位误差(e)是指实际边沿与同步段之间的距离,以时间份额表示。相位缓冲段是用于补偿振荡器间的最大时间差,确保数据传输的准确性。它们包括相位缓冲段1和相位缓冲段2,其中相位缓冲段1在硬同步之后,而相位缓冲段2在重新同步时使用。 同步分为两种类型:硬同步和重新同步。硬同步发生在帧起始处,它强制将边沿延伸到重新启动的位时间的同步段中,而重新同步则可能发生在帧中间,根据边沿相位误差的值来调整位时间的长度,进而移动采样点。同步跳转宽度(SJW)是重新同步时可调整的最大时间量。 在实际应用中,一个位时间的不同段可以根据CAN控制器的设计进行编程。例如,同步段通常设为1tq,传播段至少为18tq,相位缓冲段1至少为18tq。相位缓冲段2的长度取决于信息处理时间和相位缓冲段1的长度。为了维持稳定的总线电平,还设置了数据处理时间。 为了补偿振荡器之间的速度差异,CAN总线协议还规定了在重新同步过程中如何处理相位误差。如果发送器的振荡器速度慢于接收器,接收器可以通过采样点的移位进行补偿。反之,如果发送器的振荡器速度快于接收器,接收器则通过缩短相位缓冲段2来提前启动下一个位时间间隔。 需要注意的是,在同步过程中,同步段可以在编程的标称时间之外进行伸缩。此外,每个位时间的时间份额值必须设置在8到25之间,而波特率预分频器的值则在1到132之间。 总而言之,CAN总线信号传输位定时与位同步是确保数据准确传输的核心机制。通过合理设计位时间的各个组成部分,以及实施有效的硬同步和重新同步策略,CAN总线可以提供高速、稳定且容错能力强的通信解决方案。这些知识对于设计和实现基于CAN总线的嵌入式系统和网络至关重要。
- 粉丝: 9
- 资源: 915
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助