CAN 协议具有以下特点。
8 I- [- Q0 K$ {: G0 J5 Z(1) 多主控制
: F% i8 o( g( [* ~2 `在总线空闲时,所有的单元都可开始发送消息(多主控制)。$ _: b) v, |2 }) n
最先访问总线的单元可获得发送权(CSMA/CA 方式*1)。3 h. Z, O4 e3 Z% N
多个单元同时开始发送时,发送高优先级ID 消息的单元可获得发送权。
4 Y: c* y4 h2 E0 Q(2) 消息的发送
4 P; m1 c M/ x M在CAN协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新3 P4 O- F! y8 ]3 X
消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。ID 并不% q% i8 e. X, B& |1 p; ~
是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消
) ^( V+ }" ~6 Q0 n$ K7 Y( F2 z: @息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的6 C2 N/ c$ v8 A3 M+ x
单元则立刻停止发送而进行接收工作。
+ E* H/ d- I. r7 `(3) 系统的柔软性
0 a$ q4 g5 _+ y与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬
5 G( P% l& U) ^件及应用层都不需要改变。# O: K! Y; j5 u( [+ t- P# @
(4) 通信速度2 t3 ?3 p# f( U
根据整个网络的规模,可设定适合的通信速度。
' X" \1 Q# I& h: M在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元0 ~2 v1 {" A$ p
也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。
4 d+ U# @/ h# c/ N(5) 远程数据请求; R# L( ]: p- R: L* l1 C: Y
可通过发送“遥控帧” 请求其他单元发送数据。- A9 d; Z0 v D$ G) z ]
(6) 错误检测功能•错误通知功能•错误恢复功能9 D6 ~1 T- M4 e. r p/ n
所有的单元都可以检测错误(错误检测功能)。
; \; X0 [5 D2 Q6 x+ T检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。3 ^$ S$ b: r' I. y% ~
正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送8 o- V2 I2 q0 x
此消息直到成功发送为止(错误恢复功能)。; m8 G7 G( Y5 K! q9 J% y* t4 A
(7) 故障封闭5 r* }8 l. W4 P1 ^5 O# o l
CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部- N) x) b/ C5 F; t, @2 r
故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上' O3 f ?, _& P/ ]
隔离出去。
- L) i# X$ K- P(8) 连接
9 n H( p. Z4 r1 BCAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元3 N6 T# N$ a* e& L4 D$ g! _8 y; {! u
数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。 T3 ` Y$ ~6 e3 v& e
|