vtelrdyepdq64040050258.gif
+ _+ l3 x6 }) k! y6 E0 i( w7 L点击上方蓝色字体,关注我们
1 I9 y& q9 j. I$ r: a0 S4 N& q: u* J/ d+ g# S
CAN总线采用 线与(Wired-AND) 逻辑,利用差分信号驱动。总线的显性电平(逻辑“0”)通常由发射器主动驱动,而隐性电平(逻辑“1”)是总线的默认状态,由内部的上拉或下拉电阻保持。
9 p! Z5 l5 M+ F: [
, O o/ t4 `5 x/ [2 G: B" Z: `因此,为了在信号冲突或干扰时优先传递明确的指令,“显性”电平被设计为优先。3 W( `$ X- O* ?0 U
( a! o0 _1 s0 K7 C3 t7 v
CAN总线是一种多主控通信协议,其中的仲裁机制允许多个节点同时发起通信请求,而不发生冲突。这是通过显性优先的规则实现的。
2 J S% u0 K9 H5 d0 B& }; R) U. N E) l, k& J i( Z
仲裁机制原理:1 }. K1 [+ f- n$ `
多个节点同时发送数据帧,帧头部分的标识符(ID)用于仲裁。在每个位时间上,总线上会进行逻辑“与”操作。如果某个节点发送隐性电平(逻辑“1”),但检测到总线上为显性电平(逻辑“0”),它会停止发送,因为它的优先级较低。% O/ U& h+ Q [
7 y+ [) H3 w8 s, L6 {; `. ^' h
所以,使用显性优先:. i" Y4 |8 f7 r5 p- l1 J
确保低ID(高优先级)的帧优先发送。提高总线效率,避免数据冲突和无谓重传。+ s# j8 V: H& l0 N* G m
: B8 R' v" T' O4 t) P. w如果隐性电平优先,则节点无法可靠检测自身是否胜出仲裁,导致仲裁机制失效。
. d# f7 R- h2 o/ j0 X; e( i0 u k# ^; c. d& x. h4 T
显性电平由驱动器强制施加,抗干扰能力强,在高噪声环境下能更稳定地维持总线状态。
8 y9 S0 t& A' w! Y' o; \' i7 L/ v) J/ r/ H4 q
在硬件设计上,显性电平的驱动需要更高的电流能力,而隐性电平则可以通过弱上拉/下拉维持。
7 z5 W2 ]7 F6 I. a! f! J# H; e6 e8 j5 I2 H/ R b( F6 u3 p
这样的设计符合经济性与可靠性之间的平衡:显性电平优先意味着只有在必要时才需要高电流驱动,从而减少了能耗。隐性电平作为默认状态,减少了空闲期间的能耗。
& j& w0 I2 X2 Q
4ai5qamhhvh64040050358.jpg
$ |4 Q0 q+ E% r/ r3 Y& z# S4 K$ T
lyoc3zjtxji64040050458.gif
/ a+ p/ c5 Q, X2 U M0 n* K6 T点击阅读原文,更精彩~ |