CAN 协议具有以下特点。
( B% { t D d# U0 U4 _0 V(1) 多主控制# c/ ?# e( Y& k4 u4 r/ Y
在总线空闲时,所有的单元都可开始发送消息(多主控制)。/ {8 K& F: G' ~. x9 p1 b# P
最先访问总线的单元可获得发送权(CSMA/CA 方式*1)。& ^) C. @$ [; R8 A5 X0 M# {& m
多个单元同时开始发送时,发送高优先级ID 消息的单元可获得发送权。" F6 y5 T7 x8 R9 A2 }% p
(2) 消息的发送
3 _5 U& K9 E3 J" |4 z0 A在CAN协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新
: t+ W' l, F) U* E消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。ID 并不: c) S9 K5 t9 W+ U$ R1 H( b6 h
是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消
5 \! T7 P+ K) T9 o6 q息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的: z" P0 J2 O% j# w- ~2 A+ l5 K# F& \
单元则立刻停止发送而进行接收工作。
* z' F; K9 n- \; r' L* P8 Z% T(3) 系统的柔软性
; `3 Z3 d8 X7 P0 I7 Q6 ]6 }与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬8 |, {: H2 l0 a8 c
件及应用层都不需要改变。
0 G. |+ Z" g' |: ]# d w9 K(4) 通信速度
5 U2 J. l8 m% J! W w9 w根据整个网络的规模,可设定适合的通信速度。
% h- j5 m3 Q3 t9 D! X在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元( ~& O$ r$ f1 g4 n, ^3 i+ r
也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。% l' u/ v3 {/ t0 e
(5) 远程数据请求
0 }$ W5 l; J7 I5 A6 F8 J l可通过发送“遥控帧” 请求其他单元发送数据。
$ F4 _# w3 b# F4 W(6) 错误检测功能•错误通知功能•错误恢复功能
: W- j# b- N! S所有的单元都可以检测错误(错误检测功能)。+ _) N. ?5 U$ \' u
检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。
; ]; ?' V: m/ w4 ~/ P正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送
3 j3 ]) Y' G" N. ~* O- N此消息直到成功发送为止(错误恢复功能)。
6 U0 j2 Z9 f- D! J3 G! M: D$ y(7) 故障封闭* M% b s# W0 g: _& A( ^1 R7 w& t1 [4 M
CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部0 j) S; C& [" t5 E0 R. y
故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上1 w& r! o W+ I1 s; D% R& w& d
隔离出去。/ s9 }% S P4 F- t
(8) 连接" b; L8 W4 [" c% z8 i
CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元
: _4 g5 j; @6 {9 Y+ z数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。, h& H, N/ ]( _( Q
|