好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

CAN总线中位定时的设定方法.docx

5页
  • 卖家[上传人]:m****
  • 文档编号:498097681
  • 上传时间:2023-10-20
  • 文档格式:DOCX
  • 文档大小:113.10KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • CAN总线中位定时的设定方法张健摘要:在CAN总线中,位定时有一点小错误就会导致总线性能严重下降虽然在许多情况下,位 同步会修补由于位定时设置不当而产生的错误,但不能完全避免出错情况,并且在遇到两个或多个 CAN节点同时发送的情况时,错误的采样点会使节点启动错误认可标志,使节点不能赢得总线上的 任何活动因此要分析、解决这样的错误就需要对CAN总线位定时中的位同步和CAN节点的工作 过程有一个深入的了解本文描述了 CAN总线位同步的运行规则以及如何对位定时的参数进行设 置关键词:总线 位定时 同步 延迟1. 前言CAN总线的数据传输速率最高可达IMbit/s,通常用石英晶振作为时钟发生器,可以独立进 行位定时的参数设置,这样即使网络中节点之间的时钟周期不一样仍可获得相同的位速率但网络 中晶振的频率不是绝对稳定的,温度、电压以及器件的异常都会导致微小的差别,但只要将其稳定 在振荡器容差范围之内,总线上的节点会通过重同步进行弥补CAN总线的一个位时间可以分成四个部分:同步段,传播段,相位段1和相位段2,每段的时 间份额的数目都是可以编程控制的,而时间份额的大小tq由系统时钟tsys和波特率预分频值BRP 决定:tq=BRP/tsys。

      如图 1: k-1■1■——T ■1 1 11 1 1■T1十时间粉Si 采菲点图1参数范围说明分频值[1…•…32]规定时间份额的长度同步段1tq固定长度,同步总线节点传播时间段[1•……8]tq补偿总线物理延迟时间相位缓冲段1[1•……8]tq重同步时可以暂时延长相位缓冲重同步时可以暂时缩短段2[1.....••8]tq同步跳转宽度[1.....••4]tq长度小于相位缓冲段表 1 :位时间的参数2.同步段 (1)同步段用于同步总线上的各个节点,在此段内期望有一个跳变沿出现如果跳变沿出现 在同步段之外,那么沿与同步段之间的长度叫做沿相位误差采样点位于相位缓冲段 1 的末尾和相 位缓冲段 2 开始处2)传播时间段用于补偿总线上信号传播时间和电子控制设备内部的延迟时间因此,要实现 与位流发送节点的同步,接收节点必须移相CAN总线非破坏性仲裁规定,发送位流的总线节点必 须能够收到同步于位流的CAN总线节点发送的显性位图2显示了两个总线节点的相移和传播段时 间囚冊歩段匚I禮*段 E昭程址冲段1也咼宜址冲段总带占直到E的延迟爭于书査A的誓出建迟、倉睦上的传晉时间节占B的输人建迟舐色禮•时间段 >=建迟直到B +建迟E5U传*时间段a=2 ■[曽占直的繼出建迟+負強_t的传會忖问+曽占B的筍人建迟1图2在这个例子里,节点A和节点B都是发送节点,因此总线要对两个节点进行仲裁。

      节点A比节 点B提前发送不到1个位时间,当节点B收到延迟后的跳变沿时,B节点要同步于A节点,对位时 间进行移相移相后节点B发送的标识号有较高优先级,因此节点B赢得总线的使用权,如图节点 B 发送的显性位经过延迟后到达节点 A因为存在振荡器容差,节点A的采样点在相位缓冲段的位置是不能确定的,所以节点B发送的 位流必须在A节点的相位缓冲段1开始之前到达,因此传播时间段的长度将受到这个条件的限制 如果节点B发送一个隐性到显性的跳变沿,节点A在相位缓冲段1开始之后收到,那么节点A就有 可能采样到一个隐性位,导致产生一个位错误这样的错误只有当两个节点都参与总线仲裁,且总线 比较长,节点的振荡器频率相差较大时才会出现另外,CAN总线还提供一种采样方式,即采样3 次,在相位缓冲段首尾以及相位缓冲段1、2的交界处各采样一次,并通过位定时逻辑确定位的正确 值,这样就会要求额外的一个时间份额的延迟,因而需要更长的传播时间段3.相位缓冲段和同步同步跳转宽度规定了重同步发生时采样点在相位缓冲段内移动的距离相位缓冲段和同步跳转 宽度用来补偿振荡器容差,发生重同步时相位缓冲段会被加长或缩短当总线发生从隐性到显性跳 变时,会产生同步,其作用是控制沿与采样点之间的距离。

      总线节点在每个时间份额都会采样总线 并与前一次采样值进行比较,如果前一次采样值是隐性而当前的采样值是显性,那么总线节点就会 发生一次同步如果跳变沿出现在同步段的前面,沿相位错误就是负的,反之就是正的在帧起始时,总线会进行一次硬同步硬同步后,位时间由每个位定时逻辑单元在同步段之后重 新启动,强迫引起硬同步的边沿处于重新启动位时间的同步段内当引起重同步的沿相位错误幅值小于或等于同步跳转宽度的数值时,重同步导致位时间的延长 或缩短,使采样点处于适当的位置当沿相位误差幅值大于重同步跳转宽度时,如果相位误差为正 相位缓冲段 1 延长数值等于同步跳转宽度;如果相位误差为负,相位缓冲段2 缩短数值等于同步跳 转宽度通过同步,总线可以有效地滤除长度小于传播段与相位缓冲段 1 长度之和的噪声但在一个位 时间里只允许一种同步发生除了噪声以外,绝大多数的同步都是由仲裁引起的,总线上的所有节 点都要同步于最先开始发送的节点,但是由于总线延迟,节点的同步不可能达到理想的要求如果 最先发送的节点没有赢得总线仲裁,那么所有的接收节点都要重新同步于获得总线仲裁的节点应 答场的情况也是如此,总线上的接收节点都要同步于最先发送显性位的节点。

      但是当发送节点与接 收节点的时钟周期不同并经过多次同步累加起来,振荡器容差会导致同步在仲裁场之后出现图3列 举了沿相位误差为正负两种情况,中间的图作为参考说明了相位缓冲段如何弥补沿相位错误图3在第一个例子里,同步段末端出现了一个隐性到显性的跳变沿,那么相位缓冲段 1 将加长,使 得跳变沿到采样点之间的长度与没有跳变沿出现时同步段到采样点之间的长度相等由于沿相位误 差小于同步跳转宽度,因此重同步补偿了沿相位误差,在下一个正常位时间到来时,显性到隐性的 跳变沿就出现在同步段在第二个例子中,一个隐性到显性的跳变沿出现在相位缓冲段 2,因此相 位缓冲段 2会缩短,并且同步段会被省略, 这是因为当节点同步于边沿时,节点无法确定处于相位缓 冲段 2 的同步段的起始位置由于沿相位误差的幅值小于同步跳转宽度,所以重同步取得的效果与第 一个例子是一样的需要注意的是,相位缓冲段只是暂时的被加长或者缩短,在下一个位时间,缓 冲段又会恢复预设值图 4显示了同步是怎样消除显性噪声干扰的列举的两个例子中,噪声都是 在传播段的末尾开始,长度为传播时间段与相位缓冲段 1 的和图4在第一个例子里,同步跳转宽度大于或者等于噪声跳变沿的相位误差,因此采样点适当移动, 采样值为隐性位,消除了噪声。

      在第二个例子中,同步跳转宽度小于沿相位误差,采样点移动的长 度不够,显性值被当作总线的真实值采样4. 振荡器容差范围影响振荡器容差范围的因素有相位缓冲段 1、相位缓冲段 2、同步跳转宽度和位时间最大容差 范围需要满足下面两个条件:I:df<=min(相位缓冲段1相位缓冲段 2)2 * (13 *位时间-相位缓冲段2)I I:df<=同步跳转宽度20 * 位时间需要注意的是同步跳转宽度不能大于相位缓冲段 1 和2 中的任何一个5. CAN 控制器的配置与延迟时间的计算配置CAN控制器最关键的部分就是对两个寄存器的设置寄存器0决定传播时间段、相位缓冲 段1和相位缓冲段2;寄存器2决定同步跳转宽度和分频值在位定时寄存器中,TSEG1, TSEG2, SJW和BRP设定的值要比其功能值小1,因此设定范围是[0••••.N-1]而不是[1••…N]所以位时间可 以由[TSEG1+TSEG2+3]tq或者[同步段+传播段+相位缓冲段1+相位缓冲段2]tq得到当总线延迟时间很小时,计算节点的输入延迟和输出延迟就要求很精确在位定时的设置中只有节点的输入和输出延迟需要知道我们可以通过下述方法计算延迟时间。

      在总线上输入一个显性脉冲,长度为一个位时间的长度,处于空闲状态的错误激活节点将认为是帧起始因而会产生一次 硬同步, 6 个隐性位过后,总线节点会发现一个填充位错误,发出错误激活标志我们可以得到从 发送显性脉冲开始到接收错误激活标志结束的这段时间 t1 t1 包括节点输入延迟和输出延迟、同步 延迟以及多个位时间同步延迟由时钟振荡器决定在位时间里,时钟同步延迟由同步段补偿,因此在计算延迟时间时,要通过调节时钟振荡器的相位来消除它为了获得较为精确的延迟时间,我 们必须对时钟振荡器的相位以及总线节点进行调整以获得最小的t1因此,输入输出延迟时间t2=min(t1)—7 •(正常位时间)6.小结位时间的范围是8~25个时间份额,时间份额的大小由分频值确定我们首先要确定的是传播时 间段大小由总线延迟时间决定在一个可以扩展的总线结构中,最大节点延迟和总线最大长度必 须考虑一般情况下,每米延迟为 5.5ns同步段的长度为 1 个时间份额因此相位缓冲段的长度为(时间份额总数-1-传播时间段时间份额 数)tq,如果剩余的份额数是偶数,那么应有相位缓冲段1=相位缓冲段2,或者相位缓冲段2=相位缓 冲段 1+1。

      而且,相位缓冲段2的最小长度不应小于控制器的信息处理时间,通常情况下,应该大 于2个时间份额同步跳转宽度的最大值、相位缓冲段1的最小值都是4个时间份额 如果有多个配置可以选择,那么应该选择具有最高振荡器容差范围的参数配置如果总线上有 不同时钟的节点,那么在计算传播时间段时,应该以具有最大延迟的那个节点为准振荡器容差范 围的确定应以对振荡器容差范围要求最高的节点为准。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.