CAN 协议具有以下特点。
3 Z* @5 G$ J+ `5 n; x8 }& }8 S(1) 多主控制% b" x3 g2 L+ U3 Y$ p' Z
在总线空闲时,所有的单元都可开始发送消息(多主控制)。; ]. I0 [4 o! y. H# Z4 s
最先访问总线的单元可获得发送权(CSMA/CA 方式*1)。
. A7 W- h8 i, D0 N1 F" S) O$ ~* n; e多个单元同时开始发送时,发送高优先级ID 消息的单元可获得发送权。
* J/ y4 K& {, |8 A1 u: r(2) 消息的发送
6 M$ ?+ S" \' ]0 ?+ \1 I- _' {在CAN协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新8 g9 g- a3 Q- V- f
消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。ID 并不' a+ T* y: T: @+ N
是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消8 C* K" G6 h9 ~8 Q( I* P
息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的
) L) V3 A7 ~1 ^, t* C H* v单元则立刻停止发送而进行接收工作。4 `% S/ r# b# Y7 O) n' z$ S
(3) 系统的柔软性$ `" u J8 A) C( ^! U7 x+ B
与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬
1 k7 ?% y9 {2 Z3 v2 k件及应用层都不需要改变。% K4 \: m6 X3 [4 n
(4) 通信速度
6 p$ F1 e! q. w( Z% \根据整个网络的规模,可设定适合的通信速度。
6 d+ n, y5 _% M7 F/ J% E在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元
7 P% L, W' D; P也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。
4 N9 A/ G C) E5 I/ p, i: U7 ?6 d g(5) 远程数据请求
4 m# l1 w/ K8 b9 C# ` s可通过发送“遥控帧” 请求其他单元发送数据。9 Q3 U: T8 ~; u& w) s6 I
(6) 错误检测功能•错误通知功能•错误恢复功能
5 n8 Z: J; r5 Y$ p所有的单元都可以检测错误(错误检测功能)。) w8 E1 m' L+ U; ]
检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。5 m I; j; @# ^4 P$ \( v
正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送
9 N/ @; [ c* g( M% ]此消息直到成功发送为止(错误恢复功能)。/ h9 o. o. C/ W3 i0 v
(7) 故障封闭
' m. y+ e R y# C2 C$ d1 f& GCAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部, u. a' Z5 d* M f) \+ P
故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上/ B( g9 h1 D, A
隔离出去。, ]4 f1 v0 f; M7 G H
(8) 连接/ e+ u3 r- W( z g. L( L* e
CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元
6 t5 ?$ J3 ^, U- i6 |数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。+ |: _1 `7 w# c. I9 m4 @% Z6 P
|