首页 理论教育CAN通信控制器SJA1000

CAN通信控制器SJA1000

【摘要】:SJA1000是一种独立控制器,用于汽车和一般工业环境中的局域网络控制。图7-38 SJA1000的内部结构方框图SJA1000 CAN控制器主要由以下几部分构成。:片选输入,低电平允许访问SJA1000。图7-39 SJA1000引脚图XTAL1:振荡器放大电路输入,外部振荡信号由此输入。RX0和RX1:由物理总线到SJA1000输入比较器的输入端,显性电平将会唤醒SJA1000的睡眠模式。为了实现软件兼容,SJA1000增加了两种模式。与PCA82C200兼容性在BasicCAN模式中,SJA1000模仿PCA82C200独立控制器所有已知的寄存器。在SJA1000的控制寄存器中没有SYNC位。

SJA1000是一种独立控制器,用于汽车和一般工业环境中的局域网络控制。它是Philips公司的PCA82C200 CAN控制器(BasicCAN)的替代产品。而且它增加了一种新的工作模式(PeliCAN),这种模式支持具有很多新特点的CAN 2.0B协议,SJA1000具有如下特点:

1)与PCA82C200独立CAN控制器引脚和电气兼容。

2)PCA82C200模式,即默认的BasicCAN模式。

3)扩展的接收缓冲器(64个字节,先进先出(FIFO))。

4)与CAN 2.0B协议兼容(PCA82C200兼容模式中的无源扩展结构)。

5)同时支持11位和29位标识符。

6)位速率可达1Mbit/s。

7)PeliCAN模式扩展功能:

·可读/写访问的错误计数器。

·可编程的错误报警限制。

·最近一次错误代码寄存器。

·对每一个CAN总线错误的中断。

·具有详细位号(Bit Position)的仲裁丢失中断。

·单次发送(无重发)。

·只听模式(无确认、无激活的出错标志)。

·支持热插拔(软件位速率检测)。

·接收过滤器扩展(4B代码,4B屏蔽)。

·自身信息接收(自接收请求)。

·24MHz时钟频率。

·可以和不同微处理器接口

·可编程的CAN输出驱动器配置。

·增强的温度范围(-40~+125℃)。

1.内部结构

SJA1000的内部结构如图7-38所示。

978-7-111-35607-3-Chapter07-59.jpg

图7-38 SJA1000的内部结构方框图

SJA1000 CAN控制器主要由以下几部分构成。

(1)接口管理逻辑(IML)

接口管理逻辑解释来自CPU的命令,控制CAN寄存器的寻址,向主控制器提供中断信息和状态信息。

(2)发送缓冲器(TXB)

发送缓冲器是CPU和位流处理器之间的接口,能够存储发送到CAN网络上的完整报文。缓冲器长13个字节,由CPU写入,位流处理器读出。

(3)接收缓冲器(RXB,RXFIFO)

接收缓冲器是接收过滤器和CPU之间的接口,用来接收CAN总线上的报文,并储存接收到的报文。接收缓冲器(RXB,13B)作为接收FIFO(RXFIFO,64B)的一个窗口,可被CPU访问。

CPU在此FIFO的支持下,可以在处理报文的时候接收其他报文。

(4)接收过滤器(ACF)

接收过滤器把它其中的数据和接收的标识符相比较,以决定是否接收报文。在纯粹的接收测试中,所有的报文都保存在RXFIFO中。

(5)位流处理器(BSP)

位流处理器是一个在TXB、RXFIFO和CAN总线之间控制数据流的序列发生器。它还执行错误检测、仲裁、总线填充和错误处理。

(6)位时序逻辑(BTL)

位时序逻辑监视串行CAN总线,并处理与总线有关的位定时。在报文开始,由隐性到显性的变换同步CAN总线上的位流(硬同步),接收报文时再次同步下一次传送(软同步)。BTL还提供了可编程的时间段来补偿传播延迟时间、相位转换并且可以定义采样点和每一位的采样次数。

(7)错误管理逻辑(EML)

EML负责传送层中调制器的错误界定。它接收BSP的出错报告,并将错误统计数字通知BSP和IML。

2.引脚介绍

SJA1000为28引脚DIP和SO封装,引脚如图7-39所示。

各引脚功能如下:

AD0~AD7:地址/数据复用总线。

ALE/AS:ALE输入信号(Intel模式);AS输入信号(Motorola模式)。

978-7-111-35607-3-Chapter07-60.jpg:片选输入,低电平允许访问SJA1000。

978-7-111-35607-3-Chapter07-61.jpg:微控制器的RD信号(Intel模式)或E使能信号(Motorola模式)。

978-7-111-35607-3-Chapter07-62.jpg:微控制器的978-7-111-35607-3-Chapter07-63.jpg信号(Intel模式)或978-7-111-35607-3-Chapter07-64.jpg信号(Motorola模式)。

CLKOUT:SJA1000产生的提供给微控制器的时钟输出信号。此时钟信号通过可编程分频器由内部晶振产生。时钟分频寄存器的时钟关闭位可禁止该引脚。

VSS1:接地端。(www.chuimin.cn)

978-7-111-35607-3-Chapter07-65.jpg

图7-39 SJA1000引脚图

XTAL1:振荡器放大电路输入,外部振荡信号由此输入。

XTAL2:振荡器放大电路输出。使用外部振荡信号时,此引脚必须保持开路。

MODE:模式选择输入。1=Intel模式,0=Motorola模式。

VDD3:输出驱动的5V电压源。

TX0:由输出驱动器0到物理线路的输出端。

TX1:由输出驱动器1到物理线路的输出端。

VSS3:输出驱动器接地端。

978-7-111-35607-3-Chapter07-66.jpg:中断输出,用于中断微控制器。978-7-111-35607-3-Chapter07-67.jpg在内部中断寄存器各位都被置位时被激活。978-7-111-35607-3-Chapter07-68.jpg是开漏极输出,且与系统中的其他INT可以线或连接。此引脚上的低电平可以把IC从睡眠模式中激活。

978-7-111-35607-3-Chapter07-69.jpg:复位输入,用于复位CAN接口(低电平有效)。把978-7-111-35607-3-Chapter07-70.jpg引脚通过电容连到VSS,通过电阻连到VDD可自动上电复位(例如,C=1μF;R=50kΩ)。

VDD2:输入比较器的5V电压源。

RX0和RX1:由物理总线到SJA1000输入比较器的输入端,显性电平将会唤醒SJA1000的睡眠模式。如果RX1比RX0的电平高,读出为显性电平,反之读出为隐性电平;如果时钟分频寄存器的CBP位被置位,就忽略CAN输入比较器以减少内部延时(此时连有外部收发电路),这种情况下只有RX0是激活的。隐性电平被认为是高,而显性电平被认为是低。

VSS2:输入比较器的接地端。

VDD1:逻辑电路的5V电压源。

3.应用说明

SJA1000在软件和引脚上都是与它的前一款——PCA82C200独立控制器兼容的。在此基础上它增加了很多新的功能。为了实现软件兼容,SJA1000增加了两种模式。

·BasicCAN模式:PCA82C200兼容模式。

·PeliCAN模式:扩展特性。

工作模式通过时钟分频寄存器中的CAN模式位来选择。复位默认模式是BasicCAN模式。

(1)与PCA82C200兼容性

在BasicCAN模式中,SJA1000模仿PCA82C200独立控制器所有已知的寄存器。下面所描述的特性不同于PCA82C200,这主要是为了软件上的兼容。

1)同步模式。在SJA1000的控制寄存器中没有SYNC位。同步只有在CAN总线上隐性至显性的转换时才有可能发生。写这一位是没有任何影响的。为了与现有软件兼容,读取这一位时将得到上次写入的值(对触发电路无影响)。

2)时钟分频寄存器。时钟分频寄存器用来选择CAN工作模式(BasicCAN或PeliCAN)。它使用从PCA82C200保留下来的一位。与PCA82C200一样,写一个0~7之间的值,就将进入BasicCAN模式。默认状态是12分频的Motorola模式和2分频的Intel模式。保留的另一位补充了一些附加的功能。CBP位的置位使内部RX输入比较器被忽略,这样在使用外部传送电路时可以减少内部延时。

3)接收缓冲器。PCA82C200中双接收缓冲器的概念被PeliCAN中的接收FIFO所代替。这对软件除了会增加数据溢出的可能性之外,不会产生应用上的影响。在数据溢出之前,缓冲器可以接收两条以上报文(最多64个字节)。

4)CAN 2.0B协议。SJA1000被设计为全面支持CAN 2.0B协议,这说明在处理扩展帧的同时,也实现了扩展振荡器容差。在BasicCAN模式下只可以发送和接收标准帧(11位标识符)。如果此时检测到CAN总线上有扩展帧(29位标识符),并且报文正确,则该报文也会被允许且给出一个确认信号,但没有接收中断产生。

(2)PeliCAN模式

在PeliCAN模式下,SJA1000有一个含很多新功能的重组寄存器。SJA1000包含了设计在PCA82C200中的所有位及一些新功能位,PeliCAN模式支持CAN 2.0B协议规定的所有功能(29位标识符)。

SJA1000的主要新功能:

·接收、发送标准帧和扩展帧格式信息。

·接收FIFO(64个字节)。

·用于标准帧和扩展帧的单/双接收过滤器(含屏蔽和代码寄存器)。

·读/写访问的错误计数器。

·可编程的错误限制报警。

·最近一次的误码寄存器。

·对每一个CAN总线错误的错误中断。

·具有详细位号的仲裁丢失中断。

·一次性发送(当错误或仲裁丢失时不重发)。

·只听模式(CAN总线监听,无应答,无错误标志)。

·支持热插拔(无干扰软件驱动的位速率检测)。

·硬件禁止CLKOUT输出。

4.BasicCAN地址分配

SJA1000对微控制器而言是内存管理的I/O器件。两器件的独立操作是通过像RAM一样的片内寄存器修正来实现的。

SJA1000的地址区包括控制段和报文缓冲器。控制段在初始化加载时,是可被编程来配置通信参数的(如位定时等)。微控制器也是通过这个段来控制CAN总线上的通信的。在初始化时,CLKOUT信号可以被微控制器编程指定一个值。

应发送的报文写入发送缓冲器。成功接收报文后,微控制器从接收缓冲器中读出接收的报文,然后释放空间以便下一次使用。

微控制器和SJA1000之间状态、控制和命令信号的交换都是在控制段中完成的。初始化加载后,寄存器的接收代码、接收屏蔽、总线定时寄存器0和总线定时寄存器1以及输出控制就不能改变了。只有控制寄存器的复位位被置高时,才可以访问这些寄存器。

在复位模式和工作模式中访问寄存器是不同的。当硬件复位或控制器掉电时会自动进入复位模式。工作模式是通过置位控制寄存器的复位请求位激活的。

BasicCAN地址分配见表7-21。

表7-21 BasicCAN地址分配表

978-7-111-35607-3-Chapter07-71.jpg