真实面经题目 · 原创解析
CAN 帧结构是什么,CAN 相比 SPI/IIC 为什么更适合车上?
这题考车载总线基础,回答要讲清帧字段、仲裁、差分物理层、错误处理,以及它相对板级总线的可靠性优势。
真实面经题目 · 原创解析
这题考车载总线基础,回答要讲清帧字段、仲裁、差分物理层、错误处理,以及它相对板级总线的可靠性优势。
CAN 帧可以按从仲裁到校验的顺序讲:SOF 起始位后是仲裁字段,标准帧常见 11 位 ID,扩展帧是 29 位 ID,ID 同时决定优先级;后面有控制字段和 DLC,数据字段最多 8 字节,CAN FD 可更多;再往后是 CRC、ACK、EOF 等字段。CAN 适合车上,不是因为单帧数据大,而是因为它是多主总线,基于显性/隐性位做无破坏仲裁,低 ID 高优先级消息能赢;差分传输抗干扰;内置 CRC、ACK、错误计数、错误帧和自动重发;节点不用共享一个主机片选。相比板内短距离同步总线,CAN 更适合长线束、多节点、强干扰和安全相关控制报文。回答时也要承认它带宽有限、载荷小,适合控制和状态消息,不适合大规模数据流。
一帧从 SOF 开始,仲裁字段携带标识符和优先级,控制字段说明帧类型和长度,数据字段承载载荷,CRC 用于校验,ACK 表示有节点正确接收,EOF 结束帧。这样讲比只背字段名更容易体现理解。
所有节点都可以尝试发送,并在发送 ID 的同时监听总线。如果自己发送隐性位却读到显性位,就说明有更高优先级帧在发送,当前节点退出等待。这个过程不会破坏获胜帧。
差分信号对共模干扰不敏感,双绞线和终端电阻能改善长线束上的信号质量。车上有电机、继电器、电源噪声和长线束,这类物理层比普通板内短线接口更合适。
CAN 内置位填充检查、CRC、ACK、错误计数、错误状态和重发机制,能发现并隔离异常节点。它的优势是多节点控制网络的可靠通信,而不是最高吞吐。
仲裁时显性 0 会覆盖隐性 1。二进制比较中 ID 越小,越早发出显性 0,因此能在仲裁中获胜。
不适合。经典帧载荷小、带宽有限,适合控制和状态报文;大数据一般用以太网、专用高速链路或分片传输方案。
先用示波器或逻辑分析仪确认电平、时序、速率和帧格式,再对照驱动日志、错误码、重试次数和协议状态机,区分硬件连接、配置参数、总线仲裁和软件缓冲问题。