一起学习CAN总线之物理层协议(2)

news2024/12/23 16:29:47

附:ISO 11898-1:2024和ISO11898-2:2024标准下载 一起学习CAN总线之物理层协议(2)

CAN总线物理层主要完成节点间信号的传送,把各种信息转换成可以传输的物理电平,并将信号传输到其他的目标设备上。CAN总线传输介质,也就是CAN传输线是由CAN高和CAN低两条双绞线组成的差分信号线,CAN总线上传输的信号以差分信号的形式进行通讯。

为了满足不同的系统要求,CAN总线有高速CAN低速CAN两种类型,这两者以不同的总线速率来工作。

高速CAN主要应用在对实时性、数据传输速度要求高的场合,如发动机控制、自动变速箱控制、行驶稳定系统以及组合仪表等,由ISO 11898-2定义,传输速率范围在125kbit/s~1Mbit/s。

低速CAN主要应用在信号多但实时性要求没有那么高的场合,如车灯控制、车窗控制以及座椅调节等系统。低速CAN在ISO11898-3中被定义,传输的速率范围是在55kbit/s    ~12kbit/s。

高速CAN和低速CAN的具体区别体现在物理层上

1.拓扑结构不同

CAN总线上链接了很多个节点,在高速CAN网络中,网络的最远端会增加两个终端电阻,高频信号在传输的时候,信号的波长相对传输线比较短,而传输线是有终点的,终点的阻抗会发生突变,会导致信号在传输线的终端会形成反射波干扰原来的信号,导致系统通信的不稳定,所以在传输线的末端加上终端电阻来匹配总线的阻抗,使信号到达传输线末端之后不发生反射。

同时CAN总线在信号传输的时候,双绞线的特征阻抗是120欧姆,所以在末端接上的两个终端电阻通常规定也是120欧姆。这就是高速CAN的拓普结构。

图片

与高速CAN相同的是低速CAN也采用双绞线连接,但是低速CAN网络最远的两端没有终端电阻,因为不同的频率同样的连接方式所产生的信号反射和回波的差异很大,频率越高,反射和回波越强烈,因此在低速CAN当中,没有在网络的最远端去连接终端电阻,而是在收发器和总线连接的时候分别接上了两个电阻。

图片

这两个电阻,在协议中并没有具体的规定,一般是要求在500-6,000欧姆中间,最终得到的效果是整个总线的阻抗在100欧姆左右,这是低速CAN在整个拓扑结构上的内容。

2.CAN总线上的节点结构

  • 收发器:直接跟总线相连,具备发送和接收功能,主要进行物理电平和逻辑电平的转换,两者之间的转换方式采用差分电平的方式。在信号发送时将上层传下来的二进制数据流转变成电压信号传输到总线上,在接收的时候将总线的电压信号转变成二进制数据流传到上层。

  • CAN控制器:对CAN报文进行完整的解析,包括对于总线访问机制,位时间的控制等

  • MCU:CAN控制器将CAN报文传到MCU,MCU根据定义的策略进行相应的运算之后再将相应的信息传给控制器,控制器对信息进行编码之后再通过收发器发送出去。

3.总线电平

CAN总线的数据传输实质是通过总线上的电平变化来实现,在物理层中来进行定义。高速CAN和低速CAN的总线电平也不同。

在高速CAN中

CAN总线分隐性和显性两种逻辑电平状态,显性电平代表二进制位0,称为逻辑0。隐性电平代表二进制位1,称为逻辑1。

逻辑1:对应的CAN高和CAN低两根线上的物理电平均为2.5V;即它们的电压差为VH-VL=0v。

逻辑0:对应的物理电平是CAN高线是3.5V,CAN低线是1.5V,它们的电压差为VH-VL=2v,这就产生了2V的差分信号。

收发器通过这样的差分信号来判断总线电平,这种传输方式称为差分传输。

图片

在低速CAN中

在逻辑1(隐性电平)的时候,对应低速CAN的物理电平:CAN高是0.3V,CAN低是4.7V。

逻辑0(显性电平),对应的是物理电平CAN高是3.6V,CAN低线是1.4V。

图片

可以看到在低速CAN中整个逻辑电平和物理电平的对应情况和高速CAN中是完全不一样的,或高速CAN和低速CAN的物理层电气特性是不一样的。因此在同一个CAN网络中高速CAN节点和低速CAN节点是不能混合使用的。

采用双绞线的差分信号传输的优点:

抗干扰能力强,当外界有强电场或电磁干扰时,由于两根信号线受到的影响基本相同,所以它们之间的电压差(差分信号)受到的影响较小,这样即使在恶劣的环境下,CAN总线也能保持较高的通信可靠性。

精确的时序定位能力,由于差分信号是基于两根信号线的电压差来传输数据的,对于时序的要求非常严格,这也让CAN总线在高速、远距离传输数据时能保持较高的性能和稳定性。

4.容错性能

在物理层传输的时候,可能会在总线里出现各种各样的故障,如CAN高或者是CAN低开路;CAN高、CAN低线对电源、对地短路;CAN高线和CAN低线同时开路;在高速CAN中,还有可能会出现终端电阻开路的情况,在实际设计系统的时候,就需要去考虑它的鲁棒性,避免这些故障的出现。

如果故障已经出现了,CAN总线的容错性能怎么样呢?

低速CAN的容错性能比较强,低速CAN能够在CAN高或者是CAN低出现短路的时候保证通信正常,收发器会自动识别总线的状态,根据总线状态调整接收的模式,因此低速CAN也被称为是容错CAN。

相比之下高速CAN的容错性能相对较差,只有在CAN低线对地短路或者是终端电阻开路的情况下能够实现正常的通信。

附:ISO 11898-1:2024和ISO11898-2:2024标准下载ISO 11898-1:2024icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzI3NjcyODA2Ng==&mid=2247506223&idx=1&sn=6e90caa8b739cfa4c1f3bfef343f6188&chksm=eb738942dc0400543f2be6839f9475b7e86f16d4bc34c222c860b1ab504a3426100985e7b394&token=365384647&lang=zh_CN#rd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2055091.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧排水远程监测系统物联网解决方案

智慧排水监测系统是一种集成了现代信息技术、物联网技术、大数据分析及云计算能力的高效城市排水管理解决方案。该系统通过全面、实时地监控城市排水网络的运行状态,旨在预防内涝灾害,优化水资源管理,保障城市安全运行,促进可持续…

零基础如何入门网络安全?网络安全难吗?

零基础如何入门网络安全 我经常会看到这一类的问题: 学习XXX知识没效果;学习XXX技能没方向;学习XXX没办法入门; 给大家一个忠告,如果你完全没有基础的话,前期最好不要盲目去找资料学习,因为大…

windows系统如何走后面之windows系统隐藏账户

系统隐藏账户是一种最为简单有效的权限维持方式,其做法就是让攻击者创建一个新的具有管理员权限的隐藏账户,因为是隐藏账户,所以防守方是无法通过控制面板或命令行看到这个账户的。 自然我们需要一些前提条件,比如说有一个网站&am…

【unity小技巧】获取免费开源的人物模型,并为obj fbx人物模型绑定骨骼、动画——mixamo的使用介绍

文章目录 前言地址上传自己的3D角色下载单动画下载动作包角色模型导入Unity动画导入unity设置动画骨骼动画骨骼不配的问题参考完结 前言 其实前面我已经推荐了几种获取人物模型的方法: 1、【unity小技巧】下载原神模型,在Blender中PMX模型转FBX模型&…

【GitLab】使用 Docker engine安装 GitLab 2: gitlab-ce:17.3.0-ce.0 拉取

ce版本必须配置代理。 极狐版本可以直接pull 社区版GitLab不支持Alibaba Cloud Linux 3,本操作以Ubuntu/Debian系统为例进行说明,其他操作系统安装说明,请参见安装社区版GitLab。 docker 环境重启 sudo systemctl daemon-reload sudo systemctl restart docker脚本安装 安裝…

一文带你打通WSL下的SSH连接

写在文章开头 Windows下Linux子系统即WSL已经成为笔者调试Linux程序的常用方式,默认情况下WSL是没有安装SSH服务的,所以对于常见的SSH客户端我们无法做到连接管理调试(除了笔者最爱的Mobaxterm),所以笔者专门以此文章来分享一下笔者WSL配置S…

GIF压缩专题:gif压缩大小但不改变画质,应该如何操作?

GIF(Graphics Interchange Format/图形互换格式)是一种网络上广泛使用的图像文件格式,特别适用于包含透明度和动画的图像。然而,随着GIF文件内容的丰富、复杂度、高分辨率等因素增加,GIF文件大小也随之增长&#xff0c…

Self-Attention流程的代码实现【python】

文章目录 1、知识回顾2、Self-attetion实现步骤3、准备输入4、初始化参数5、获取Q,K,V6、计算attention scores7、计算softmax8、给values乘上scores9、完整代码10、总结 🍃作者介绍:双非本科大四网络工程专业在读,阿里云专家博主&#xff0c…

OOP篇(Java - 抽象类、类、对象、构造器、接口、内部类、 代码块、枚举)(doing)

目录 一、抽象类 1. 简介 2. 什么时候定义抽象类? 3. 什么是抽象方法? 4. 抽象类的作用是什么? 5. 继承抽象类需要做什么? 6. 抽象类为什么不能创建对象?自己干什么, 创建对象毫无意义 7. final和abstract是什…

【备战蓝桥杯青少组】第三天 放苹果

题 OpenJudge - 666:放苹果 描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 输入 第一行…

Linux驱动入门实验班——DHT11、DS18B20模块驱动(附百问网视频链接)

目录 前言 一、DHT11模块 1.通信协议 2.数据格式 3.编程思路 ①入口函数 ②实现read函数 ③编写中断处理函数 ④***编写数据解析函数 ⑤应用程序 二、DS18B20模块 1. 通信时序 ① 初始化时序 ② 写时序 ③ 读时序 2. 常用命令 3. 编程思路 1.启动温度转换 2…

Dragonfly S 5MP工业相机量产 机器视觉应用的新选择

近日,51camera的合作厂商Teledyne FLIR IIS宣布Dragonfly️ S USB 5MP模块化、紧凑型相机现已全面投产,Dragonfly S 5MP是新Dragonfly S系列中首款迈入量产阶段的相机。 作为机器视觉应用领域的入门级产品,Dragonfly S不仅简化了成像系统的快…

实战Kubernetes之快速部署 K8s 集群 v1.28.0

文章目录 一、前言二、主机准备三、系统配置3.1. 关闭防火墙及相关配置3.2. 修改主机名3.3. 主机名DNS解析3.4. 时间同步3.5. 配置网络3.6. 重启服务器 四、安装软件4.1. 安装 Docker4.2. 安装 cri-dockerd4.3. 添加国内YUM源4.4. 安装 kubeadm、kubelet 和 kubectl 五、Master…

docker部署MySQL5.7.43并使用python脚本插入数据——实施案例

目录 一、配置docker环境 1. 阿里云镜像站配置docker环境 1. 安装必要的一些系统工具 ​编辑 2. 添加软件源信息 ​编辑 3. 修改 Docker 的 YUM 仓库配置文件,将 Docker 官方仓库的地址替换为阿里云的镜像源,以提高下载速度。 4. 更新并安装Dock…

【Qt】Qt窗口 | QDockWidget 浮动窗口

文章目录 一. 浮动窗口二. 代码创建&使用浮动窗口1. 创建浮动窗口2. 设置可停靠位置3. 添加控件 一. 浮动窗口 浮动窗口(也称为“停靠窗口”或“工具窗口”),是一个可以在主窗口内或主窗口外部悬浮的窗口。它通常用于显示工具栏、面板或其他附加信息。浮动窗口…

AScript 的UI asui模板的导入

两种方案: 第一种直接在web端,右击UI文件夹 第二种在pycharm,也是右击UI文件夹 调用UI,在init类中直接调用即可

Jupyter安装指南:最简便最详细的步骤

一.介绍 JupyterNotebook 是一个款以网页为基础的交互计算环境,可以创建Jupyter的文档,支持多种语言,包括Python, Julia, R等等。一般来说,如果是使用R语言的话,使用Rstudio居多,使用Python的话&#xff0…

高防服务器租用多少钱

高防服务器租用的具体价格受多种因素影响。通常情况下,高防服务器的租用费用可能从数百元到数万元不等,具体取决于服务提供商、服务器配置、防护级别等因素。下面将详细探讨决定高防服务器租用价格的几个主要因素,rak小编为您整理发布高防服务…

【LeetCode热题100】滑动窗口

这篇博客总结了滑动窗口的8道常见题目,分别是:长度最小的子数组、无重复字符的最长子串、 最大连续1的个数III、将x减到0的最小操作数、水果成篮、找到字符串中所有字母异位词、串联所有单词的子串、最小覆盖子串。 class Solution { public:int minSubA…

解决Vue3+Ts打包项目时会生成很多的map文件

正常打包会生成.js和.map文件 怎么去解决它呢? 正常来说我们会在vite.config.ts配置我们的项目打包方式,如下:(我这里的target:es2022是为了支持模块中顶层await的使用) // Vite 配置文件 export default…