CAN 协议具有以下特点。" e" l# a9 X% t N! A8 G3 K
(1) 多主控制
' d3 h" @8 P% }6 a4 H! C在总线空闲时,所有的单元都可开始发送消息(多主控制)。
- Z: e6 d; e! R) d9 u最先访问总线的单元可获得发送权(CSMA/CA 方式*1)。: T" z+ m0 p, m
多个单元同时开始发送时,发送高优先级ID 消息的单元可获得发送权。
8 U& s. G- N, k, l1 r( |5 d(2) 消息的发送" `& x) b& x) ]0 W4 W( R
在CAN协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新: m& h0 ?. c( U7 I# j6 Q
消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。ID 并不6 [) b6 y1 b8 j8 a! r! U
是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消4 H- X! ] `. `" m& U
息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的 Q/ O U, O7 x; T1 K' M
单元则立刻停止发送而进行接收工作。
& J( p& P$ q) M; A9 g(3) 系统的柔软性
( [* T) ?; t) w" F. {与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬
1 G" d+ L' T4 D ]" D1 S件及应用层都不需要改变。
! m" d. E* f1 ^; [) o# ](4) 通信速度
* S, ]* X8 z% W1 W+ x6 W根据整个网络的规模,可设定适合的通信速度。# F% V, k! W) V: A
在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元) L/ y6 c$ a2 t
也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。8 g( E/ A% D+ [& T1 V: E' I
(5) 远程数据请求* c* d0 e' v" g3 |8 s' r2 |
可通过发送“遥控帧” 请求其他单元发送数据。1 d9 k. @( |0 L5 R
(6) 错误检测功能•错误通知功能•错误恢复功能) j: I& |% Y7 ?) o8 C
所有的单元都可以检测错误(错误检测功能)。
2 A/ m, \3 U3 r6 E2 I2 c+ A+ I ]" @检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。- ?# j4 {5 R+ @4 l0 D% o
正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送4 p, n* _" c9 ?' v0 g1 M
此消息直到成功发送为止(错误恢复功能)。
) v) {. z: t! V* U6 d! }5 a(7) 故障封闭# ~- ^8 s2 C, [2 p
CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部& H1 i) s' x3 o( u, C; V
故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上
2 J# Z3 B. M' m. [0 f f隔离出去。
* P% }6 j+ k; W. n" Y+ b0 k/ h(8) 连接* h4 W Q! P; G6 W9 [- f
CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元
: M9 i$ Q( O8 M数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。
8 e5 l% a l6 _4 e% [ P6 ^6 G! L |