CAN 协议具有以下特点。! ^: y7 z' Z3 a* G, f* ?; P7 a
(1) 多主控制
3 N# W. E: D9 w+ u在总线空闲时,所有的单元都可开始发送消息(多主控制)。
1 P. F. j" A7 t最先访问总线的单元可获得发送权(CSMA/CA 方式*1)。
. J) |9 U$ f# f0 _: b- s多个单元同时开始发送时,发送高优先级ID 消息的单元可获得发送权。
) g- d; N, t6 {) t* j3 A# D1 d(2) 消息的发送
. u l. I5 `" J8 V. m) m/ [在CAN协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新
+ [( H' y3 K9 O' t; l消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。ID 并不8 l/ B1 y* h/ ?# \
是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消" X, w7 R9 ^: q
息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的, }/ D. g, b4 {3 B- d
单元则立刻停止发送而进行接收工作。
4 S, V, \/ R, l+ m(3) 系统的柔软性
5 X8 s0 _0 R$ e7 {$ `6 w8 x, A& |与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬' K0 j0 {, X/ V" C1 k( X9 `
件及应用层都不需要改变。2 b6 B$ K: x, M( M9 ^$ |
(4) 通信速度 C8 z% @2 S6 J# F: ~
根据整个网络的规模,可设定适合的通信速度。& V2 E( H8 ], c3 X
在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元# ^$ z- @" V$ Q& _" i
也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。
j5 a* `& B- d0 M0 e& F+ X(5) 远程数据请求2 I1 f6 d9 H+ k& c _( P7 R+ X1 t
可通过发送“遥控帧” 请求其他单元发送数据。
5 d( y' A! f2 p( J# e(6) 错误检测功能•错误通知功能•错误恢复功能
% h2 {1 }1 b) P4 j. r所有的单元都可以检测错误(错误检测功能)。1 A3 [% v! D8 c4 u% o% [( q5 d
检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。
. W0 Q$ d% f. B3 \6 k6 {正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送
! H0 b! l# p6 ~( A此消息直到成功发送为止(错误恢复功能)。. M5 u7 o* u5 B4 x- \: j2 ]
(7) 故障封闭
1 S/ U, {9 r, J( U, w8 \CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部! \5 [, V$ I4 Z4 n
故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上5 \- H2 o% O$ ?' |* Z& l* Q
隔离出去。
% w9 ~$ M2 T2 ]5 b(8) 连接
! j8 s0 z0 e4 q4 `. W5 p! @CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元# h* r* ]# R1 K; Z
数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。 M1 _5 S* ?% M+ b- M
|