CAN总线、自然与人
最近在研究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总线、自然与人的更多相关文章
- Android组件化方案及组件消息总线modular-event实战
背景 组件化作为Android客户端技术的一个重要分支,近年来一直是业界积极探索和实践的方向.美团内部各个Android开发团队也在尝试和实践不同的组件化方案,并且在组件化通信框架上也有很多高质量的产 ...
- LINUX设备驱动模型之class
转自 https://blog.csdn.net/qq_20678703/article/details/52754661 1.LINUX设备驱动模型中的bus.device.driver,.其中bu ...
- Web前端面试题整合,持续更新【可以收藏】
饭后闲来无事,把这几年带学生用的一些面试题整合一下,供上!拿走,不客气!应付一般公司的二面基本上是够用了.祝你早日拿到心仪的offer. css相关 1. 万能居中 1.margin: 0 auto; ...
- 用批处理启动MySQL命令行工具
最近在看MySQL,安装好之后,每次在开始菜单去启动MySQL命令行工具的时候,都是直接用root用户连接我本地的数据库 输入密码开始工作,但是要连接服务器上的MySQL的话,就要去CMD下运行 : ...
- Centos 上使用Mono+MVC5+WebApi+Sqlite
鉴于现在网上很多Mono安装Jexus的方法已经过时,你打开百度搜索基本是几个前辈写的文字,很多其实是过去式了.踩的坑多自然使人望而生畏,而方便快捷的方法百度排名却太低,这里就安利下笔者刚成功使用的方 ...
- 张小龙《微信背后的产品观》之PPT完整文字版
微信回顾 433天,一亿用户 成为移动互联网的新入口 启动(2010年11月19日) 用户数突破1亿 1.0 1月26日 2.0 5月10日 语音对讲 2.5 8月3日 查看那附近的人 3.0 10月 ...
- 《Out of control》阅读笔记(一)
Out Of Control 说实话,当初买这本书起源于知乎诸位学问人的推荐,脑子一热就买了.为了不浪费这几十块钱,细致了看完了前三章,买来一看才发现原来这本书居然跟计算机有很深刻的关系.其实更准确地 ...
- [CLR via C#]16. 数组
数组是允许将多个数据项当作一个集合来处理的机制.CLR支持一维数组.多维数组和交错数据(即由数组构成的数组).所有数组类型都隐式地从System.Array抽象类派生,后者又派生自System.Obj ...
- 我在用的mac软件(2)-终端环境之zsh和z(*nix都适用)
继续上篇介绍我的终端环境.这篇介绍zsh和z,其实这不局限于os x,在所有的*nix系统中都是可用的. zsh zsh作为bash的替代品,自然很多人要问:why zsh? 在Zsh Worksho ...
随机推荐
- 入职第一天:前端leader手把手教我入门Vue服务器端渲染(SSR)
继前段时间西安电面之后顺利拿到了OFFER,今天(5月2号)是我入职第一天,在简短的内部培训了一上午后,前端leader让我先了解下什么是vue的服务器端渲染(SSR). SSR,英文全称叫 Serv ...
- remove Nth Node from linked list从链表中删除倒数第n个元素
Given a linked list, remove the nth node from the end of list and return its head. For example, Give ...
- ORACLE分页SQL语句(转载)
1.根据ROWID来分select * from t_xiaoxi where rowid in(select rid from (select rownum rn,rid from(select r ...
- C语言的产生
一:C语言的产生 C语言是1972年由美国的Dennis Ritchie设计发明的,并首次在UNIX操作系统的DEC PDP-11计算机上使用的. 它由早期的编程语言BCPL 演变而来,随着微型计算 ...
- spring 配置多数据源(mysql读写分离)
前段时间刚换了家新公司,然后看项目代码里用了数据库读写分离的架构,然后好奇扒了代码简单看了下,总体来说就是运用spring aop切面方式来实现的.看明白后就在自己的个人小项目里运用了下,测试OK,所 ...
- (转)Go语言并发模型:使用 context
转载自:https://segmentfault.com/a/1190000006744213 context golang 简介 在 Go http包的Server中,每一个请求在都有一个对应的 g ...
- win10 下安装mysql服务器社区版本mysql-5.7.22-winx64
下载 下载: http://dev.mysql.com/downloads/mysql/ 解压到C盘 添加环境变量path 添加环境变量 右击我的电脑->属性->高级系统设置->高级 ...
- 代码审计之SQL注入:BlueCMSv1.6 sp1
Preface 这是一篇纪录关于BlueCMSv1.6 sp1两个SQL注入的审计过程,原文来自代码审计之SQL注入:BlueCMSv1.6 sp1 ,主要纪录一下个人在参考博文复现这两个漏洞经过. ...
- Lintcode399 Nuts & Bolts Problem solution 题解
[题目描述] Given a set of n nuts of different sizes and n bolts of different sizes. There is a one-one m ...
- 利用VMWare 11 在 Windows 8.1 下安装与优化 OS X 10.10
此文中相关工具点击我从百度网盘下载 一.安装 第一步安装参考百度经验:点击这里,鉴于其中提供的文件全部不能用,替换成了上面的,亲测Intel Core I5 4200M 可用. 二.优化 这里给出一些 ...