CAN 协议具有以下特点。. Z( P( Z! J9 {9 w5 l
(1) 多主控制9 ^1 K$ R7 F8 R3 G' ]( M
在总线空闲时,所有的单元都可开始发送消息(多主控制)。
1 z5 @7 ^0 [# [: T }最先访问总线的单元可获得发送权(CSMA/CA 方式*1)。# {; Q3 W, u$ |% F
多个单元同时开始发送时,发送高优先级ID 消息的单元可获得发送权。* Z4 f1 V7 f% K4 K6 F" t7 J
(2) 消息的发送& E( A. D/ M% o2 B; z2 g
在CAN协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新
- q! z$ n1 P2 {, {消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。ID 并不
: c5 l: t- g3 M" d3 c是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消8 W8 ]/ A! T; k$ t5 k5 w! {! B$ d" B$ b
息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的. z6 ?4 L# G; ?1 N% g8 p! N" O5 o
单元则立刻停止发送而进行接收工作。
) w- h5 R$ N! ` C1 q(3) 系统的柔软性
, q. F$ ~) c% ?/ X, P& J( t与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬
: ]+ \" D' V2 H& K件及应用层都不需要改变。
+ _4 d9 L: G5 ^. w f( D(4) 通信速度# i7 J& {6 u1 W1 ~ O
根据整个网络的规模,可设定适合的通信速度。
2 b4 H. a/ H8 o+ b6 g: S在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元4 E% e; v5 s: m9 U$ w; _
也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。
1 u6 C1 V; u$ K0 Q: \$ |1 e8 x% P$ J(5) 远程数据请求5 u' i1 O1 w& a6 J3 z
可通过发送“遥控帧” 请求其他单元发送数据。$ H% c, q5 E5 g
(6) 错误检测功能•错误通知功能•错误恢复功能
/ t3 N0 ?4 V( F f% k7 K2 g# o所有的单元都可以检测错误(错误检测功能)。3 P# w, \' G) l. a' @+ P
检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。
0 k( c0 p( T6 k2 h/ `正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送
. H( y$ O9 B# D/ D) d此消息直到成功发送为止(错误恢复功能)。
8 u5 ~% m/ t4 y% y, C(7) 故障封闭
' |) K5 ~' w/ R9 O2 X0 u; ACAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部
3 O- a* K0 e N1 e! R3 j; U故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上
& G; W _- @+ V% K隔离出去。; W: { D6 k6 F* N% }" @
(8) 连接" q5 R" t: }/ I! W
CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元 R0 B' ^3 S- a7 k& d* M2 e
数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。
3 S% r5 m3 _2 Q- q4 W |