CAN总线物理层特性详细分析

目录

1.  简介

2.  CAN总线拓扑图

3.  CAN硬件电路

4.  CAN电平标准

5.  CAN收发器-TJA1050(高速CAN)

6.  CAN物理层特性


1.  简介

        CAN总线(Controller Area Network Bus)控制器局域网总线,是由BOSCH公司开发的一种简洁易用、传输速度快、易扩展、可靠性高的串行通信总线,广泛应用于汽车、嵌入式、工业控制等领域。下图是车载网络的构想示意图:

2.  CAN总线拓扑图

        CAN 控制器根据两根通信线(CAN_H、CAN_L)上的电位差来判断总线电平(差分信号)。总线电平分为显性电平(逻辑0)隐性电平(逻辑1),二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方。

        CAN总线是:异步,半双工。其无需时钟线,通信速率由设备各自约定,并且由于其半双工通信可挂载多设备,多设备同时发送数据时通过仲裁判断先后顺序。

        CAN总线的传输方式:广播式请求式

        广播式传输方式,你可以理解为一个人拿着大喇叭分配工作(发送方发送数据),其他人都可以听到这个喇叭喊话的声音(接收方接收数据),如果此时喇叭喊“张三”(报文ID),那么张三会站出来(响应)。

        请求式传输方式,也有一个人才分配工作,不过这个人不想拿着大喇叭主动吆喝别人过来(不主动发送数据),而是假如李四过来问能不能给我分配一个工作(接收方先请求),分配工作的人说可以,即可对李四分配工作(发送方发送数据)。

3.  CAN硬件电路

        在了解CAN总线的硬件电路之前我们先回顾一下其他通信协议:

名称引脚双工时钟电平设备
USARTTX、RX全双工异步单端点对点
IICSCL、SDA半双工同步单端多设备
SPISCLK、MOSI、MISO、CS全双工同步单端多设备
CANCAN_H、CAN_L半双工异步差分多设备
USBDP、DM半双工异步差分点对点

串口硬件连接电路:

IIC硬件连接电路:

SPI硬件连接电路:

        对于CAN总线的硬件电路,每个设备通过CAN收发器挂载在CAN总线网络上,CAN控制器引出的TX和RX与CAN收发器相连,CAN收发器引出的CAN_H和CAN_L分别与总线的CAN_H和CAN_L相连。CAN总线可分为高速CAN总线和低速CAN总线。

        高速CAN使用闭环网络,CAN_H和CAN_L两端添加120Ω的终端电阻,数据传输速率125k~1Mbps,传输距离小于40m:

        其中两个120Ω终端电阻的作用:

①防止回波反射,使波形更平稳;若是不加中断电阻,反射波形可能如褐色所示,加入中断电阻如紫色所示:

②在没有设备操作时,使电压“收紧”,使其电压一致。这里的原理可以类比IIC通信的上拉电阻

嵌入式面试八股文(一)·define和const的区别以及IIC为什么要加上拉电阻,为什么使用开漏输出-CSDN博客

         CAN总线是差分信号,所以终端电阻可以在没有设备操作时将两根线“收紧”至电压一致状态,代表就是默认的逻辑电平“1”,当设备想要“0”时,就去把总线拉开,当设备想要“1”时,就不去碰总线,在终端电阻的作用下,自动恢复到“1”:

        低速CAN使用开环网络,CAN_H和CAN_L其中一端添加2.2kΩ的终端电阻,数据传输速率10k~125kbps,传输距离小于1Km:

4.  CAN电平标准

        CAN总线采用差分信号,即两线电压差(V_{CAN_H}-V_{CAN_L})传输数据位,前面我们也了解了,CAN总线的信号分为高速和低速两种:

对于高速CAN规定:压差为0V时表示逻辑1(隐性电平)     

                                 电压差为2V时表示逻辑0(显性电平)

         对于这里的显隐性对应的逻辑状态可能会有人不解,因为通常情况下,我们应该显性对应1,隐性对应0,但是这里为什么反着来了呢?

        这里主要是因为显性和隐性所表示的是总线的收紧状态,前面我们了解到CAN总线的默认状态是CAN_L和CAN_H两条总线收紧状态,不需要设备干预所以是隐性电平,又知道总线收紧时其所对应的电平状态为逻辑电平“1”,而总线张开,需要设备干预所以为显性电平,又知道总线张开时所对应的逻辑电平“0”,因此会出现隐性电平和逻辑“1”绑定,显性电平和逻辑“0”绑定。

        简单点来说,显性电平和隐性电平表示的是总线的状态,而定义“0”和“1”是为了和电路约定俗成的规则相对应。

对于低速CAN规定:电压差为-1.5V时表示逻辑1(隐性电平)     

                                 电压差为3V时表示逻辑0(显性电平)

5.  CAN收发器-TJA1050(高速CAN)

        其数据手册引脚介绍: 

        简单翻译一下:

名称引脚描述
TXD1传输数据输入,从CAN控制器读入数据到总线驱动器
GND2电源地
VCC3电源电压
RXD4传输数据输出,从CAN控制器读出数据到总线驱动器
Vref5参考电压输入
CAN_L6低电平CAN总线
CAN_H7高电平CAN总线
S8选择输入高速/静默模式(相当于一个开关,可不用)

6.  CAN物理层特性

物理层ISO 11898(High speed)ISO 11519-2(Low speed)
通信速度最高1Mbps最高125kbps
总线最大长度40m/1Mbps1km/40kbps
总线单元最大30最大20
总线拓扑隐性显性隐性显性
MinNomMaxMinNomMaxMinNomMaxMinNomMax
CAN_High(V)2.002.503.002.753.504.501.601.751.903.854.005.00
CAN_Low(V)2.002.503.000.501.502.253.103.253.400.001.001.15
电位差(H-L)(V)-0.500.051.52.03.0-0.3-1.5-0.33.00-

双绞线(屏蔽/非屏蔽)

闭环总线

阻抗(Z): 120Ω (Min.85Ω Max.130Ω)

总线电阻率(r): 70mΩ/m

总线延迟时间: 5ns/m

终端电阻: 120Ω (Min.85Ω Max.130Ω)

双绞线(屏蔽/非屏蔽)

开环总线

阻抗(Z):120Ω (Min.85Ω Max.130Ω)

总线电阻率(Г): 90mΩ/m

总线延迟时间: 5ns/m

终端电阻: 2.20kΩ (Min.2.09kΩ

Max.2.31kΩ)

CAN_L与GND间静电容量 30pF/m

CAN_H与GND间静电容量 30pF/m

CAN_L与GND间静电容量 30pF/m

STM32学习笔记_时光の尘的博客-CSDN博客

 CAN总线数据帧格式详细介绍-CSDN博客

 CAN总线_时光の尘的博客-CSDN博客

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

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

相关文章

2024AAAI | DiffRAW: 利用扩散模型从手机RAW图生成单反相机质量的RGB图像

文章标题:《DiffRAW: Leveraging Diffusion Model to Generate DSLR-Comparable Perceptual Quality sRGB from Smartphone RAW Images》 原文链接:DiffRAW 本文是清华大学深圳研究院联合华为发表在AAAI-2024上的论文(小声bb:华…

idea出现的问题

1.idea正常的运行,但是debug失败 原因:debug模式中使用的jdk和你在环境变量中配置的不是同一个jdk。或者说三处地方修改一致即可 1.File/Project Structure/Project Settings/Modules中的SDK 2.File/Project Structure/Platform Settings 中的SDKS 3.Run/Debug Conf…

uni-app之数据驱动的picker选择器( uni-data-picker)之可以选择到任意级别

背景说明 uni-app 官方的插件市场有数据驱动选择器,可以用作多级分类的场景。本人引入插件后,发现,在h5和微信小程序都只能选择到叶子级。而在给出的官方组件示例中确并非如此。 以选择年级,而不选择班级。然后,想试试…

vue3如何修改element ui input中type属性为textarea的高度

效果&#xff1a; 方法一&#xff1a;直接使用autosize <el-input:maxlength"500":autosize"{ minRows: 5, maxRows: 5 }"type"textarea"v-model"form.description"placeholder"请输入描述"></el-input> 方法二…

紫光展锐携手上赞随身Wi-Fi,让5G触手可及

近年来&#xff0c;随着各类移动应用层出不穷&#xff0c;人们对随时随地上网的需求日益增强&#xff0c;随身 Wi-Fi 设备以其便捷性、灵活性和相对较低的成本&#xff0c;成为用户满足办公、社交、娱乐等多元化需求的重要工具。5G技术的逐步普及为随身Wi-Fi市场注入了新的活力…

第四十三章 Vue之mapMutations简化mutations操作

目录 一、引言 二、完整代码 2.1. App.vue 2.2. main.js 2.3. Son1.vue 2.4. Son2.vue 2.5. index.js 一、引言 本章节我们通过掌握辅助函数mapMutations&#xff0c;来简化前面章节中调用mutations函数的繁琐方式。mapMutations 和 mapState很像&#xff0c;它是把位于…

C++编程语言:抽象机制:派生类(Bjarne Stroustrup)

第20章 派生类(Dirived Classes) 目录 20.1 引言 20.2 派生类 20.2.1 类成员函数 20.2.2 类构造函数和析构函数 20.3 派层次结构 20.3.1 类型域(Type Fields) 20.3.2 虚函数(Virtual Functions) 20.3.3 显式修饰(Explicit Qualification) 20.3.4 覆盖控制(O…

Qt--命令行终端程序开发

提示&#xff1a;本文为学习记录&#xff0c;若有错误&#xff0c;请联系作者&#xff0c;谦虚受教。 文章目录 前言一、头文件二、cpp文件三、使用流程如图所示 总结 前言 Constant dropping wears the stone. 一、头文件 #ifndef TERMINALWIDGET_H #define TERMINALWIDGET_…

一文了解珈和科技在农业遥感领域的服务内容和能力

2020年&#xff0c;农业农村部、中央网信办联合印发了《数字农业农村发展规划&#xff08;2019-2025年&#xff09;》&#xff0c;对数字农业农村建设作出了具体部署。其中&#xff0c;农业遥感作为推进数字农业农村的重要力量贯穿《规划》始终。 今年10月&#xff0c;农业农村…

D65【python 接口自动化学习】- python基础之数据库

day65 SQL-DQL-分组聚合 学习日期&#xff1a;20241111 学习目标&#xff1a;MySQL数据库-- 133 SQL-DQL-分组聚合 学习笔记&#xff1a; 分组聚合 总结 分组聚合的语法 分组聚合的注意事项 group by 中出现了哪个列&#xff0c;哪个列才能出现在select中的非聚合中

初学mongoDB

MongoDB 是一个开源的 NoSQL 数据库&#xff0c;由 C 语言编写。它与传统的关系型数据库不同&#xff0c;MongoDB 使用的是一种基于文档的存储模型&#xff0c;不需要定义固定的表结构&#xff0c;可以灵活地存储和管理大量的非结构化数据。下面是 MongoDB 的一些核心特性&…

DAY59||并查集理论基础 |寻找存在的路径

并查集理论基础 并查集主要有两个功能&#xff1a; 将两个元素添加到一个集合中。判断两个元素在不在同一个集合 代码模板 int n 1005; // n根据题目中节点数量而定&#xff0c;一般比节点数量大一点就好 vector<int> father vector<int> (n, 0); // C里的一…

基于Spring Boot的乡政府管理系统设计与实现,LW+源码+讲解

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装乡政府管理系统软件来发挥其高效地信息处理的作用&#xf…

【NLP】使用 PyTorch 从头构建自己的大型语言模型 (LLM)

读完这篇文章后&#xff0c;你会取得什么成就&#xff1f;你将能够自己构建和训练大型语言模型 (LLM)&#xff0c;同时与我一起编写代码。虽然我们正在构建一个将任何给定文本从英语翻译成马来语的 LLM&#xff0c;但你可以轻松地修改此 LLM 架构以用于其他语言翻译任务。 LLM…

QT打包应用程序文件步骤

QT应用程序&#xff08;.exe&#xff09;打包复制到其他电脑 在QT程序在自己电脑编译好了后&#xff0c;需要打包给其他人。这里介绍一下详细步骤&#xff1a; 确定编译器 搜了很多相关的打包教程&#xff0c;但是还是会出现“应用程序无法正常启动(0xc000007b)”这类错误。经过…

JMeter进阶篇

目录 上篇导航&#xff1a; 总目录&#xff1a; 一、逻辑控制器&#xff1a; 1.逻辑控制器和关联&#xff1a; 2.if逻辑控制器&#xff1a; 3.forEach控制器&#xff1a; 4.循环控制器&#xff1a; 二、关联&#xff1a; 1.xpath&#xff1a; 2.正则表达式提取器&…

homework 2024.11.10 math 1 - math 6

小学1年级和小学6年级数学图形结合&#xff0c;以及习惯养成&#xff0c;过程改进 6年级数学&#xff1a; 一年级数学&#xff1a;

【Linux 31】网络层协议 - IP

文章目录 &#x1f308; 一、IP 协议的基本概念⭐ 1. TCP IP 能保证数据的可靠传输⭐ 2. 如何理解 IP地址⭐ 3. 路由选择⭐ 4. 主机 & 路由器 & 节点 &#x1f308; 二、IP 协议的报头格式⭐ 1. IP 协议的报头格式⭐ 2. 如何将 IP 报头和有效载荷分离⭐ 3. 如何将有效…

Mac中安装OhMyZsh

Mac中安装OhMyZsh 文章目录 Mac中安装OhMyZsh一、Homebrew二、OhMyZsh1、Oh-My-Zsh配置1.1&#xff1a;主题配置1.2&#xff1a;插件配置&#xff08;语法高亮和自动提示&#xff09;1、zsh-autosuggestions&#xff08;需下载安装&#xff09;&#xff1a;高亮显示所有支持的命…

7、computed计算属性使用

代码 Student.vue <template> <div><h2>computed计算属性使用</h2><input type"text" v-model"name"/><br/><input type"text" v-model"sex"/><br/>完整信息&#xff1a;{{info}}&…