文章目录

  • 一、打开工程
  • 二、 质量度分析
  • 三、 问题分析
    • 1、眼图分析:幅值低、边沿台阶
    • 2、波形分析:幅值低、边沿台阶
  • 四、解决“台阶”解决
    • 1、边沿台阶的源头
    • 2、消除边沿台阶
      • 1)减少分支长度
      • 2)长分支上加适当电阻
      • 3)缩短残端
      • 4)消除负载集中
      • 5、屏蔽层分段接地
  • 五、解决幅值低的问题

如果CAN总线物理信号出现波形台阶或幅值低的问题,会造成系统故障,要查找和解决这类问题,可以借助于长时间数据和波形记录分析仪RoyalScope。
​RoyalScope超长数据与波形记录分析仪,无论是CAN网络的“体检”和优化,还是CAN网络偶发性故障的排查和解决,RoyalScope都可以轻松胜任。这得益于RoyalScope强大的无盲区连续信号采样和波形海量存储功能,RoyalScope将连续采集的总线上物理信号全部无遗漏的存储为波形,支持最大5200万CAN帧(1Mbps,8个数据字节)波形存储;进一步,得益于丰富和强大的分析和统计工具、统计分析结果关联报文和波形对照查看,让用户对总线状况一览无遗。

一、打开工程

二、 质量度分析

质量度平均值最低的节点是发送“ID=189”报文的CAN节点,如下图,可进一步查看“ID=189”节点质量度最低值对应的报文和波形。

三、 问题分析

1、眼图分析:幅值低、边沿台阶

2、波形分析:幅值低、边沿台阶


四、解决“台阶”解决

阻抗匹配是指信号源或者传输线跟负载之间达到一种适合的搭配,阻抗匹配主要为了调整负载功率和抑制信号反射。然而,阻抗不匹配的现象在CAN总线网络中随处可见;如下图所示,阻抗不匹配的将造成7个现象,其中最受关注的为上升沿和下降沿的台阶。

下文将针对边沿台阶的现象做详细介绍:

  • 解释边沿台阶是怎么出现的;
  • 边沿台阶如何消除;
  • 边沿台阶对总线有何影响。

1、边沿台阶的源头

在CAN总线的网络布局中,手牵手直线型拓扑是最理想最常规的布局;但是在实际现场中,经常会出现分支的现象。这里重点提一下,在计算CAN总线长度的时候,分支(从收发器端至总线)长度也要加上。
为此我们做了分支过长的实验,实验中CAN总线中有三个CAN节点,主干线长度为15米,其中一个节点的分支长度为1米,波特率为250k的情况下进行通信。下图为实验的CAN波形图,明显可以看到上升沿和下降沿存在台阶现象,从而引起波特率变化,导致接收节点采样出错(也称位宽错误)。

2、消除边沿台阶

边沿台阶是造成错误波形的罪魁祸首,那么该如何消除边沿台阶的现象呢?下文将从源头以及补救措施上分别介绍一些可靠有效的方法。

1)减少分支长度

在CAN网络布局的根源上解决问题的方式就是减少CAN节点的分支长度,从而降低信号反射,保证位宽的稳定性。在上述实验中,其它条件不变,只将分支长度减少为20cm;下图为CAN波形图,此时并没有看到边沿台阶的出现。由此可见,减少分支长度是消除边沿台阶的最直接方式。

2)长分支上加适当电阻

在网络布局无法改变,分支引起的信号反射必须存在的情况下。最实用的方法就是在长分支末端加上电阻,消除信号反射。同样的在上述实验中,在分支节点处加上一个200Ω的电阻,其它条件不变进行通信实验。下图为实验的CAN波形图,此时可以看到边沿台阶已被消减,但是加了电阻之后差分电压变小,注意差分电压不得小于0.9V。这里值得一提的是:阻值大于500Ω的电阻吸收反射的能力很弱,所以在末端挂电阻的时候应小于500Ω。

3)缩短残端

前面提到分支长度指的是从节点收发器至总线处的距离,在节点设计之初,应选择TTL远传方式,因为TTL电平不受CAN电容影响,所以收发器应靠近接口摆放,以减少分支残段的长度,建议控制在10cm以内,可以保证阻抗连续。
TTL远传最直接的方式就是将CAN收发器紧挨着CAN主干线放置,这样就没有分支长度。光缆星型拓扑结构便是使用这种方式,如下图;CAN光纤收发器内置在盒子里面,使用TTL电平远传到另一个CAN光纤收发器,解决了节点随意变化问题(节点任意上下电或插拔)。

4)消除负载集中

在布局较复杂的CAN网络中,为了避免节点摆放集中导致反射叠加,建议相邻节点的距离不得小于2cm,10m的电缆上所集中的设备最好不要超过4个,否则应加电容以吸收,并且此集中与下一个集中至少有10m的电缆距离。
同样,在复杂网络布局中,分支过长且不等的网络,由于阻抗匹配困难,常使用中继器进行分支;中继器有独立的控制器和MCU,将每段形成独立的直线拓扑。

5、屏蔽层分段接地

屏蔽层多点接地需要注意接地点电位,避免地回流影响信号质量。若屏蔽层太长可以采用分段屏蔽,单点接地方法,就可以有效避免地回流的问题。

五、解决幅值低的问题

CAN 总线上面的信号幅值是接收节点能正确识别逻辑信号的保证。一般来说差分电平(CANH-CANL)的幅值只有大于0.9V 才能被100%识别成显性电平,同理如果幅值低于0.9V 就有被识别出隐形电平的可能。
下表中的0.5V~0.9V 是不确定区域,这个根据不同收发器而异,与温度也有关系。所以检查通讯中幅值最小的那个(那些)节点,是我们的进行问题排查的重要步骤。因为如果幅值过低容易导致时通时断等现象。
为了保证通讯质量。考虑在温度变化、干扰等因素,我们通常要求现场调试CAN 的差分幅值通常都要求在1.3V 以上。所以我们可以通过RoyalScope的眼图分析找出幅值最小的亮线,保证在调整后,它处于1.3V 以上。

为了提高幅值,我们有以下几种办法:

  • 使用线径更大的线缆,减小导线阻抗,需要强调的是CAN 通讯禁止使用网线和电话线,因为其阻抗极大,100 米就相当于1000 米的标准距离;
  • 调整终端电阻值,提高幅值。这个是1.5m㎡线缆的匹配值。

使用CAN总线数据与波形记录分析仪查找和解决波形台阶和信号幅值低的问题相关推荐

  1. 【STM32入门】这个项目绝了,用手势来产生波形,基于手势控制的波形发生器

    大家好,我是张巧龙,之前有给实验室学生出了一道关于STM32的题:基于手势控制的波形产生题,题目简单,但综合性较强. 有些学生完成的还不错,个人觉得此题用来 入门 STM32再合适不过了. 展示视频: ...

  2. matlab频谱图幅值意义,时域波形傅里叶分析之后,频率-幅值波形图意义 – MATLAB中文论坛...

    %对单一的5元的样本纸币进行傅里叶分析,画出频率-幅值图(频谱图) %处理顺序: %第一步:冠字码信号时间序列 %第二步:数据预处理(数据平滑滤波),此处没有用到数据压缩,因为快速傅里叶变换涉及到采样 ...

  3. 机械故障诊断信号的幅域分析 - 幅值概率密度函数 | 基于python的代码实现,在CWRU轴承数据上实战

    机械故障诊断信号的幅域分析 - 幅值概率密度函数 | 基于python的代码实现,在CWRU数据上实战 **1.随机信号的幅值概率密度函数介绍** **2.代码实战** 2.1导入包 2.2定义CWR ...

  4. 几种常用的记录总线数据的Log文件以及如何保存和转换

    不管你是测试还是开发人员,一定免不了和总线打交道,对于测试工程师,提bug时经常需要上传log文件,其中就涉及到总线数据的保存:对于软件工程师,分析问题时需要用总线数据文件进行回放复现,这些都离不开记 ...

  5. 记录低频的混沌电压波形-双晶体管混沌信号

    简 介: 通过更换电路中的电容参数,进一步降低了混沌信号的中心频率,使用声卡进行记录的时候可以提高记录数据的完整性. 关键词: 混沌信号,晶体管,声卡,计算机记录 #mermaid-svg-zuRyQ ...

  6. HMI-67-【数据】汽车CAN总线数据读取

    HMI-67-[数据]汽车CAN总线数据读取 文章目录 HMI-67-[数据]汽车CAN总线数据读取 摘要 关于南京来可电子 本次使用设备 实物展示 到车上去搞数据 方便的OBD设计 使用电脑连接设备 ...

  7. OV7670 的SCCB (I2C)波形记录

    前两天,客户的YACD511SBDBC与我们的芯片无法通信,根据分析是,hold time 的问题,顺便测了几个好使的OV7670的SCCB(其实就是I2C) 读写的波形(数字模式),反正也不能浪费了 ...

  8. 图解CAN总线数据的组成和帧格式

    CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议.在汽车产业中,出于对安全性.舒适性.方便性.低公害.低成本的要求,各种各样的电子控 ...

  9. MySQL——查询数据库、数据表总记录数

    方法一  information_schema information_schema数据库是MySQL系统自带的数据库,它提供了数据库元数据的访问方式.information_schema就记录了数据 ...

最新文章

  1. ArrayList, LinkedList , Vector
  2. pandas使用dropna函数计算返回dataframe中不包含缺失值的行索引列表list(index of rows without missing values in dataframe)
  3. 潜移默化学会WPF--绘图 学习(一)
  4. OpenCV 自动调取摄像头并显示屏幕
  5. Selenium WebDriver- 操作 IFrame 中的页面元素
  6. C语言试题三之计算并输出 s=1+(1+2^(0.5))+(1+2^(0.5)+3^(0.5))+…+(1+2^(0.5)+3^(0.5)+…+n^(0.5))
  7. LeetCode--171--Excel表列序号
  8. Mobile Lua 6.5 发布,MoSync 的 Lua 移植版本
  9. 05-BIO,NIO,AIO几种通讯模式的比较
  10. LeetCode(136)——只出现一次的数字(JavaScript)
  11. UnityShader15:前向渲染
  12. 让VB6 IDE“认识”鼠标滚轮
  13. 如何判断sql server 2000 是否大了sp4补丁
  14. Job和CronJob介绍
  15. 小象学院—小象学院—Python学习联盟09—空气质量指数计算
  16. 什么是MysQL数据库
  17. PXE实现系统批量自动安装
  18. 舍弗勒城市车辆转向系统研究完成,可实现全自动平行泊车
  19. 嵌入式GUI盘点-你了解几款?
  20. android图案解锁忘了怎么解,安卓手机解锁图案忘了怎么办?手机解锁密码忘了的解决办法...

热门文章

  1. (并查集模板)AcWing 模板+例题240.食物链
  2. 雨林木风 Ghost XP SP3 纯净版 V2013.04
  3. Ext2.0学习入门
  4. 写代码,必须要优雅...
  5. 第二阶段 第九天 (34组个人博客)
  6. 5.UI线程和非UI线程的交互方式
  7. openwrt feeds地址配置
  8. jfinal连接oracle_jfinal数据库连接配置
  9. 巴什博弈(先手/后手必胜)
  10. vue小案例(小黑记事本和购物车)