摘要
介绍了采用 PHILIP 公司生产的控制器局域网的高度集成的通信控制器 SJA1000
和 82C250 作为收发器的 CAN 总线接口电路的硬件设计方法,介绍了控制器和收发器
及看门狗芯片的特点、内部结构、寄存器结构及地址分配,说明一种通用型 CAN 总线
的设计和开发.探讨应用中需注意的一些问题。
关键词:CAN 总线;控制器;收发器;电路设计
I
目次
摘要.................................................................... I
1 绪论 ................................................................ 1
1.1 CAN总线简介 ..................................................... 1
1.1.1 CAN协议 ................................................... 1
1.1.2 电气参数及信号表示 ......................................... 2
1.2 CAN的主要技术特点 ............................................... 2
1.3 CAN总线通信系统拓扑结构 ......................................... 3
2 CAN总线接口电路设计 ................................................. 3
2.1 总体方案设计 .................................................... 3
2.2 各模块电路的设计 ................................................ 4
2.2.1 单片机最小系统 ............................................. 4
2.2.2 CAN总线接口控制电路设计 ................................... 5
2.2.2.1SJA1000 简介 .......................................... 5
2.2.2.2 基于SJA1000 的控制电路设计 ........................... 10
2.2.3 CAN总线收发电路设计 ...................................... 11
2.2.3.1CAN总线收发器 82C250 介绍 ............................. 11
2.2.3.2 基于 82C250 收发电路设计 ............................. 14
2.2.4 复位、监控电路设计 ........................................ 15
2.2.4.1X5045P简介 ........................................... 15
2.2.4.2 基于X5045P的电路设计 ................................ 18
2.2.5 电源设计 .................................................. 18
2.3 接口电路总体电路原理图 ......................................... 19
3 结束语 ............................................................. 21
参考文献 .............................................................. 22
附录 1: 接口电路总体电路原理图 ......................................... 23
II
1 绪论
1.1 CAN总线简介
CAN[Control(Controller) Area Network]是控制(器)局域网的简称。CAN 是一
种有效支持分布式控制或实时控制的串行通信网络,最初由德国 Bosch 公司 80 年代
用于汽车内部测试和控制仪器之间的数据通信。目前 CAN 总线规范已被国际标准化组
织 ISO 制订为国际标准 ISO11898,并得到了 Motorola,Intel ,Philips 等大半导体
器件生产厂家的支持,迅速推出各种集成有 CAN 协议的产品。目前 CAN 总线主要用于
汽车自动化领域,如发动机自动点火、注油、复杂的加速刹车控制(ASC)、抗锁定刹
车系统(ABS)和抗滑系统等。BENZ、BMW 等著名汽车上已经采用 CAN 来满足上述功能。
在工业过程控制领域,CAN 也得到了广泛的应用。
1.1.1 CAN协议
CAN总线采用分层结构,规范规定了任意两个节点之间的兼容性。包括电气特件
利数据解释协议。
CAN 协议可分为:目标层、传送层、物理层。其中目标层和传送层包括了 ISO/OSI
定义的数据链路的所有功能。目标层的功能包括:确认要发送的信息;位应用层提供
接口。传送层功能包括:数据帧组织:总线仲裁:检错、错误报告、错误处理。
CAN 总线以报文为单位进行信息交换,报文中含有标示符(ID),它既描述了数据
的含义又表明了报文的优先权。CAN 总线上的各个协点都可主动发送数据。当同时有
两个或两个以上的节点发送报文时,CAN 控制器采用 ID 进行仲裁。ID 控制节点对总
线的访问。发送具有最高优先权报文的节点获得总线的使用权,其他节点自动停止发
送,总线空闲后,这些节点将自动重发报文。
CAN 支持四类信息帧类型。
(1)数据帧 CAN 协议有两种数据帧类型标准 2.0A 和标准 2.0B。两者本质的
不同在于 ID 的长度不同。在 2.0A 类型中,ID 的长度为 l l 位;在 2.0B 类型中 ID 为
29 位。一个信息震中包括 7 个主要的域:
帧起始域——标志数据帧的开始,由一个显性位组成。
仲裁域——内容由标示符和远程传输请求位(RTR)组成,RTR 用以表明此信息帧
是数据帧还是不包含任何数据的远地请求帧。当 2.0A 的数据帧和 2.0B 的数据帧必须
在同一条总线上传输时,首先判断其优先权,如果 ID 相同,则非扩展数据帧的优先
1
权高于扩展数据帧。
控制域——r0、r1 是保留位,作为扩展位,DLC 表示一帧中数据字节的数目。
数据域——包含 0~8 字节的数据。
校验域——检验位错用的循环冗余校验域,共 15 位。
应答域——包括应答位和应答分隔符。正确接收到有效报文的接收站在应答期间
将总线值为显性电平。
帧结束——由七位隐性电平组成。
(2)远程帧 接受数据的节点可通过发远程帧请求源节点发送数据。它由 6 个域
组成:帧起始、仲裁域、控制域、校验域、应答域、帧结束。
(3)错误指示帧 由错误标志和错误分界两个域组成。接收节点发现总线上的报
文有误时,将自动发出“活动错误标志”其他节点检测到活动错误标志后发送“错误
认可标志”。
(4)超载帧 由超载标志和超载分隔符组成。超载帧只能在一个帧结束后开始。
当接收方接收下一帧之前,需要过多的时间处理当前的数据,或在帧问空隙域检测到
显性电平时,则导致发送超载帧。
(5)帧间空隙 位于数据帧和远地帧与前面的信息帧之间,由帧间空隙和总线空
闲状态组成。帧间空隙是必要的,在此期间, CAN 不进行新的帧发送,为的是 CAN 控
制器在下次信息传递前有时间进行内部处理操作。当总线空闲时 CAN 控制器方可发送
数据。
1.1.2电气参数及信号表示
总线上的数据采用不归零编码方式(NRZ),可具有两种互补的逻辑值之一:显性
及隐性。CAN 总线中各节点使用相同的位速率。它的每位时间由同步段、传播段、相
位缓冲段 1 及相位缓冲段 2 组成。发送器在同步段前改变输出的位数值,接受器在两
个相位缓冲段间采样输入位值,而两个相位缓冲段长度可自由调节,以保证采样的可
靠性。另外,CAN 总线采用时钟同步技术来保证通讯的同步。
1.2 CAN 的主要技术特点
CAN 网络上的节点不分主从,任一节点均可在任意时刻主动地向网络上其他节点发
送信息,通信方式灵活,利用这一特点可方便地构成多机备份系统
CAN 只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送
接收数据,无需专门的"调度"
CAN 的直接通信距离最远可达 10km(速率 5kbps 以下);通信速率最高可达
2
1Mbps(此时通信距离最长为 40m)。
CAN 上的节点数主要决定于总线驱动电路,目前可达 110 个;报文标识符可达 2032
种(CAN2.0A),而扩展标准(CAN2.0B)的报文标识符几乎不受限制。
1.3 CAN 总线通信系统拓扑结构
CAN 在物理结构上属于总线式通信网络。系统的组成如下图:
图 1 CAN 总线系统结构图
该系统由上位监控 PC 机、智能节点和现场设备三部分组成。上位监控 PC 机主要
负责对系统数据的接受与管理、控制命令的发送以及各控制单元动态参数和设备状态
的实时显示;智能节点可以使现场设备方便地连接到 CAN 总线上,主要负责对现场的
环境参数和设备状态进行监测,对采集来的数据进行打包处理并将处理古的数字信号
通过 CAN 通信控制器 SJA1000 发送到 CAN 总线。智能节点的设计和选择,对通信信号
的传输发送有很的影响,系统中的数据传送和接收,都是通过 CAN 总线接口实现。CAN
总线接口电路的设计,对 CAN 总线很是重要。本文正是基于此,对 CAN 总线接口电路
进行设计分析,给出一种设计方案。
2 CAN总线接口电路设计
2.1 总体方案设计
CAN 总线接口电路主要包括:单片机、控制器接口、总线收发器和看门狗电路等。
采用 Philips 公司生产的 SJA1000 控制器和与其配套的 82C250CAN 收发器。按照 CAN
总线物理层协议选择总线介质,设计布线方案,连接成 CAN 网络。双绞屏蔽线可设两
套,在两套介质上同时进行信息传输,接收方只用一个介质。在冗余和非冗余段的连
接临界点处进行总线切换。
硬件电路的设计主要是 CAN 通信控制器与微处理器之间和 CAN 总线收发器与物理
总线之间的接口电路的设计。CAN 通信控制器是 CAN 总线接口电路的核心,主要完成
CAN 的通信协议,而 CAN 总线收发器的主要功能是增大通信距离,提高系统的瞬间抗
干扰能力,保护总线,降低射频干扰(RFI),实现热防护等。看门狗电路主要是实现
对电路的监控和复位作用。
3
目前广泛流行的 CAN 总线器件有两大类:一类是独立的 CAN 控制器,如 82C200、
SJA1000 及 Intel82526/82527 等,另一类是带有在片 CAN 的微控制器,如 P8XC582 及
16 位微控制器 87C196CA/CB 等。本课题选取 PHILIPS 公司的 SJA1000 CAN 控制器以及
82C250 总线收发器,主要是考虑到 SJA1000 支持 CAN 2.0A/B 规约。而 82C250 可以支
持 110 个 CAN 节点,并且国内市场上 PHILIPS 的产品型号比较多,购买比较方便。在
本次设计中,接口电路简单表示如下图:
图 2-1 接口电路总体框图
2.2 各模块电路的设计
2.2.1 单片机最小系统
本设计中,应用到单片机为 ATMEL 公司 51 系列的 89C51,该型号的单片机应用广
泛,技术成熟,市场上价格便宜,而且在学习中所学到的多为该型号,在本次设计中
是首选的芯片。89C51 单片机作为系统的核心控制部分,但在本设计中不是重点讲解
内容,其相关技术应用和引脚特点功能等,可参照其他相关资料。设计的电路原理方
框大致如下图 2-2 所示。
设计中为避免出现时钟信号的冲突,对单片机的外接晶振引脚 XTAL1、XTAL2 不
接上外围电路,而是通过控制器 SJA1000 的时钟信号脚反馈给单片机。同时,对单片
机的复位信号处理,RST 引脚接上 X5045P 的 RST 脚,复位信号可由 X5045P 输出,在
X5045P 芯片看门狗外围电路的作用下,减少了以往由电阻、电容组成的简易复位电路
造成的不精确、延时高等不良作用,使单片机回复到初始状态,完成复位操作。由于
在该电路中要用到单片机的存储作用,存储由 SJA1000 传输过来的处理数据。因此,
脚/EA 接上高电平,选用片内 ROM。对 ALE 脚,也即地址锁存有效信号除数端是和控
4
制器 SJA1000 的 ALE 脚接通。
VCC
1
2
3
4
U1
CS
SO
WP
Vss
X5045
Vcc
RES
SCK
SI
8
7
6
5
4
5
6
7
8
21
22
23
24
25
26
27
28
CS
30
ALE
11
16
17
18
29
wr
rd
U2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
ALE/PROG
TXD/P3.1
WR/P3.6
RD/P3.7
XTAL2
PSEN
89C51
P1.2
P1.1
P1.0
P0.7/AD7
P0.6/AD6
P0.5/AD5
P0.4/AD4
P0.3AD3
P0.2/AD2
P0.1/AD1
P0.0/AD0
T1/P3.5
T0/P3.4
INT1/P3.3
INT0/P3.2
RXD/P3.0
EA/VPP
XTAL1
RST
3
2
1
32
33
34
35
36
37
38
39
15
14
13
12
10
31
19
9
clkout
图 2-2 单片机最小系统
VCC
2.2.2 CAN总线接口控制电路设计
SJA1000 在电路中是一个总线接口芯片,通过它实现上位机与现场微处理器之间
的数据通信。该电路的主要功能是通过 CAN 总线接收来自上位机的数据进行分析组态
然后下传给下位机的控制电路实现控制功能,当 CAN 总线接口接收到下位机的上传数
据,SJA1000 就产生一个中断,引发微处理器产生中断,通过中断处理程序接收每一
帧信息并通过 CAN 总线上传给上位机进行分析。AT89C51 是 CAN 总线接口电路的核心,
其承担 CAN 控制器的初始化、CAN 的收发控制等任务。
2.2.2.1SJA1000 简介
PHILIPS 公司的 PCA82C200 是符合 CAN2.0A 协议的总线控制器,SJA1000 是它的
替代产品,它是应用于汽车和一般工业环境的独立 CAN 总线控制器。具有完成 CAN 通
信协议所要求的全部特性。经过简单总线连接的 SJA1000 可完成 CAN 总线的物理和数
据链路层的所有功能。其硬件与软件设计和 PCA82C200 的基本 CAN 模式(BesicCAN)
兼容。同时,新增加的增强 CAN 模式(PeliCAN)还可支持 CAN2.0B 协议。SJA1000 的
主要特性如表 1 所示。
5
表 1 SJA1000 寄存器配置(复位模式)
名称 地
7
6
5
4
3
2
1
0
址
0
1
-
-
-
-
-
-
睡眠方
滤波方
自检方
式
式
式
监听方式
自收请
清超限
释放接
求
状态
收缓冲
夭折发送
2 总线状态
错误状
发送状
接收状
发送完
发送缓
态
态
态
成状态
冲器状
总线错误
仲裁丢
错误认
唤醒中
数据超
错误报
中断
失中断
可状态
断
限中断
警中断
数据超限
发送中断
复
位
发
送
接
收
接
收
接
收
模 式
寄 存
命 令
寄 存
状 态
寄 存
中 断
寄 存
中 断
允 许
3
4
总线错误
仲裁丢
错误认
唤醒中
数据超
错误报
发送中断
中断允许
失中断
可中断
断允许
限中断
警中断
允许
保留
5
总 线
定 时
总 线
定 时
输 出
控 制
6
SJM.1
SJM.0
BRP.5
BRP.4
BRP.3
BRP.2
BRP.1
7
SAM
TSEG2.
2
TSEG2.1
TSEG2.
TSEG1.
TSEG1.
0
3
2
TSEG1.1
8
COTP1
OCTN1
OCPOL1
OCTP0
OCTN0
OCPOL0
OCMODE1
测 试
9
寄 存
保留
10
仲 裁
丢 失
出 错
码 捕
错 误
警 告
11
-
-
-
ALC.4
ALC.3
ALC.2
ALC.1
12
ECC.7
ECC.6
ECC.5
ECC.4
ECC.3
ECC.2
ECC.1
13
EWL.7
EWL.6
EWL.5
EWL.4
EWL.3
EWL.2
EWL.1
6
BRP
.0
TSE
G1.
OCM
ODE
ALC
.0
ECC
.0
EWL
.0