CAN总线

2023-05-16

最近在看stm32的通讯部分由于can总线在工业上的应用,我选择以can总线为突破口进行学习。实际上在串口通讯所有的协议中,can总线也是我认为最复杂的一个协议。看了几天,为了能够更加通俗的理解can的原理和stm32中bxcan的配置因此写此blog。

##什么是can?
CAN是Controller Area Network的缩写,是ISO国际标准化的串行通信协议,由德国电气商博世公司在1986年率先提出,现在在欧洲是汽车网络的标准协议
CAN经ISO标准化后有两个标准:ISO11898和ISO11519-2其中前者为125Kbps~1Mbps的高速通信标准,而后者是针对通信速率为125Kbps以下的低速通信标准。
CAN的通讯因为差分原理具有很高的可靠性,而协议的确定也增加了这种可靠性。

CAN物理层特征
CAN 控制器根据CAN_L和CAN_H上的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方。
显性电平对应逻辑:0
CAN_H和CAN_L之差为2V左右。
隐性电平对应逻辑:1
CAN_H和CAN_L之差为0V。
在这里插入图片描述
理解:在该系统中,只要有一个单元输出的是 显性则整个系统为显性,显性电平具有优先权。只有所有单元都输出隐形电平时,总线才为隐形电平。此外CAN总线起始端有电阻,用来做阻抗匹配,以减少回波反射。至于为什么显性是0而隐性是1是因为在CAN通讯中0有更高的优先级而且别人就这设定的- -

CAN通讯的方式?
以帧的形式通讯:
1.数据帧:传递数据
2.遥控帧:请求发送数据
3.错误帧:标定错误
4.过载帧:被接收单元用来通知还没有准备好接收帧
5.间隔帧:将数据遥控帧和错误过载帧分离
其中数据帧和遥控帧有标准格式和拓展格式两种,区别在于标准格式有11位标识符,拓展格式有29位标识符

数据帧
(1)帧开始(SOF):这个域表示数据帧的开始。
(2)仲裁域:这个域表示一个帧的优先级
(3)控制域:这个域表示保留位和数据字节数
(4)数据域:这是数据内容,0-8个字节的数据能被发送
(5)CRC域:这个域用于检查帧的传输错误。
(6)ACK域:是对帧已经被正常接收的一个证实。
(7)帧结束:指示数据帧结束
在这里插入图片描述
(1)帧开始(SOF),对标准的或扩展的格式都是一样的。它指示一帧的开始,由1bit的显性位组成。
(2)仲裁域,这个域表示数据的优先级别。这个域的结构,对标准和扩展的格式是有差别的。
注1:关于ID:
标准格式的ID有11bit,从ID28到ID18被依次发送,禁止高7位全为隐性。(禁止设定:ID=1111111xxxx)。这样总共有(2048-16)个ID能被使用。
扩展格式的ID有29个bit。基本ID从ID28到ID18,扩展ID由ID17到ID0表示,基本ID和标准格式ID相同,禁止高7bit全都为隐性,(禁止设定:基本ID=1111111xxxx)。这样总共有(2048-16)个ID能被使用。
在任何情况下,总线上不可能有多个设备在同一时刻使用同一个ID传输数据帧。
(3)控制域,占6个bit,指示要传输信息的数据字节数,这个域的结构,对标准和扩展的格式是有差别的。如图18所示
注1:保留位(r0,r1),保留位必须以显性电平传送,然而,在接收侧可以接收显性、隐性集任意组合的电平。
注2:数据长度码(DLC)数据的字节数必须是0-8个字节,但接收方对DLC=9-15的情况并不视为错误。
(4)数据域,对标准的或扩展的格式都是一样的。这个域是传输的数据,可以是0到8个字节,字节数载控制域中指明。数据输出开始于MSB。
(5)CRC域,对标准的或扩展的格式都是一样的。这个域用来检查帧是否有传输错误,它由15bit CRC码和一个bitCRC定界符(delimiter)(separating bit分隔bit)CRC的产生方法是采用下面的多项式:,CRC的计算范围是SOF、仲裁域、控制域、数据域。在接收侧,会对接收到的数据帧的这些域进行CRC计算,如果计算结果与收到的CRC不一致,则表明存在传输错误。
(6)ACK域,是对一帧已被正常接收的一个确认信号,由2个bit组成,一个是ACK的slot,一个是ACK的定界符(delimiter),发送单元ACK段:发送2个隐性位。
接收单元ACK段:接收到正确消息的单元,在ACK槽发送显性位,通知发送单元,正常接收结束。称之为发送ACK/返回ACK。
注意:发送 ACK 的是既不处于总线关闭态也不处于休眠态的所有接收单元中,接收到正常消息的单元(发送单元不发送ACK)。正常消息是指:不含填充错误、格式错误、CRC 错误的消息。
(7)帧结束,指示一帧结束,由7个隐性位组成。

远程帧
远程帧是接收单元请求发送单元发送一个信息,遥控帧有6个域组成。如图显示的那样,除了没有数据域外其它与数据帧的结构是一样的。
(1) 帧开始(SOF):这个域表示数据帧的开始。
(2) 竞争域:这个域表示数据的优先级,具有同样ID的数据帧被请求。
(3) 控制域:这个域表示保留位和数据字节数
(4) CRC域:这个域用于检查帧的传输错误。
(5) ACK域:是对帧已经被正常接收的一个证实。
(6) 帧结束:指示遥控帧的结束
在这里插入图片描述
远程帧和数据帧理解:
1.远程帧和遥控帧之间的不同:
远程帧没有数据域,在仲裁域里的RTR位是隐性电平,而数据帧RTR则为显性的。
没有数据的数据帧与远程帧可以通过RTR为来区分
2.遥控帧没有数据域,其数据长度码用来干什么?
远程帧的数据长度码的值表示对应请求的数据帧的数据长度码。
3.没有数据域的数据帧用来干什么?
例如,数据帧可以被各单元用来作为周期连接确认/应答,或者仲裁域本身带有实质性信息。

错误帧
这个帧用来通知在传输期间发生了一个错误,错误帧由一个错误标志和一个错误定界符组成,错误帧由CAN的硬件来发送。图显示了错误帧的结构。
(1) 错误标志:有2种错误标志类型:主动错误和被动错误标志
a)主动错误标志:6个显性位
b) 被动错误标志:6个隐性位
(2) 错误分隔符:由8个隐性位组成。
在这里插入图片描述
注1:错误回声:取决于连接到总线上的各单元检测出错误的时间,错误标志可能一个重叠在另一个上,总共可达12bit长度。
注2:主动错误标志:处于主动错误状态的单元检测出错误时输出的错误标志。
注3:被动错误标志:处于被动错误状态的单元检测出错误时输出的错误标志。

过载帧
这个帧被接收单元用来通知还没有准备好接收帧。它由一个过载标志和一个过载分隔符组成。
在这里插入图片描述
(1) 过载标志:由6个显性位组成,过载标志与错误帧的主动错误标志具有相同的结构。
(2) 过载分隔符:由8个隐性位组成,过载分隔符与错误帧的错误分隔符具有相同的结构。
注1:错误回声:向错误标志一样,取决于时间,过载标志可能一个重叠在另一个上,总共可达12bit长度。

间隔帧
这个帧用来隔开数据帧和遥控帧。数据和遥控帧可通过插入帧间间隔与前面传输的任何帧(数据帧、遥控帧、错误帧、过载帧)分开。

过载帧和错误帧前不能插入帧间间隔。
(1)间隔:由3个隐性位组成。在间隔期间如果检测到显性电平,则必须发送过载帧,然而,如果间隔的第3bit是显性电平,间隔被认为是SOF
(2)总线空闲:是隐性电平,长度没有限制(它可以是0bit长)。当总线处于这种状态的时候,总线被认为是自由空闲的,任何单元都可以启动发送信息。
(3)暂停传输(传输暂停期):有8个隐性位组成。只在处于被动错误状态的单元刚发送一个消息后的帧间隔中包含的段。

谁先发?
当有帧在同时发送时,这时就涉及到优先级问题,称为总线仲裁。
①在总线空闲状态,最先开始发送消息的单元获得发送权。
②多个单元同时开始发送时,各发送单元从仲裁域的第一位开始进行仲裁。连续输出显性电平最多的单元可继续发送。从ID开始比较
在这里插入图片描述
理解:
(1)数据帧和遥控帧的优先级
具有相同 ID 的数据帧和遥控帧在总线上竞争时,仲裁段的最后一位(RTR)为显性位的数据帧具有优先权,可继续发送。
(2)标准格式和扩展格式的优先级
标准格式 ID 与具有相同ID 的遥控帧或者扩展格式的数据帧在总线上竞争时,标准格式的RTR 位为显性位的具有优先权,可继续发送。

位时序基本概念
现在假设这么一个场景主机以101010…的数据发送给从机,而从机的采样时间如何和主机一致则数据就是101010…但是如果从机采样时间和主机不一样则信息的传输会出现混乱比如说从机可能接收到到的数据是00000…这个问题是通讯双方通过约定波特率解决的。
在CAN通讯中,非同步状态下每秒发送的位数称为位数率,依据时间片的概念将1个bit的时间分为四个部分
1.同步段(SS)
2.传播时间段(PTS)
3.相位缓冲段1(PBS1)
4.相位缓冲段2(PBS2)
这些又由可称为Time Quantum(以下称为Tq)的最小时间单位构成。1 位分为4 个段,每个段又由若干个Tq 构成,这称为位时序。位时间=1/波特率,因此,知道位时间,我们就可以知道波特率。1 位由多少个Tq 构成、每个段又由多少个Tq 构成等,可以任意设定位时序。通过设定位时序,多个单元可同时采样,也可任意设定采样点。
位时序各段作用和Tq如下表:
在这里插入图片描述
注1:IPT代表信息处理时间,是以采样点作为起始的时间段,用于计算后续位的位电平。这是硬件在一个采样点后立刻改变位的电平所必须要的。这个时间等于或小于2Tq,。
注2:因为采样点是处于PBS1结束处,所以IPT和PBS2重叠。当IPT = 2Tq时,PBS2不可能选为1,因此,PBS2必须是2到8Tq。
注3:重新同步的结果使相位缓冲段1增长,或使相位缓冲段2 缩短。相位缓冲段加长或缩短的数量有一个上限,此上限由SJW(重新同步跳转宽度)给定。重新同步跳转宽度应设置于1和最小值之间(此最小值为4*PBS1)。
可以从一位值转换到另一位值的过渡过程得到时钟信息。这里有一个属性,即:只有后续位的一固定最大数值才具有相同的数值。这个属性使总线单元在帧期间重新同步于位流成为可能。可用于重新同步的两个过渡过程之间的最大的长度为29个位时间。
在这里插入图片描述

##同步如何取得
CAN总线的通讯是采用NRZ(Non-Return to Zero,非归0)码,数据本身并不携带时钟信息,也即在每一位的开始或结束没有同步信号,发送单元以位时序同步的方式开始发送帧数据,接收单元根据总线电平的变化进行同步并进行接收工作。
然而,发送器和接收器之间由于彼此的时钟误差或传输路径的相位误差可能会失去同步关系,因此接收单元在接收帧的时候,必须通过硬件同步或重新同步调整它的操作时序。

①首先进行硬同步
在总线空闲状态时,接收单元检测到SOF,就会执行这个同步调整过程。“隐式”电平跳变到“显式”电平的边缘的时间点被认为是SS,而不管SJW的值 硬同步只发生在帧的起始
在这里插入图片描述
如果沿出现在SS里,沿的相位误差e=0;
如果沿位于采集点(PBS1结束之前)之前,e>0;
如果沿位于采集点之后,e<0;在这里插入图片描述

②假如输出没有延迟,但是主机和从机晶振不同,虽然已实现硬同步,但是采集信息仍有问题,这是就进行重同步解决问题
重同步的本质为增加或减少位定位时间来和总线上的其他节点同步
在接收过程中检测到总线电平发生了改变时执行重新同步操作。

每当检测到一个边沿(总线电平的改变),收发单元根据SJW值通过增加PBS1段或减少PBS2段,来调整同步。但,如果发生了超出SJW值的误差时,最大调整量不能超过SJW值。

调整同步的规则
硬件同步和再同步的执行遵从如下规则:

  1. 在1个位时间里(或者说在2个采样点之间),只允许一个同步(或者说只进行一次同步调整)。
  2. 只有当采样点之前的总线电平和边沿后的总线电平不同时,该边沿才能用于调整同步。
  3. 如果出现隐性电平到显性电平变化的边沿,且条件(1)和(2)满足,将进行同步。
  4. 如果在帧间间隙期间发生隐性电平到显性电平的信号边沿(除了间隙里的第一位),则总会执行硬件同步。
  5. 如果发生从所有其它隐性电平到显性电平的信号边沿,则执行再同步。
  6. 如果发送单元自身输出的显性电平被检测到有延迟,则不执行再同步。
    最后推荐一个很好的PPT
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CAN总线 的相关文章

  • STM32通信---CAN

    一 CAN是什么 xff1f CAN xff0c 全称为 Controller Area Network xff0c 即控制器局域网 xff0c 是一种多主方式的串行通讯总线 xff0c 是国际上应用最广泛的现场总线之一 二 CAN的起源
  • UART、IIC、SPI、CAN通信的区别与应用

    文章目录 1 通信的基本知识1 1 数据通信的种类1 1 1 串行通信1 1 2 并行通信1 1 3 总结 1 2 数据通信的传输方向1 2 1 单工1 2 2 半双工1 2 3 全双工1 2 4 总结 1 3 数据通信的方式1 3 1 同
  • 学习CANopen --- [9] CAN总线的状态检查

    本文讲述如何判断CAN总线是否存在以及是否bus off xff0c 以vcan0进行讲解 xff0c vcan0是虚拟的CAN接口 xff0c 可以把它看做一个软件CAN适配器 xff08 区别于硬件CAN适配器 xff0c 如PeakC
  • CAN总线的标准帧和扩展帧

    CAN总线的标准帧和扩展帧主要决定帧ID的长度 xff0c 标准帧的帧ID长度是11位 xff0c 帧ID的范围是000 7FF 扩展帧的帧ID长度是29位 xff0c 帧ID的范围是0000 0000 1FFF FFFF CANopen帧
  • 自动驾驶之——CAN总线简介

    自动驾驶技术之 无人驾驶中的CAN总线 CAN 是Controller AreaNetwork 的缩写 xff0c 中文名为控制器局域网络 xff0c 是ISO国际标准化的串行通信协议 xff0c 是一种用于实时应用的串行通讯协议总线 xf
  • CAN通信详解

    本章我们将向大家介绍如何使用STM32自带的CAN控制器来实现两个开发板之间的CAN通讯 xff0c 并将结果显示在TFTLCD模块上 本章分为如下几个部分 xff1a 30 1 CAN简介 30 2 硬件设计 30 3 软件设计 30 4
  • CAN通信讲解——总目录

    本文注意参考了 CAN入门书 xff0c 源于此书图片不再特殊标注 总目录 CAN通信讲解 xff08 1 xff09 基本知识 CAN通信讲解 xff08 2 xff09 数据帧和遥控帧 CAN通信讲解 xff08 3 xff09 错误据
  • CAN报文解析—案例

    1 CAN报文定义 CAN报文是指发送单元向接受单元传送数据的帧 我们通常所说的CAN报文是指在CAN线 xff08 内部CAN 整车CAN 充电CAN xff09 上利用ECU和CAN卡接收到的十六进制报文 2 CAN协议中CAN报文种类
  • CAN总线协议:标准CAN和扩展CAN

    CAN通讯协议是一个载波侦听 基于报文优先级碰撞检测和仲裁 xff08 CSMA CD 43 AMP xff09 的多路访问协议 CSMA的意思是总线上的每一个节点在企图发送报文前 xff0c 必须要监听总线 xff0c 当总线处于空闲时
  • Nvidia Jetson Xavier 上使用CAN

    为了利于回忆 xff0c 将自己查询到的资料在这里记录一下 资料一 xff1a 20条消息 NVIDIA Xavier CAN weifengdq的专栏 CSDN博客 资料二 xff1a 英文版Enabling CAN on Nvidia
  • 链接mysql数据库 Navicat,2003-can‘t connect to MYSQL server on192.168.1.122 (10060)

    可能的原因如下 xff1a 一 关闭防火墙 xff1b 1 firewalld的基本使用 启动 xff1a systemctl start firewalld 关闭 xff1a systemctl stop firewalld 查看状态 x
  • RT-thread 中CAN总线的应用

    准备 xff1a RT thread Studio 2 2 5 CubeMX 6 6 1 rt thread驱动包 4 0 3 1 新建项目 2 打开CubeMX Settings xff0c 设置CAN 找到CAN1 xff0c 并勾选激
  • STM32 CAN通信的学习笔记总结

    转载地址 xff1a STM32 CAN通信的学习笔记总结 xff08 从小白开始 xff09 目录 1 总体概述 1 1 基本概念1 2 通讯方式1 3 为什么使用CAN 1 4 CAN的协议及组成 2 上帝视角看CAN的通讯过程 2 1
  • STM32F042 CAN使用例子

    代码如下 include mycan h CAN初始化 tsjw 重新同步跳跃时间单元 范围 1 3 CAN SJW 1tq CAN SJW 2tq CAN SJW 3tq CAN SJW 4tq tbs2 时间段2的时间单元 范围 1 8
  • CAN 帧ID 与J1939 PGN 转换例子

    在saeJ1939中文版中找的三张图如下 例如 0x18 FE DF 00 110 0 0 11111110 11011111 00000000 P R DP PF PS SA 具体参数即为数据段 0 64 优先级为 P 110 2 或6
  • CAN与CANOpen(一)

    CAN与CANOpen 一 基本概念 CAN与CANOpen 二 报文格式 CAN与CANOpen 三 错误处理 CAN与CANOpen 四 CANOpen对象字典 CAN与CANOpen 五 PDO和SDO CAN与CANOpen 六 网
  • MCP2515独立控制器

    1 简介 MCP2515 是一款独立控制器局域网络 Controller Area Network CAN 协议控制器 完全支持 CAN V2 0B 技术规范 该器件能发送和接收标准和扩展数据帧以及远程帧 MCP2515 自带的两个验收屏蔽
  • 难懂?这样理解SPI与CAN很简单!

    难懂 这样理解SPI与CAN很简单 什么是串行通讯 为什么仍需使用串行通讯 SPI与CAN SPI 接口特点 CAN现场总线特点 什么是串行通讯 在正式进入主题前 我么先来介绍一下什么叫做 串行通信 串行通信是计算机的一种数据传输通信方式
  • STM32的CAN标识符过滤器超简单理解

    1 STM32中CAN1与CAN2的过滤器组 103系列14个过滤器组 104 107系列28个过滤器组 CAN FilterInitStructure CAN FilterNumber 0 0 13 2 每组过滤器组有两种工作模式 标识符
  • pico示波器使用

    文章目录 Pico示波器保存波形 Pico示波器录制数据 Pico示波器解析CAN报文 Pico示波器保存波形 Pico示波器可以通过以下步骤保存波形 在示波器上选择要保存的波形 连接示波器到计算机上 可以使用USB或者Ethernet连接

随机推荐

  • CentOS7-ELK集群搭建

    文章目录 1 准备 xff08 集群所有节点 xff09 1 1 安装JDK xff08 集群所有节点 xff09 2 Elasticsearch搭建2 1 ES下载2 2 安装 xff08 集群所有节点 xff09 2 3 修改配置文件
  • CentOS8离线安装部署ceph集群

    文章目录 1 概念简介1 1 存储类型1 1 1 DAS设备1 1 2 NAS设备 xff1a 文件服务1 1 3 SAN设备 xff1a 块服务 1 2 Ceph 架构简介 2 集群节点规划3 准备工作4 使用 cephadm 部署一个
  • Gerrit+2触发Jenkins任务

    文章目录 1 Linux创建秘钥2 Gerrit创建用户3 Jenkins配置Gerrit Trigger4 Jenkins创建工程test gerrit sonarqube4 1 General4 2 源码管理4 3 构建触发器4 4 构
  • Gerrit触发Jenkins SonarQube扫描

    文章目录 1 Jenkins配置2 Jenins 构建3 SonarQube设置质量阈4 Gerrit显示 环境参考 xff1a Gerrit 43 2触发Jenkins任务 描述 xff1a 记录Gerrit 43 2 操作之后 xff0
  • Win10 Selenium设置Firefox

    文章目录 1 Firefox与驱动对比关系图2 下载Firefox与驱动3 配置Firefox驱动4 验证配置 1 Firefox与驱动对比关系图 https liushilive github io github selenium dri
  • 分享篇--esp32直连天猫精灵

    今天给大家分享怎么用ESP32直连天猫精灵 启明云端ESP32开发板直连天猫精灵 第一步 xff1a 环境搭建 1 阿里物联网 SDK https github com espressif esp ali smartliving https
  • CentOS7部署FTP

    文章目录 1 安装FTP2 配置FTP3 创建登录用户4 修改 etc pam d vsftpd 文件5 新建系统用户vsftpd xff0c 用户目录为 home vsftpd6 建立虚拟用户个人配置文件7 重启 1 安装FTP 0 关闭
  • Ceph-Quincy-17.2.1版本集群部署

    文章目录 1 环境准备1 1 关闭防火墙1 2 关闭Selinux1 3 配置yum源1 4 时间同步1 5 cephadm下载 2 部署2 1 环境依赖2 2 cephadm部署集群2 3 扩容节点2 4 添加OSD服务2 5 创建一个文
  • Ceph文件存储-挂载文件系统

    文章目录 1 创建文件系统1 1 方法11 2 方法2 2 挂载文件系统3 卸载 1 创建文件系统 1 1 方法1 span class token number 1 span 创建存储池 ceph osd pool create tgmf
  • sshd: Cloudn‘t open /dev/null : permission denied

    1 问题 在通过 MobaXterm 链接节点时 xff0c 报错如下 xff1a Remote side unexpectedly closed network connection systemctl restart sshd 重启 s
  • CentOS8联网部署Ceph-Quincy集群

    文章目录 1 环境准备1 1 关闭selinux1 2 关闭防火墙1 3 配置免密1 4 设置yum源1 5 安装依赖1 6 设置时间同步1 7 安装docker 2 安装Ceph2 1 安装cephadm2 2 部署ceph集群2 3 集
  • 有时间细读这些书

    1 Windows程序设计 第5版 珍藏版 xff1a 这是很经典的一本介绍Win32 API编程的书了 xff0c 基本介绍到了大多数关于Windows程序设计的基本内容 2 Windows程序设计 王艳平版 xff1a 这本和上一本的区
  • reStructuredText(.rst)语法规则快速入门

    reStructuredText是一种轻量级的文本标记语言 xff0c 直译为 xff1a 重构建的文本 xff0c 为Python中Docutils项目的一部分 其一般保存的文件以 rst为后缀 在必要的时候 xff0c rst文件可以被
  • VHDL移位操作

    通过SLL实现五比特数的移动 xff0c 另外常见的还有 SRL 逻辑右移 实现数据右移 xff0c 左端补0 xff1b SLA 算术左移 实现数据左移 xff0c 同时复制最右端的位 xff0c 填充在右端空出的位置 xff1b SRA
  • 过孔----通孔,盲孔,埋孔

    过孔 xff08 via xff09 是多层 PCB 的重要组成部分之一 xff0c 钻孔的费用通常占 PCB 制板费用的 30 40 简单的来说 xff0c PCB 上的每一个孔都可以称之为过孔 从作用上看 xff0c 过孔可以分成两类
  • RS-422与RS-485传输线上的匹配

    对RS 422与RS 485总线网络一般要使用终接电阻进行匹配 但在短距离与低速率下可以不用考虑终端匹配 那么在什么情况下不用考虑匹配呢 xff1f 理论上 xff0c 在每个接收数据信号的中点进行采样时 xff0c 只要反射信号在开始采样
  • 小明分享:SSD201/202系统烧录篇,多种烧录方式,小明都做了分享,有需要的小伙伴拿走不谢哈!更多资料需求可以关注我,我是启明云端的小明MM!

    一 ISP 烧录 当 flash 没有烧过系统或系统损坏时 xff0c 可以先通过 ISP 烧录 boot xff0c 然后再通过 eth usb 或 sd 烧录完整的系统 下载并解压 tools ssd201 ISP 5 0 15 rar
  • CAN总线详解

    概述 CAN xff08 Controller Area Network xff09 总线协议是由 BOSCH 发明的一种基于消息广播模式的串行通信总线 xff0c 它起初用于实现汽车内ECU之间可靠的通信 xff0c 后因其简单实用可靠等
  • 终端电阻对CAN总线的作用和影响

    在CAN总线测试中 xff0c 会遇到找不出原因的错误 xff0c 那你可能忽略了一个解决异常的利器 终端电阻 究竟终端电阻对CAN总线有什么重要作用和影响呢 xff1f 电信号在电缆中的传播与光相似 xff0c 光从空气射入水中会发生光的
  • CAN总线

    最近在看stm32的通讯部分由于can总线在工业上的应用 xff0c 我选择以can总线为突破口进行学习 实际上在串口通讯所有的协议中 xff0c can总线也是我认为最复杂的一个协议 看了几天 xff0c 为了能够更加通俗的理解can的原