CAN 协议具有以下特点。
! J, J; i+ O" m(1) 多主控制4 o0 u, E( R! X+ X( ~9 k
在总线空闲时,所有的单元都可开始发送消息(多主控制)。
$ c0 z( h% z- y% e最先访问总线的单元可获得发送权(CSMA/CA 方式*1)。- J2 z L! O2 I& d- q6 ]7 {4 m
多个单元同时开始发送时,发送高优先级ID 消息的单元可获得发送权。
; F% w/ B: z( P(2) 消息的发送
$ ~8 |6 O% {0 K6 w( m, o& g在CAN协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新! Z2 j$ b/ S8 ?( I* I+ M+ |; k h. o! E
消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。ID 并不
" G6 e- J, s4 B( e4 E是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消3 d! r, v. C5 n4 l0 @4 N# g k
息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的
! z1 o$ u& k1 Q) J单元则立刻停止发送而进行接收工作。
: o; ^# c: D; `(3) 系统的柔软性) J% ]) A+ _$ r# v, z( N2 B9 z3 T
与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬& {6 @1 m7 b, m$ y$ K% A3 b2 ^+ v3 t
件及应用层都不需要改变。) \' \9 F2 H! F, u3 Y! C+ h
(4) 通信速度
% T3 a- c3 c# T+ }# J根据整个网络的规模,可设定适合的通信速度。
( {& D# ~" ^% R5 o0 p在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元
4 o) P& W6 X) ]6 W' H也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。
% ]( u; w2 @* m6 n: S) k(5) 远程数据请求4 ~8 i$ Q, G/ _1 U1 a& a- b% ^
可通过发送“遥控帧” 请求其他单元发送数据。+ a8 _! [* ]# e
(6) 错误检测功能•错误通知功能•错误恢复功能
! K1 `8 O" K* }/ k& T2 R所有的单元都可以检测错误(错误检测功能)。
: i% \& }/ F: m* T E6 X8 ~检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。
! H1 @- B( ]8 I, s: o {0 X! a' \; m正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送
+ |) C1 T3 _9 O q1 P8 Z3 p此消息直到成功发送为止(错误恢复功能)。( @6 r' s& j; s/ _
(7) 故障封闭5 S* s; c9 w: ]- \! m
CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部
' Q( T5 _; a: p: i5 b2 `故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上2 O. t/ b# O6 O; ]4 L# A) N
隔离出去。( f% N' z4 l+ |; i& }
(8) 连接
1 O5 ` Y* }* i, K, HCAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元
5 \6 q& d" a+ c2 B* W( U2 v+ Z3 ~6 U数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。' d" f) J" U) }0 B7 a3 P/ n
|