CAN 协议具有以下特点。
; E4 Z# H* y3 f- z' I# m& A$ f- A% `(1) 多主控制6 p" D& D( k* S
在总线空闲时,所有的单元都可开始发送消息(多主控制)。
6 D# w( w$ }5 A2 u最先访问总线的单元可获得发送权(CSMA/CA 方式*1)。6 K1 o; i ?1 p. M) ]
多个单元同时开始发送时,发送高优先级ID 消息的单元可获得发送权。9 }" {8 f5 [0 u; d h
(2) 消息的发送
2 r! x7 }1 W( Q* c' D* h# h# t5 l在CAN协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新( k; b7 C. d8 `1 k$ H+ A
消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。ID 并不
5 o# g; o3 V8 b8 m0 \! W4 i是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消
* l; d% @6 }: _3 k息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的4 Y; V" ~/ R* O+ Q' I+ @1 j1 W
单元则立刻停止发送而进行接收工作。) e$ y" d7 \5 ~5 ?# L1 M! H
(3) 系统的柔软性
! D( u! s0 B1 y; v; w/ X与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬
: \/ H' E' y: P件及应用层都不需要改变。
1 r: }3 ]5 M$ z8 }) I$ B6 q$ n4 |(4) 通信速度
0 J$ }- M3 F' t0 W& B( [根据整个网络的规模,可设定适合的通信速度。6 F$ E# A0 j* x# F5 v" d) V
在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元
( {& v2 \+ Z- v3 O1 Y3 R6 M也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。
8 i1 C- r. W9 t, I5 p+ F(5) 远程数据请求, k. I) ~! H/ s C5 M0 _
可通过发送“遥控帧” 请求其他单元发送数据。
1 t' `0 u# }" }$ N [# k2 N( U3 n(6) 错误检测功能•错误通知功能•错误恢复功能
& z$ o# O3 F- o! Z所有的单元都可以检测错误(错误检测功能)。
9 X; d9 |! i1 B R; P检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。
' @4 z/ |# U' R( [2 |正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送/ W1 @& A+ s4 _
此消息直到成功发送为止(错误恢复功能)。' Y% v) c/ [$ I; C
(7) 故障封闭
* v, K# o9 x3 B5 DCAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部
, ?4 j; D ~) y$ X故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上
$ L% @; t: a1 \# w; ~3 ~# b6 M隔离出去。( t" Z- ]" I' \4 k: _3 M
(8) 连接
7 J# z. }( z' \% ICAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元$ N$ L9 Z, W0 `! F
数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。
3 P0 ]1 D8 z% C, b! J m7 K |