CAN 协议具有以下特点。9 [% V+ w+ z( E, H
(1) 多主控制$ f \+ G1 w" T. P
在总线空闲时,所有的单元都可开始发送消息(多主控制)。
6 Z! x: g: S3 Q/ t; Z9 k1 _最先访问总线的单元可获得发送权(CSMA/CA 方式*1)。
6 V; y2 j2 u% B) H, p多个单元同时开始发送时,发送高优先级ID 消息的单元可获得发送权。
9 N3 j# A, @' t+ P; z H: M- a5 I% o(2) 消息的发送
( t3 W9 n1 C, Y! M, n在CAN协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新$ b) Y0 s p9 |
消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。ID 并不% S' f1 Y) v2 O5 c) a
是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消
% I+ i) B f8 h8 f2 F! [息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的! o3 C+ q0 C. a
单元则立刻停止发送而进行接收工作。7 d% p% K$ D2 C; L+ z( f
(3) 系统的柔软性1 j/ n! n1 O6 ^; m6 `# j$ y
与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬
2 r ~' ?0 T% K* E/ B件及应用层都不需要改变。
/ d' }* h! J6 E6 e. q, L(4) 通信速度
/ v: E# r3 P+ p, `根据整个网络的规模,可设定适合的通信速度。
3 [( |5 ~9 G! J2 O6 { p; u; V- F) a在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元# J/ ]" b% h y! _8 Y% D) X
也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。6 L' Q1 |$ G/ P/ K6 p
(5) 远程数据请求+ D0 X1 l' i( i8 K0 a ?! k. V
可通过发送“遥控帧” 请求其他单元发送数据。/ L) H7 P8 I, E3 Y" Y6 Q
(6) 错误检测功能•错误通知功能•错误恢复功能- M0 b# Q; v- X# I
所有的单元都可以检测错误(错误检测功能)。& ^% M; z4 @, ^% r
检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。8 s0 P5 n1 [0 l
正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送; A* Y: v: W+ D2 z% n
此消息直到成功发送为止(错误恢复功能)。( j. f+ J% ?; }6 M3 P, h
(7) 故障封闭
1 E# E+ `' S/ @. b" ?CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部
( n$ U) h+ m* W故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上4 W2 x; T# ^; s' ]
隔离出去。
/ T( h) e' W. P6 d3 W$ b(8) 连接5 v& K6 e* G1 T: C* x1 c2 c5 R
CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元) v* C1 o& X4 f9 a
数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。3 Y$ {7 X2 K n0 Y) W ^0 r2 B( D
|