
CAN
文章平均质量分 88
致守
这个作者很懒,什么都没留下…
展开
-
CAN通信:Busoff问题知多少
如上TEC计数规则中,节点每成功发送一帧报文,TEC会减1,由于Node A 的5个CAN报文周期相同,干扰0x10使得TEC + 8,但是,如果其余4个报文成功被发送,则每发送一帧,TEC - 1。通过如上规则可以看出,对于发送节点自身发送报文导致的错误,TEC均会累加8,也就是说,如果想最快地使得某个节点进入Bus off状态,就得让发送节点自己识别到自身产生的错误,而且,最少要产生32次,32*8 = 256 >255,节点进入Bus off状态。关于Busoff的话题,之前聊过,大家可以参考前文。转载 2024-12-06 15:10:06 · 932 阅读 · 0 评论 -
非常详细的STM32 CAN通信的贴子,从总线细节到编程实现
CAN 是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519以及ISO11898),是国际上应用最广泛的现场总线之一。差异点如下:CAN 总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN 为底层协议专为大型货车和重工机械车辆设计的 J1939 协议。转载 2024-12-06 14:35:27 · 446 阅读 · 0 评论 -
“CAN 与 CAN FD 通信详解:协议、时间分析与延迟补偿机制“
CAN采用的是差分信号:由两根线组成CANH和CANL。按照定义:CANH-CANL<0.5v时候为隐性,逻辑电平为高CANL-CANH>0.9v时为显性,逻辑电平为低。CAN总线与IIC一样采用线与,在总线上显性电平具有优先权,当同时出现显性信号和隐性信号时,总线上为显性数据即0。通信过程:由于CAN通信只有两根数据线,没有时钟线所以并不知道数据。转载 2024-11-27 10:27:46 · 847 阅读 · 0 评论 -
通过系统级测试来避免 CAN 收发器的数据传输问题
CAN 是一种内置了故障处理功能的分布式通信标准。ISO-118981 标准规定了物理层 (PHY) 和数据链路层 (DLL)。允许总线上有多个主机信息的固有优先级按报文优先级进行总线仲裁多级错误检测和恢复在具有独立时钟源的节点间同步数据计时CAN 采用差分电压数据传输方案,具有两种总线电压状态:“隐性”状态(驱动器输出为高阻抗)和“显性”状态,阈值如表 1 所示。逻辑RS-485 电平CAN 状态CAN 电平1隐性0显性。转载 2024-10-11 16:45:29 · 113 阅读 · 0 评论 -
CAN总线-ACK应答机制分析
CAN是一种基于广播的通讯方式,为了保证总线上的每一个节点都能正确的接收到报文,报文的发送者要求每一个接收节点在报文发送结束前,也就是ACK SLOT 的时间内,作出应答,即在ACK段上,要求接收节点在报文正确性的基础上及时发送一个“显性”位。该工况下就无法基于ACK场进行判断,但会触发错误帧相关机制,立即开始发送一个错误帧,则接下去总线上的信号就是这个错误帧,其它的节点和发送者也都会收到这个错误帧,那所有的节点都知道出错了,接收者会丢掉此次消息,而发送者会试图重发此次消息。2 通道表征发送节点的 RX;转载 2024-10-11 16:16:43 · 701 阅读 · 0 评论 -
CAN总线波形中为什么ACK电平偏高?
中,当一帧报文被各个节点接收时,在ACK阶段,多个CAN节点同时响应(都发显性),流过终端电阻的电流被各个CAN节点均分,那么平均到每个节点的电流就减小了,如下图所示,VDH、VDL的压降也减小,相应CANH-CANL的差分电压就增大了,即ACK应答电平偏高。:所有接收到匹配CRC序列(CRC SEQUENCE)的节点会在应答间隙(ACK SLOT)期间用一“显性”的位写入发送器的“隐性”位来作出回答,由于CAN总线线与的原理,只要总线上有一个节点正确接收到数据,则ACK SLOT就会被填入显性电平。转载 2024-10-11 16:14:30 · 351 阅读 · 0 评论 -
详解 CAN 总线:高速 CAN 总线和低速 CAN 总线的特性
在 ISO 11898-2 和 ISO 11898-3 中分别规定了两种 CAN 总线结构(在 BOSCH CAN2.0 规范中,并没有关于总线拓扑结构的说明):高速 CAN 总线和低速 CAN 总线,区别表如下所示:本篇博文将详细介绍两者的特性和区别。转载 2024-08-05 17:24:00 · 3052 阅读 · 0 评论 -
干货分享:CAN总线详解 整车的控制只需要一条线
帧起始:1bit。从图中看出,在帧间隙后由逻辑1(至少两个bit)向逻辑 0 的跳变就被认为是帧起始,它的作用就是为了硬同步。仲裁场:由29bit的ID标示符和IDE、SRR、RTR位构成。IDE位用于标示该帧是扩展帧(29bit ID)还是标准帧(11bit ID);SRR在扩展帧 中 为 一 隐 性 位;R T R 位 为 远 程 帧 标 志 位。由上图可以看出,11bit的基本ID首先被发送(ID28~ID18),然后在发送18bit的扩展ID(ID17~ID0)转载 2024-08-05 17:17:04 · 1298 阅读 · 0 评论 -
CAN总线到底要不要加共模电感?
共模电感不可避免地会有寄生电感,直流电阻,考虑总线节点数,通信距离等因素,会引起谐振,影响总线信号质量,如图6,绿色波形为增加共模电感的总线波形,信号下降沿已有明显的谐振。许多CAN收发器均会超过限值。共模电感用于总线的优缺点较为明显,它可以滤除信号线的共模电磁干扰,衰减差分信号高频部分,抑制CAN接口自身向外发出的电磁干扰,在传导骚扰方面有很好地改善作用,但应用仍要考虑其带来的谐振与瞬态电压,这些在长距离,多节点通讯中对总线信号质量是不利的,对于一般工业应用对传导发射并无严格要求,因此可不增加共模电感。转载 2024-08-05 17:12:29 · 1636 阅读 · 0 评论 -
我的CAN系统的比特率越高,其最大线路长度就越短,这是为什么?
由于 CAN (FD) 使用的仲裁机制,最大总线长度受到限制,并且随着比特率的增加而减小。只有这样,他们才能有相同的依据来决定他们是否可以发送,或者如果仲裁失败,他们是否转为监听。在这种情况下不能使用CAN中继器,因为它们直接传输总线信号,这意味着由中继器分隔的段必须算作主总线的一部分,以便进行信号传输。总之,由于仲裁期间需要统一的信号电平,因此明显的是,较高的比特率会导致更短的允许线路长度。除了纯电缆长度外,使用电气隔离总线接口还可以缩短总线长度,因为此类接口必须被视为具有 10 m 的电缆长度。转载 2024-08-05 17:11:19 · 109 阅读 · 0 评论 -
挂在嘴边的CAN接“地”,你真的会了吗?
以其高可靠性、实时性、灵活性以及严谨的数据处理机制等特点,在自动化行业得到广泛应用,但随着环境干扰以及节点数目的增加等对CAN总线的稳定性提出更高的要求,而面对电源地、信号地、屏蔽地、外壳地不同的接地方式又该如何处理呢?信号地也称为隔离地,为使电子设备工作时有一个统一的参考电位,避免有害电磁场的干扰,使设备稳定可靠的工作,设备中的信号电路统一参考地,即CAN-GND;通常人们一说到地,都会想到电源地,信号地,外壳地,却并不清楚屏蔽地,以下就是四种地的常见符号,大家可千万不要搞错了!转载 2024-08-05 17:09:56 · 1139 阅读 · 0 评论 -
CAN总线抗干扰的六种解决方案
如图 5 所示,未隔离时,两个节点的地电位不一致,导致有回流电流,产生共模信号,CAN 的抗共模干扰能力是 -12~7V,超过这个差值则出现错误,如果共模差超过±36V,烧毁收发器或者电路板。带屏蔽层的 CAN 线,可以良好地抵御电场的干扰,等于整个屏蔽层是一个等势体,避免 CAN 导线受到干扰。如图 6 所示的 CTM 系列隔离收发器的总线隔离技术,与传统分立器件方案相比,产品具备更高的集成度与可靠性,能够有效提升总线通信防护等级,极大程度降低用户的采购与生产成本,大幅缩短开发周期。转载 2024-08-05 17:08:55 · 1917 阅读 · 0 评论 -
CAN接口电路的 EMC设计方案(工业)
(1) 当接口与单板存在相容性较差或不相容的电路时,需要在接口与单板之间进行“分地”处理,即根据不同的端口电压、电平信号和传输速率来分别设置地线。“分地”,可以防止不相容电路的回流信号的叠加,防止公共地线阻抗耦合;(2) CAN接口信号传输速率较高,内部PCB板高频噪声很容易由公共地线通过接口向外传导辐射,因此将公共地分割且通过电容相接,可以阻断共模干扰的传播路径。如果设备为金属外壳,同时单板可以独立的划分出接口地,那么金属外壳与接口地直接电气连接,且单板地与接口地通过1000pF电容相连;转载 2024-08-05 17:06:55 · 952 阅读 · 0 评论 -
CAN总线错误帧详解
在这一状态下,节点Node_A检测到一个错误就会发送带有被动错误标志的错误帧,因为被动错误标志是连续六个隐性位,所以这个时候总线上正在传输的报文位流不会受到该被动错误帧的影响,其它的节点该发送的发送,该接收的接收,没人搭理这个发送被动错误帧的节点Node_A。Tips: 处于主动错误状态,说明这个节点目前是比较可靠的,出现错误的原因可能不是它本身的问题,即刚刚检测到的错误可能不仅仅只有它自己遇到,正是因为这一点,整个总线才相信它报告的错误,允许它破坏掉发送中的报文,也就是将这一次的发送作废。转载 2024-04-18 15:31:15 · 2921 阅读 · 1 评论 -
一篇易懂的CAN错误帧指南
本文来自于本人公众号的几篇文章的合集,CAN帧类型中,错误帧可能会经常听到,但又非常陌生。就我做多年软件开发经历,看到过位填充错误,但也没有去分析或解决过错误帧的案例。如果提到Bus off,通讯丢失,E2E之类的,那大多数人都有所耳闻了,为什么会这样呢?这是因为错误帧属于很基础的知识点了,如果对这个基础知识有兴趣,继续下文。转载 2024-04-18 15:28:18 · 3466 阅读 · 0 评论 -
[CAN] CAN BUS的错误检测和错误状态管理
控制器局域网络(Controller Area Network, CAN)是当今汽车和工业自动化系统的重要标准。可靠性是CAN总线协议的核心优势之一,这使其成为安全关键应用的理想选择。CAN总线错误的发生可能有多种原因,比如电缆故障、噪声、不匹配的终端电阻、CAN节点故障等。识别、分类和解决此类CAN错误是确保整个CAN系统持久性能的关键。错误处理可以识别和拒绝错误的信息,使发送者能够重新传输信息。此外,该过程有助于识别和断开持续传输错误信息的CAN节点。CAN 总线的错误管理主要需要从三个方便进行分析。转载 2024-04-18 15:21:12 · 1727 阅读 · 0 评论 -
知识分享 | 什么是CAN总线上的波特率
虽然单位“波特”本身就已经是代表每秒的调制数,以“波特每秒”为单位是一种常见的错误,但是在一般中文口语化的沟通上还是常以“波特率”来描述“波特”(Baud)。位时间=1/位速率=1/(500*1000)s=2µs因此,当使用500kbps时,1位在总线上的传输时间为2µs因此,传输1帧的大致时间是(2µs/bit * 125 bit)=250 µs。单位时间内传输的“码元数”称为“码元传输速率”,俗称波特率,也称为调制速率、波形速率或符号速率,它的单位是波特(Baud,symbol/s,码元数每秒)。转载 2024-04-16 17:40:01 · 3662 阅读 · 0 评论 -
如何接好CAN的“地”?
CAN总线以其高可靠性、实时性、灵活性以及严谨的数据处理机制等特点,在工业现场和汽车行业得到广泛应用,但随着环境干扰以及节点数目的增加等对CAN总线的稳定性提出更高的要求,而面对电源地、信号地、屏蔽地、外壳地不同的接地方式又该如何处理呢?信号地也称为隔离地,为使电子设备工作时有一个统一的参考电位,避免有害电磁场的干扰,使设备稳定可靠的工作,设备中的信号电路统一参考地,即CAN-GND;许多实际应用中,设计者常直接将每个节点的参考地接于本地的大地,作为信号的返回地,看似正常可靠的做法,却存在极大的隐患!转载 2024-04-12 17:03:53 · 2567 阅读 · 0 评论 -
stm32中的CAN通讯列表模式配置解析与源码
在讲到代码实例之前,首先大家都弄懂一件事,当给定一个CAN ID,如0x1800f001,当然这个是扩展ID,这里要问的是,这个CAN ID的值本身包含两部分,即基本ID与扩展ID,即么你知道这个扩展ID0x1800f001的哪些位是基本ID,哪些位又是扩展ID?总结可知,当过滤器为屏蔽模式时,标识符寄存器对应的ID内容可为任意一需求接收的ID值,当同时要接收标准帧和扩展帧时,标识符寄存器对应IDE位也随意设置,屏蔽寄存器的IDE位设置为0,表示不关心标准帧还是扩展帧。//给出过滤器位宽为32位。转载 2024-04-07 17:29:39 · 852 阅读 · 0 评论 -
STM32(HAL)——CAN通信
全称Controller Area Network,是一种半双工,异步通讯。没有主从的说法,每个设备都可以发送和接收。两种网络形式:闭环:允许总线最长40m,最高速1Mbps∘ \circ ∘ 规定总线两端各有一个120Ω电阻。∘ \circ ∘ CAN控制器是各个连接到总线上的设备的控制器,一般需要配备一个CAN收发器(比如咱们战队码盘上的CAN收发器用的是TJA1050),用于将CAN控制器的二进制码流转换为CAN总线的差分电平,在两条有差分电压的总线电缆上传输数据开环:最大传输距离1Km,最高速1转载 2024-01-06 16:05:31 · 4701 阅读 · 0 评论 -
STM32 CAN 过滤器、滤波屏蔽器配置总结
此时,这样CAN_FxR0中保存的就是标识符匹配值,CAN_FxR1中保存的是屏蔽码,即CAN_FxR1中如果某一位为1,则CAN_FxR0中相应的位必须与收到的帧的标志符中的相应位吻合才能通过过滤器;这些过滤器相当于关卡,每当收到一条报文时,CAN要先将收到的报文从这些过滤器上"过"一下,能通过的报文是有效报文,收进相关联FIFO(FIFO1或FIFO2),不能通过的是无效报文(不是发给"我"的报文),直接丢弃。按这样的顺序,报文能通过的第一个过滤器,就是该报文的过滤器编号,被存入接收邮箱中。转载 2024-01-06 16:03:37 · 2640 阅读 · 0 评论 -
STM32--CAN ID过滤器分析
在CAN协议里,报文的标识符不代表节点的地址,而是跟报文的内容相关的。因此,发送者以广播的形式把报文发送给所有的接收者。节点在接收报文时,根据标识符(CAN ID)的值决定软件是否需要该报文;如果需要,就拷贝到SRAM里;如果不需要,报文就被丢弃且无需软件的干预。为满足这一需求,bxCAN为应用程序提供了14个位宽可变的、可配置的过滤器组(13~0),以便只接收那些软件需要的报文。硬件过滤的做法节省了CPU开销,否则就必须由软件过滤从而占用一定的CPU开销。转载 2024-01-05 10:06:33 · 353 阅读 · 0 评论 -
stm32 can滤波器接收指定的ID
因此,整个操作的目的是从32位的slave_id中提取出低16位,并将扩展帧和数据帧标志位添加到其中,最后进行掩码操作,得到最终的ID低位部分,并放置到CAN_FilterInitStructure.CAN_FilterIdLo中,以用作CAN过滤器的ID低位部分。当给定一个CAN ID,如0x1800f001,当然这个是扩展ID,这里要问的是,这个CAN ID的值本身包含两部分,即基本ID与扩展ID,即么你知道这个扩展ID0x1800f001的哪些位是基本ID,哪些位又是扩展ID?转载 2024-01-05 10:05:22 · 1640 阅读 · 0 评论 -
STM32F40x CAN控制器
STM32自带了基本扩展CAN外设,又称bxCAN,bxCAN的特点如下:支持CAN协议2.0A和2.0B主动模式波特率最高达1Mbps支持时间触发通信具有3个发送邮箱具有3级深度的2个接收FIFO可变的筛选器组(也称过滤器组,最多28个)1、工作模式初始化模式(INRQ=1、SLEEP=0)正常模式(INRQ=0、SLEEP=0)睡眠模式(SLEEP=1)2、测试模式静默模式(LBKM=0、SILM=1)环回模式(LBKM=1、SILM=0)转载 2024-01-04 14:44:25 · 385 阅读 · 0 评论 -
CAN学习笔记3:STM32 CAN控制器介绍
STM32 CAN控制器(bxCAN),支持CAN 2.0A 和 CAN 2.0B Active版本协议。CAN 2.0A 只能处理标准数据帧且扩展帧的内容会识别错误,而CAN 2.0B Active 可以处理标准数据帧和扩展数据帧。转载 2024-01-04 14:43:29 · 985 阅读 · 0 评论 -
了解CAN总线中的信息过滤
我们Influx 声明,这绝不是我们研究的文件,而是为了更好地理解而收集的数据。信息的获取、研究和汇集来自于不同的平台,如独立网站、视频、博客、研究论文等,目的是为了提供信息,让我们的读者可以更容易理解内容。最后,当重要/必需的数据在总线中传输时,您可能最终没有剩余的存储空间来记录数据。如果我们不使用CAN ID 过滤器而只记录带有CAN ID 的报文,那么当我们分析至关重要的数据时,数据最终会占用更多的空间,分析也会变得困难。现在,数据记录固件只接受和保存出现在CAN总线上的ID为0x101的信息。转载 2024-01-04 14:42:40 · 319 阅读 · 0 评论 -
详解CAN通信的标识符掩码和标识符列表两种过滤机制
因此示例的MASK仅限制了ID的最后1位与预设ID的最后1为一致即可,其余的位不做限制,只要满足这样形式的ID数据,都能通过示例的过滤机制,从而被接收方正确接收,此处可知,掩码的作用就是要以预设ID为模板,决定过滤掉哪些类型的ID;假如是标准帧模式,以16位宽度为例,预设的ID=0x0001,当期望仅接收与预设ID一致的数据,那么只要发送的ID与预设ID一样就可以被接收到,其余类型的ID数据都被过滤掉,接收方将接收不到此类数据。在CAN协议里,报文的标识符不代表节点的地址,而是跟报文的内容相关的。转载 2024-01-04 14:40:40 · 3217 阅读 · 0 评论 -
为什么CAN节点ID不能相同?
前面我们提到CAN节点在发送报文的同时会检测总线电平是否与自己发送的电平一致,若不一致发生在非仲裁区域则触发相应错误,因此若这两帧报文同时发送到总线上必将发生位发送错误。CAN控制器在发送报文的同时会监听总线状态与自己发送的电平是否一致,如果不一致发生在ID段则会发生仲裁,如果发生在其他区域则会触发相应错误。使用一个CAN卡发送ID为000H数据为01020304050607H的CAN帧,使用另一个CAN卡发送ID为000H数据为02020304050607H的CAN帧。资深强迫症患者想一探究竟!转载 2024-01-04 14:38:55 · 862 阅读 · 0 评论 -
CAN通信标准帧和扩展帧(全网最透彻解答)
其它的都一模一样,所以,转载 2024-01-04 14:37:44 · 10501 阅读 · 1 评论 -
STM32 CAN控制器简介-寄存器简介
①配置相关引脚的复用功能,使能CAN时钟。要用CAN,先要使能CAN的时钟,CAN的时钟通过APB1ENR的第25位来设置。其次要设置CAN的相关引脚为复用输出,这里我们需要设置PA11为上拉输入(CAN_RX引脚)PA12为复用输出(CAN_TX引脚),并使能PA口的时钟②设置CAN工作模式及波特率等。通过先设置CAN_MCR寄存器的INRQ位,让CAN进入初始化模式,然后设置CAN_MCR的其他相关控制位。再通过CAN_BTR设置波特率和工作模式(正常模式/环回模式)等信息。转载 2024-01-04 13:40:10 · 904 阅读 · 0 评论 -
STM32学海无涯之CAN ID匹配、屏蔽与过滤
接收报文标识符的每一位都必须跟过滤器标识符FilterId相同, 所以列表模式下是过滤特定的ID模式,列表的方式受到列表容量大小的限制,bxCAN的一个过滤器若工作在列表模式下,scale为32时,每个过滤器的列表只能写入两个报文ID,若scale为16时,每个过滤器的列表最多可写入4个CAN ID。如果将FilterMode设置为CAN_FILTERMODE_IDMASK模式,FilterMaskId设置为0时,表示不过滤,可以接收任意的canid数据,CAN的过滤器是硬件设置接受指定地址数据用的。转载 2024-01-03 16:20:18 · 1168 阅读 · 0 评论 -
秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4 CAN!
CAN 是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519以及ISO11898),是国际上应用最广泛的现场总线之一。差异点如下:CAN 总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN 为底层协议专为大型货车和重工机械车辆设计的 J1939 协议。转载 2024-01-03 16:15:56 · 1422 阅读 · 0 评论 -
STM32F105双CAN双FIFO通讯心得体会
具体结合到本案例,客户代码里对CAN1、CAN2的过滤器进行配置时,当前过滤器组始终为0,即sFilterConfig.FilterNumber=0,而分配给CAN2的过滤器组又是从BANK 14开始的,即sFilterConfig.BankNumber = 14。的通讯,过程中遇到很多问题,在手头只有一个很小的开发板的情况下,费劲周折,终于解决了问题,不多说,直接把入坑与出坑的事情说一下吧。这个的出坑还是自己出的:FIFO0和FIFO1对应的RXMSG是不一样的,因为没有注意到,结果写成了一样,转载 2024-01-03 16:12:50 · 1398 阅读 · 2 评论 -
STM32在进行CAN总线多节点通信时,同时发数据会一直收不到某设备数据的问题及解决
最近在开发Canopen项目中,进行一主多从设备通信时,主站发送同步帧,两个从站往往只有帧ID优先级高的设备可以让主站接收到数据,而另一个从设备的数据往往接收不到。总的来说,CAN总线的冲突机制通过使用非破坏性的仲裁和标识符比较,以及回退机制,确保了多个节点之间的有序通信,使得总线上的消息能够按照优先级顺序进行传输。我们在进行CAN的多机通信时,往往希望不会丢帧。遇到CAN总线冲突时,受阻的CAN从设备进行自动回传是我们需要的。,帧ID优先级高的CAN设备会“抢占”总线,而另外的设备需要选择冲突解决策略。转载 2024-01-03 16:08:56 · 2521 阅读 · 1 评论 -
STM CAN filter配置纪要
第【2】句代码针对双CAN的STM32产品,配置CAN2可使用的过滤器组的起始编号,n取值范围为0~28.从编号为n的过滤器组到编号为27的过滤器组分配给CAN2使用。所以,本质上讲过滤器匹配索引值跟过滤器编号是同一个数据,但代表的意义不一样。具体结合到本案例,客户代码里对CAN1、CAN2的过滤器进行配置时,当前过滤器组始终为0,即sFilterConfig.FilterNumber=0,而分配给CAN2的过滤器组又是从BANK 14开始的,即sFilterConfig.BankNumber = 14。转载 2024-01-03 16:07:24 · 245 阅读 · 0 评论 -
CAN过滤器配置以及常见问题总结
如果设备只有一个CAN,则最多14个(0-13),若有两个CAN,则最多27个(程序若不进行配置则默认CAN1可用0-13,CAN2可用14-27),可配置CAN2过滤器开始组,需注意CAN2使用的过滤器组好默认为开始组以后。那么32ID该怎么配置呢,此时不是简单像上述16位模式左移五位实现,具体参考如下(我们以32位列表为例,下面配置则通过的ID为0x12345678),至于为什么这样移位这里不再赘述,想知道的具体可看下寄存器手册。所有的过滤器是并联的,即一个报文只要通过了一个过滤器,就是算是有效的。转载 2024-01-03 16:04:29 · 2241 阅读 · 0 评论 -
再谈STM32的CAN过滤器-bxCAN的过滤器的4种工作模式以及使用...
1. 前言bxCAN是STM32系列最稳定的IP核之一,无论有哪个新型号出来,这个IP核基本未变,可见这个IP核的设计是相当成熟的。本文所讲述的内容属于这个IP核的一部分,掌握了本文所讲内容,就可以很方便地适用于所有STM32系列中包含bxCAN外设的型号。有关bxCAN的过滤器部分的内容在参考手册中往往看得“不甚明白“,本文就过滤器的4种工作模式进行详细讲解并使用具体的代码进行演示,这些代码都进行过实测验证通过的,希望能给读者对于bxCAN过滤器有一个清晰的理解。2. 准备工作2.1. 为什么要转载 2024-01-03 16:02:32 · 173 阅读 · 0 评论 -
STM32F103正点原子学习笔记系列——CAN
Controller Area Network,是ISO国际标准化的串行通信协议。满足汽车行业“减少线束数量”、“通过多个LAN,进行大量数据高速通信”。低速CAN(ISO11519)通信速率10~125kbps,总线长度可达1000m;高速CAN(ISO11898)通信速率125kbps~1Mbps,总线长度<=40m。CAN FD通信速率可达5Mbps,可兼容经典CAN,遵循ISO11898-1。转载 2024-01-03 16:00:42 · 2235 阅读 · 0 评论 -
怎样分析错误帧?
CAN帧有多种格式,错误帧作为CAN帧中独特的一种,了解其作用,类型与产生原因,对于进行测试以及开发有很大的帮助,本文将对错误帧的相关基础知识以及后续的分析排查进行介绍。错误帧的基础知识。转载 2023-12-02 16:51:34 · 338 阅读 · 0 评论 -
来自示波器的升维打击:CAN、CAN-FD 错误帧 Bus-Off 排查 定位
CAN的BusOff源于错误帧的积累,而错误帧这个东西,是一个接收节点 认为数据有误 故意打断通信,好让发送节点感知到 并重发报文的设计。注意这里边有个“我觉得你有病”的认知陷阱,让CAN的诊断变得近似玄学。本文分享一种用从 CAN波形的幅度和脉宽信息 来精确定位错误帧来源的方法,可能是首创,哪里没讲明白欢迎反馈。我们先从基础的讲起,后边会用得到。CAN节点的电路一般如下图所示,MCU内置了用来将MCU的数据封装为CAN帧格式,同时它也负责CAN帧的校验和错误帧的处理。转载 2023-12-02 16:40:27 · 1608 阅读 · 1 评论