|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
. o$ J8 {' y. i* l+ N
3 i" z, `& z9 c概念和特征9 n$ _: P- X* ^6 q& X/ W
# Z& U* F. t0 T' X
CAN总线的工作原理. P! J# `$ r) n( H' d& f7 A
9 n3 Z1 t n/ \9 z0 x2 m CAN总线使用串行数据传输方式,可以1Mb/s的速率在40m的双绞线上运行,也可以使用光缆连接,而且在这种总线上总线协议支持多主控制器。 [1] CAN与I2C总线的许多细节很类似,但也有一些明显的区别。当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。
1 S' e9 l( h0 }# w2 U5 {% M) v8 d- L0 ~' f1 [) c, x% j! N
当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。我们可以很容易地在CAN总线中加进一些新站而无需在硬件或软件上进行修改。当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。
* E' C9 F% F% _" \, o! }0 s5 a: c. f& x, @& Z$ {1 e" [8 h0 l
CAN总线特征0 J2 C3 @ `8 r& V/ e: ~5 D. F, u
, i7 Q( H/ t1 Z6 m
(1)报文(Message)总线上的数据以不同报文格式发送,但长度受到限制。当总线空闲时,任何一个网络上的节点都可以发送报文。( r3 y2 h; W+ A6 O
3 z5 R* r, P5 ?& j* K8 Y
(2)信息路由(Information Routing)在CAN中,节点不使用任何关于系统配置的报文,比如站地址,由接收节点根据报文本身特征判断是否接收这帧信息。因此系统扩展时,不用对应用层以及任何节点的软件和硬件作改变,可以直接在CAN中增加节点。/ p# a/ b" F8 i7 @: z9 ^. M' D8 C
: G7 X/ a, `/ L2 r0 @ (3)标识符(Identifier) 要传送的报文有特征标识符(是数据帧和远程帧的一个域),它给出的不是目标节点地址,而是这个报文本身的特征。信息以广播方式在网络上发送,所有节点都可以接收到。节点通过标识符判定是否接收这帧信息。
6 d( W9 O' c6 C* B! I! Y; q, S4 u7 |, \. Z6 J. l6 N8 j B& o3 {
(4)数据一致性应确保报文在CAN里同时被所有节点接收或同时不接收,这是配合错误处理和再同步功能实现的。3 A) k$ c K3 o) V0 ^, M7 y+ K1 X
8 z& Z3 ]+ I; K8 h (5)位传输速率不同的CAN系统速度不同,但在一个给定的系统里,位传输速率是唯一的,并且是固定的。
7 ~1 f2 ] Z# O6 s
( h! O3 z3 {3 m% F8 e4 L2 M: Z1 g' l (6)优先权 由发送数据的报文中的标识符决定报文占用总线的优先权。标识符越小,优先权越高。3 Q& o' |; N/ z9 E8 G' ?
9 _3 Q6 j7 `) V( C P8 W (7)远程数据请求(Remote Data Request) 通过发送远程帧,需要数据的节点请求另一节点发送相应的数据。回应节点传送的数据帧与请求数据的远程帧由相同的标识符命名。& e% l+ I' v0 [* e8 Q
' L7 K9 K, i& }5 u: l (8)仲裁(Arbitration) 只要总线空闲,任何节点都可以向总线发送报文。如果有两个或两个以上的节点同时发送报文,就会引起总线访问碰撞。通过使用标识符的逐位仲裁可以解决这个碰撞。仲裁的机制确保了报文和时间均不损失。当具有相同标识符的数据帧和远程帧同时发送时,数据帧优先于远程帧。在仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送,如果发送的是“隐性”电平而监视到的是“显性”电平,那么这个单元就失去了仲裁,必须退出发送状态。
( \8 @+ O$ Y2 f2 s5 ^8 \& l1 s# Y, a: t, f
(9)总线状态 总线有“显性”和“隐性”两个状态,“显性”对应逻辑“0”,“隐性”对应逻辑“1”。“显性”状态和“隐性”状态与为“显性”状态,所以两个节点同时分别发送“0”和“1”时,总线上呈现“0”。CAN总线采用二进制不归零(NRZ)编码方式,所以总线上不是“0”,就是“1”。但是CAN协议并没有具体定义这两种状态的具体实现方式。
, e- O; d. b4 ^# J) r; X, ~$ q2 C/ d* r8 N. R# q, h$ n
(10)故障界定(Confinement) CAN节点能区分瞬时扰动引起的故障和永久性故障。故障节点会被关闭。% Q ] ]* v4 J( b5 u
7 C0 B, c; N; F
(11)应答接收节点对正确接收的报文给出应答,对不一致报文进行标记。
0 Z7 q$ }, Q5 }+ E( j( d: @) u, t$ {2 O; n; s+ r6 Q; c
(12)CAN通讯距离最大是10公里(设速率为5Kbps),或最大通信速率为1Mbps(设通信距离为40米)。
# ?1 K9 ^4 J: ^/ V' h
# n8 ^; p! h+ |9 |: a; H (13)CAN总线上的节点数可达110个。通信介质可在双绞线,同轴电缆,光纤中选择。
0 N" e- ^; v/ ?. k9 z. q( o$ w
) C& P, G. T0 Q; g9 ~5 d x (14)报文是短帧结构,短的传送时间使其受干扰概率低,CAN有很好的校验机制,这些都保证了CAN通信的可靠性。
; m9 T3 K8 W1 s
* U, n. Z7 c/ l* O" R+ G! P D CAN总线的特点" _8 M% ^+ U) w. W3 t; Z v
# x5 n. E* ?0 S1 H X& E, b
(1)具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点;
" U$ s" F3 ^8 R" _' C/ v, j; d( K
( k2 c: T% h4 c* D( z+ F (2)采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作;
! J1 s7 T, o/ c1 i3 v. s: ?: a# v7 N& j6 X6 P* f
(3)具有优先权和仲裁功能,多个控制模块通过CAN 控制器挂到CAN-bus 上,形成多主机局部网络;
& D* o" `2 C4 ?+ k* q
- K( F2 l1 M# J2 r& U (4)可根据报文的ID决定接收或屏蔽该报文;5 N, b' p0 r6 a; q: x
( ]- z- n5 C" p (5)可靠的错误处理和检错机制;
! O$ B5 q9 E! F8 u# w& a9 T! ^" \6 L# `4 d5 b2 b
(6)发送的信息遭到破坏后,可自动重发;
. K% M, M* l& D2 m7 h
+ k/ p; z, o4 h) c" W (7)节点在错误严重的情况下具有自动退出总线的功能;/ b j* `) G) V$ R ^3 D( l. C
2 m7 T: F# w4 @! `) C$ z
(8)报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。" r% _- q+ s( _2 s0 a& {0 o8 {
* W: I2 M. r, _! A) p+ c5 [ 协议内容
" D: e0 n, U G2 {$ i) \
. O5 Z# o0 c$ o) X, A% T' V- Z CAN总线的物理层是将ECU连接至总线的驱动电路。ECU的总数将受限于总线上的电气负荷。物理层定义了物理数据在总线上各节点间的传输过程,主要是连接介质、线路电气特性、数据的编码/解码、位定时和同步的实施标准。3 `& ]& k v% } {/ ]
1 u. F5 b$ Q. m" _/ W- X7 A 总线竞争的原则8 |" J: X8 ^7 V a; ?( V
3 |" f' [- r6 X# ], V& C
BOSCH CAN基本上没有对物理层进行定义,但基于CAN的ISO标准对物理层进行了定义。设计一个CAN系统时,物理层具有很大的选择余地,但必须保证CAN协议中媒体访问层非破坏性位仲裁的要求,即出现总线竞争时,具有较高优先权的报文获取总线竞争的原则,所以要求物理层必须支持CAN总线中隐性位和显性位的状态特征。在没有发送显性位时,总线处于隐性状态,空闲时,总线处于隐性状态;当有一个或多个节点发送显性位,显性位覆盖隐性位,使总线处于显性状态。7 B. o- X/ k, S% [1 B8 c3 O
, B6 J4 P: S! s6 i) K
在此基础上,物理层主要取决于传输速度的要求。从物理结构上看,CAN节点的构成如图7-8所示。在CAN中,物理层从结构上可分为三层:分别是物理信号层(Physical Layer Signaling,PLS)、物理介质附件(Physical MediaAttachment,PMA)层和介质从属接口(Media Dependent:Inter-face,MDI)层。其中PLS连同数据链路层功能由CAN控制器完成,PMA层功能由CAN收发器完成,MDI层定义了电缆和连接器的特性。目前也有支持CAN的微处理器内部集成了CAN控制器和收发器电路,如MC68HC908GZl6。PMA和MDI两层有很多不同的国际或国家或行业标准,也可自行定义,比较流行的是ISOll898定义的高速CAN发送/接收器标准。. u# |1 y$ b* t+ @: P! R/ r
0 _* i2 l1 R+ e 节点数量
$ [ F1 B: b+ V0 j/ _! ?
! c; ] o, g1 R2 b% g CAN网络上的节点不分主从,任一节点均可在任意时刻主动地向网络上其他节点发送信息,通信方式灵活,利用这一特点可方便地构成多机备份系统,CAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的“调度”。 CAN的直接通信距离最远可达10km(速率5kbps以下);通信速率最高可达1Mbps(此时通信距离最长为40m)。 CAN上的节点数主要决定于总线驱动电路,目前可达110个;报文标识符可达2032种(CAN2.0A),而扩展标准(CAN2.0B)的报文标识符几乎不受限制。5 L- q# S; C, f1 E& n4 n
) @7 {# O# |% c9 ? CAN的数据链路层
: |: [" d/ ? {1 U% M3 s
1 l) X8 x* O H CAN的数据链路层是其核心内容,其中逻辑链路控制(Logical Link control,LLC)完成过滤、过载通知和管理恢复等功能,媒体访问控制(Medium Access control,MAC)子层完成数据打包/解包、帧编码、媒体访问管理、错误检测、错误信令、应答、串并转换等功能。这些功能都是围绕信息帧传送过程展开的。. q5 \0 {" [% Q+ {" f
/ ~( Q4 f- I6 u9 A, L |
|