电子产业一站式赋能平台

PCB联盟网

搜索
查看: 208|回复: 0
收起左侧

CAN总线网络下标准帧与扩展帧共存是否会引发冲突?

[复制链接]

1001

主题

1001

帖子

8805

积分

高级会员

Rank: 5Rank: 5

积分
8805
发表于 2024-11-30 08:01:00 | 显示全部楼层 |阅读模式

cfsdkdvdrs464044430816.gif

cfsdkdvdrs464044430816.gif
3 }7 K6 Q8 F1 k& z) q0 {; a
点击上方蓝色字体,关注我们
' J2 l/ d4 Y3 ]0 K. S" K, Y  l, M在同一CAN总线网络上混合使用标准帧和扩展帧是技术上可行的,但实际中可能引发优先级不平衡、标识符冲突和网络负载增加等问题。7 T6 n# J: L, {) j5 y
1
0 ?4 e! x9 T+ ~0 ^. [& D. TCAN协议规范的支持" E9 g% P6 O% ~% d) y
CAN协议(如CAN 2.0B)明确支持标准帧和扩展帧的混合使用。2 @: O7 P9 e4 O6 F, Y
/ P5 q/ }/ J1 g& s9 p& P
在帧的仲裁阶段,标准帧和扩展帧是兼容的,因为扩展帧的标识符会通过“IDE位”(标识符扩展位)进行区分:
4 e% e6 k0 N9 ^, A& R$ k. x8 Z+ @4 v( ]" Q7 I$ L

0s23ina1aul64044430916.jpg

0s23ina1aul64044430916.jpg
. b* Z& k" M  S- R/ \! D
- h: H5 `9 P6 ]8 E
标准帧的IDE位为0。
! Q* j% A$ C/ p  ?7 z/ I. g3 E+ S  ?, @2 X2 i3 }8 Z) v4 U

yvft4mafjl464044431016.jpg

yvft4mafjl464044431016.jpg
0 e9 K7 k, Y0 q! G" O" M
! ?, Q- @! b: x/ I. w
扩展帧的IDE位为1。
$ L: M/ S7 v9 M) B) C1 \/ X- W% e5 M8 W7 c

bcm5bjyd25p64044431116.jpg

bcm5bjyd25p64044431116.jpg

: _# w  a4 E* s: ~8 v
5 ]/ U) i1 S5 P在仲裁阶段:如果两种帧同时竞争,标准帧因其标识符字段较短,在仲裁中优先级更高(假设标识符的前11位相同)。
0 a# V% J7 K0 m8 s$ [) I/ K, O* M0 O  |' h1 S0 p8 p9 A' ?1 w
扩展帧可能需要退避,等待总线空闲后重新发送。$ E! e8 {2 S, Q
29 N# @6 o4 d; u
硬件层面的兼容性
7 [# k) @0 E( F0 T早期的CAN控制器可能只支持标准帧(如仅支持CAN 2.0A)。2 \% ^& _+ O4 O' p# P

0 h" B. S  v- j9 ~+ T大多数现代CAN控制器支持CAN 2.0B协议,能够接收和处理两种帧格式。1 J3 j, D  p! d8 W: ~
: j7 u# y6 F2 ~! ~( Z- \
混合使用时,需要合理配置CAN控制器的滤波器和掩码。3 R) z* K- r5 @3 k; l

! w. F) m1 [5 X6 n4 s如果滤波器设计不当,可能会导致标准帧或扩展帧被错误丢弃或误识别。1 S, U& x! o# S) a5 ?

& d# C& A: B* B5 I某些硬件滤波器资源有限,扩展帧的标识符长度较长,可能增加滤波配置复杂性。; |, t3 ]: |2 d+ e1 m  \7 t
3
+ O, Z" a7 Q" K: G% L' [应用层面的问题
# E7 W: Y4 E6 b- e(1) 优先级干扰! h) Q9 Q! T- b$ m
标准帧的优先级天然高于扩展帧,可能导致扩展帧在负载较高的网络中被频繁延迟。
2 g3 M- x/ }- y& e4 T4 J6 Q/ n4 j2 ?. \+ Q5 F" Y1 p/ b
如果应用中扩展帧承载的是时间敏感的数据,需特别注意。
5 d; e. f6 H& w1 ~3 h' k" B
0 c  L2 @1 c* @8 J( p) N' N(2) 标识符冲突
0 {- i4 W/ _: y扩展帧的前11位可能与标准帧的标识符相同,容易产生混淆。例如:标准帧标识符:0x7FF。6 \/ |  N& E* s. J

" A* W" J5 s" x  {0 k- T  k扩展帧标识符:0x7FF1234 如果应用层处理逻辑未正确区分IDE位,可能出现数据解析错误。1 h5 N' b- S5 v1 A0 x- S
6 P& L/ B/ v: ?9 L4 ~+ G6 {
(3) 带宽和负载& m8 J& }; W9 D+ x' q7 D8 N
扩展帧的帧长度比标准帧长,传输扩展帧需要占用更多的总线时间。
8 n8 n8 V- q: U* Q8 Z* V, ^# D" S/ C' L5 G$ ?
在高负载网络中,扩展帧的使用可能加剧总线拥堵,影响通信实时性。
8 {' a, f  ]0 Z* f2 `" Y
- Q, D# N; t( d. V# A! B! |(4) 应用协议要求
2 ]1 f  Z: s# W2 t9 g4 I! ?高层协议(如CANopen、J1939)可能对帧格式有特定要求。例如:  t2 g4 G/ B7 |* l  m' Z8 D  F
CANopen通常使用标准帧。J1939则基于扩展帧。& H0 i, c& Y! J1 t1 x/ F
4
. b7 L0 J9 ^, Q* T8 G  c" |  b' [设计与优化建议
6 `- C8 I! E5 X* \. K(1) 通信规划9 F' r3 W: Q2 K7 c
在设计阶段,尽量为标准帧和扩展帧分配不同的功能域,避免标识符冲突。
" f$ l1 T4 K0 G; c$ p% b, P3 |9 K: d9 l" m: D' Z3 n6 D
关键实时数据尽量使用标准帧,以减少仲裁延迟。" L" P% |: G$ u& Y

4 R5 V& x- m, W, Q$ V(2) 网络负载评估
/ N1 L6 R( y5 |定期评估网络负载,确保扩展帧的引入不会导致总线拥堵。
4 ^* ]: r9 A; R) D2 U
2 X  m3 S, F7 L- s& }! m4 K- ?(3) 协议设计" k5 X1 G- X* J
如果混用不可避免,可以在应用层协议中增加帧类型区分逻辑,确保IDE位的正确解析。
" }: s* X% q7 t, F5 V* x& c
+ x% Z7 A) u$ X; {/ I(4) 硬件选择  Q2 H' S% b+ c+ j5 k4 N
确保使用支持混合模式的CAN控制器,选择拥有足够滤波器资源的硬件。
  T/ ^8 J# Q4 B8 g% y. v
& ]' Q* c4 t* w- K# X通过合理的通信规划、高效的滤波器配置以及负载管理,可以有效避免问题。8 E% ^2 h* v; f, o9 Q

3 H/ F! w9 r, r& w7 U根据应用需求,还可以考虑采用其他高层协议(如CAN FD)进一步优化通信性能。
& p3 y* q7 g3 a

fxcksvkhkh064044431216.jpg

fxcksvkhkh064044431216.jpg

/ A  x+ u6 |7 S* B

ytbs1xfyhyl64044431316.gif

ytbs1xfyhyl64044431316.gif

) p+ G+ e, p) Z" E0 E点击阅读原文,更精彩~
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表