CAN通信(一)——认识CAN总线[通俗易懂]

CAN总线通俗易懂CAN总线背景CAN总线是什么网络拓扑节点、报文、信号CAN总线背景作为并非通信专业的土鳖汽车工程师,CAN通信是必须掌握的,但是,记得刚开始上来一看什么定义(什么串行数据通信协议,什么物理层和数据链路层功能,什么帧处理,位填充。。。刚学的时候确实一脸懵)。所以,我只从汽车工程师的角度讲讲我能理解和用得到的CAN通信,才疏学浅,请各位指教!关于OSI模型、物理层、数据链路层,高低电平、数据帧。。等等等,请自行查看如下链接:链接:https://blog.csdn.net/kgc

大家好,又见面了,我是你们的朋友全栈君。

CAN通信(一)——认识CAN总线

CAN总线

背景

作为并非通信专业的汽车工程师,汽车CAN通信是必须掌握的,但是,记得刚开始上来一看什么定义(什么串行数据通信协议,什么物理层和数据链路层功能,什么帧处理,位填充。。。刚学的时候确实一脸懵)。所以,我只从汽车工程师的角度讲讲我能理解和用得到的CAN通信,才疏学浅,请各位指教!

关于OSI模型、物理层、数据链路层,高低电平、数据帧。。等等等,请自行查看如下链接:
链接:
https://blog.csdn.net/kgcjie/article/details/78208720.

CAN总线是什么

CAN总线,并不是他很能,只是一个缩写
CAN:Controller Area Network。控制器局域网络总线
绝大多数汽车制造厂商采用CAN总线来实现汽车内部控制系统之间的数据通信,CAN总线也叫CAN BUS

BUS?恩,这不是公交的意思么,没错,公共汽车是可以运输大量的乘客的,CAN通信也就可以传输大量的信号。下边这个图片很形象
在这里插入图片描述
简单的说,CAN总线就是用于传输数据的通信协议。

传统汽车线束链接:
在这里插入图片描述
缺点:
1、需要大量的信号传输线
2、针脚数增加
3、线路复杂
想想:
线束增加了这么多,重量大了,生产成本高了,主机厂能不心疼么,而且故障率也高。

车辆CAN总线通讯
在这里插入图片描述
这个CAN总线图是不是和BUS一样额

网络拓扑

在这里插入图片描述
网关是整个CAN网络的核心, 控制着整车几条CAN总线的信号转发与处理,示意图只展示了其中的两条。
发动机、变速器、ESP属于高速CAN,因为实时性比较强
仪表、灯光、车窗属于低速CAN,实时性相对较低

节点、报文、信号

如网络拓扑图显示:
节点:就是对应发动机、变速器、仪表、车窗等
报文:节点之间相互传输信息的时候是通过发送报文来传输信息,多少毫秒发送一次,也就是报文的发送周期
信号:信号属于报文,报文中含多个信号
为通俗易懂,采用如下比喻:

节点:对应站牌,接收和发送乘客
报文:对应每几分钟过来的公交车,几分钟就是报文的发送周期,当然实际车的报文通常是毫秒级的
信号:公交车里边的乘客

这个比喻和CAN总线的信号传输一样,所有的信息都在总线上(公交上所有的乘客信息),但并不是所有的节点都接收这个信息(乘客选择下车的站牌)。
当然这里边是乘客选择了这个站牌,实际的CAN通信是节点选择接收了这信息。

下一节介绍下CAN通信的信号矩阵。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128026.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 质数域的算数运算[通俗易懂]

    质数域的算数运算[通俗易懂]本文介绍了在质数域FpF_pFp​中的算数运算执行算法。包括任意质数p的算法,当模数p具有特性形式时,该算法揭示约化步骤的执行效率能够获得提升;还提出了针对NIST质数的高效约化算法,对诸如p=2192−264−1p=2^{192}-2^{64}-1p=2192−264−1形式的质数具有适用性。本文提出的算法尤适合软件执行。假设工作台通常为64位或32位,算法运行在WWW-位(W-位,W是8的倍数)框架基础上。低位或更廉价的组件的W值更小,比如嵌入式系统一般是16位,智能卡一般是8位。W-位的位数词U从0

    2025年5月30日
    0
  • 找不到springapplication_idea显示找不到或无法加载主类

    找不到springapplication_idea显示找不到或无法加载主类学习是一件反人性的事情最近计划重拾微服务的学习,于是使用官方的quickinitialization生成了一个示例项目,发现SpringApplication始终无法引入,当前使用的版本是SpringBoot2.0.3.RELEASE,仔细查了一下maven依赖,对应的spring-boot-2.0.3.Release.jar包里是存在SpringApplication类的。各…

    2022年9月9日
    1
  • 解决Discuz安装时报错“该函数需要 php.ini 中 allow_url_fopen 选项开启…”

    解决Discuz安装时报错“该函数需要 php.ini 中 allow_url_fopen 选项开启…”开启php的fsockopen函数——解决DZ论坛安装问题“该函数需要php.ini中allow_url_fopen选项开启。请联系空间商,确定开启了此项功能在安装dz论坛时遇到因为fsockopen()函数问题无法进入下一步,安装错误显示“该函数需要php.ini中allow_url_fopen选项开启。请联系空间商,确定开启了此项功能”,经过分析,总结了3个解决这个…

    2022年7月21日
    9
  • linux设置和修改时间与时区命令_linux 文件修改时间

    linux设置和修改时间与时区命令_linux 文件修改时间linux系统时间有两个,一个是硬件时间,即BIOS时间,就是我们进行CMOS设置时看到的时间,另一个是系统时间,是linux系统Kernel时间。当Linux启动时,系统Kernel会去读取硬件时钟的设置,然后系统时钟就会独立于硬件运作。有时我们会发现系统时钟和硬件时钟不一致,因此需要执行时间同步。方法一一、date查看/设置系统时间1、将日期设置为2017年11月3日[root@linux

    2025年7月21日
    1
  • prepareStatement使用「建议收藏」

    prepareStatement使用「建议收藏」publicbooleanlogin2(Stringusername,Stringpassword)throwsException{ Stringurl=”jdbc:mysql://localhost:3306/mydb1″; Class.forName(“com.mysql.jdbc.Driver”); StringsqlUsername=”root”;

    2022年6月2日
    44
  • stata15无法识别调用plus外部命令,报错:command XXX is unrecognized如何解决?

    stata15无法识别调用plus外部命令,报错:command XXX is unrecognized如何解决?stata15无法识别调用plus外部命令,报错:commandXXXisunrecognized如何解决?解决办法:查看stata文件夹下是否有profile.do文件;如果没有,新建profile.do文件;新建的方法可以打开stata,打开do-file编辑器;内容写为(参考连玉君老师Stata:外部命令的搜索、安装与使用):adopath+“D:\应用软件\Stata15\ado\plus”sysdirsetPLUS“D:\应用软件\Stata15\

    2022年10月20日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号