第4章2(CAN控制器1,2014)讲解
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
功能 位错误 格式错误 填充错误 其他错误
前表中ECC.4~ECC.0功能的解释见下表。
ECC.4 0 0 0 0 0 0 0 0 0 0 0 0
ECC.3 0 0 0 0 0 0 1 1 1 1 l 1
ECC.2 0 0 1 l l 1 l 0 1 0 0 0
ECC.1 1 1 1 0 0 l 1 1 0 0 1 l
工作模式是通过置位控制寄存器的复位请 求位激活的。
对Basic CAN模式,只作上面这些简单的 介绍,下面主要介绍比较常用的SJA1000的 Peri CAN模式。
Basic CAN模式下的SJA1000主要寄存器 和PeliCAN模式下的寄存器工作原理相同。
4.2 独立的控制芯片SJA1000及其使用 ——4.2.3 Peli CAN模式
11. 接收缓冲器RXB 接收缓冲器与前面的发送缓冲器很相似,
每条信息也都分为描述符区和数据区。
接收缓冲器(13B)是RXFIFO(64B)的可访问 部分,也位于CAN地址的16~28(对这些CAN 地址,读操作访问的是接收缓冲器;写操作则 访问发送缓冲器)。
接收缓冲器的地址列表和每个地址的字节
7.中断使能寄存器IER(CAN地址4) 该寄存器是可读/写的。 能使不同类型的中断源是否使能。
各位功能如表4.9所示。
8.仲裁丢失捕捉寄存器ALC(CAN地址11) 该寄存器包括了仲裁丢失的位置的信息, 对CPU来说是只读寄存器,读其到的留位的值 为0。仲裁丢失捕捉寄存器的位分配如下:
(CAN地址31)
2. Peli CAN复位模式配置(控制段) 检测到模式寄存器(前表中CAN地址0)的 MOD.0=1(复位模式位置位)后,CAN控制器 中止当前发送/接收信息而进入复位模式。 复位模式位由“1”变“0”时,CAN控制器回 到模式寄存器所定义的工作模式。
CAN控制器在复位模式时配置的主要寄存器 如表4.4所示(浏览,表后祥讲重点)。
ECC.0 1 0 0 0 l l 1 1 1 1 l 0
功能
帧开始 ID.28~ID.2l ID.20~ID.18
SRTR位 IDE位 ID.17~ID.13 ID.12~ID.5 ID.4~ID.0 保留位l 保留位0 数据长度码 数据区
ECC.4 0 1 l 1 l 1 1 l 1 1 1
ECC.3 1 1 1 1 1 0 0 0 0 0 1
-
ECC.5
DIR
方向
1 接收时发生错 0 发送时发生错
ECC.42 SEG4
段4
-
-
ECC.32 SEG4
段4
-
-
ECC.22 SEG4
段4
-
-
ECC.12 SEG4
段4
-
-
ECC.02 SEG4
段4
-
-
上表中ECC.7和ECC.6功能的解释见下表。
ECC.7 0 0 1 1
ECC.6 0 1 0 l
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
保留 保留 保留 ALC.4 ALC.3 ALC.2 ALC.1 ALC.0
仲裁丢失具体发生在第几位由ALC.4~ ALC.0指示:00000(十进制01)表示ID.28丢 失,详细情况由下图说明。
ALC.4~ALC.0的 值(十进制):
⑩ 可编程的CAN输出驱动器配置。
2.SJAl000的内部结构及功能 SJAl000的内部结构及对外接口的原理如 图4.3所示。
(1)接口管理逻辑IML 接口管理逻辑和CPU连接,解释来自 CPU的命令,控制CAN寄存器的寻址,向主 控制器提供中断信息和状态信息。
(2)发送缓冲器TXB 发送缓冲器是CPU和BSP (位流处理器) 之间的接口,能够存储发送到CAN网络上的 完整信息。缓冲器长13B,由CPU写入,BSP 读出。
期(内部时钟周期的频率是外部振荡器的一半)。 命令寄存器各位的功能如表4.6所示。
自学 SR.5(详见状态寄存器的介绍)
CMR.3
5.状态寄存器SR 状态寄存器(CAN地址2)反映CAN控制 器的状态,其各位功能如表4.7所示。 状态寄存器是只读的。
自学
6.中断寄存器IR 中断寄存器(CAN地址3)允许中断源的识 别,各位功能如下表所示。当该寄存器有一位以 上置位时,CAN中断将反映到CPU。 中断寄存器是只读的,CPU读此寄存器后, 除了接收中断外的所有位都被复位。
(5)位流处理器BSP 位流处理器是一个在发送缓冲器,是RXFIFO 和CAN总线之间控制数据流的程序装置。 它还在CAN总线上执行错误检测、仲裁、填 充和错误处理。
(6)位时序逻辑BTL 位时序逻辑监视串行的CAN总线和处理与 总线有关的位时序。
它在信息开头为“隐性—显性”的总线传 输时同步CAN总线位流(硬同步),接收信息时再 次同步下一次传送 (软同步)。
1. Peli CAN地址列表 因为CAN控制器可以工作于工作/复位两 种不同的模式,所以必须区分各个不同的CAN 控制寄存器在工作及复位两种不同模式下的定 义。 Peli CAN模式下的SJA1000内部各寄存器 的地址及功能如下表所示(先浏览,用到时具 体解释)。
CAN地址27,28
(CAN地址9) (CAN地址16)
ALC.4~ALC.0=01000 (十进制:08)
仲裁丢失时,会产生相应的仲裁丢失中断 (中断寄存器的IR.6(中断允许时,即中断使能寄 存器的IER.6=1时))。
同时,位流处理器的当前位位置被捕捉送
入仲裁丢失捕捉寄存器。寄存器中的内容一直 保持到用户通过软件读这个值。读操作后,捕 捉机制又被激活了。
还提供可编程的时间段来补偿传播延迟时
间、相位转换、定义采样点和一位时间内的采 样次数。
(7)错误管理逻辑EML EML负责传送层模块的错误管制。它接收 位流处理器BSP的出错报告,通知BSP和接口管 理逻辑IML进行错误统计。
3.SJAl000的引脚及封装
4.2 控制芯片SJA1000
——4.2.2 Basic CAN模式 Basic CAN模式是和PCA82C200兼容的模 式。 SJA1000内部的地址区包括控制段和信息 缓冲区。 在初始化载入时,微控制器通过对控制段 的编程以配置通信参数。 发送信息应写入发送缓冲器。 成功接收信息后,微控制器从接收缓冲器 中读取接收信息,然后释放空间,供之后的接 收使用。
EFF ID.28 ID.27 ID.26 ID.25 ID.24 ID.23 ID.22 ID.2l
SFF ID.20 ID.19 ID.18 Xl
X2
X2
X2
X2
18
EFF ID.20 ID.19 ID.18 ID.17 ID.16 ID.15 ID.14 ID.13
SFF
未使用(数据字节1)
19
1.SJAl000的特性 ①和它的前款芯片PCA82C200独立CAN 控制器引脚兼容、电气兼容、软件兼容;
②BasicCAN模式(与PCA82C200兼容); ③扩展的功能——PeliCAN模式(增强CAN 模式): (a)可读/写访问的错误计数器, (b)可编程的错误报警限制, (c)最近一次错误代码寄存, (d)对每一个CAN总线错误的中断, (e)具体控制位控制的仲裁丢失中断,
4.2 控制芯片SJA1000
——4.2.1 简介
SJA1000是用于汽车和一般工业环境的 独立CAN总线控制器,它具有完成CAN高性 能通信协议所要求的全部必要特性。
SJA1000可完成物理层和数据链路层的 所有功能。
其硬件与软件设计和PCA82C200的基本 CAN模式(BasicCAN)兼容,同时它新增加的 增强CAN模式(PeliCAN)可以支持CAN2.0A及 CAN2.0B协议。
10. 发送缓冲器 发送缓冲器分为描述符区和数据区。描述
符区的第一个字节是帧信息,它说明了帧格式 (标准帧SFF或扩展帧EFF)、远程或数据帧及数 据长度。SFF有2个字节的识别码,EFF有4个 字节的识别码。数据区最长为8个数据字节, 发送缓冲器长13个字节,CAN地址为16~28。 发送缓冲器列表如图3.6所示。
读中断寄存器时,中断寄存器中相应的中
断标志位被清除。直到仲裁丢失捕捉寄存器被 读一次之后,新的仲裁丢失中断才有效。
9. 错误代码捕捉寄存器(ALC) CAN地址12,这个寄存器包含了总线错误 的类型和位置信息,如下表所示。
位
符号 名称 值
功能
ECC.71 ERRC1 错误代码1 -
-
ECC.61 ERRC0 错误代码0 -
(f)单次发送无重发, (g)只听模式无确认无活动的出错标志, (h)支持热插拔软件位速率检测, (i)验收滤波器扩展4B代码4B屏蔽, (j)自身信息接收自接收请求; ④扩展的接收缓冲器64B先进先出FIFO; ⑤和CAN 2.0B协议兼容; ⑥同时支持11位和29位识别码; ⑦传输速率可达1Mb/s; ⑧24MHz时钟频率; ⑨对不同微处理器的接口;
EFF ID.12 ID.1l ID.10 ID.9 ID.8 ID.7 ID.6 ID.5
SFF
未使用(数据字节2)
20
EFF
ID.4 ID.3 ID.2 ID.1 ID.0
X1
X2
X2
注:1.不影响。推荐在使用自接收设备(自检测)时和接 收缓冲器(RTR)兼容。
2.不影响。推荐在使用自接收设备(自检测)时和接 收缓冲器(0)兼容。
微控制器和SJA1000之间状态、控制和命 令信号的交换都是在控制段中完成的。
初始载入后,寄存器的验收代码、验收屏 蔽、总线定时寄存器0和1以及输出控制器的内 容就不能改变了。只有控制寄存器的复位位被 置高时,这些寄存器又可被访问。
在复位模式和工作模式中访问寄存器是不 同的。
当硬件复位或控制器掉线时会自动进入复 位模式。
(3)接收缓冲器RXB RXFIFO 接收缓冲器是验收滤波器和CPU之间的接口, 用来储存从CAN总线 上发送和接收的信息。 接收缓冲器(RXB 13B)作为接收
FIFO(RXFIFO 64B) 的一个窗口,可被 CPU访问。
CPU在FIFO支持 下,可在处理信息的 时候接收其他信息。
(4)验收滤波器ACF 验收滤波器把它其中的数据和接收的识别 码的内容相比较,以决定是否接收信息。
3.不影响。推荐在使用自接收设备(自检测)时
和接收缓冲器(0)兼容。
4.数据长度码位,编码范围为1~8。
TX识别码如表3.34所示。
CAN 地址
帧格式
BIT7
位 BIT6 BIT5 BIT4 BIT3
BIT2
BITl
B1T0
SFF ID.28 ID.27 ID.26 ID.25 ID.24 ID.23 ID.22 ID.21 17
TX帧信息字节(CAN地址16)配置如下表 所示:
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
FF1 RTR2 X3
X3 DLC.34 DLC.24 DLC.14 DLC.04
注:
1.帧格式,1=EFF(扩展帧),0=SFF(标准帧)。
2.远程发送请求位,1=远程帧,0=数据帧。
(具体解释见后面有关寄存器的说明)
其中的主要寄存器说明如下。
3. 模式寄存器MOD 模式寄存器(CAN地址0)的内容是用来改 变CAN控制器的行为的。 CPU把该寄存器作为读/写寄存器,其各位 的功能如表4.5所示,可以设置这些位,保留位 读取时的值为逻辑0。
自学
4. 命令寄存器CMR 命令寄存器(CAN地址1)中的命令位用于 初始化CAN控制器传输层上的动作。这个寄存器 是只写的(所有位的读出值都是逻辑1)。因处 理的需要,两条命令之间至少有一个内部时钟周
ECC.2 0 0 0 0 0 0 0 l 0 l 1
ECC.1 0 0 0 l 1 l 0 1 1 1 0
ECC.0 0 0 1 l 0 0 1 0 1 l 0
功能
CRC序列 CRC界定符
应答间隙 应答界定符
帧结束 间歇
活动错误标志 消极错误标志
显位容差 错误界定符
过载标志
总线发生错误时被迫产生相应的错误中断 IR.7(中断允许时),同时位流处理器的当前位置 被捕捉送入错误代码捕捉寄存器,其内容直到用 户通过软件读出时才发生变化,读出后捕捉机制 又被激活。访问中断寄存器(详见表4.8)期间, 中断寄存器中相应的中断标志位被清除,新的中 断直到捕捉寄存器被读出一次才有效。