摘要:在对CAN总线进行简要介绍的基础上介绍了Philips公司新推出的独立CAN总线控制器SJA1000的特点、内部功能和引脚定义,并对其内部寄存器进行了说明,同时列出了SJA1000的新增功能,最后给出它的典型应用电路。
关键词:CAN总线 接收FIFO 控制器 SAJ1000
1 CAN总线简介
CAN总线(Controller Area Network控制器局域网)是现场总线的一种。它是德国Bosch公司在1986年为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通讯总线。CAN总线与其它通信网的不同之处有二:一是报文传送中不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符过滤报文,该收的收下,不该收的弃而不用。其好处是可在线上网下网、即插即用和多站接收;二是特别强化了对数据安全性的关注,满足控制系统及其它较高数据要求的系统需求。CAN总线具有下列主要特性:
●多主站依据优先机进行总线访问;
●非破坏性的基于优先权的总线仲裁;
●借肋接收滤波的多地址帧传送;
●远程数据请求;
●配置灵活;
●全系统的数据相容性;
●错误检测和出错信令;
●发送期间若丢失仲裁或由于出错而遭破坏的帧可自动重发送;
●暂时错误和永久性故障节点的判别以及故障节点的自动脱离CAN总线。
2 SJA1000的特点
PHILIPS公司的PCA82C200是符合CAN2.0A协议的总线控制器,SJA1000是它的替代产品,它是应用于汽车和一般工业环境的独立CAN总线控制器。具有完成CAN通信协议所要求的全部特性。经过简单总线连接的SJA1000可完成CAN总线的物理和数据链路层的所有功能。其硬件与软件设计和PCA82C200的基本CAN模式(BesicCAN)兼容。同时,新增加的增强CAN模式(PeliCAN)还可支持CAN2.0B协议。SJA1000的主要特性如下:
表1 SJA1000寄存器配置(复位模式)
名称 | 地址 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
模式寄存器 | 0 | - | - | - | 睡眠方式 | 滤波方式 | 自检方式 | 监听方式 | 复位方式 |
命令寄存器 | 1 | - | - | - | 自收请求 | 清超限状态 | 释放接收缓冲器 | 夭折发送 | 发送请求 |
状态寄存器 | 2 | 总线状态 | 错误状态 | 发送状态 | 接收状态 | 发送完成状态 | 发送缓冲器状态 | 数据超限 | 接收缓冲器状态 |
中断寄存器 | 3 | 总线错误中断 | 仲裁丢失中断 | 错误认可状态中断 | 唤醒中断 | 数据超限中断 | 错误报警中断 | 发送中断 | 接收中断 |
中断允许寄存器 | 4 | 总线错误中断允许 | 仲裁丢失中断允许 | 错误认可中断允许 | 唤醒中断允许 | 数据超限中断允许 | 错误报警中断允许 | 发送中断允许 | 接收中断允许 |
保留 | 5 | - | - | - | - | - | - | - | - |
总线定时器1 | 6 | SJM.1 | SJM.0 | BRP.5 | BRP.4 | BRP.3 | BRP.2 | BRP.1 | BRP.0 |
总线定时器2 | 7 | SAM | TSEG2.2 | TSEG2.1 | TSEG2.0 | TSEG1.3 | TSEG1.2 | TSEG1.1 | TSEG1.0 |
输出控制寄存器 | 8 | COTP1 | OCTN1 | OCPOL1 | OCTP0 | OCTN0 | OCPOL0 | OCMODE1 | OCMODE0 |
测试寄存器 | 9 | - | - | - | - | - | - | - | - |
保留 | 10 | - | - | - | - | - | - | - | - |
仲裁丢失捕获 | 11 | - | - | - | ALC.4 | ALC.3 | ALC.2 | ALC.1 | ALC.0 |
出错码捕获 | 12 | ECC.7 | ECC.6 | ECC.5 | ECC.4 | ECC.3 | ECC.2 | ECC.1 | ECC.0 |
错误警告极限 | 13 | EWL.7 | EWL.6 | EWL.5 | EWL.4 | EWL.3 | EWL.2 | EWL.1 | EWL.0 |
RX出错计数 | 14 | RXERR.7 | RXERR.6 | RXERR.5 | RXERR.4 | RXERR.3 | RXERR.2 | RXERR.1 | RXERR.0 |
TX出错计数 | 15 | TXERR.7 | TXERR.6 | TXERR.5 | TXERR.4 | TXERR.3 | TXERR.2 | TXERR.1 | TXERR.0 |
滤波码寄存器1~3 | 16~18 | AC.7 | AC.6 | AC.5 | AC.4 | AC.3 | AC.2 | AC.1 | AC.0 |
滤波屏蔽寄存器0~3 | 20~23 | AM.7 | AM.6 | AM.5 | AM.4 | AM.3 | AM.2 | AM.1 | AM.0 |
保留 | 24~28 | 00H | 00H | 00H | 00H | 00H | 00H | 00H | 00H |
RX报文个数 | 29 | 0 | 0 | 0 | RMC.4 | RMC.3 | RMC.2 | RMC.1 | RMC.0 |
RX缓冲器起始地址 | 30 | 0 | 0 | RBSA.5 | RBSA.4 | RBSA.3 | RBSA.2 | RBSA.1 | RBSA.0 |
时钟分配器 | 31 | CAN模式 | CBP | RXINTEN | 0 | Clock offf | CD.2 | CD.1 | CD.0 |
内部RAM(FIFO) | 32~95 | ||||||||
内部RAM(TX) | 96/108 | ||||||||
内部RAM(free) | 109/111 | ||||||||
00H | 112/127 |
●管脚及电气特性与独立CAN总线控制器PCA82C200兼容;
●软件与PCA82C200兼容(缺省为基本CAN模式);
●扩展接收缓冲器(64字节FIFO);
●支持CAN2.0B协议;
●同时支持11位和29位标识符;
●位通讯速率为1Mbits/s;
●增强CAN模式(PeliCAN);
●采用24MHz时钟频率;
●支持多种微处理器接口;
●可编程CAN输出驱动配置;
●工作温度范围为-40~+125℃。
3 内部功能及引脚说明
SJA1000的功能框图如图1所示,图2是其引脚图。从图1可以看出,SJA1000型独立CAN总线控制器由以下几部分构成;
(1)接口管理逻辑:它接收来自微处理器的命令,控制CAN寄存器的地址,并为微处理器提供中断和状态信息。
(2)发送缓冲器:有13字节长。它位于CPU和位流处理器(BSP)之间,能存储一条将在CAN总线上发送的完整的报文,报文由CPU写入,由SBP读出。
(3)接收缓冲器(RXB、RXFIFO):它是CPU和接收滤波器之间的接口,用来存储从CAN总线接收并通过了滤波的报文。接收缓冲器RXB是提供给CPU可访问的13字节的窗口,这个窗口是属于接收FIFO(RXFIFO)的一部分,共由64字节长。有了这个FIFO,可以在CPU处理一个报文的同时继续接收其他到来的报文。
(4)接收滤波器:它把报文头中的标识符和接收滤波寄存器中的内容进行比较,以判断文报文是否被接收。如果被接收,报文存入RXFIFO。
(5)位流处理器:它是一个控制发送缓冲器、RXFIFO并行数据和CAN总线(串行数据)之间数据的序列发生器,同时它也执行错误检测、仲裁、位填充和CAN总线错误处理功能。
表2 SJA1000寄存器配置(工作模式)与表1不同之外
名称 | 地址 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RX/TX帧信息 TX帧(写) RX帧(读) |
16 | ||||||||
FF FF |
RTR RTR |
X 0 |
X 0 |
DLC.3 DLC.3 |
DLC.2 DLC.2 |
DLC.1 DLC.1 |
DLC.0 DLC.0 |
||
RX/TX报文 缓冲器 |
17~28 |
(6)位定时逻辑不:它将SJA1000同步于CAN总线上的位流。
(7)错误管理逻辑:它按照CAN协议完成错误界定。
4 寄存器
由于SJA1000与PCA82C2000兼容,因此SJA1000的缺省工作方式即基本CAN模式与82C200相同。下面介绍SJA1000工作在增强CAN模式(PeliCAN)下的寄存器配置。在初始化期间,芯片在复位模式(RESET MODE)时的寄存器配置如表1所列,在工作期间的运行模式(OPERATING MODE)下,部分寄存器的定义将有所更改,具体见表2。
5 SJA1000的新增功能
5.1 支持CAN2.0B协议
SJA1000完全支持CAN2.0B协议,这意味着实现了扩展的振荡器容差和处理扩展帧报文,在基本CAN方式中,仅可发送和接收标准帧报文(11位标识符),若检测到CAN总线上的扩展帧报文(29位标识符),他们将允许,并在确认报文正确后给予应答,但不会产生接收中断。标识符作为报文的名称将被用于接收器的验收滤波过程中,同时在仲裁处理期间,也用来确定总线访问的优先权。标识符二进制数值愈低,其优先权愈高。
5.2 扩展的接收缓冲器
利用SJA1000可将原有的PAC82C200双接收缓冲器被接收FIFO替代,并可用来存储来自CAN总线上被接收和滤波的报文,作为CPU能访问的一个FIFO的13字节窗口,接收FIFO总长度为64字节。通过FIFO,CPU可以在处理一个报文的同时接收其它报文。
5.3 增强的错误处理能力
在增强CAN模式功能中,SJA1000为增强错误处理功能增加了一些新的特殊功能寄存器,包括:仲裁丢失捕捉寄存器(ALC),出错码捕捉寄存器(ECC),错误警告极限寄存器(EWLR),RX出错计数寄存器(RXERR)和TX出错计数寄存器(TXERR)等。借助于这些错误寄存器可以找到丢失仲裁位的位置,分析总线错误类型和位置,定义错失仲裁位的位置,分析总线错误类型和位置,定义错误警告极限值以及记录发送和接收时出现错误的个数等。
5.4 增强的验收滤波功能
SJA1000带有验收滤波器功能,它的作用是自动检查报文中的标识符和数据字节。通过设置滤波,与该总线节点不相关的一个报文或一组报文净不被SJA1000所接收,这样可以提高CPU的利用效率。在增强型CAN方式中,SJA1000还增加了单滤波方式和双滤波方式,可以对标准帧和扩展帧实现更复杂的滤波功能。
6 应用电路
SJA1000控制器与微处理器的接口非常方便。图3是SJA1000与80C51接口的典型应用电路。用80C51的2.7口作为片选信号。作用CAN总线收发器PCA82C250目的是进一步提高SJA1000的总线驱动能力。
上一篇:嵌入式Web服务器的分析与研究
下一篇:第三代移动通信系统UMTS的网络结构
- 热门资源推荐
- 热门放大器推荐
- Wi-Fi 8规范已在路上:2.4/5/6GHz三频工作
- 治理混合多云环境的三大举措
- Microchip借助NVIDIA Holoscan平台加速实时边缘AI部署
- 是德科技 FieldFox 手持式分析仪配合 VDI 扩频模块,实现毫米波分析功能
- 高通推出其首款 RISC-V 架构可编程连接模组 QCC74xM,支持 Wi-Fi 6 等协议
- Microchip推出广泛的IGBT 7 功率器件组合,专为可持续发展、电动出行和数据中心应用而设计
- 英飞凌推出新型高性能微控制器AURIX™ TC4Dx
- Rambus宣布推出业界首款HBM4控制器IP,加速下一代AI工作负载
- 恩智浦FRDM平台助力无线连接
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况