最近在研究CAN总线,发现CAN总线的CANH和CANL上的波形有好有坏,如图1所示红框中所示,有的波形有明显的过冲,想弄清楚原因,请教了一些前辈,自己也查阅了一些资料,但由于孔丙火(微信公众号:孔丙火)自身愚钝,总是感觉不能完全理解。

图1

根据孔丙火(微信公众号:孔丙火)的理解,CAN波形中的冲击是由于电平陡然变化,在传输双绞线上电波反射造成的,回波反射的原理应该是很复杂的,查阅了相关文献,理论公式一大堆,什么基尔霍夫定律等等,总之,对于我们这些搞应用研究的人来说,一句话,看不懂,但有没有其他方法可以简单理解这种现象呢,我想是有的,下面列举几种比较通俗的解释,有的用自然现象解释,有的用人性解释,反应了CAN总线作为自然界的一部分,就会遵循自然规律,有的“道法自然”意思。

(1)用光的反射来解释

孔丙火(微信公众号:孔丙火)看过周立功关于CAN总线的一本书,书中用光的反射原理解释了CAN信号的回波反射,很形象。他说,电波在双绞线中传输,跟光波在空气中传输具有相同的道理,当光从空气射向水面时,一部分被反射,另一部分折射进入水中。电信号在均匀的双绞线中传播时,是不会有反射的,但在双绞线的末端,线缆的特征阻抗突然变化,信号就会发生反射,反射信号与源信号叠加,就会形成向上的冲击。

图2

(2)用水流解释

这是一个前辈打的比喻,也比较形象。在河流中,如果水流比较缓慢,是看不到回波的,如果水流突然变大,就会看到有反方向的回波。在CAN总线中,低电平突然变到高电平时,就会像水流一样出现回波,从这个角度讲,总线信号电平应该缓慢变化比较好,回波反射小,但太缓慢会影响通信速率,要取个择中,这就是CAN收发器芯片的斜率控制,现在好多芯片都没有这个管脚了,应该是斜率是固定的,因此,不同的芯片在相同的测试条件下,回波反射式差别的。周立功公司有一篇文章,专门比较了几种芯片的性能,大家可以百度搜一下,题目是:主流CAN收发器性能PK,孔丙火(微信公众号:孔丙火)认为写得不错。

(3)用人与人交流解释

有的人性子急,如果交流的时候,你的性子也急,把想要说的事,想要讲的话一股脑的全说完,可能会引起对方的激烈反应,如果你讲究方式方法,做好铺垫,慢慢谈,对方的反应就不会那么大,这也是一个前辈打的比喻,是不是跟CAN总线的信号反射有些类似啊。人性在CAN总线上的反应,孔丙火(微信公众号:孔丙火)感觉有些意思,写出来跟大家分享一下。

图3

(4)用能量守恒定律解释

下面是从一篇论文中摘出来的,写得也有道理,大家可以看一下,有助于理解。

图4

关于CAN总线的回波反射问题,还是有很多细节问题需要研究的,尤其是对于多节点长距离的应用,留待后续一起讨论。关于你的理解,也可以留言一起探讨。

学习是有趣的,老祖宗是智慧的

道法自然

CAN总线、自然与人的更多相关文章

  1. Android组件化方案及组件消息总线modular-event实战

    背景 组件化作为Android客户端技术的一个重要分支,近年来一直是业界积极探索和实践的方向.美团内部各个Android开发团队也在尝试和实践不同的组件化方案,并且在组件化通信框架上也有很多高质量的产 ...

  2. LINUX设备驱动模型之class

    转自 https://blog.csdn.net/qq_20678703/article/details/52754661 1.LINUX设备驱动模型中的bus.device.driver,.其中bu ...

  3. Web前端面试题整合,持续更新【可以收藏】

    饭后闲来无事,把这几年带学生用的一些面试题整合一下,供上!拿走,不客气!应付一般公司的二面基本上是够用了.祝你早日拿到心仪的offer. css相关 1. 万能居中 1.margin: 0 auto; ...

  4. 用批处理启动MySQL命令行工具

    最近在看MySQL,安装好之后,每次在开始菜单去启动MySQL命令行工具的时候,都是直接用root用户连接我本地的数据库 输入密码开始工作,但是要连接服务器上的MySQL的话,就要去CMD下运行 : ...

  5. Centos 上使用Mono+MVC5+WebApi+Sqlite

    鉴于现在网上很多Mono安装Jexus的方法已经过时,你打开百度搜索基本是几个前辈写的文字,很多其实是过去式了.踩的坑多自然使人望而生畏,而方便快捷的方法百度排名却太低,这里就安利下笔者刚成功使用的方 ...

  6. 张小龙《微信背后的产品观》之PPT完整文字版

    微信回顾 433天,一亿用户 成为移动互联网的新入口 启动(2010年11月19日) 用户数突破1亿 1.0 1月26日 2.0 5月10日 语音对讲 2.5 8月3日 查看那附近的人 3.0 10月 ...

  7. 《Out of control》阅读笔记(一)

    Out Of Control 说实话,当初买这本书起源于知乎诸位学问人的推荐,脑子一热就买了.为了不浪费这几十块钱,细致了看完了前三章,买来一看才发现原来这本书居然跟计算机有很深刻的关系.其实更准确地 ...

  8. [CLR via C#]16. 数组

    数组是允许将多个数据项当作一个集合来处理的机制.CLR支持一维数组.多维数组和交错数据(即由数组构成的数组).所有数组类型都隐式地从System.Array抽象类派生,后者又派生自System.Obj ...

  9. 我在用的mac软件(2)-终端环境之zsh和z(*nix都适用)

    继续上篇介绍我的终端环境.这篇介绍zsh和z,其实这不局限于os x,在所有的*nix系统中都是可用的. zsh zsh作为bash的替代品,自然很多人要问:why zsh? 在Zsh Worksho ...

随机推荐

  1. Validate Binary Search Tree(一定掌握的方法)

    Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as ...

  2. DB2常用命令2

    1.启动实例(db2inst1):实例相当于informix中的服务 db2start 2.停止实例(db2inst1): db2stop 3.列出所有实例(db2inst1) db2ilist 4. ...

  3. Spring Boot开发MongoDB应用实践

    本文继续上一篇定时任务中提到的邮件服务,简单讲解Spring Boot中如何使用MongoDB进行应用开发. 上文中提到的这个简易邮件系统大致设计思路如下: 1.发送邮件支持同步和异步发送两种 2.邮 ...

  4. Day4_装饰器

    装饰器: #模板def auth(func): def wrapper(*args,**kwargs): res=func(*args,**kwargs) return res return wrap ...

  5. Failed to create the Java Virtual Machine(zt)

    http://lixueli26.iteye.com/blog/711152 在以下版本也发生类似情况,采用同样方法得以解决. 版本:eclipse-jee-indigo-win32 自己电脑上装的j ...

  6. win10右键添加在此处打开powershell

    如图: 你想要的效果可能就是这个吧?但是找了好久没有找到方法?爸比告诉你,不需要修改任何东西, 解锁新姿势: 在文件夹空白处,按住shift同时鼠标右击,发现没??发现没!!!!

  7. SQL Server 表的管理_关于事务的处理的详解(案例代码)

    SQL Server 表的管理_关于事务的处理的详解(案例代码) 一.SQL 事务 1.1SQL 事务 ●事务是在数据库上按照一定的逻辑顺序执行的任务序列,既可以由用户手动执行,也可以由某种数据库程序 ...

  8. Java多线程:wait(),notify(),notifyAll()

    1. wait(),notify(),notifyAll() 2. wait() 2.1. wait() 2.2. wait(long timeout) 2.3. wait(long timeout, ...

  9. Java枚举enum以及应用:枚举实现单例模式

    枚举作为一个常规的语言概念,一直到Java5才诞生不得不说有点奇怪,以至于到现在为止很多程序员仍然更喜欢用static final的形式去命名常量而不使用,一般情况下,Java程序员用这种方式去实现枚 ...

  10. flush()清空文件缓存区

    # 缓冲区:cpu 一级缓存 二级缓存 三级缓存 import time f =open('2.txt','a+' ,encoding='utf-8') f.write('helloworld\n') ...