CAN 接收过滤器怎样减轻 CPU 负担,又避免误丢关键帧?
硬件过滤器按 ID、掩码或列表决定哪些帧进入 FIFO,可减少无关中断和软件遍历。设计时要区分标准/扩展帧、数据/远程帧、FIFO 分配和掩码位语义,并保留诊断帧需求。
Question Bank
按知识、方向与难度筛选;每道题都有分层回答和工程追问。
硬件过滤器按 ID、掩码或列表决定哪些帧进入 FIFO,可减少无关中断和软件遍历。设计时要区分标准/扩展帧、数据/远程帧、FIFO 分配和掩码位语义,并保留诊断帧需求。
节点根据发送和接收错误计数进入不同错误状态;Error Passive 仍可通信但错误标志和发送行为受限,发送错误持续累积最终可进入 Bus-Off 并停止影响总线。恢复策略必须符合控制器和系统安全要求。
普通输出寄存器读改写包含读、修改、写三个步骤,若中断或另一执行单元同时改其他位,后写者会覆盖前者。芯片提供的原子置位/清零寄存器可在一次总线写中只影响目标位。
从机可在允许的阶段保持 SCL 为低,推迟主机下一位时钟,因此主机设定频率并不等于实际传输始终按该速率进行。控制器必须支持拉伸,并设置有上限的超时与恢复策略。
总线首字节由 7 位从机地址和最低位读写方向组成;不同控制器 API 有的接收纯 7 位地址,有的要求已放到首字节位置。必须按 API 契约传参,不能把数据手册的读写地址和 7 位地址混用。
DMA 完成通常只表示最后一个数据单元已写入外设寄存器,SPI 移位器可能仍在发送。拉高片选或关闭外设前还要等待控制器规定的发送完成或非 Busy 条件,并按手册处理状态标志。
许多 MCU 在 APB 分频不为 1 时会给定时器提供总线频率的特定倍频,但规则依系列而异。计数频率还要经过定时器预分频和自动重装,必须从时钟树与寄存器实际值逐级计算。
Link Up 只说明 PHY 协商和物理链路建立,不证明 MAC、DMA、缓存、IP 配置或协议栈正常。应依次核对 PHY 模式与时钟、MAC 统计、DMA 描述符、Cache 一致性、ARP 和 IP 配置。