AN-1123: 控制器局域网(CAN)实施指南 (Rev. 0) PDF

AN-1123
应用笔记
One Technology Way • P.O. Box 9106 • Norwood, MA 02062-9106, U.S.A. • Tel: 781.329.4700 • Fax: 781.461.3113 • www.analog.com
控制器局域网(CAN)实施指南
作者:Conal Watterson博士
简介
CAN如何使用差分数据传输
控制器局域网(CAN)是内置故障处理功能的分布式通信的
在传统的差分数据传输(例如RS-4853)中,逻辑1按如下方式
标准,针对ISO-11898开放系统互连(OSI)模型的物理和数
传输:同相传输线为高电平,反相传输线为低电平。相应
1, 2
据链路层加以规定 。由于采用的通信机制非常可靠,因此
地,逻辑0的传输方式是:同相线为低电平,反相线为高
CAN已广泛用于工业和仪器仪表应用以及汽车行业。
电平。接收器利用两条线之间的电压差判断传输的是逻辑
CAN有如下特性:
1还是逻辑0,如表1所示。
• 一条总线支持多个主机
总线上的驱动器也可以处于第三态,驱动器输出处于高阻
• 固有的消息优先级
态。如果所有节点都处于这种状况,则总线处于空闲状
• 总线通过消息优先级进行仲裁
态。这种情况下,两条总线一般具有相似的电压,压差很
• 多层错误检测和恢复
小。
• 采用不同时钟源的节点间的数据时序同步
CAN信号传输的区别在于仅有两个总线电压状态:被动
在物理层,CAN协议支持差分数据传输,其优势包括:
(驱动器输出为高阻态)和主动(总线CANH为高电平,另一
条总线CANL为低电平),阈值如表1所示。传输节点传输
• 在一对绞线电缆上进行双向通信
逻辑0主动状态和逻辑1被动状态。空闲CAN总线与被动位
• 抗扰度更高
传输的区别在于:帧结束或错误帧后会检测到多个被动
• 宽共模范围允许节点之间存在地电位差异
位。
实施控制器局域网
表1. CAN与RS-485的电平比较
本应用笔记考虑在工业应用中实施CAN的下列方面:
• CAN实现层:CAN规范和协议与硬件/软件和CAN收发
RS-485电平
A − B ≥ +200 mV
A − B ≤ −200 mV
逻辑
1
0
CAN状态
被动
主动
CAN电平
CANH − CANL ≤ 0.5 V
CANH − CANL ≥ 0.9 V
器产品有何关系
• CAN消息:消息结构对错误校验/恢复和仲裁有何重要
意义
• 仲裁:CAN规定的载波侦听多路访问方法如何支持多个
图1比较了CAN信号传输与RS-485,主动和被动这两个状
态分别由CANH和CANL电平表示。对于节点仲裁和较低
ID(以串行方式传输消息时,初始逻辑0较多)的消息的固有
优先级,这种信号传输方法至关重要。
驱动节点
• 错误机制:CAN规范本身如何增强通信鲁棒性
IDLE1 0
(R) (D)
• 物理总线:哪些措施确保物理层正常通信
• 隔离:CAN的信号和电源隔离以及CAN的集成隔离解
0
(D)
1
(R)
0
(D)
1
(R)
1
(R)
0
(D)
CANH
CAN
CANL
决方案
的机制
INVERTING
RS-485/
RS-422
NONINVERTING
IDLE
0
0
1
0
1
1
0
NOTES
1. CAN BUS IDLE AFTER MULTIPLE RECESSIVE BITS.
图1. CAN与RS-485/RS-422的差分信号传输比较
Rev. 0 | Page 1 of 16
10035-001
• 应力保护:CAN中用来保护收发器免受电气过应力影响
AN-1123
目录
简介.....................................................................................................1
错误帧 ...........................................................................................8
实施控制器局域网 ..........................................................................1
错误计数器 ..................................................................................8
CAN如何使用差分数据传输 ........................................................1
节点错误状态 ..............................................................................9
修订历史 ........................................................................................... 2
传输位验证 ..................................................................................9
CAN实现层 .......................................................................................3
位填充规则 ..................................................................................9
物理层收发器 ..............................................................................3
CRC校验 .......................................................................................9
CAN控制器..................................................................................4
固定形式位域校验 .....................................................................9
DeviceNet网络 .............................................................................4
消息应答.......................................................................................9
CANopen协议..............................................................................4
物理总线 ......................................................................................... 10
CAN消息帧结构 ............................................................................. 5
CAN物理总线特性.................................................................. 10
仲裁域 ...........................................................................................5
端接 ............................................................................................ 10
数据长度代码(DLC)域 ..............................................................5
隔离.................................................................................................. 11
循环冗余校验(CRC)域 ..............................................................5
集成式信号和电源隔离CAN收发器 ................................... 11
应答(ACK)槽 ...............................................................................5
应力保护 ......................................................................................... 13
帧结束 ...........................................................................................5
接线错误和短路....................................................................... 13
仲裁.....................................................................................................7
瞬态过压.................................................................................... 13
消息优先级 ..................................................................................7
参考文献 ......................................................................................... 14
错误机制 ............................................................................................8
相关链接.................................................................................... 14
修订历史
2012年2月—修订版0:初始版
Rev. 0 | Page 2 of 16
AN-1123
CAN实现层
CAN通信标准ISO-11898由国际标准组织(ISO)制定,可以
物理层收发器
在七层OSI通信模型环境内加以考虑。ISO-11898-1涉及数
CAN收发器提供数据链路层、CAN控制器(例如内嵌在ADI
据链路层及其对周围层的影响。ISO-11898-2涉及数据链路
公司的某些Blackfin处理器中)与CAN总线的物理线路之间
层的一部分和物理层。
的 差 分 物 理 层 接 口 。 ADI公 司 的 产 品 组 合 包 括 集 成
iCoupler®数字隔离5(用于信号隔离)和isoPower®电源隔离5的
CAN的实现取决于下列方面:
• 物理层收发器通过双绞线电缆等物理介质实现CAN消息
与差分信号的相互转换。
• 实现数据链路层的CAN控制器(有时嵌入在微处理器
中,例如ADI公司的Blackfin ADSP-BF548)。这些应遵守
CAN 2.0b规范4,以确保通信符合ISO 11898标准。
• 实现应用层协议的CAN软件应用程序(软件应用程序数
收发器,从而提供完全隔离的现成CAN PHY。
ADM3051/ADM3052/ADM3053/ADM3054设计用于与CAN
控制器接口,支持各种CAN应用。根据应用不同,可以将
其它高级协议与CAN结合使用,如CANopen或DeviceNet™
等。
• ADM3054是一款5 kV rms信号隔离高速CAN收发器。
• ADM3053是一款集成2.5 kV rms信号和电源隔离的全隔
据与CAN消息的相互转换)。
图2给出了实现CAN应用的各种模块,并显示了它们与OSI
层的关系以及各模块实现的功能。
离式高速CAN收发器。
• ADM3052是一款5 kV rms信号隔离高速CAN收发器,集
成一个总线电压调节器,可使用24 V总线电源(例如在
DeviceNet应用中)。
• ADM3051是一款非隔离式高速CAN收发器。
OSI LAYERS
APPLICATION
FEATURES
APPLICATION
FOR USER PURPOSES
NODE OPERATIONS
NODE DATA,
NODE STATES,
NODE ADDRESSING,
MANAGE NETWORK
USER APPLICATION
PROTOCOL
(FOR EXAMPLE,
DEVICENET,
CANOPEN)
FILTERING/STATUS
DATA LINK
CAN
CONTROLLER
ERROR HANDLING,
CSMA, ACK,
MESSAGE FRAMING,
BIT STUFFING
(MAY BE
EMBEDDED)
MICROCONTROLLER
MICROPROCESSOR
WITH EMBEDDED
CAN CONTROLLER
ADSP-BF548
BIT TIMING
RxD
PHYSICAL
R
DRIVING/RECEIVING
DIFFERENTIAL SIGNAL
CANL
TxD
D
CANH
CAN TRANSCEIVER
(MAY INCLUDE
SIGNAL/POWER
ISOLATION)
ADM3051
ADM3052
ADM3053
ADM3054
PHYSICAL MEDIUM
BUS TOPOLOGY/
CHARACTERISTICS
图2. CAN实现模块、与OSI层的关系及功能
Rev. 0 | Page 3 of 16
10035-002
CAN
SPECIFICATION
PRESENTATION
SESSION
TRANSPORT
NETWORK
COMPONENTS
AN-1123
CAN控制器
ADM3052隔离式CAN收发器满足DeviceNet的物理层要
CAN数据链路层和物理位时序由CAN控制器(有时内嵌在
求,并且集成了DeviceNet节点所用的功能,例如:信号隔
微控制器或DSP中,如ADSP-BF548),依据CAN 2.0b规范
离、接线错误保护以及一个从24 V总线电源(V+)为器件总
和ISO-11898标准的数据链路层部分实现。CAN控制器处
线侧供电的线性调节器。图3提供了ADM3052的功能框图
理消息过滤、仲裁、消息帧、错误处理,以及位填充等错
及应用配置。
误检测机制。
CANopen协议
DeviceNet网络
CANopen7是一种应用层协议,由CAN in Automation (CiA)
DeviceNet 6 规 范 由 通 信 网 络 开 放 DeviceNet供 应 商 协 会
维护,使用CAN数据链路和物理层,并且规定了器件、通
(OVDA)管理。DeviceNet规定了物理层的各方面内容、物
信和应用的标准配置。它支持在不同应用领域之间实现互
理和数据链路层的CAN使用,以及利用通用工业协议(CIP)
通,如工业自动化、楼宇控制和通用I/O等。物理层符合
进行的更高级通信。工业和仪器仪表行业普遍利用
ISO-11898,采用总线拓扑结构,数据速率最高可达1 Mb。
DeviceNet来实现CAN应用。
ADM3052可用来完全隔离网络(如使用CANopen的网络)上
DeviceNet规定了一种多分支网络,它支持线性总线拓扑结
的通信,收发器总线侧的电源由集成的隔离式DC/DC转换
构上的主从或分布式控制方案。网络不仅包括差分信号传
器提供。图12所示为ADM3052的功能框图。
输总线,而且包含电源和地,因此节点可以从总线获得电
如果应用电路中已经存在5 V隔离电源,那么也可以使用
源。
ADM3052,它是一款集成5 kV rms数字隔离器的CAN收发
DeviceNet物理层规范规定了一些功能,例如:CAN技术的
器。
使用、接线错误的防范,以及在工作时添加或删除网络节
点的能力。它详细规定了物理层的各个方面,包括传输介
质和连接器。
3.3V/5V SUPPLY
1µF
CINT
VDD1
ADM3052
LINEAR
REGULATOR
V+R
RP
VDD2
V+SENSE
CAN
CONTROLLER
DECODE
ENCODE
V+
10µF
BUS
V+SENSE
100nF
V+
BUS
CONNECTOR
VDD2
TxD
ENCODE
DECODE
V+
D
CANH
RxD
CANL
ENCODE
DECODE
DIGITAL ISOLATION
GND1
LOGIC SIDE
RT
CANL
R
VREF
GND2
CANH
GND2
VREF
V–
V–
CAN TRANSCEIVER
ISOLATION
BARRIER
BUS SIDE
图3. 采用ADM3052隔离CAN收发器的应用示例
Rev. 0 | Page 4 of 16
10035-003
100nF
AN-1123
CAN消息帧结构
CAN消息的结构对于实现鲁棒的通信至关重要,具体机制
数据长度代码(DLC)域
包括错误检测、消息的固有优先级和基于逐位仲裁的多驱
一个CAN消息帧中最多可以存在8个数据字节。帧中的数
动器能力。CAN控制器按照CAN 2.0b规范(包括本文详细说
据长度编码在DLC域中。远程传输请求提供所请求数据帧
明的扩展消息类型)的要求,处理CAN消息的帧传输。
的数据长度。注意,DLC域的有效值仅为0到8。
如“简介”部分所述,CAN消息在物理层的信号传输如下:
循环冗余校验(CRC)域
总线处于高阻抗被动状态时传输1,总线处于差分高/低主
CRC域是CAN协议中错误校验机制的一部分。CRC域包含
动状态时传输0。图4和图5显示了CAN消息帧的组成,白
一个根据CAN帧内容生成的序列,它是一个多项式除法运
色位域表示被动总线状态,深灰色位域表示主动状态,灰
算的余数。接收到的序列和数据可以用于另一个多项式除
色位域可以是主动状态,也可以是被动状态。
法运算,确保没有任何位是以反转/错误状态被意外接收。
仲裁域
CRC域由随后的ACK间隙定界(总线保持一个位间隔的被动
如图4和图5所示,消息标识符是CAN消息帧的一部分。该
状态),以确保CRC域不受ACK行为的影响。
部分与若干标志位一起被称为仲裁域(如图4和图5所示),
应答(ACK)间隙
其中消息ID和标志位表示消息类型并决定仲裁,因而也决
虽然ACK间隙是由消息发起者作为逻辑1(总线被动状态)传
定了消息优先级。有两个主要属性可以使用标志位区分
输的,但在该位间隔中,只有总线被另一个节点设为主动
CAN消息类型:
状态,才能实现无错传输。任何无错接收到先前消息域的
• IDE位,表示使用扩展标识符
其它节点都会自动尝试传输逻辑0,以确认收到消息。
• RTR位,表示远程传输请求
ACK定界符(总线保持一个位间隔的被动状态)用于在消息
远程传输请求用于请求发起者发送某一消息(总线上的节点
的其余部分之前留出一个空格,这样即使传输ACK位的节
一般自主发送数据)。该远程传输请求是一条无任何数据的
点具有稍微不同的时序,而导致主动位溢出到下一个位周
消息,由一个节点发送,请求其它节点传输相同ID但带数
期(即定界符间隔),也不会出现问题。
据的消息。
如果总线在ACK间隙内一直处于被动状态,检测到这一状
SRR位表示替代远程请求,用于带扩展ID的消息,以便兼
况的节点将会在下一位周期中传输一个错误帧。
容仅使用标准CAN消息的节点。
帧结束
还有一些保留位用于CAN协议的未来扩充,这些位必须为
帧结束由一个7位间隔的总线被动状态表示,由于位填充
0以确保与未来兼容。
(运行长度限制编码,在消息中的每6个连续1或0后插入一
个互补位),该序列不会在消息的其余部分中出现。帧结束
后,还会观察到一个总线处于被动状态的帧间空白(其确切
长度取决于给定CAN控制器规定的总线空闲时长)。
Rev. 0 | Page 5 of 16
AN-1123
STANDARD DATA FRAME
SOF
STANDARD IDENTIFIER
(11 BITS)
RB0
IDE
RTR
DATA
(0 BYTES TO 8 BYTES)
DLC
0 X X X X X X X X X X X 0 0 0 X X X X X X X X X X X X
X
1 1
1
KEY:
STANDARD REMOTE FRAME
SOF
X 1 1 1 1
INTERFRAME
SPACING
(DEVICE-SPECIFIC)
CRC ACK
DELIMITER DELIMITER1
ARBITRATION FIELD
STANDARD IDENTIFIER
(11 BITS)
END OF
FRAME
(7 BITS)
ACK
SLOT1
CRC
(15 BITS)
RB0
IDE
RTR
DLC
CRC
(15 BITS)
0 X X X X X X X X X X X 1 0 0 X X X X X
ACK
SLOT1
END OF
FRAME
(7 BITS)
X 1 1 1 1
INTER-FRAME
SPACING
(DEVICE-SPECIFIC)
1 1
RECESSIVE
BIT
0
DOMINANT
BIT
X
BIT MAY BE
EITHER STATE
1
CRC ACK
DELIMITER DELIMITER1
ARBITRATION FIELD
1
10035-004
NOTES
1. ORIGINATOR OF FRAME TRANSMITS RECESSIVE (1) DURING ACK SLOT/DELIMITER. SUCCESSFUL TRANSMISSION OF
MESSAGE FRAME REQUIRES AT LEAST ONE OTHER NODE TO TRANSMIT A DOMINANT (0) BIT DURING THE ACK SLOT.
图4. CAN标准消息帧的各个域
SOF
STANDARD IDENTIFIER
(11 BITS)
EXTENDED
IDENTIFIER
RB0
IDE (18 BITS)
RB1
RTR
SRR
0 X X X X X X X X X X X 1 1 X
X
DATA
(0 BYTES TO 8 BYTES)
DLC
0 X 0 X 0X X X X X X X X X
CRC
(15 BITS)
X
ACK
SLOT1
END OF
FRAME
(7 BITS)
X 1 1 1 1
EXTENDED REMOTE FRAME
SOF
EXTENDED
IDENTIFIER
RB0
IDE (18 BITS)
RB1
SRR
RTR
0 X X X X X X X X X X X 1 1 X
ARBITRATION FIELD
1 1
1
CRC ACK
DELIMITER DELIMITER1
ARBITRATION FIELD
STANDARD IDENTIFIER
(11 BITS)
INTER-FRAME
SPACING
(DEVICE-SPECIFIC)
KEY:
DLC
CRC
(15 BITS)
X 1 0 0 X X X X X
ACK
SLOT1
END OF INTERFRAME
FRAME SPACING
(7 BITS) (DEVICE-SPECIFIC)
X 1 1 1 1
1 1
NOTES
1. ORIGINATOR OF FRAME TRANSMITS RECESSIVE (1) DURING ACK SLOT/DELIMITER. SUCCESSFUL TRANSMISSION OF
MESSAGE FRAME REQUIRES AT LEAST ONE OTHER NODE TO TRANSMIT A DOMINANT (0) BIT DURING THE ACK SLOT.
Rev. 0 | Page 6 of 16
RECESSIVE
BIT
0
DOMINANT
BIT
X
BIT MAY BE
EITHER STATE
1
CRC ACK
DELIMITER DELIMITER1
图5. CAN扩展消息帧的各个域
1
10035-005
EXTENDED DATA FRAME
AN-1123
仲裁
在一条CAN总线上,任何节点都可以传输数据。节点仲裁
以图6所示为例,两个节点同时尝试传输。传输时,两个
总线的使用,如有两个或更多节点试图传输,则依据其优
CAN节点均监控总线状态;当节点2尝试传输SID7时,它
先级依次传输消息。
可以检测到另一个节点(本例中为节点1)已写入一个主动值
由于主动位的传输会覆盖被动总线状态,因此可以实现无
损且透明的仲裁。各节点的CAN控制器监控总线,如有另
一个节点赢得仲裁,CAN控制器会检测到这一情况。无损
和透明意味着消息未受损坏,依据仲裁规则,最高优先级
到总线,因而赢得了仲裁。只有等到总线空闲一定时间(帧
间空白)后,节点2才尝试重新传输。节点1继续传输,同时
也会监控总线以检测错误,或者检测在随后的仲裁域位间
隔中是否有另一个节点赢得仲裁。
注意,在节点1传输完5个初始主动位后出现了位填充。这
的消息不中断地传输。
如果总线活动(一个节点正在传输或刚刚完成传输),则其
它节点不会尝试传输。如果总线空闲(时长至少为帧间空白
些额外的位对于节点时序的同步非常重要,同时也用于错
误检测。
的长度),而且有一个以上的节点开始传输,则将发生透明
消息优先级
且无损的仲裁。无损仲裁意味着赢得仲裁的节点可以继续
CAN消息帧以MSB(最高有效位)优先方式传输,消息ID位
传输其消息,不受其它节点的干扰。
于帧的开头,因此构成仲裁序列的一部分。消息的ID越低
(初始0越多),则优先级越高。此外,远程帧(RTR位 = 1)的
优先级低于相同ID的数据帧。
STUFF
BIT
1
0
0
0
0
0
0
0
0
0
0
0
0
SOF SID10 SID9 SID8 SID7
SID6 SID5 SID4 SID3 SID2 SID1 SID0
NODE 1: MESSAGE ID = 0x016
NODE 1 TX BITS
NODE 1 TX
NODE 2: MESSAGE ID = 0x080
0
0
0
0
0
NODE 2 TX BITS
SOF SID10 SID9 SID8 SID7
0
0
0
0
0
0
0
SOF SID10 SID9 SID8 SID7 SID6 SID5
NODE 2 TX
NODE 1 WINS
ARBITRATION
NODE 1 TX
图6. CAN节点之间的仲裁示例
Rev. 0 | Page 7 of 16
NODE 2 WINS ARBITRATION
AFTER INTERFRAME SPACING
10035-006
CAN BUS
AN-1123
错误机制
CAN整合多种机制来支持错误校验和处理,其中包括下列
任何节点,只要检测到错误,就会立即传输错误帧。当错
错误检测方案的定义:
误帧本身突出一个错误时,其它节点会同时传输自己的错
• 传输位验证
误帧,导致多个错误帧叠置。
• 位填充规则
由6个连续位组成的序列是错误标志。错误帧同样含有一
• CRC校验
个错误定界符,这样即使来自其它节点的错误标志溢出初
• 固定形式位域校验
始的6个位周期也不会有问题。
• 强制消息ACK
为了与无错传输进行比较,图7显示了一个有错CAN帧传
这些错误通过下列机制进行处理:
输及随后的CAN主动错误帧的例子。
• 错误帧
任何传输错误标志的节点随后都会发送被动位,直至检测
• 错误计数器
到总线处于被动状态,此后将再传输7个被动位。之后,
• 节点错误状态
节点就可以尝试传输正常的CAN帧。
CAN控制器检测并处理这些错误,支持通过传输符合CAN
错误计数器
2.0b的CAN消息帧来检测错误。
每个CAN节点都必须实施两个错误计数器:一个发送错误
计数器和一个接收错误计数器。这些计数器根据发送或接
错误帧
收错误数递增,并且根据成功发送或接收的消息数递减。
错误帧的特征是具有6个连续位。根据传输错误的节点状
态不同,该序列可以是主动状态,也可以是被动状态。该
RTR
IDE
RB
SOF
NORMAL TRANSMISSION WITH ACK
CRC DEL
ACK
ACK DEL
序列违反了正常传输规则,因此可以被其它节点检测到。
MSGID: 0x18
DLC
CRC
EOF
IFS
1 1 1 1 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 [1] 1 1 0 1 0 0 0 0 0 [1] 1 1 0 0 1 0 1 1 * 11 1 1 1 1 1 1 1 1 1 1
CANH
CANL
FAULTY TRANSMISSION WITH ERROR FRAME
CRC BIT ERROR
ERROR
FRAME
1 1 1 1 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 [1] 1 1 0 1 0 0 0 0 0 [1] 1 1 0 0 11 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1
*DENOTES TRANSMITTING NODE
TRANSMITS 1, RECEIVING NODE
TRANSMITS 0.
NOTES
1. [ ] DENOTES EXTRA STUFF BIT.
2. ERROR FRAME TRANSMITTED BY
RECEIVING NODE.
CANL
图7. 带ACK的正常传输与带CAN错误帧的故障传输
Rev. 0 | Page 8 of 16
10035-007
CANH
AN-1123
节点错误状态
位填充规则
根据错误计数器,节点可能处于下列三种状态之一:
位填充是指这样一个过程:传输5个连续的同值消息位
• 错误主动
后,传输节点在传输的位流中插入一个互补位。这种编码
• 错误被动
方法适用于整个CAN数据或远程帧,但CRC定界符、ACK
• 总线关闭
域和帧结束的固定形式位域除外。CAN错误或过载帧也是
固定形式。
在错误主动状态下,节点应该能在总线上通信;当检测到
错误时,节点应当会发送主动错误标志。要使节点保持错
任何节点,如果接收到违反位填充规则(应进行位填充的一
个序列中有5个以上的连续被动或主动位)的消息,就会将
误主动状态,发送和接收错误计数器必须小于127。
其视为接收错误,并根据节点状态采取措施(例如发送一个
在错误被动状态下,节点可以在总线上通信,但在发生错
误时仅会发送被动错误标志。当发送或接收错误计数器达
到或超过127时,节点即会进入此状态。一旦这些计数器
再次递减到127或以下,节点就会变为错误主动状态。
主动或被动错误帧)。
CRC校验
CRC是基于CAN帧的第一部分(截止数据域)计算出来的位
序列。发送节点将一个发生器多项式分解为一个由CAN数
在总线关闭状态下,不允许节点在总线上通信。当发送错
据构成的多项式,余数即为CRC序列。此CRC序列会被插
误计数器达到或超过256时,就会出现这种状态。128次检
入CAN消息的CRC域。
测到11个连续被动位后,节点可以将其错误计数器复位到
0,以便进入错误主动状态。
接收节点将发生器多项式分解为一个由数据和CRC序列共
同构成的多项式。如果没有错误,则余数应为0。
传输位验证
传输时,传输节点会监控总线,确认总线上出现的每个位
都是正确的。如果在总线上检测到相反的位电平,则称之
这一过程称为CRC校验。如果接收到的消息出错(即有反转
位),则CRC校验失败。
为“位错误”,这是传输错误的一种形式。但是,并非一检
固定形式位域校验
测到相反位电平就说明出错,有两个例外情况:
CAN消息中的某些位域是固定形式的,具体来说是CRC定
• 仲裁域以被动状态传输,但由于其它节点会应答该消
界符域、ACK域和帧结束。接收节点通过执行形式检查来
息,总线状态理应变为主动状态。
• 如果发送被动错误标志的节点检测到总线处于主动状
态,则表示并不是位错误。
确保这些位域正确无误。
消息应答
虽然仲裁域是以被动位传输,但在该位时间内,发送节点
会检查总线上有无主动位。此主动位是正确接收到消息的
节点发送的ACK位。如果没有节点应答消息,则发生传输
错误。图7显示了接收节点在CAN消息中插入ACK位的例
子,图中显示了一个较低的差分信号;当发送节点位于探
测点,接收节点位于总线的另一端时,可以观察到这种情
况。
Rev. 0 | Page 9 of 16
AN-1123
物理总线
CAN物理总线特性
信号转换期间和转换之后会立即发生反射。在较长的线路
ISO-11898-2规定了CAN的物理层特性。该标准要求使用由
上,反射更有可能持续很长的时间,足以引起接收器误读
标称阻抗为120 Ω(最小值95 Ω和最大值140 Ω)的并行导线组
逻辑电平。在较短的线路上,反射持续时间短得多,因此
成的电缆。虽然ISO-11898-2允许使用无屏蔽电缆,但出于
对接收的逻辑电平没有影响。
电磁兼容性(EMC)考虑,一般需要使用屏蔽双绞线电缆。
并联端接
当数据速率为1 Mb时,CAN支持最长40米的线路。如果数
在CAN应用中,总线的两端均必须端接,因为总线上的任
据速率较低,可以使用更长的线路。ISO-11898-2规定了一
何节点都可能传输数据。链路的每一端都有一个端接电
种线路拓扑结构,各节点利用短分支线连接到线路。此分
阻,阻值等于电缆的特征阻抗,不过端接电阻的推荐标称
支线应尽可能短;当数据速率为1 Mb时,其长度应不大于
阻抗值为120 Ω(最小值100 Ω和最大值130 Ω)。无论网络中
0.3米。
连接了多少节点,都不应存在两个以上的端接电阻,因为
额外的端接电阻会给驱动器增添额外的负载。
端接
一条传输线路中存在两条电路路径,一条将电流从驱动器
ISO-11898-2建议不要将端接电阻集成在节点中,而应在总
载至接收器,另一条提供回到驱动器的返回路径。CAN链
线的最远端连接独立的端接电阻。这样,即使含端接电阻
路稍微复杂一些,有两条信号线共享一个端接和一条接地
的节点断开,端接电阻也不会丢失。此外,这样还可以避
回路。但是,传输线路的基本原理是相同的。要实现可靠
免将两个以上的端接电阻连接到总线,或者将端接电阻放
的CAN通信,必须尽可能减少传输线路中的反射,这就必
在总线两端之外的位置。
须进行适当的电缆端接。图8显示了CAN应用的两种端接
带共模滤波的并联端接
方案。
为了进一步提高信号质量,可以将各端的端接电阻一分为
二,并在这两个电阻之间放置一个滤波器电容CT,从而滤
除总线中的高频干扰噪声,并降低共模辐射。
PARALLEL TERMINATION
RT
RT
PARALLEL TERMINATION WITH COMMON MODE FILTER
RT/2
RT/2
RT/2
NOTES
1. RT IS EQUAL TO THE CHARACTERISTIC IMPEDANCE OF THE CABLE.
图8. CAN应用的端接方案
Rev. 0 | Page 10 of 16
CT
10035-008
CT
RT/2
AN-1123
隔离
CAN应用中常常使用较长链路,这会引起总线上不同节点
集成式信号和电源隔离CAN收发器
的地电位略有不同,从而导致地电流通过公共接地或地线
ADI公司针对各种不同的应用提供CAN收发器,包括:
流过最低电阻路径。如果使用相同的电气系统将所有节点
• ADM3054:集成5 kV rms信号隔离,适合已有5 V隔离电
的电源连接到同一接地,接地连接的噪声可能会降低。但
源的系统
是,请注意,电机、开关及其他电噪声设备仍可能在系统
• ADM3053:集成信号和电源隔离,适合需要完全隔离
内引起接地噪声。
的CAN应用
• ADM3052:集成信号隔离和电压调节器,适合采用24 V
POINT A
ISOLATOR
总线电源的隔离应用(如DeviceNet)
POINT B
• ADM3051:适合非隔离应用或采用传统隔离方法的应
NO CURRENT FLOW
ISOLATION
BARRIER
PROTECT HUMANS/
EQUIPMENT
用
ELIMINATE GROUNDING
PROBLEMS
实施电流隔离时,需要通过某种办法向应用电路的总线侧
IMPROVE SYSTEM
PERFORMANCE
提供电源。在DeviceNet应用中,CAN总线上的所有节点都
10035-009
INFORMATION FLOW
使用24 V电源,如利用ADM3052的示例所示。图10显示了
图9. 电流隔离不阻止信息流,但阻止地电流
利用ADM3052实现的高集成度。该器件只需极少的外部元
某些应用需要不同的电源系统,这有可能提高接地阻抗,
件,其内部集成了ADI公司iCoupler技术实现的信号隔离,
使得其它来源的地电流更很可能进入链路的地线。将链路
此外还集成了一个调节器,可以从24 V总线电源向器件总
隔离起来可减少甚至消除这些问题。如果无法保证系统中
线侧提供5 V电源。ADM3052实现了5 kV rms的隔离性能。
不同节点的地电位均位于收发器的共模范围内,则推荐使
对于以分立方式提供隔离电源的应用,或者将总线电源用
用电流隔离方案。电流隔离不阻止信息流,但阻止电流(见
于各种电路元件的应用,ADM3054可以配合器件总线侧的
图9)。
5 V隔离电源使用。
TRADITIONAL ISOLATION
ADM3052 CAN TRANSCEIVER WITH INTEGRATED SIGNAL
ISOLATION AND BUS-SIDE LINEAR REGULATOR.
5V
5V
VOLTAGE
REGULATION
V+
VCC
V+SENSE
CINT
V+
V–
ADM3052
TxD
TXD
V+
V+R
V+SENSE
CANH
RxD
CANL
VDD2
OPTOCOUPLERS
GND1
TXD
CANH
CAN
TRANSCEIVER
RXD
V–
V–
CANL
VREF
10035-010
RXD
VREF
图10. 采用总线电源的传统隔离与ADM3052的比较
Rev. 0 | Page 11 of 16
AN-1123
在其它应用中,可以将电路逻辑侧的电源传输到隔离栅的
DC/DC转换器向总线侧供电。ADM3053实现了2.5 kV rms的
另一侧。传统上,这需要利用由振荡器、变压器和调节器
隔离性能。图11比较了采用分立器件的传统解决方案与
等分立元件组成的DC/DC转换器来实现。
ADM3053。ADM3053的内部模块如图12的功能框图所
ADM3053同时集成了电源隔离和信号隔离。利用ADI公司
示。
的isoPower技术,5 V单电源可以通过一个集成的隔离式
TRADITIONAL ISOLATION
DD1
V
ADM3053 CAN TRANSCEIVER
WITH INTEGRATED ISOLATION.
VDD1
D1
EN
5V
VDD2
TRANSFORMER
DRIVER
EN
IN
+
D2
OUT
ADP3330
SET
VCC
VISOOUT
VISOIN
3.3V OR 5V
SHDN
VIO
VDD2
ADM3053
TxD
TXD
RS
RxD
CANH
CANL
VREF
VDD2
GND1
TXD
OPTOCOUPLERS
GND2
RS
CAN
TRANSCEIVER
CANH
CANL
RXD
VREF
10035-011
RXD
图11. 传统隔离(信号和电源)与ADM3053的比较
VCC
VISOOUT
isoPower DC-TO-DC CONVERTER
ADM3053
OSCILLATOR
RECTIFIER
VISOIN
REGULATOR
RS
DIGITAL ISOLATION iCoupler
TxD
PROTECTION
ENCODE
D
DECODE
MODE
DECODE
ENCODE
CANH
R
CANL
REFERENCE
VOLTAGE
LOGIC SIDE
ISOLATION
BARRIER
BUS SIDE
CAN
TRANSCEIVER
VREF
GND1
GND2
图12. ADM3053功能框图
Rev. 0 | Page 12 of 16
09293-012
RxD
AN-1123
应力保护
接线错误和短路
ADI公司CAN收发器ADM3051、ADM3052和ADM3053的
某 些 CAN应 用 , 如 DeviceNet等 , 除 了 在 总 线 CANH和
所有引脚上都提供基本ESD保护。如果使用外部箝位器件
CANL上载送数据外,还沿着总线分配电源。这种系统通
(如TVS二极管),总线引脚的保护程度可进一步提升。TVS
常沿着总线提供24 V的总线电源和公共地。
二极管通常用于保护CAN收发器等硅器件免受瞬变损坏。
此类系统中,各CAN节点的连接器有四条线:CANH、
具体方法是通过PN结的低阻抗雪崩击穿将电压尖峰箝位至
CANL、24 V和地。为防止信号接线错误造成损害,使用24 V
一个限值。TVS二极管属于理想断路器件。TVS二极管在
总线电源的CAN节点需要在所有四条线(CANH、CANL、
低于击穿电压的状态下工作时,若与特定电容并联,可模
电源和地)上提供保护。接线错误保护是DeviceNet协议的
拟为一个较大电阻。发生瞬变并且浪涌电压大于TVS的击
一项要求。集成总线电源调节器的ADM3052隔离CAN收发
穿电压时,TVS的电阻降低,以保持箝位电压恒定。所选
器能在CANH、CANL、V+和V-引脚上提供±36 V的接线错
TVS二极管的箝位电压应低于它要保护的器件的电压额定
误保护。
值。瞬变立即受到箝位(< 1 ns),受保护器件得以避开破坏
性电流(参见图13)。
其它不使用总线电源的CAN节点可能也需要这种保护。这
种情况下,CAN节点仍然需要防止CANH或CANL连接到
TVS在CAN应用中的作用是箝位超出最大额定值的总线电
电源或地线而造成短路。为此,ADM3051、ADM3053和
压,从而保护CAN收发器。一些TVS器件专为CAN应用而
ADM3054 CAN收发器还在CANH和CANL上集成了±36 V保
设计。图14显示了一个利用双向齐纳二极管在CAN总线上
护。
实现TVS的示例电路。
.
瞬态过压
在工业和仪器仪表应用中,雷击、电源波动、感应开关和
害。以下ESD保护、EFT保护和电涌保护技术规范适用于
TRANSIENT
CURRENT
工业应用:
TVS
PROTECTED
DEVICE
图13. 瞬变电压抑制器
• IEC 61000-4-2 ESD保护
• IEC 61000-4-4 EFT保护
• IEC 61000-4-5电涌保护
VCC
TxD
MICROPROCESSOR
AND CAN
CONTROLLER
D
CANH
RT
R
CANL
TVS
CAN
TRANSCEIVER
GND
图14. TVS应用电路
Rev. 0 | Page 13 of 16
10035-014
RxD
10035-013
静电放电会通过产生较大瞬变电压对CAN收发器造成损
AN-1123
参考文献
1
ISO 11898-1:2003, “Road Vehicles — Controller Area Network (CAN — Part 1: Data Link Layer and Physical Signalling,”
(ISO International Standard, 2003).
2
ISO 11898-2:2003, “Road Vehicles — Controller Area Network (CAN) — Part 2: High Speed Medium Access Unit,” (ISO International
Standard, 2003).
3
Hein Marais, Application Note AN-960, “S-485/RS-422 Circuit Implementation Guide,” (Analog Devices, Inc., 2008).
4
CAN Specification 2.0, Part B, (CAN in Automation, 1991).
5
Boaxing Chen, “iCoupler® Products with isoPower™ Technology: Signal and Power Transfer Across Isolation Barrier Using MicroTransformers,” Technical Article, (Analog Devices, Inc., 2006).
6
DeviceNet™ Technical Overview, (Open DeviceNet™ Vendor Association, Inc., 2001), X to XI.
7
EN 50325-4:2002, “Industrial Communication Subsystem Based on ISO 11898 (CAN) for Controller-Device Interfaces, CANopen,”
(CAN in Automation, 2002).
相关链接
资源
ADM3051
ADM3052
ADM3053
ADM3054
ADSP-BF548
AN-960
描述
产品页面,高速工业级CAN收发器,提供24 V系统总线保护
产品页面,隔离式CAN收发器,集成高压、总线侧线性调节器
产品页面,信号和电源隔离CAN收发器,集成隔离式DC/DC转换器
产品页面,5 kV rms信号隔离高速CAN收发器,提供总线保护
产品页面,高性能融合多媒体Blackfin处理器
RS-485/RS-422电路实施指南
Rev. 0 | Page 14 of 16
AN-1123
注释
Rev. 0 | Page 15 of 16
AN-1123
注释
©2012 Analog Devices, Inc. All rights reserved. Trademarks and
registered trademarks are the property of their respective owners.
AN10035sc-0-2/12(0)
Rev. 0 | Page 16 of 16