扩展帧优先级永远低于标准帧——不完全对✅前11bit ID 相同时是的扩展帧永远输❌前11bit ID 不同时扩展帧完全可以赢甚至可以打败所有标准帧 先看完整优先级排序表优先级从高到低帧类型关键位第1名标准帧数据帧ID最小RTR0显性第2名标准帧远程帧ID相同情况下RTR1 IDE0第3名扩展帧数据帧ID相同情况下SRR1 IDE1 RTR04️⃣第4名扩展帧远程帧ID相同情况下SRR1 IDE1 RTR1⚠️以上排序的前提是前11bit ID 完全相同 逐位仲裁分析当 ID 相同时假设两个节点前 11bit ID 完全一样同时发帧1位序号: 10 9 8 7 6 5 4 3 2 1 0 │ 12 │ 13 2 ←──────── 11bit ID相同────────→ │ RTR/SRR│ IDE 3 4标准数据帧: x x x x x x x x x x x │ 0(显) │ 0(显) 5标准远程帧: x x x x x x x x x x x │ 1(隐) │ 0(显) 6扩展数据帧: x x x x x x x x x x x │ 1(隐) │ 1(隐) 7扩展远程帧: x x x x x x x x x x x │ 1(隐) │ 1(隐) 8 ↑ ↑ 9 标准赢 标准赢 10比较位标准帧扩展帧谁赢第12位RTR vs SRRRTR0显性SRR1隐性✅标准帧赢第13位IDEIDE0显性IDE1隐性✅标准帧赢只要前11bit相同标准帧在第12位就已经赢了根本轮不到比IDE⚡ 但ID 不同时呢——扩展帧可以屠榜这才是关键 场景扩展帧 ID 0x001 vs 标准帧 ID 0x7FF1扩展帧: ID 0x001最高优先级 2 0 0 0 0 0 0 0 0 0 0 1 │ SRR1 │ IDE1 │ ... 3 4标准帧: ID 0x7FF最低优先级 5 1 1 1 1 1 1 1 1 1 1 1 │ RTR0 │ IDE0 │ ... 6 ↑ 7 第3位就分出胜负了 8 9位序号: 10 9 8 7 6 5 4 3 2 1 0 10扩展帧: 0 0 0 0 0 0 0 0 0 0 1 11标准帧: 1 1 1 1 1 1 1 1 1 1 1 12 ↑ 13 第10位扩展帧发0标准帧发1 14 总线 0显性 15 标准帧检测我发1总线是0 → 有人优先级更高 → 退出 16 17✅ 扩展帧 ID0x001 完胜标准帧 ID0x7FF 18对比扩展帧 ID0x001标准帧 ID0x7FF赢家ID 数值0x001最小0x7FF最大✅ 扩展帧优先级最高最低✅ 扩展帧帧类型扩展帧标准帧❌ 帧类型不重要CAN 仲裁只看 ID 数值不看帧类型ID 小的永远赢 完整优先级规则一张表搞定规则说明例子规则1ID 小者赢不管标准/扩展ID 数值小的优先级高扩展帧 0x001 标准帧 0x7FF ✅规则2ID 相同时标准帧赢因为 RTR0显性 SRR1隐性标准数据 0x300 扩展数据 0x300 ✅规则3ID 帧类型都相同时数据帧赢RTR0显性 RTR1隐性标准数据 0x300 标准远程 0x300 ✅ 最终优先级金字塔1 ┌─────────────────┐ 2 │ ID 最小的帧 │ ← 不管标准/扩展ID小就赢 3 │ (如 0x001) │ 4 └────────┬────────┘ 5 │ ID 相同 6 ▼ 7 ┌────────────────────────┐ 8 │ 标准帧 扩展帧 │ ← RTR0 赢 SRR1 9 │ (数据帧 远程帧) │ 10 └────────────────────────┘ 11 12实际排序ID0x300 为例 13┌──────────────────────────────────┐ 14│ 标准数据帧 ID0x300 RTR0 │ ← 最高 15│ 标准远程帧 ID0x300 RTR1 │ 16│ 扩展数据帧 ID0x300 SRR1 │ 17│ 4️⃣ 扩展远程帧 ID0x300 SRR1 │ ← 最低 18└──────────────────────────────────┘ 19 20实际排序ID不同为例 21┌──────────────────────────────────┐ 22│ 扩展数据帧 ID0x001 │ ← 屠榜打败所有标准帧 23│ 标准数据帧 ID0x100 │ 24│ 标准远程帧 ID0x200 │ 25│ 4️⃣ 扩展数据帧 ID0x7FF │ ← 最低 26└──────────────────────────────────┘ 27✅ 回到你的问题你的理解正确吗修正扩展帧优先级永远低于标准帧❌不完全对✅ID 相同时扩展帧永远低于标准帧✅ID 不同时扩展帧完全可以赢甚至打败所有标准帧扩展帧优先级永远低于远程帧❌不对✅ 标准远程帧 扩展数据帧ID相同时✅ 但扩展帧 ID0x001 可以打败标准远程帧 ID0x7FF 一句话记住CAN 仲裁只认 ID 数值不认帧类型ID 不同→ ID 小的赢扩展帧可以屠榜ID 相同→ 标准帧赢RTR0 SRR1ID 帧类型都相同→ 数据帧赢RTR0 RTR1扩展帧不是低人一等它只是在 ID 相同时让着标准帧而已。ID 比你小照样抢你总线
扩展帧也能赢标准帧?CAN仲裁真相揭秘
发布时间:2026/6/12 11:01:53
扩展帧优先级永远低于标准帧——不完全对✅前11bit ID 相同时是的扩展帧永远输❌前11bit ID 不同时扩展帧完全可以赢甚至可以打败所有标准帧 先看完整优先级排序表优先级从高到低帧类型关键位第1名标准帧数据帧ID最小RTR0显性第2名标准帧远程帧ID相同情况下RTR1 IDE0第3名扩展帧数据帧ID相同情况下SRR1 IDE1 RTR04️⃣第4名扩展帧远程帧ID相同情况下SRR1 IDE1 RTR1⚠️以上排序的前提是前11bit ID 完全相同 逐位仲裁分析当 ID 相同时假设两个节点前 11bit ID 完全一样同时发帧1位序号: 10 9 8 7 6 5 4 3 2 1 0 │ 12 │ 13 2 ←──────── 11bit ID相同────────→ │ RTR/SRR│ IDE 3 4标准数据帧: x x x x x x x x x x x │ 0(显) │ 0(显) 5标准远程帧: x x x x x x x x x x x │ 1(隐) │ 0(显) 6扩展数据帧: x x x x x x x x x x x │ 1(隐) │ 1(隐) 7扩展远程帧: x x x x x x x x x x x │ 1(隐) │ 1(隐) 8 ↑ ↑ 9 标准赢 标准赢 10比较位标准帧扩展帧谁赢第12位RTR vs SRRRTR0显性SRR1隐性✅标准帧赢第13位IDEIDE0显性IDE1隐性✅标准帧赢只要前11bit相同标准帧在第12位就已经赢了根本轮不到比IDE⚡ 但ID 不同时呢——扩展帧可以屠榜这才是关键 场景扩展帧 ID 0x001 vs 标准帧 ID 0x7FF1扩展帧: ID 0x001最高优先级 2 0 0 0 0 0 0 0 0 0 0 1 │ SRR1 │ IDE1 │ ... 3 4标准帧: ID 0x7FF最低优先级 5 1 1 1 1 1 1 1 1 1 1 1 │ RTR0 │ IDE0 │ ... 6 ↑ 7 第3位就分出胜负了 8 9位序号: 10 9 8 7 6 5 4 3 2 1 0 10扩展帧: 0 0 0 0 0 0 0 0 0 0 1 11标准帧: 1 1 1 1 1 1 1 1 1 1 1 12 ↑ 13 第10位扩展帧发0标准帧发1 14 总线 0显性 15 标准帧检测我发1总线是0 → 有人优先级更高 → 退出 16 17✅ 扩展帧 ID0x001 完胜标准帧 ID0x7FF 18对比扩展帧 ID0x001标准帧 ID0x7FF赢家ID 数值0x001最小0x7FF最大✅ 扩展帧优先级最高最低✅ 扩展帧帧类型扩展帧标准帧❌ 帧类型不重要CAN 仲裁只看 ID 数值不看帧类型ID 小的永远赢 完整优先级规则一张表搞定规则说明例子规则1ID 小者赢不管标准/扩展ID 数值小的优先级高扩展帧 0x001 标准帧 0x7FF ✅规则2ID 相同时标准帧赢因为 RTR0显性 SRR1隐性标准数据 0x300 扩展数据 0x300 ✅规则3ID 帧类型都相同时数据帧赢RTR0显性 RTR1隐性标准数据 0x300 标准远程 0x300 ✅ 最终优先级金字塔1 ┌─────────────────┐ 2 │ ID 最小的帧 │ ← 不管标准/扩展ID小就赢 3 │ (如 0x001) │ 4 └────────┬────────┘ 5 │ ID 相同 6 ▼ 7 ┌────────────────────────┐ 8 │ 标准帧 扩展帧 │ ← RTR0 赢 SRR1 9 │ (数据帧 远程帧) │ 10 └────────────────────────┘ 11 12实际排序ID0x300 为例 13┌──────────────────────────────────┐ 14│ 标准数据帧 ID0x300 RTR0 │ ← 最高 15│ 标准远程帧 ID0x300 RTR1 │ 16│ 扩展数据帧 ID0x300 SRR1 │ 17│ 4️⃣ 扩展远程帧 ID0x300 SRR1 │ ← 最低 18└──────────────────────────────────┘ 19 20实际排序ID不同为例 21┌──────────────────────────────────┐ 22│ 扩展数据帧 ID0x001 │ ← 屠榜打败所有标准帧 23│ 标准数据帧 ID0x100 │ 24│ 标准远程帧 ID0x200 │ 25│ 4️⃣ 扩展数据帧 ID0x7FF │ ← 最低 26└──────────────────────────────────┘ 27✅ 回到你的问题你的理解正确吗修正扩展帧优先级永远低于标准帧❌不完全对✅ID 相同时扩展帧永远低于标准帧✅ID 不同时扩展帧完全可以赢甚至打败所有标准帧扩展帧优先级永远低于远程帧❌不对✅ 标准远程帧 扩展数据帧ID相同时✅ 但扩展帧 ID0x001 可以打败标准远程帧 ID0x7FF 一句话记住CAN 仲裁只认 ID 数值不认帧类型ID 不同→ ID 小的赢扩展帧可以屠榜ID 相同→ 标准帧赢RTR0 SRR1ID 帧类型都相同→ 数据帧赢RTR0 RTR1扩展帧不是低人一等它只是在 ID 相同时让着标准帧而已。ID 比你小照样抢你总线