当前位置: 首页 > news >正文

如何调整CAN位宽容忍度?

CAN位宽容忍度是指在控制器局域网络(CAN, Controller Area Network)中允许时钟同步的误差范围。这是CAN网络正常通信时的关键因素之一,因为CAN协议依赖位同步来确保多个节点在总线上正确解码数据。CAN位宽容忍度确保节点之间由于时钟偏差或抖动而导致的微小时间误差不会导致通信故障。

CAN网络的各个节点通过定时参数将位宽(bit width)划分为几个时间段,称为时间量子(Time Quanta, TQ)。一个完整的CAN位由多个时间量子组成,通常分为4个阶段:

  • 同步段(Synchronization Segment, Sync_Seg): 用于检测边沿同步。
  • 传播段(Propagation Segment, Prop_Seg): 传播延迟。
  • 相位缓冲段1(Phase Buffer Segment 1, Phase_Seg1): 用于补偿传播延迟和节点时钟的容差。
  • 相位缓冲段2(Phase Buffer Segment 2, Phase_Seg2): 用于与实际接收到的边沿调整同步。

在CAN网络中,位宽容忍度是由相位缓冲段1(Phase_Seg1)和相位缓冲段2(Phase_Seg2)决定的。这两个段用于调整每个节点的时钟,使它们保持同步。CAN控制器可以通过调整这些段的长度来补偿时钟误差,进而实现对位宽容忍度的管理。

调整CAN位宽容忍度的关键是正确设置CAN定时寄存器中的相关参数。以下是主要的定时参数:

  • 时钟周期(TQ, Time Quanta): 可以通过调整CAN控制器的分频器来设置一个TQ的长度。
  • 同步跳转宽度(SJW, Synchronization Jump Width): 当接收到的边沿时间与预期不同步时,SJW定义了允许的时间跳跃范围。增大SJW可以容忍更大的时钟误差。
  • 相位缓冲段1和相位缓冲段2的长度: 这些段的长度越大,容忍的误差范围越大,但也会影响传输速度。

调整CAN位宽容忍度的步骤:

  • 选择CAN总线速度:总线速度通常取决于网络中的节点要求和线缆长度(例如,500 kbps 或 1 Mbps)。
  • 设置时钟周期TQ:根据CAN控制器时钟频率和总线速率来计算每位的时间量子数。公式为:

  • 调整同步跳转宽度SJW:通过设置同步跳转宽度来容忍边沿与预期位置的偏移。如果网络中节点的时钟偏差较大,可以增加SJW的值,以允许更大的时钟跳跃。
  • 配置相位缓冲段:调整Phase_Seg1和Phase_Seg2的长度,确保时钟误差在可接受范围内。常见的做法是让Phase_Seg1的长度略大于Phase_Seg2,以提供更大的时钟调整能力。

例如,使用的CAN控制器时钟为8 MHz,要配置CAN总线的速度为500 kbps,具体步骤如下:

每位的时间量子数(TQ):CAN速度为500 kbps,因此每位占用的时间为:

这意味着一位的长度应为2微秒。

时钟周期:8 MHz时钟频率,1个时钟周期为125 ns。则一个位需要的时间量子数(TQ)为:

设置同步段和相位缓冲段:根据总线速度和网络条件,设置同步段1 TQ,传播段6 TQ,相位缓冲段1为4 TQ,相位缓冲段2为3 TQ,这样就提供了足够的时钟容忍度。

同步跳转宽度SJW:设置SJW为2 TQ,容许小范围的跳跃调整。

假设网络中某些节点的时钟精度较差,为了容忍这些节点的时钟误差,可以采取以下措施:

  • 增加SJW的宽度,例如从2 TQ调整为4 TQ。
  • 增加相位缓冲段1和相位缓冲段2的长度,以允许更多的时钟调整空间。例如,将相位缓冲段1从4 TQ调整为6 TQ,将相位缓冲段2从3 TQ调整为5 TQ。

这样可以进一步增强对时钟误差的容忍度,确保在有一定时钟偏差的节点中仍然保持稳定的通信。

相关文章:

  • 一个解析cyber record文件的python示例脚本
  • HC32F460_BootLoader
  • 构建智能AI数字人:一站式源码开发指南
  • 【Http和Https区别】
  • 企业数据集成:实现高效调拨出库自动化
  • excel中VBA宏的使用方法?
  • 水果生鲜农产品推荐系统 协同过滤余弦函数推荐水果生鲜农产品 Springboot Vue Element-UI前后端分离 代码+开发文档+视频教程
  • JavaScript 年后复习
  • 【算法】初等数论
  • Spring事务原理 二
  • 【hot100】刷题记录(25)-实现Trie
  • EVM系区块链开发网节点搭建及测试详细文档
  • 对VQ-VAE中EMA方式更新码本的理解
  • RT-Thread+STM32L475VET6——USB鼠标模拟
  • HTTP状态码完整梳理及适用场景
  • 报表控件stimulsoft操作:使用 CDN 服务部署 Stimulsoft 组件
  • 第15届 蓝桥杯 C++编程青少组中/高级选拔赛 202401 真题答案及解析
  • [250222] Kimi Latest 模型发布:尝鲜最新特性与追求稳定性的平衡 | SQLPage v0.33 发布
  • QT闲记-工具栏
  • nginx反向代理以及负载均衡(常见案例)
  • 上海国际碳中和博览会下月举办,首次打造民营经济专区
  • 降水较常年同期少五成,安徽四大水利工程调水超11亿方应对旱情
  • 俄方代表团抵达土耳其,俄乌直接谈判有望于当地时间上午重启
  • 一个多月来上海交大接连“牵手”三区,在这些方面进行区校合作
  • 四部门:到2025年底,全国行政村5G通达率超过90%
  • 体坛联播|巴萨4比3打服皇马,利物浦2比2战平阿森纳