vtelrdyepdq64040050258.gif
! @. C9 X( h J2 ?8 v
点击上方蓝色字体,关注我们
s5 R6 e% k" t1 P U! g: `! x5 d/ _6 F. D( R7 O. M
CAN总线采用 线与(Wired-AND) 逻辑,利用差分信号驱动。总线的显性电平(逻辑“0”)通常由发射器主动驱动,而隐性电平(逻辑“1”)是总线的默认状态,由内部的上拉或下拉电阻保持。
8 u/ H( U6 T x! C. m+ G3 w+ t/ \8 C% ?( J' X+ ]# |7 E9 X
因此,为了在信号冲突或干扰时优先传递明确的指令,“显性”电平被设计为优先。
* D" a; {% }7 Q8 S+ W
! C7 _7 R( B0 d; C4 ?& nCAN总线是一种多主控通信协议,其中的仲裁机制允许多个节点同时发起通信请求,而不发生冲突。这是通过显性优先的规则实现的。& D9 s- u3 w+ v' o
4 M; {- W! F0 x" \8 B3 n7 D9 o/ Z仲裁机制原理:
7 B0 k1 Y' I: q/ @/ a: P5 Q+ M" v多个节点同时发送数据帧,帧头部分的标识符(ID)用于仲裁。在每个位时间上,总线上会进行逻辑“与”操作。如果某个节点发送隐性电平(逻辑“1”),但检测到总线上为显性电平(逻辑“0”),它会停止发送,因为它的优先级较低。! F9 o8 m6 `, m. t A/ U
/ b8 J! Q+ \0 H* _ S7 J4 `
所以,使用显性优先:* Z; B1 \* |6 i! o
确保低ID(高优先级)的帧优先发送。提高总线效率,避免数据冲突和无谓重传。
7 j2 n5 _' E$ f* R2 h1 n0 O! }1 R9 h% i+ w
如果隐性电平优先,则节点无法可靠检测自身是否胜出仲裁,导致仲裁机制失效。
- z. m: K! d X) z2 x8 a6 L( |" H0 T, a3 i: S7 [
显性电平由驱动器强制施加,抗干扰能力强,在高噪声环境下能更稳定地维持总线状态。
0 T3 w7 _- L2 J4 y8 r
% m) ^$ w: x. i9 U9 d在硬件设计上,显性电平的驱动需要更高的电流能力,而隐性电平则可以通过弱上拉/下拉维持。& z6 U, Q: X7 S( P" L; t" V4 @
6 x* X( }, [6 L* R2 j A
这样的设计符合经济性与可靠性之间的平衡:显性电平优先意味着只有在必要时才需要高电流驱动,从而减少了能耗。隐性电平作为默认状态,减少了空闲期间的能耗。
8 P8 {( K# L, b+ D6 k+ w
4ai5qamhhvh64040050358.jpg
* q- B) O5 p5 J
lyoc3zjtxji64040050458.gif
" g u$ A% r- F. \* L4 o点击阅读原文,更精彩~ |