CAN 协议具有以下特点。
+ e4 S0 j, }% w' t8 @# c(1) 多主控制
5 r( U( Q7 ~; F8 Y: X( F在总线空闲时,所有的单元都可开始发送消息(多主控制)。# d0 i) t b4 Q0 ~$ J5 T
最先访问总线的单元可获得发送权(CSMA/CA 方式*1)。
0 P {& R$ Z5 o; L& I6 C多个单元同时开始发送时,发送高优先级ID 消息的单元可获得发送权。8 w5 x6 M o* a1 ^7 ^% ]
(2) 消息的发送
! t+ ~1 F ~( c% O6 `在CAN协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新/ N% R) o/ y5 W/ }" {! w1 \
消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。ID 并不
5 |7 R& L% t/ p d是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消$ S8 e* A8 y: W
息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的
. Y" |8 @; P/ {0 b _单元则立刻停止发送而进行接收工作。
1 _) }4 Y: Q9 w( K(3) 系统的柔软性6 U: w; R: D! b2 y) i
与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬
5 ~' Q1 G1 T( W. i件及应用层都不需要改变。6 K4 K. G) u1 x& S3 m
(4) 通信速度
: J- {# d0 H _根据整个网络的规模,可设定适合的通信速度。& J$ P; e3 Q+ x) H- }% d- N
在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元
6 f7 u5 ^6 d% c5 k0 R* \2 y, S- Y也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。5 q M( I" C* z, _, N5 V
(5) 远程数据请求% E8 b+ d+ B- \* ]4 V8 C% f* l) O
可通过发送“遥控帧” 请求其他单元发送数据。
1 {& e8 s( d J& M9 c' e(6) 错误检测功能•错误通知功能•错误恢复功能
" f$ q9 X4 J- _* W5 O* u5 X& k所有的单元都可以检测错误(错误检测功能)。3 U* i: S* N5 W$ h! ?5 J7 c5 X
检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。* \: s) n( p% h4 S7 i& C4 @. z2 E
正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送
; M: ?2 h3 l1 h# l此消息直到成功发送为止(错误恢复功能)。, _6 ?: ~; D, {. t2 E. ]
(7) 故障封闭
& e. G+ K; | u$ `( ]CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部
* n; R' c5 a% O4 |& U: E故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上" b# M+ x& r! B" [% {
隔离出去。
8 F6 ?$ I6 e- K(8) 连接8 w, ~8 w" J. J: f' g e; [
CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元
4 M4 }5 V/ ~. A* L( V D数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。# w. G9 i# Z+ o# Y
|