第五章CAN控制器
t t SYNCSEG t SEG1 t SEG2 1 t SCL 2 t SCL 13 t SCL
t 16 t SCL
f
16 4 10 6 6 4 10
1 250 kH Z t
3.时钟分频寄存器(CDR)
CAN 模式= 0:基本模式, 1:扩展模式 RXINTEN =1 允许 TX1 专用做接收中断输出. CLOCK OFF =1 关闭CLKOUT 时钟输出
操作模式 (标准)
复位模式
寄存器
验 收 代 码 寄 存 器 验 收 屏 蔽 码 寄 存 器
D0=1 复位模式 D0=0 正常模式
(a).在复位模式(D0=1) 对ACR和AMR操作 (b) 在正常模式 对发送TX缓冲器和接收 RX缓冲器进行操作
16 17 18 19 20 21 22 23
帧信息 标识码1
第五章 CAN控制器与驱动器
§1 CAN控制器作用
1. CAN控制器
(1).对CPU a. 写发送数据,置发送请求标志 CAN控制器 发送数据 b.读接收状态标志,读接收数据
微控制器 CAN控制器 CAN收发器
应用层
链路层
(2). 对 CAN 总线
a. 将发送数据封装成CAN帧发送 b. 将收到CAN帧拆封
t SJW t SCL (2 SJW.1 SJW.0 1)
2.总线时序寄存1 (BTR1)
t SYNCSEG 1 t SCL
tTSEG1 t SCL (8TSEG 1.3 4TSEG 1.2 2TSEG 1.1 TSEG 1.0 1)
tTSEG 2 t SCL (4TSEG2.2 2TSEG2.1 TSEG2.0 1)
TX缓冲器
109 多用途寄存器 112 未用 127
接收FIFO
§3 SJA1000寄存器 1. 模式寄存器 ( CAN 地址0) D7 D6 D5 D4 D3 D2 D1 D0
1:复位( 初始化)
保留
复位模式
0:正常(操作模式)
只听模式
1:只听(不发应答信号) 0:正常
1:睡眠 0:唤醒
睡眠模式
5. 接收状态指示 当SJA1000接收到完整报文,状态寄存器 SR.0 =1表示、FIFO有 完整报文,CPU可以从报文缓冲区读取报文,读完报文后执行释放接收缓 冲区命令,报文接收缓冲区指向下一个报文.
§6 验收滤波器结构与使用
1.验收滤波器组成
标准格式 11位标识符 ACR0 AMR0 ACR1
● 16MHz
8000-80FFH
C5 ● XTAL2
●
(3). ALE 使 D0-D7 数 据线与地址线复用 。
C4
XTAL1
P1.1
RST
TX0 RX0 R1 RX1
自检模式
1:自检(自发应答信 号)
1:单滤波(32位) 0:双滤波(每个16位)
0:正常
滤波方式
2. 命令寄存器( CAN 地址1) D7 D6 D5
保留
D4
D3
D2
D1
D0
1:报文发送
报文写进发送缓冲区并不发送, 执行报文发送命令后才发送
1:自接收请求
1:终止发送 1:释放接收缓冲区 接收到报文后要释放接收 缓冲区,使接收窗口指向下 一个报文
XTAL1 9 XTAL2 10 VDD1 22 VSS18
振荡器
17 RST
4. SJA1000地址分配
CAN地址
00 寄存器 32 接收 FIFO 96
00 13 14 15 16-28 29 30 96 寄存器 RX错误计数器 TX错误计数器 RX,TX缓冲器 RX报文计数器
RX缓冲区起始地址
WR 6 RD 5 ALE 3 INT 16 CS 4 MODE 11
接口管理逻辑
内部总线
12 VDD3 15 VSS3
报文缓冲器 发送 缓 冲器 接收 缓冲器 FIFO
AD0 | AD7
23 24 25 26 27 28 1 2
位处 理器 接受 过滤
位时序 逻辑 Vcc 错误管 理逻辑 复位
●
13 TX0 14 TX1 19 RX0 20 RX1 21 VSS2 18 VDD2
总线定时器 1 (BTR1 ) = 0x1C =0001 1100B
4 1 16 10 6 4 10 6
0x1C
t SYNCSEG 1 t SCL总线定时器 1 (BTR1 ) =
t SEG1 t SCL (8 4 1)
f 16MH Z
t SEG2 t SCL (1 1)
AMR1
验收代码寄存器 验收屏蔽寄存器
FIFO
滤波
11位标识符RTR
DATA1
DATA2
DATA3
(a)验收代码寄存器 ACRn (CAN地址 16,17,18,19)
存储要接收的标识符
(b)验收屏蔽寄存器 AMRn (CAN地址20,21,22,23) 确定验收标识符的相关位
0: 相关
1:无关
2 滤波器配置
(1). 波特率预置位域 CAN 系统时钟周期
波特率预置器(BRP )
t SCL 2tCLK (32BRP.5 16BRP.4 8BRP.3 4BRP.2 2BRP.1 BRP.0 1)
tCLK 1/ f XTAL
在复位模式下可以访问
(2) 同步跳转宽度位域 CAN 规范定义两种类型的同步 A. 硬同步 在帧起始开始同步当前周期 B. 重同步 在随后的剩余报文中每接收到一个隐性到显性 的跳变就执行一次. 同步跳转宽度Tsjw 定义了一位周期可以被一 次重新同步缩短或延长的时钟周期的最大数目
10. RX缓冲器起始地址寄存器RBSA (CAN地址 30 )
(1)作用: 接收报文的起始RAM地址
CAN 地址32 报文 11 报文 窗口CAN地址16 (2) FIFO RAM 地址与 CAN地址的关系 CAN地址=(RBSA)+32 (3) 置释放接收缓冲器命令 RBSA 字指向下一条报文 的起始地址. CAN 地址96 报文3 报文3 报文2 报文2 64字节FIFO RAM 地址 0
(b). 置命令寄存器
CMR.0 =1 ,启动发送请求。
§5 接收报文
1.报文接收缓冲区
(接收缓冲器与发送相同CAN地址 16-28)
标准格式接 收缓冲器
地址 16 17 18
CAN地址 32
CAN16
RAM地址 0
描述区 标识码1 标识码2
报 文 缓 冲 区
19 数据字节1
20
21 22
数据字节2
物理层
2. CAN驱动器
完成逻辑电平与”显性” 、”隐 性”的转换
CAN 总线
§2 CAN控制器SJA1000
1.基本特性 Basic CAN 基本模式 CAN2.0A (标准格式,11位标识符)
Peli CAN 扩展模式 CAN 2.0B (标准格式,扩展格式) (通讯速率达1Mbps)
2.寄存器寻址
BIT2 = RTR
4. 数据区
(a). 8个字节,TX帧信息DL3-DL0确定报文长度 (b). CAN地址19-26(标准格式) CAN地址21-28(扩展格式)
发送数据过程
(a). 将
TX帧信息
TX标识码 TX数据
数据长度 帧类型(数据帧还是远程帧) 帧格式(标准还是扩展格式)
标识符
写入发送缓冲器
§8 CAN 驱动器 82C250
1.特性
(1) 高速率,可达1MHz (2) 具有抗瞬间干扰和保护能力
与RS485驱动 器作用相同
(3) 斜率控制,降低射频干扰(RFI)
(4)低电流待机 (5)未上电节点对总线没有影响
2.功能
(6)可接110个节点
3. 真值表
4. 工作模式(8 脚)
(a). 高速模式: RS 接地 (b). 斜率模式: RS接电阻 (c). 待机模式: RS 接高电平 (低功耗100uA)
CLKOUT 分频系数 CD.2
0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1
CD1 CD.0 :
0 1 0 1 0 1 0 1 fosc/2 fosc/4 fosc/6 fosc/8 fosc/10 fosc/12 fosc/14 fosc
4.输出控制寄存器
配置输出引脚上拉,下拉,推挽等配置
CAN 位时间
t t SYNCSEG tTSEG1 tTSEG 2
, 波特率 = 1/t
波特率计算举例
CAN 控制器 SJA1000 晶振
16MHz
总线时序寄存器 0 (BTR0 ) = 0x01, BRP.0 = 1
t SCL 2t CLK (32 0 16 0 8 0 4 0 2 0 1 1 1)
3. 标识码 (A)标准格式: 标识码 11位 ID28 –ID18 TX标识码1 (CAN 地址17)
ID28 ID27 ID26 ID25 ID24 ID23 ID22 ID21
TX标识码2(CAN地址18)
ID20 ID19 ID18
RTR
(B)扩展格式: 标识码 29位 ID28 –ID0
5. 输出参考电压(5脚) 为CAN控制器输入提供参考 电压,作为RX电平门线,确定 RX电平是逻辑”1”还是”0” .
6.网络接线
§9 CPU 与CAN接口设计
说明: (1).片选地址
(2). MODE = “1”,选 用Intel 模式,=0 Motorola 模式。
1.CPU 与SJA1000接口设计