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

CAN总线采样点不一致的危害

目录

1、确定网络参数

2、计算时间量子(tq)

3、分配位时间段

4、 使用位定时计算工具

5、遵循行业标准


采样点不一致是CAN总线网络中常见的配置错误,可能导致位错误、同步问题、错误帧增加、节点总线关闭、仲裁失败和确认错误等严重后果。

CAN总线的位时间由四个非重叠的时间段组成,每个段由时间量子(Time Quanta,tq)构成,时间量子是位定时配置的最小单位。

以下是各段的定义:

  • 同步段(Sync_Seg):用于同步网络中的各个节点,期望在此段内检测到总线电平边沿。
  • 传播段(Prop_Seg):用于补偿网络中的信号传播延迟,包括总线长度和收发器的延迟。
  • 相位段1(Phase_Seg1):用于补偿正相位误差(位转换晚于Sync_Seg),可在重新同步时延长。
  • 相位段2(Phase_Seg2):用于补偿负相位误差(位转换早于Sync_Seg),可在重新同步时缩短。

采样点位于Phase_Seg1和Phase_Seg2之间,其位置通常以位时间的百分比表示。例如,采样点为87.5%意味着在位时间的87.5%处读取总线状态。以下图示说明了位时间的分段和采样点位置:

当CAN网络中的节点配置了不同的采样点时,会引发以下严重问题:

  • 位错误,不同节点在不同时间采样可能导致对同一位的解释不一致。例如,在存在噪声或信号失真的情况下,一个采样点为50%的节点可能在信号稳定前采样,而采样点为87.5%的节点可能正确采样。这种差异会导致位错误,进而导致数据损坏。
  • 同步问题,CAN总线通过硬同步和重新同步机制确保节点时间对齐。硬同步在帧开始时重启位时间,重新同步通过调整Phase_Seg1或Phase_Seg2补偿相位误差。如果采样点不一致,同步机制可能无法有效补偿,导致节点失去时间对齐,通信失败。
  • 错误帧增加,当节点检测到位错误时,会发送错误帧通知其他节点。采样点不一致可能导致频繁的位错误,产生大量错误帧。这些错误帧会占用总线带宽,降低网络效率,甚至可能导致总线拥堵。
  • 节点进入总线关闭状态,CAN协议规定,节点在检测到过多错误后会进入错误被动状态或总线关闭状态。在总线关闭状态下,节点停止参与通信,可能导致网络部分或完全失效。采样点不一致是导致此类状态的常见原因之一。
  • 仲裁失败,在CAN总线的仲裁阶段,节点通过比较发送和接收的位值决定消息优先级。如果采样点不一致,节点可能对仲裁位做出错误判断,导致消息冲突或优先级反转,影响实时通信。
  • 确认(ACK)错误,每条消息的末尾包含一个确认位,用于验证消息是否被正确接收。采样点不一致可能导致节点无法正确采样确认位,触发重传,降低网络效率。

假设一个汽车CAN网络包含多个电子控制单元(ECU),目标位速率为500 kbps,总线长度为50米。其中一个ECU的采样点配置为50%,而其他ECU配置为87.5%。在高噪声环境下,采样点为50%的ECU可能在信号未稳定时采样,导致位错误。该ECU会发送错误帧,干扰其他节点的通信。如果错误持续发生,该ECU可能进入总线关闭状态,导致关键功能(如刹车控制)失效。

相反,如果所有ECU的采样点统一配置为87.5%,即使存在一定噪声,节点也能在信号稳定后采样,显著降低错误率。以下表格展示了两种配置的对比:

为避免采样点不一致的危害,工程师应遵循以下步骤配置位定时:

1、确定网络参数

收集网络的物理特性,包括总线长度、收发器延迟和系统时钟频率。例如,假设系统时钟为16 MHz,目标位速率为500 kbps,总线长度为50米。

2、计算时间量子(tq)

时间量子由波特率预分频器(BRP)和系统时钟频率决定。公式为:

例如,BRP=4,fsys = 16 MHz,则tq = 4/16 = 0.25 μs。

3、分配位时间段

位时间由多个时间量子组成,通常为8至25个tq。采样点位置由以下公式确定:

为实现87.5%的采样点,可设置Sync_Seg=1 tq,Prop_Seg=5 tq,Phase_Seg1=8 tq,Phase_Seg2=2 tq,总计16 tq。

4、 使用位定时计算工具

许多制造商提供位定时计算工具,如Kvaser位定时计算器,可帮助工程师快速确定合适的参数。

5、遵循行业标准

CiA推荐采样点为87.5%,并提供详细的位定时指南(如CiA 601-3文档)。工程师应参考这些标准,确保所有节点配置一致。

为确保网络可靠性,工程师必须为所有节点配置一致的位定时参数,遵循CiA等行业标准,并使用位定时计算工具。通过合理的配置和测试,CAN总线可以实现高效、稳定的通信,满足汽车和工业应用的严格要求。 

http://www.xdnf.cn/news/529093.html

相关文章:

  • 26、DAPO论文笔记(解耦剪辑与动态采样策略优化,GRPO的改进)
  • 计算机网络(2)——应用层(上)
  • Spring_Boot(一)Hello spring boot!
  • 2025年- H32-Lc140 --21. 合并两个有序链表--Java版
  • BM25(Best Matching 25)介绍与使用
  • BC27 计算球体的体积
  • hexo博客搭建使用
  • 数据库-oracle-包-视图传参
  • upload靶场1-5关
  • 【MYSQL】基本查询,表的增删查改
  • 云原生攻防1(基础介绍)
  • Unity预制体变体(Prefab Variants)、接口(Interface)、抽象类(Abstract Class)、枚举(Enumeration)
  • 如何快速更换电脑浏览器ip:教程与注意事项
  • Seata源码—6.Seata AT模式的数据源代理二
  • leetcode 74. Search a 2D Matrix
  • SQL注入——Sqlmap工具使用
  • 实景VR展厅制作流程与众趣科技实景VR展厅应用
  • Assistants API
  • upload-labs靶场通关详解:第10关
  • 项目QT+ffmpeg+rtsp(三)——延迟巨低的项目+双屏显示
  • FPGA 串口_波特率计算
  • 使用Python和FastAPI构建网站爬虫:Oncolo医疗文章抓取实战
  • [学习]POSIX消息队列的原理与案例分析(完整示例代码)
  • 循环神经网络:揭秘RNN的核心与应用
  • 设计模式的原理及深入解析
  • 人工智能100问☞第27问:神经网络与贝叶斯网络的关系?
  • Spring Boot 的高级特性与经典的设计模式应用
  • Flink 非确定有限自动机NFA
  • reserve学习笔记(花指令)
  • 用Python构建学生成绩管理系统的基本方案