资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
CAN 总线位定时与同步机制的研究控制器局域网 CAN 是一种用于连接汽车和工业场合中电子控制模块、传感器和执行器的串行、多主通信规范。由于 CAN 总线具有很强的纠错能力、支持差分收发、传输距离远等特点,因此 CAN 总线用途非常广泛,现已成为工业数据通信领域的主流技术、基础技术,目前比较流行的 TTCan,DeviceNet,CANo-pen ,SAE J1939 等规范均是以 CAN为基础的,因此对 CAN 总线的深入研究是十分必要的。在 CAN 规范中,位定时和同步机制是既重要又难于理解的环节之一,它不仅关系到对波特率、总线长度等相关内容的理解,甚至对节点开发的成功与否产生直接的影响。然而,目前相关文献均缺乏针对 CAN 总线位定时和同步机制的详细分析和探讨。在此以 CAN 技术规范为基础,深入分析 CAN 总线的位定时和同步机制,给出硬同步和重同步的定义,并给出相应的图解解释方式,对位时间的组成与结构、同步的发生时刻、同步是如何进行的等关键内容给出了明确而又具体的分析。这里的工作对理解位定时和同步机制的本质、指导位时间参数的设置均具有较高的参考价值。 1 位定时 1.1 位时间的组成 位时间(位周期)tB 即 1 位的持续时间 (也就是总线的传输速度:波特率)。正常位时间 tNBT是正常位速率 fNBT(在非重同步的情况下,借助理想发送器每秒发送的位数 )的倒数,即tNBT=1fNBT。正常位时间可划分为几个互不重叠的时间段,这些时间段包括:同步段(SYNC-SEG)、传播时间段(PROP-SEG)、相位缓冲器段 1(PHASE-SEG1)、相位缓冲器段2(PHASE-SEG2)。每个时间段由整数个被称为时间份额 tQ(Time quantum)的基本时间单位组成。tQ 是由振荡器周期 tCLK 派生出的一个固定时间单元。一个时间份额(TQ)的持续时间通常便是 CAN 的一个系统时钟周期 tSCL(SYSCLKOUT)。tSCL 可通过可编程的预引比例因子进行调整。每个位时间必须由 825 个时间份额组成。位时间的组成如图 1 所示。位时间的各个时间段均有其特定的用途: (1)同步段用于使总线上的各个节点同步,要求有 1 个跳变沿位于此段内,该段长度为 1 个时间份额; (2)传播时间段用于补偿网络内的物理延时,它是信号在总线上传播时间、输入比较器延时和输出驱动器延时之和的 2 倍,该段长度为 18 个时间份额; (3)相位缓冲器段 1 和相位缓冲器段 2 用于补偿沿的相位误差,通过重同步,相位缓冲器段1 可被延长或相位缓冲器段 2 可被缩短。 这些时间段的长度均是可编程的。在常用的通信控制器(SJA1000)或 PAC82C200 中,合并传播时间段和相位缓冲器段 1,称为时间段 1(TSEGl),相位缓冲器段 2 称为时间段2(TSEG2),如图 1 所示。 采样点是这样一个时刻:在此时刻上,总线电平被读取并被理解为其自身的数值。它位于相位缓冲器段 1 的终点。在重同步期间,采样点的位置被移动整数个时间份额,该时间份额被允许的最大值称为重同步跳转宽度(SJW) ,它可被编程为 14 个时间份额。值得注意的是,重同步跳转宽度并不是位时间的组成部分。 1.2 位定时的作用 位定时是由节点自身完成的(可编程) ,节点进行位定时的作用为: (1)确定位时间,以便确定波特率( 位速率),从而确定总线的网络速度;或在给定总线的网络速度的情况下确定位时间; (2)确定 1 位的各个组成部分同步段、传播时间段、相位缓冲器段 1 和相位缓冲器段 2的时间长度,其中同步段用于硬同步,位于相位缓冲器段 1 终点的采样点用于保证正确地读取总线电平; (3)确定重同步跳转宽度以用于重同步。 2 CAN 总线同步机制分析 CAN 规范定义了自己独有的同步方式:硬同步和重同步。同步与位定时密切相关。同步是由节点自身完成的,节点将检测到来自总线的沿与其自身的位定时相比较,并通过硬同步或重同步适配(调整)位定时。在一般情况下,引起硬同步和重同步发生的、来自 总线的沿如图 2 所示。 2.1 硬同步CAN 技术规范给出了硬同步和重同步的结果,但没有给出硬同步和重同步的定义。这里首先给出硬同步和重同步的定义,然后对其进行分析。所谓硬同步,就是由节点检测到的,来自总线的沿强迫节点立即确定出其内部位时间的起始位置(同步段的起始时刻 )。硬同步的结果是,沿到来时刻的前一时刻 (以时间份额 tQ量度) ,即成为节点内部位时间同步段的起始时刻,并使内部位时间从同步段重新开始。这就是规范中所说的“硬同步强迫引起硬同步的沿处于重新开始的位时间同步段之内” 。硬同步一般用于帧的开始,即总线上的各个节点的内部位时间的起始位置(同步段) 是由来自总线的一个报文帧的帧起始的前沿决定的。同步段的时间长度为 1 个时间份额。如图 3 所示来自总线的引起硬同步的沿在 t1 时刻到来,则节点检测到该沿。将 t1 时刻的前一时刻 t0(以 tQ 为周期)作为内部位时间同步段的起始时刻。2.2 重同步所谓重同步,就是节点根据沿相位误差的大小调整其内部位时间,以使节点内部位时间与来自总线的报文位流的位时间接近或相等。作为重同步的结果,PHASE-SEG1 可被延长或 PHASE-SEG2 可被缩短,从而使节点能够正确地接收报文。重同步一般用于帧的位流发送期间,以补偿各个节点振荡器频率的不一致。这里涉及到沿相位误差的概念。沿相位误差由沿相对于节点内部位时间同步段的位置给定,以时间份额量度,沿相位误差的符号为 e,其定义如下:(1)若沿处于 SYNCSEG 之内,则 e=0;(2)若沿处于采样点之前(TSEG1 内),则 e0;(3)若沿处于前一位的采样点之后(TSEG2 内),则 e0。这表明节点内部的位时间小于总线位流的位时间。为了使节点能从总线上通过采样得到正确的位数值,需使节点内部的位时间延长,以使节点内部位时间与总线位流位时间接近或相等。因此,在这种情况下节点应采取的重同步策略为:使 PS1 延长一定宽度(图 4 中 PS1 延长 2 个时间份额,即同步跳转宽度为大于等于 2 个时间份额,如为 3 个时间份额)。e0 的情况与之类似,只是 PS2 会相应地缩短一定宽度。这与 CAN 技术规范中的重同步策略是一致的。这里需要注意的是,相位缓冲段只在当前的位时间内被延长或缩短,在接下来的位时间内,只要没有重同步,各时间段将恢复编程预设值。3 控制器中位定时参数设置的一般方法在典型的独立 CAN 控制器(SJA1000 或 PCA82C200)中,负责位定时的寄存器为总线定时寄存器 0(BTR0)和总线定时寄存器 1(BTR1),其结构如图 5 所示。寄存器中有关参数的计算公式如下:这些参数的范围在 CAN 中有较严格的规定,具体如表 1 所示。在有些情况中为了优化网络性能,这些参数的设置往往需要考虑传输延迟、时钟偏频等因素。然而,对于一般的开发或工程实际,完全可以根据经验对其进行计算和设置。这里以一个时钟频率为 20 MHz、通信波特率为 250 Kbs(位时间为 4s)的系统为例,介绍与位定位有关的各参数的计算方法和步骤。(1)确定时间份额。由表 1 可知,在 1 个位周期中时间份额的数量必须是 825 之间的3)确定同步跳转宽度和采样次数。为完成位定时参数的设置,最后还要确定同步跳转宽度和采样次数。同步跳转宽度的一般设置原则是在允许的范围内应尽可能的大一些,这样更有利于在重同步时对沿相位误差的补偿,在这里可将该参数设置为 3。采样次数的设置比较容易和直接,对于高速总线,建议将 SAM 置为“0” ,此时总线被采样 1 次;而对于低中速总线,建议将 SAM 置为“1” ,此时总线被采样 3 次。250 Kbs 属于高速总线,所以在这里 SAM 应置为 0。通过以上方法和步骤所确定的各参数值,再结合式(2)、式(3)、式(5)、式(6) 可直接得出寄存器 BTR0和 BTR1 的设置值。4 结 语(1)结合图解的方式对 CAN 总线位定时、硬同步和重同步等关键技术的深入探讨和分析,反映了 CAN 总线位定时和同步机制的本质、清晰地表明了它们在 CAN 技术规范中的地位与作用。(2)在 CAN 总线中,通信波特率(位时间) 、每个位时间的采样位置及个数、同步跳转宽度等都可以自行设定。然而,位定时参数如果设置不当就会检测到错误并进行错误处理,导致总线性能下降甚至无法工作。因此要分析、解决这样的问题就需要对 CAN 总线位定时和同步机制有较深入的理解,从而保证正确地设置位定时参数。(3)这里所研究的内容,是深入理解和学习 CAN 总线技术的前提和保证,也是进行后续开发和研究的基础和关键。本文来自: 高校自动化网 (Www.zdh1909.com) 详细出处参考(转载请保留本链接) :http:/www.zdh1909.com/html/fpga/9480_3.html
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号