CAN 协议具有以下特点。. q1 J( t0 v3 Z6 q' s
(1) 多主控制
/ Q+ X" x9 S$ Y+ f' [在总线空闲时,所有的单元都可开始发送消息(多主控制)。5 o4 f5 M" p+ M( Y
最先访问总线的单元可获得发送权(CSMA/CA 方式*1)。5 }4 U" [" L7 o- E/ w7 m# y
多个单元同时开始发送时,发送高优先级ID 消息的单元可获得发送权。
5 b* T. X: X2 x r9 f& Q(2) 消息的发送
5 \- P+ ]& M1 q+ q在CAN协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新
) X4 f* t; s$ \消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。ID 并不% k h1 t/ U3 A" Q. z4 j7 ^
是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消
( J1 u5 C7 s3 S( g: @2 m- z息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的, u% u% R$ U* D, k
单元则立刻停止发送而进行接收工作。: M& {0 l( X% [) s: X" F
(3) 系统的柔软性1 d2 h J) {1 v/ k( k+ o8 |& U' K
与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬
9 ?# |! g6 a+ p件及应用层都不需要改变。( g% u& M$ ~6 _) s
(4) 通信速度. Y8 v( z& Y" ?
根据整个网络的规模,可设定适合的通信速度。
$ z0 C" B4 X( B在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元
4 ^! g! l# c3 j% V: {$ _7 H也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。
" N: b$ `! N( j2 U# B(5) 远程数据请求# z+ b% y F4 v
可通过发送“遥控帧” 请求其他单元发送数据。! _3 O$ P' T' ?4 }& C# Z
(6) 错误检测功能•错误通知功能•错误恢复功能* @2 T" k+ ]1 c( x" P3 S4 Q
所有的单元都可以检测错误(错误检测功能)。: v1 J [7 T" |3 ~" h* ~" `8 ?
检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。 ~% q: R* o L0 y/ I# H
正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送$ X! [$ J) g, D6 U' j/ o7 Z
此消息直到成功发送为止(错误恢复功能)。: b, d/ D6 \3 `. U* q& k. u
(7) 故障封闭
' ^+ \! C2 V$ j# a! R2 E S9 c7 zCAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部! Q# [* R$ `+ W
故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上9 u8 E6 |6 E& Z( q+ p
隔离出去。
0 Z5 d8 }; l3 w. I(8) 连接
. C# q( i3 M) h' V6 WCAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元: D* w B; {7 y$ q8 k8 {! u
数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。7 l |) y6 [2 u3 k) j/ \& a; T
|