![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
STM32学习手记24-bxCAN
文章平均质量分 66
STM32学习手记
weixin_43420126
脚踏实地,埋头苦干,积跬步以至千里。
展开
-
bxCAN-中断
bxCAN 共有四个专用的中断向量。每个中断源均可通过 CAN 中断使能寄存器 (CAN_IER)来单独地使能或禁止。原创 2024-01-30 00:34:06 · 609 阅读 · 0 评论 -
bxCAN 主要特性
● 在唯一地址空间通过软件实现高效的邮箱映射。● 可调整的筛选器组: — CAN1。● 在最后两个数据字节发送时间戳。● 两个具有三级深度的接收。● 支持时间触发通信方案。● 可配置的发送优先级。● 禁止自动重发送模式。原创 2024-01-29 02:45:00 · 511 阅读 · 0 评论 -
bxCAN-测试模式
可以通过位时序寄存器 中的静默模式(调试)位 和 环回模式(调试)位 来选择测试模式。这些位必须在 bxCAN 处于初始化模式时进行配置。原创 2024-01-24 00:00:00 · 492 阅读 · 0 评论 -
bxCAN 消息存储
CAN 消息 软件与硬件之间的接口通过邮箱实现。邮箱中包含所有与消息相关的信息:标识符、数据、控制、状态和时间戳信息。原创 2024-01-28 00:32:51 · 581 阅读 · 0 评论 -
bxCAN 标识符筛选
在 CAN 协议中,消息的标识符与节点地址无关,但与消息内容有关。因此,发送器将消息广播给所有接收器。在接收到消息时,接收器节点会根据标识符的值来确定软件是否需要该消息。如果需要,该消息将复制到 SRAM 中。如果不需要,则必须在无软件干预的情况下丢弃该消息。为了满足这一要求,bxCAN 控制器为应用程序提供了 28 个可配置且可调整的筛选器组 (27-0)。在其他器件中,bxCAN 控制器为应用程序提供了 14 个可配置且可调整的筛选器组 (13-0),以便仅接收软件需要的消息。原创 2024-01-27 13:51:32 · 797 阅读 · 0 评论 -
bxCAN接收处理
为了接收 CAN 消息,提供了构成 FIFO(First Input First Output) 的三个邮箱。为了节约 CPU 负载,简化软件并保证数据一致性,FIFO 完全由硬件进行管理。应用程序通过 FIFO 输出邮箱访问 FIFO 中所存储的消息。原创 2024-01-26 00:05:10 · 994 阅读 · 0 评论 -
bxCAN 发送处理
为了发送消息,应用程序必须在请求发送前,通过将发送邮箱标识符寄存器中的相应发送邮箱请求位 置 1,选择一个空发送邮箱,并设置标识符、数据长度代码 (DLC) 和数据。一旦邮箱退出空状态,软件即不再具有对邮箱寄存器的写访问权限。原创 2024-01-25 00:18:36 · 987 阅读 · 0 评论 -
bxCAN 工作模式
bxCAN 有三种主要的工作模式:初始化、正常和睡眠。硬件复位后,bxCAN 进入睡眠模式以降低功耗,同时 CANTX 上的内部上拉电阻激活。软件将主控制寄存器(CAN_MCR---CAN master control register)的初始化请求位 (INRQ---Initialization request) 或睡眠模式请求位(SLEEP---Sleep mode request)置 1,以请求 bxCAN 进入初始化或睡眠模式。原创 2024-01-23 00:00:00 · 1278 阅读 · 0 评论 -
高速CAN总线 m 个节点竞争总线时 电压分析(共 n 个节点)
发送显性电平的节点数与总线差分电压之间关系如下表,可见同时发送的节点数越多,差分电压约大。但差分电压并非线性增大,发送节点数趋近于无穷多个时,差分电压趋近 4V。电路的串并联关系参考以上参考了知乎,来自示波器的升维打击 CAN、CAN-FD 错误帧 Bus-Off 排查 定位。由上图可以看出,上下并联的M组30Ω的等效电阻R0 = (30/m) Ω。(理论上 m 个节点同时竞争总线时,会使得差分电压加大)M个节点同时发送显性电平。原创 2024-01-22 00:00:00 · 621 阅读 · 0 评论 -
高速CAN总线 A C节点竞争总线时 电压分析(共ABC三个节点)
CAN 收发器放大图。由上图可以看出,上下并联的2组30Ω的等效电阻R0 = 15Ω中间并联的电阻R1 由公式:1/R1 = 1/120 + 1/120 + 1/30 + 25000 + 25000 +30求得 R1 = 59.928Ω ≈ 60Ω求解出 CAN_High = 3.8333V CAN_Low = 1.1667V (CAN_Low = 0.5 + 4.5-0.5/15+60+15 × 15 = 1.1667V)(CAN_High = 4.5 - 4.5-0原创 2024-01-21 02:14:27 · 829 阅读 · 0 评论 -
高速CAN总线 C 或 B 节点发送 A节点接收 电压分析
CAN_High 与 CAN_Low 之间的等效电阻 R0 (1/R0 = 1/120 + 1/120 + 1/(30+25000+25000+30) + 1/(30+25000+25000+30)) 求得R0 = 59.8565 ≈ 60Ω (电阻 25kΩ 远大于 120Ω,所以估算时可当成开路去除)。“低电平”经非门电路后变化为“高电平”到达左方NPN三极管的B极,因此NPN三极管也导通(如上图)。CAN总线 C 节点发送,B 节点接收简化后的逻辑框图如下图。CAN总线3节点框图,如下图。原创 2024-01-20 09:40:48 · 682 阅读 · 0 评论 -
高速CAN总线 A B节点竞争总线时 电压分析
CAN收发器放大图前4步简化过程同。由上图可以看出,仅分析一侧电路既可求的 CAN_High 与 CAN_Low 的电压.求解出 CAN_High = 3.5V CAN_Low = 1.5V (CAN_Low = 0.5 + (4.5-0.5)/(30+120+30) × 30 = 1.1667V)(CAN_High = 4.5 - (4.5-0.5)/(30+120+30) × 30 = 3.8333V)CAN_High 与 CAN_Low 电压差为 2.6667V 。原创 2024-01-19 19:33:46 · 630 阅读 · 0 评论 -
高速CAN总线 A节点发送 B节点接收 电压分析
假设B节点不进行应答(不回复ACK信号)则B节点的上下两个三极管都不会导通,电压分析时可去除,如下图所示。“高电平”经非门电路后变化为“低电平”到达下方NPN三极管的B极,因此NPN三极管也截止。“低电平”经非门电路后变化为“高电平”到达下方NPN三极管的B极,因此NPN三极管也导通。总线上仅有AB两个节点,所以AB两个节点处皆需要接入1个120Ω的终端电阻,如下图。A节点与B节点的接收比较器可看做高阻态端口,电压分析时可直接去除。CAN总线A节点发送,B节点接收的逻辑框图如下图。原创 2024-01-18 11:49:47 · 521 阅读 · 0 评论 -
CAN 节点状态转换
当节点检测到错误时,会发出错误帧,并增加错误计数器的值,根据错误计数器的值,节点会进入不同的状态。具体的计数方法参照 ISO 11898-1。发送错误计数值 TEC : Transmit Error Counter。接收错误计数值 REC: Receive Error Counter。CAN节点 按照错误严重程度可分为三种不同的状态。被动错误状态(Error Passive)主动错误状态(Error Active)总线关闭状态(Bus Off)原创 2024-01-17 00:01:10 · 551 阅读 · 0 评论 -
CAN总线报文格式---远程帧(遥控帧)
通常ECU(Electronic Control Unit)会通过数据帧主动发送相关数据,但某些情况也可能用到远程帧。使用远程帧可以从其他任何CAN节点请求用户数据(即数据帧)。除了缺少数据段以外,远程帧与数据帧结构相同。远程帧用于从任何CAN节点请求数据(即数据帧)。但是数据传输并不基于请求,而是主要基于信息生产者的自我主动性,因此应用程序中几乎不使用远程帧。除缺少数据场以外,远程帧与数据帧布局相同。数据帧的RTR位为显性,远程帧的RTR位则为隐性。远程帧可分为标准远程帧和扩展远程帧。原创 2024-01-15 00:00:00 · 1310 阅读 · 0 评论 -
CAN-位填充
ISO 11898-1规定,发送方在传输连续5个相同位后必须传输一个相反的位;即使连续5个相同位后本就是一个相反位,也需要添加填充位。当某一个节点发生主动错误时,将把总线拉低6个bit宽度的显性电平“0”,及时向总线上其他单元汇报错误。位填充从以SOF的传输为开始,以CRC序列的最后一位的传输为结束,因此在传输包含8个数据字节的标准格式的。采用标准数据帧发送 1 个字节数据时,发送方、总线、接收方逻辑电平波形图(显性0,隐性1)从图中可以看出由于位填充的原因,总线上多出了8个紫色的填充位。原创 2024-01-16 01:51:39 · 1169 阅读 · 0 评论 -
CAN总线报文格式———扩展数据帧
扩展数据帧由帧起始、仲裁段、控制段、数据段、CRC段、ACK段、帧结束等组成。仲裁段用于写明需要发送到目的CAN节点的地址、确定发送帧类型(当前发送的是数据帧还是遥控帧),并确定发送的帧格式是标准数据帧还是扩展数据帧。扩展数据帧的仲裁段共32位,由29位ID标识符(0x00000000 ~ 0x1FFFFFFF)+1位SRR(Substitute Remote Request)替代远程请求帧+1位IDE(Identifier Extension Bit)扩展标识符+1位RTR(Remote T原创 2024-01-14 00:02:15 · 2066 阅读 · 0 评论 -
CAN总线报文格式———标准数据帧
标准数据帧由帧起始、仲裁段、控制段、数据段、CRC段、ACK段、帧结束等组成。原创 2024-01-13 00:00:00 · 1885 阅读 · 0 评论 -
ISO 11519-2 开环低速 CAN 网络(10K~125Kbps)
ISO 11519-2 标准的物理框图如下图。可理解为一个低速开环 CAN 总线网络;CAN 开环总线网络允许总线最大长度为 1km;最高速度为 125Kbps;这里的两根线是独立的,每根线上串联一个 2.2kΩ 的电阻;节点就是不同的设备,连接到一个开环总线上面。原创 2024-01-12 00:00:00 · 952 阅读 · 0 评论 -
ISO11898-闭环高速CAN网络 (125K~1Mbps)
CAN控制器可集成在微控制器中,也可以作为独立的芯片存在(如下图所示为与STM32MCU集成)。在这种情况下,微控制器会将CAN控制器视为存储芯片。虽然独立CAN控制器更加灵活,但集成CAN控制器具有所需空间更少的优势,并且微控制器和CAN控制器之间的通信更快、更可靠。将CAN控制器连接到物理传输介质。通常,控制器和收发器之间采用光耦隔离或磁耦隔离,因此尽管CAN总线上的过电压可能会损坏CAN收发器,但CAN控制器和底层主机仍可受到保护。原创 2024-01-11 01:45:00 · 691 阅读 · 0 评论 -
CAN位时序分解
CAN标准位时序描述如下表段名称段的作用Tq数同步段用于多个连接在总线上的单元通过此段实现时序调整,同步进行接收和发送的工作。信号的跳变边沿最好出现在此段中。若通讯节点检测到总线上信号的跳变沿被包含在 SS 段的范围之内,则表示节点与总线的时序是同步的,当节点与总线同步时,采样点采集到的总线电平即可被确定为该位的电平。SS 段固定为 1Tq。1Tq8~25Tq传播时间段用于吸收网络上的物理延迟的段。原创 2024-01-10 00:00:00 · 522 阅读 · 0 评论