CAN डेटा फ़्रेम की संरचना
मानक CAN फ़्रेम के हर फ़ील्ड को एनिमेशन से समझें: SOF, आर्बिट्रेशन, डेटा, CRC, ACK, EOF।
मानक CAN फ़्रेम के फ़ील्ड देखने के लिए चलाएँ दबाएँ
यह कैसे काम करता है
नीचे का मुख्य लेख अभी केवल चीनी में पूरा उपलब्ध है; इंटरफ़ेस, शीर्षक, विवरण और FAQ चुनी हुई भाषा में हैं।
一帧长什么样
标准 CAN 数据帧(11 位 ID)从总线空闲开始,按位流依次发送:
| 字段 | 位数 | 作用 |
|---|---|---|
| SOF | 1 | 显性位,标志帧开始并完成硬同步 |
| 仲裁场 ID | 11 | 报文标识符,同时决定优先级 |
| RTR | 1 | 数据帧为显性 0,远程帧为隐性 1 |
| IDE | 1 | 标准帧为显性 0 |
| r0 | 1 | 保留位 |
| DLC | 4 | 数据长度 0–8(CAN-FD 使用非连续映射) |
| 数据场 | 0–64 | 实际载荷,按 DBC 信号定义解析 |
| CRC 序列 | 15 | 校验 SOF 至数据场,多项式 0x4599 |
| CRC 界定符 / ACK 槽 / ACK 界定符 | 各 1 | 发送节点发隐性,接收节点用显性应答 |
| EOF / IMS | 7 / 3 | 帧结束与帧间空间 |
位填充
从 SOF 到 CRC 序列采用位填充:连续 5 个相同电平后自动插入一个相反电平的位。因此实际帧长会略大于字段位数之和,计算总线负载时必须留出余量(工程上常用最坏 135 位/标准帧)。
为什么 ACK 是显性
发送节点在 ACK 槽发出隐性位;任何正确接收到帧的节点都会把它拉成显性。发送节点读到显性即确认”至少有一个节点收到了”,但不知道是谁、也不知道是否所有节点都收到。这就是 CAN 只做”广播 + 应答”、不做点对点确认的原因。
理解了帧结构,再去 CAN 位定时计算器 看采样点位置,以及 CRC 计算器 里通用 8 位 CRC 参数模型与帧内 15 位 CRC 的区别——两者的初值、位序列与填充位处理方式都不同,不能互相替代。
इस विषय के उपकरण
CRC-32, ARC, MODBUS, CCITT-FALSE आदि की ब्राउज़र में गणना; hex व टेक्स्ट।
TL-02 / AUTOMOTIVE DBC व्यूअर और संदेश डिकोडरब्राउज़र में DBC BO_/SG_ पार्स करें, बिट लेआउट, गुणक/ऑफसेट देखें, hex से भौतिक मान निकालें।
TL-03 / AUTOMOTIVE CAN / CAN-FD बिट टाइमिंग कैलकुलेटरक्लॉक व बिटरेट से BRP, tq, चरण खंड, SJW व सैंपल पॉइंट; CAN-FD DLC तालिका सहित।