第7章CAN总线控制器SJA1000

合集下载

sja1000_can控制器basiccan模块概要

sja1000_can控制器basiccan模块概要
CMR.1
AT
中止发送
无动作
1当前信息被发送
CMR.0 TR
发送请求
--
注并要求SJA1000向CAN总线发送该
帧时
将产生一个发送中断
中止传送位是在CPU要求当前传送暂停时使用的
传送一条紧急信息
要查看原始信息是否被成功发送不过
释放
可以通过设置释放接收缓冲器位为1来释放RXFIFO中当前信息的内存空间
BTR0.4 BRP.4波特率预设值4 × ×
总线定时0
BTR0.3 BRP.3波特率预设值3 × ×
BTR0.2 BRP.2波特率预设值2 × ×
BTR0.1 BRP.1波特率预设值1 × ×
BTR0.0 BRP.0波特率预设值0 × ×
BTR1.7 SAM采样× ×
BTR1.6 TSEG2.2时间段2.2 × ×
将清除状态寄存器中的接收缓冲器状态位
如果数据溢出位被置位
在释放接收缓冲器命令的
同时是可以发出清除数据溢出命令的
SJA1000进入睡眠模式
只要破坏这三种条件的其中一种
在复位模式中
2.3.3.3状态寄存器
状态寄存器对微控制器来说是只读存储器
CAN地址2

符号
名称
值功能
1
总线关闭
SJA1000加入总线活动
至少出现一个错误计数器满或超过
CPU报警限制
两个错误计数器都在报警限制以下SJA1000在传送信息
SJA1000正在接收信息
最近一次发送请求被成功处理
文档编号
CPU可以向发送缓冲器写信息
CPU不能访问发送缓冲器
1
溢出
SR.1
DOS

SJA1000 独立的CAN控制器应用指南-外文资料翻译

SJA1000 独立的CAN控制器应用指南-外文资料翻译

外文资料翻译译文SJA1000 独立的CAN控制器应用指南1 介绍SJA1000是一个独立的CAN控制器,它在汽车和普通的工业应用上有先进的特征。

由于它和PCA82C200 在硬件和软件都兼容,因此它将会替代PCA82C200。

SJA1000有一系列先进的功能适合于多种应用,特别在系统优化、诊断和维护方面非常重要。

本文是要指导用户设计基于SJA1000 的完整的CAN节点。

同时本文还提供典型的应用电路图和编程的流程图。

2 概述SJA1000 独立的CAN控制器有2个不同的操作模式:BasicCAN模式(和PCA82C200)兼容PeliCAN模式BasicCAN模式是上电后默认的操作模式。

因此,用PCA82C200开发的已有硬件和软件可以直接在SJA1000上使用,而不用作任何修改。

PeliCAN模式是新的操作模式,它能够处理所有CAN2.0B 规范的帧类型。

而且它还提供一些增强功能使SJA1000能应用于更宽的领域。

2.1 CAN 节点结构通常,每个CAN 模块能够被分成不同的功能块。

SJA1000使用[3] [4] [5]最优化的CAN收发器连接到CAN 。

收发器控制从CAN控制器到总线物理层或相反的逻辑电平信号。

上面一层是一个CAN 控制器,它执行在CAN规范[8]里规定的完整的CAN协议。

它通常用于报文缓冲和验收滤波,而所有这些CAN功能,都由一个模块控制器控制它负责执行应用的功能。

例如,控制执行器、读传感器和处理人机接口(MMI)。

如图1所示,SJA1000独立的CAN控制器通常位于微型控制器和收发器之间,大多数情况下这个控制器是一个集成电路。

图1 CAN模块装置2.2 结构图下图是SJA1000 的结构图图2 SJA1000的结构图根据CAN规范,CAN核心模块控制CAN帧的发送和接收。

接口管理逻辑负责连接外部主控制器,该控制器可以是微型控制器或任何其他器件。

经过SJA1000复用的地址/数据总线访问寄存器和控制读/写选通信号都在这里处理。

CAN通信控制器SJA1000-精品课件

CAN通信控制器SJA1000-精品课件
BasicCAN模式——与PCA82C200兼容的模式 PeliCAN模式 ——扩展功能模, 复位默认模式是BasicCAN模式。
2 一般说明
➢ 两种封装形式: 一种为28引脚的塑质双列式封装(DIP28) 一种为28引脚的塑质小型线外封装(SO28)
15、我就像一个厨师,喜欢品尝食物。如果不好吃,我就不要它。2021年8月下午6时3分21.8.1518:03August 15, 2021
16、我总是站在顾客的角度看待即将推出的产品或服务,因为我就是顾客。2021年8月15日星期日6时3分16秒18:03:1615 August 2021
17、利人为利已的根基,市场营销上老是为自己着想,而不顾及到他人,他人也不会顾及你。下午6时3分16秒下午6时3分18:03:1621.8.15
9、我们的市场行为主要的导向因素,第一个是市场需求的导向,第二个是技术进步的导向,第三大导向是竞争对手的行为导向。21.8.1521.8.15Sunday, August 15, 2021
10、市场销售中最重要的字就是“问”。18:03:1618:03:1618:038/15/2021 6:03:16 PM
工业控制网络 (现场总线)
4.2 独立CAN控制器SJA1000
CAN控制器SJA1000的作用
实现网络层次结构中的数据链路层和物理层功能。
PHILIPS公司生产,是PCA82C200的升级产品
CAN控制器SJA1000在系统中的位置
分布模块1
传感器 执行元件
模块控制器
CAN控制器
TX
RX
CAN收发器
SJA1000的地址区包括控制段和报文缓冲器(发 送缓冲器和接收缓冲器,见表4-3 BasicCAN地址分配表 )。

第07章CAN总线(2) [兼容模式] (1)

第07章CAN总线(2) [兼容模式] (1)
TX0 TX1 VSS3 /INT
:从物理总线输入到SJA1000的输入比较 器的输入端;显性位时将会唤醒SJA1000的睡眠模 式;如果RX1比RX0的电平高就读出位显性位,反 之读出为隐性位;如果时钟分频寄存器的CBP位被 置位,就旁路CAN输入比较器以减少内部延时(此 时连有外部收发电路)。这种情况下只有RX0是激 活的;隐性位为1,而显性位认为0。 VSS2:输入比较器的接地端 VDD1:逻辑电路的5V电压源
CPU
1
2016/4/9
SJA1000的功能框图
SJA1000的引脚说明
位时序逻辑BTL:位时序逻辑监视串口的CAN 总 线,并处理与总线有关的位时序。它在信息开头, 由隐性到显性的变换同步CAN 总线位流(硬同 步),接收信息时再次同步下一次传送(重同 步)。BTL 还提供了可编程的时间段来补偿传播 延迟时间、相位转换(例如,由于振荡漂移)和 定义采样点和每一位的采样次数。 错误管理逻辑EML:EML负责传送层模块的错误 界定。它接收BSP 的出错报告,并将错误统计数 字通知BSP 和IML。。
CLKOUT SJA1000
引脚说明
引脚说明
:从CAN输出驱动器0输出到物理线路上。 :从CAN输出驱动器1输出到物理线路上。 :输出驱动器接地。 :中断输出,用于中断微控制器。/INT在内部 中断寄存器各位都被置位时激活;此引脚上的低电 平可以把IC从睡眠模式中激活。 /RST:复位输入用于复位CAN接口,低电平有效。 VDD2:输入比较器的5V电压源。
RX0 RX1
2
2016/4/9
SJA1000两种工作模式
7. 3.3 SJA1000 Basic Can相关寄存器
:目的是保证SJA1000与CAN总线早期产品 的软件兼容。此模式下能够实现CAN2.0A的 协议标准。 PeliCAN:支持CAN2.0A和 CAN2.0B的协议标准,并增加 一些新功能。

can总线SJA1000的初始化相关实验

can总线SJA1000的初始化相关实验

实验一SJA1000的初始化一、实验目的:学习并完成SJA1000的初始化二、实验设备:EL-8051-III型单片机实验箱三、实验原理:SJA1000的初始化只有在复位模式下才可以进行,初始化主要包括工作方式的设置、接收滤波方式的设置、介绍屏蔽寄存器(AMR)和接收代码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER)的设置等。

在完成SJA1000的初始化设置以后,SJA1000就可以回到工作状态,进行正常的通信任务。

初始化流程:四、实验内容及步骤:初始化CAN节点,使SJA1000处在准备工作状态。

1.给试验箱换上CAN控制器;2.编写并编译初始化程序;3.下载程序并调试。

编写的程序如下:MODE EQU 0DE00H ;模式寄存器CMR EQU 0DE01H ;命令寄存器SR EQU 0DE02H ;状态寄存器IR EQU 0DE03H ;中断寄存器IER EQU 0DE04H ;中断使能寄存器BTR0 EQU 0DE06H ;总线定时寄存器一BTR1 EQU 0DE07H ;总线定时寄存器二OCR EQU 0DE08H ;输出控制寄存器ALC EQU 0DE0BH ;仲裁丢失捕捉寄存器ECC EQU 0DE0CH ;错误代码捕捉寄存器TXERR EQU 0DE0FH ;发送错误计数器ACR0 EQU 0DE10H ;验收代码寄存器0ACR1 EQU 0DE11H ; 1ACR2 EQU 0DE12H ; 2ACR3 EQU 0DE13H ; 3AMR0 EQU 0DE14H ;验收屏蔽寄存器0AMR1 EQU 0DE15H ; 1AMR2 EQU 0DE16H ; 2AMR3 EQU 0DE17H ; 3FIN EQU 0DE10H ;发送/接收帧信息ID1 EQU 0DE11H ;发送/接收缓冲区之标示符一ID2 EQU 0DE12H ;发送/接收缓冲区之标示符二DATA1 EQU 0DE13H ;发送/接收数据首址RBSA EQU 0DE1EH ;接收缓冲器起始地址寄存器CDR EQU 0DE1FH ;时钟分频寄存器DAMR EQU 40HDACR EQU 50HORG 4000HJMP STARTORG 4080HSTART:mov dptr,#modemov a,#01hmovx @dptr,amov dptr,#acr0mov a,#00hmovx @dptr,amov dptr,#acr1mov a,#60hmovx @dptr,amov dptr,#acr2mov a,#00hmovx @dptr,amov dptr,#acr3mov a,#00hmovx @dptr,amov dptr,#amr0mov a,#00hmovx @dptr,amov dptr,#amr1mov a,#0fhmovx @dptr,amov dptr,#amr2mov a,#0ffhmovx @dptr,amov dptr,#amr3mov a,#0ffhmovx @dptr,amov dptr,#btr0mov a,#01hmovx @dptr,amov dptr,#btr1mov a,#1chmovx @dptr,amov dptr,#ocrmov a,#0aahmovx @dptr,amov dptr,#cdrmov a,#89hmovx @dptr,amov dptr,#mode ;退出复位模式mov a,#00hmovx @dptr,amov dptr,#sr ;判断状态寄存器是否初始化成功,成功则点亮P1口的灯movx a,@dptrcjne a,#0ch,startmov P1,#00hend五、实验结果P1口连接的灯均亮了,外部存储器DE00H~DE30H的值为下图所示:六、实验心得。

CAN总线控制器-SJA1000源程序(c语言)

CAN总线控制器-SJA1000源程序(c语言)
send_BUF.Frame_Data[0] = 0x11;
send_BUF.Frame_Data[1] = 0x22;
send_BUF.Frame_Data[2] = 0x33;
send_BUF.Frame_Data[3] = 0x44;
send_BUF.Frame_Data[4] = 0x55;
//函数类别延时
//函数名称delay
//入口函数无
//出口函数无
//函数功能延时
//------------------------------------------------------------------------------------------------------
void delay(unsigned char time)
//函数类别供调用子函数
//函数名称send_BUF_init
//入口函数无
//出口函数无
//函数功能对MCU内公共变量结构send_BUF赋初值
//-----------------------------------------------------------------------------------------------------
CAN总线控制器sja1000源程序
SJA1000是一种独立控制器用于移动目标和一般工业环境中的区域网络控制CAN它是PHILIPS
半导体PCA82C200 CAN控制器BasicCAN的替代产品而且它增加了一种新的工作模式PeliCAN ,
这种模式支持具有很多新特性的CAN 2.0B协议。
1特性
和PCA82C200独立CAN控制器引脚兼容
void SJAconnect_judge(void)

SJA1000独立的CAN控制器应用指南

SJA1000独立的CAN控制器应用指南
2.1 SJA1000 的特征 ................................................................................................................ 2 2.2 CAN 节点结构.................................................................................................................... 3 3 系统 ............................................................................................................................................. 4 3.1 SJA1000 的应用 ................................................................................................................ 4 3.2 电源 ................................................................................................................................... 5 3.3 复位 ................................................................................................................................... 5 3.4 振荡器和时钟策略.............................................................................................................. 5

SJA1000简介2010

SJA1000简介2010

SJA1000简介2010SJA1000简介2010-3-17 5:57:00PCA82C250提供对总线的差动发送和对CAN控制器的差动接收功能,也增大了通信距离,提高了系统的瞬间抗干扰能力,保护总线,降低射频干扰(RFI),实现了热防护等功能。

发送子程序负责节点报文的发送,由CAN控制器SJA1000独立完成,将命令寄存器里的发送请求标志置位,即可发送SJA1000发送缓冲区中的报文。

CAN总线及CAN控制器SJA1000简介CAN总线最初是德国Bosch公司在1986 年为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种支持分布式实时控制系统的串行数据通讯总线。

CAN总线与其它通信网的显著不同之处在于:(1)报文传送中不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符过滤报文,该收的收下,不收的弃用。

其好处是可线上网下网、即插即用和多站接收。

(2)特别强化了对数据安全性的关注,满足控制系统及其它较高数据要求的系统需求。

另外CAN总线采用短帧结构,借助接收滤波的多地址帧传送,受干扰概率低,每帧信息都有CRC校验及其它检错措施。

响应远程数据请求,配置灵活,具有全系统的数据相容性。

节点数主要取决于总线驱动电路,目前最多可达110个节点。

CAN总线符合ISO11898标准,通信速率高,最大传输速率可达1Mbit/S,最大传输距离为10km,传输介质可为双绞线。

基于CAN总线以上的特点,把它应用于系统分布比较分散且需要在同一总线上挂接多个节点的场合是非常适合的。

目前广泛流行的CAN总线器件有两大类:一类是独立的CAN控制器,如PhilipS 公司的PCA82C200,SJA1000及Intel82256/82257等;另一类是带有在片CAN的微控制器,如P8XC582等。

其中Philips公司的PCA82C200是符合CAN2. 0A协议的总线控制器,SJA1000是它的替代产品,它是应用于汽车和一般工业环境的独立CAN总线控制器。

CAN控制器SJA1000中文资料

CAN控制器SJA1000中文资料
-5-
广州周立功单片机发展有限公司 Tel 020 38730976 38730977 Fax:38730925
器 RXB 13 个字节 作为接收 FIFO RXFIFO 长 64 字节 的一个窗口 可被 CPU 访问 CPU 在此 FIFO 的支持下 可以在处理信息的时候接收其它信息 6.1.4 验收滤波器 ACF 验收滤波器把它其中的数据和接收的识别码的内容相比较 以决定是否接收信息 在纯粹的接收测试中
6.2 CAN 控制器的详细说明 SJA1000 在软件和引脚上都是与它的前一款 PCA82C200 独立控制器兼容的 在此基础上它增加了很 多新的功能 为了实现软件兼容 SJA1000 增加修改了两种模式 y BasicCAN 模式 与 PCA82C200 兼容 y PeliCAN 模式 扩展特性 工作模式通过时钟分频寄存器中的 CAN 模式位来选择 复位默认模式是 Basic CAN 模式 6.2.1 与 PCA82C200 兼容性 在 Basic CAN 模式中 SJA1000 模仿 PCA82C200 独立控制器所有已知的寄存器 在 6.2.1.1 到 6.2.1.4 节中所描述的特性不同于 PCA82C200 这主要是为了软件上的兼容性 6.2.1.1 同步模式 在 SJA1000 的控制寄存器中没有 SYNC 位 在 PCA82C200 中是 CR.6 位 同步只有在 CAN 总线上 弱势-支配 控制 的转换时才有可能发生 写这一位是没有任何影响的 为了与现有软件兼容 读取 这一位时是可以把以前写入的值读出的 对触发电路无影响 6.2.1.2 时钟分频寄存器 时钟分频寄存器用来选择 CAN 工作模式 Basic CAN /Peli CAN 它使用从 PCA82C200 保留下来的 一位 象在 PCA82C200 中一样 写一个 0-7 之间的值 就将进入 Basic CAN 模式 默认状态是 12 分频 的 Motorola 模式和 2 分频的 Intel 模式 保留的另一位补充了一些附加的功能 CBP 位 见表 49 的置位 使内部 RX 输入比较器旁路 这样在使用外部传送电路时可以减少内部延时 6.2.1.3 接收缓冲器 PCA82C200 中双接收缓冲器的概念被 Peli CAN 中的接收 FIFO 所代替 这对软件除了会增加数据溢出 的可能性之外 不会产生应用上的影响 在数据溢出之前 缓冲器可以接收两条以上信息 最多 64 字节 6.2.1.4 CAN 2.0B SJA1000 被设计为全面支持 CAN 2.0B 协议 这就意味着在处理扩展帧信息的同时 扩展振荡器的误 差被修正了 在 Basic CAN 模式下只可以发送和接收标准帧信息 11 字节长的识别码 如果此时检测到 CAN 总线上有扩展帧的信息 如果信息正确 也会被允许且给出一个确认信号 但没有接收中断产生 6.2.2 Basic CAN 和 Peli CAN 模式的区别 在 Peli CAN 模式下 SJA1000 有一个含很多新功能的重组寄存器 SJA1000 包含了设计在 PCA82C200 中的所有位及一些新功能位 Peli CAN 模式支持 CAN 2.0B 协议规定的所有功能 29 字节的识别码 SJA1000 的主要新功能

SJA1000简介2010

SJA1000简介2010

SJA1000简介2010-3-17 5:57:00PCA82C250提供对总线的差动发送和对CAN控制器的差动接收功能,也增大了通信距离,提高了系统的瞬间抗干扰能力,保护总线,降低射频干扰(RF I),实现了热防护等功能。

发送子程序负责节点报文的发送,由CAN控制器SJA 1000独立完成,将命令寄存器里的发送请求标志置位,即可发送SJA1000发送缓冲区中的报文。

CAN总线及CAN控制器SJA1000简介CAN总线最初是德国Bosch公司在1986 年为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种支持分布式实时控制系统的串行数据通讯总线。

CAN总线与其它通信网的显著不同之处在于:(1)报文传送中不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符过滤报文,该收的收下,不收的弃用。

其好处是可线上网下网、即插即用和多站接收。

(2)特别强化了对数据安全性的关注,满足控制系统及其它较高数据要求的系统需求。

另外CAN总线采用短帧结构,借助接收滤波的多地址帧传送,受干扰概率低,每帧信息都有CRC校验及其它检错措施。

响应远程数据请求,配置灵活,具有全系统的数据相容性。

节点数主要取决于总线驱动电路,目前最多可达110个节点。

CAN总线符合ISO11898标准,通信速率高,最大传输速率可达1Mb it/S,最大传输距离为10km,传输介质可为双绞线。

基于CAN总线以上的特点,把它应用于系统分布比较分散且需要在同一总线上挂接多个节点的场合是非常适合的。

目前广泛流行的CAN总线器件有两大类:一类是独立的CAN控制器,如PhilipS公司的PCA82C200,SJA1000及Intel82256/82257等;另一类是带有在片CAN的微控制器,如P8XC582等。

其中Philips公司的PCA82C200是符合CAN 2. 0A协议的总线控制器,SJA1000是它的替代产品,它是应用于汽车和一般工业环境的独立CAN总线控制器。

项目二 汽车CAN总线技术基本原理(任务四SJA1000CAN控制器及其应用)

项目二 汽车CAN总线技术基本原理(任务四SJA1000CAN控制器及其应用)

0
接收中断使能 1
0
功能
使能 禁止 使能 禁止 使能 禁止 使能 禁止 使能 禁止 使能 禁止 使能 使能 使能 禁止
Peli_RXD: PUSH ACC PUSH PSW CLR EA ;//关CPU中断
RE6: MOV DPTR,#SJA_IR MOVX A,@DPTR ANL A,#01H CJNE A,#00H,RE7;接收中断 SJMP RE8
IR.3 DOS 溢出中 1 置位

复位
IR.2 EI 错误报 1 置位
警中断 0 复位
IR.1 TI 发送中 1 置位

0 复位
IR.0 RI 接收中 1 置位

0 复位
Peli_RXD: PUSH ACC PUSH PSW CLR EA ;//关CPU中断
RE6: MOV DPTR,#SJA_IR MOVX A,@DPTR ANL A,#01H CJNE A,#00H,RE7;接收中断 SJMP RE8
----
状态
----
3(IR) 中断
---
中断
---
4(IER) 中断使能
中断使能 中断使能 中断使能
5
保留(00H) ---
保留(00H) ---
6(BTR0) 总线定时0
---
总线定时0 总线定时0
7(BTR0) 总线定时1
---
总线定时1 总线定时1
8(OCR) 输出控制
---
输出控制 输出控制
接收缓存器 标识符RTR,DLC 字节1-8 时钟驱动器
10 11 12-19
20 21 22-29 31
7
6
测试方 同步 式

CAN总线的实现-SJA1000实例

CAN总线的实现-SJA1000实例

一、以下是我做的CAN节点的测试程序, 实现两个节点传送数据,程序主要分三部分SJA1000 的初始化,接收数据,发送数据./******************************************************函数原型:bit Sja_1000_Init(void)**功能:初始化SJA10000**入口参数: 无**返回值:0:初始化成功1:复位失败2: 测试sja1000失败3:设置失败4:设置验收滤波器失败5:设置波特率失败*****************************************************/unsigned char Sja_1000_Init(void){bit s;EA=0;s=BCAN_ENTER_RETMODEL();if (s==1) return 1;s=BCAN_CREATE_COMMUNATION();if (s==1) return 2;s=BCAN_SET_OUTCLK(0xc0);//Pelicanif (s==1) return 3;s=BCAN_SET_OBJECT(0xFF,0x4E,0x16,0x00,0xff,0x00,0x00,0x00);if (s==1) return 4;s=BCAN_SET_BANDRATE(CAN_BPS_1M);if (s==1) return 5;SJA_BCANAdr=REG_OCR ;*SJA_BCANAdr=0x1a;SJA_BCANAdr=REG_IER;*SJA_BCANAdr=0x03;s=BCAN_SET_CONTROL(0x08);if (s==1) return 6;EA=1;return 0;}}/*********************************************************************函数原型: bit BCAN_SET_OUTCLK( unsigned char Clock_Out) **参数说明: ** Clock_Out:存放时钟分频寄存器(CDR)的参数设置**返回值: ** 0 ;设置成功** 1 ;设置失败**说明:设置SJA1000的时钟分频。

周立功CAN控制器SJA1000的控制模块BCAN

周立功CAN控制器SJA1000的控制模块BCAN

状态
SR.4 SR.3
SR.2
SR.1
SR.0
IR.7
IR.6
IR.5
IR.4 中断
IR.3
IR.2
IR.1
IR.0 验收代码 AC.7 0
验收屏蔽 AM.7 0
BTR0.7
BTR0.6
BTR0.5
BTR0.4 总线定时0
BTR0.3
BTR0.2
BTR0.1
BTR0.0
BTR1.7
BTR1.6
BTR1.5
2.3.3 各寄存器功能介绍 下面根据实际应用情况 具体介绍 BasicCAN 模式下 SJA1000 内部各寄存器的功能
2.3.3.1 控制寄存器(CR) 控制寄存器位于 SJA1000 寄存器区的 0 地址
如表 4 所示 表 4 控制寄存器各位的说明 CAN 地址 0
用于设置 SJA1000 访问模式和各种中断
软件置位控制寄存器中的复位请求位 或总线关闭 后 内部寄存器的配置
表 3 内部寄存器在复位模式下的配置 BasicCAN 模式
寄存器

CR.7
符号
保留
名称
硬件复位 0
值 软件或总线关闭 复位CR.0 0
CR.6
保留
×
×
CR.5
保留
1
1
控制
CR.4 CR.3
OIE
溢出中断使能
EIE
错误中断使能
×
×
×
×
完全兼容 PCA82C200 的基础上 增加了一种新的工作模式 PeliCAN SJA1000 完全支持具有很多新特性的 CAN 2.0B 协议 SJA1000 的工作模式通过其内部的时钟分频寄存器 CDR 中的 CAN 模式位来选择 硬 件复位时默认模式是 BasicCAN 工作模式

CAN通信控制器SJA1000

CAN通信控制器SJA1000

0
1 0
无动作
释放;作为RXFIFO中报文存贮空间的接收缓冲器被释 放 无动作 出现;如果不是已在进行中,等待处理的发送请求被取 消。(注:正在进行的发送是不能被中止的) 空缺;无动作 出现;一个报文将被发送 空缺;无动作
CMR.2
RRB
释放接收缓冲器
CMR.1
AT
中止发送
1 0
CMR.0
TR
发送请求
(1) CAN控制器模块的说明
6.位定时逻辑(BTL) 位定时逻辑监视串行CAN总线和处理与总 线有关的位定时。它被同步于一个报文起始 的“隐性至显性”总线跳变时的CAN总线上 的位流(硬同步),以及重同步于一个报文 接收期间的更多的跳变(软同步)。
(1) CAN控制器模块的说明
7.错误管理逻辑(EML) EML 负责传送层中调制器的错误界定。它 接收来自BSP的错误报告,然后将错误统计量 通知给BSP和IML
SJA1000 对微控制器来说,是以存贮器 - 映像 I/O 设备出现的。对 SJA1000 的操作是通过操作 SJA1000中的寄存器来实现的。 SJA1000地址区包括控制段和报文缓冲器。控 制段在初始化加载期间是可被编程的,以配置通 信参数(例如,位定时)。 CAN 总线上的通信 也由微控制器通过该段来控制。在初始化期间, CLKOUT 信号可以被编程为由微控制器指定的 一个值。

2 一般说明
SJA1000有两种工作模式:
BasicCAN模式——与PCA82C200兼容的模式 PeliCAN模式 ——扩展功能模式
工作模式通过时钟分频寄存器中的 CAN模式位来选择,复位 默认模式是BasicCAN模式。 两种封装形式:一种为 28引脚的塑质双列式

现场总线技术通信控制器SJA1000

现场总线技术通信控制器SJA1000

发送数据字节7
发送数据字节8
现场总线技术通信控制器SJA1000
接收缓冲区
•几点说明: •1、接收缓冲区的整体配置和发送缓冲区相似, 因为接收缓冲区的数据即是由发送缓冲区发送 过来的数据;
•2、接收缓冲区是RXFIFO中可访问的部分,位 于CAN地址的20—29之间;
•3、标识符、远程发送请求位、数据长度码和
0 无动作
CMR.1 AT
中止发送
1
出现;将取消等待处理的发送请求。 (注:正在进行的发送是不能被中止的)
0 空缺;无动作
CMR.0 TR
PPT文档演模板
发送请求
1 出现;一个报文将被发送
0
空缺;无现动场作总线技术通信控制器SJA1000

符号
名称

CMR.7
-
CMR.6
-
CMR.5
-
-
- 保留
-
0 禁止; SJA1000不向微控制器发送中断信号
1
使能;当一个报文被无错接收时,SJA1000发出 一个接收中断信号给微控制器
0 禁止; SJA10现00场不总向线技微术控通制信控器制发器送SJ中A10断00信号
命令寄存器(CMR)
• 对微控制器来说是只写存储器。如果对 该地址进行读访问,返回•各值个位为的功“能1如1下1:11111”。
错误中断使能时,错误状态位或总线状态位的 错误中断 1 变化会置位此位
发送中断
0 微控制器的任何读访问可自动清除此位
发送缓冲器状态从逻辑0至逻辑(使能)
时,此位被置位,表示发送完成
接收中断
0 微控制器的任何读访问可自动清除此位
1
当接收FIFO不空且接收中断使能位被置为逻辑 1(使能)时,此位被置位,表示有数据待接收

SJA1000中CAN总线同步跳转宽度+波特率控制寄存器的设置

SJA1000中CAN总线同步跳转宽度+波特率控制寄存器的设置

转:SJA1000中CAN总线同步跳转宽度+波特率控制寄存器的设置SJA1000 CAN控制器对时序的设置真的一点也不马虎,到底是怎么样的不马虎法呢?这一篇笔记就让我们听听他的故事。

在总线时序寄存器0和1中,除了对总线的波特率可编程以外,还加了对采样位与同步跳转宽度位域的设置,我们一一的来探索吧:采样位,也就是对[采样]动作进行设置的标志位,在总线时序寄存器1的最高位,也就是SAM位。

当SAM为逻辑1时,采样的次数为3次,反之SAM为逻辑0,采样次数为1次。

这里就存在一个问题,那么什么时候才需要将SAM位置1呢?网络中有这样一个定义,当总线的波特率为中,低等级时,建议将SAM位置1,则当总线波特率为高时SAM位置为0,那么说得比较具体一点的,当总线波特率从100k起为高波特率,波特率从10k~99k之间为中波特率,波特率10k以下为低波特率。

(以上的波特率区分等级是从网络中得知的,见笑了)接下来要探索的就是同步跳转宽度位域,这个专业词听起来很像很可怖似的,但实际上只要明白后会发现到很容易理解的。

在CAN 2.0 协议里,CAN使用了同步跳转宽度位域来兼容不同波特率的总线,视觉化的说法就是说,除了本身设定的波特率以外,该波特率还有上限下界的容差值这些波特率的上限与下界容差换傻瓜的话来说,假设有一个节点将总线时序设置为10kbps,该节点除了支持目前与该它拥有同样总线时序的节点以外,该节点还支持接近总线时序容差值的节点,那么10kbps可以容差值可以假设为10.9kbps,11.2kbps, 9.2kbps , 8.5kbps ...等等,换另一句话来说就是,只要总线时序为10kbps的节点一设置(启动)同步跳转宽度位域,那么如果其他节点拥有总线时序为9.X kbps的话,都会被节点一相互兼容。

那么控制同步跳转宽度位域的寄存器就是总线时序寄存器0的最高两位,SJW.0与SJW.1同步跳转宽度位域的公式如下:Tsjw的值是系统时钟Tscl乘于SJW.0~1的设置。

第七章 CAN总线控制器SJA1000

第七章 CAN总线控制器SJA1000

CAN总线收发接口电路82C250
• 82C250是CAN控制器与物理总线之间的 接口,它最初是为汽车高速通信(最高达 1Mbps)的应用而设计的。 • 器件可以提供对总线的差动发送和接收 功能。
CAN 总线的应用 CAN控制器SJA1000在系统中的位置
分布模块1
传感器 执行元件 MMI 模块控制器
新增功能:
– 标准结构和扩展结构报文的接收和发送; – 64字节的接收FIF0: – 标准和扩展帧格式都具有单/双接收滤波器(含接收 屏蔽和接收码寄存器); – 可进行读/写访问的错误计数器; – 可编程的错误报警限制; – 最近一次的错误代码寄存器; – 每一个CAN总线错误都可以产生错误中断; – 具有丢失仲裁定位功能的丢失仲裁中断; – 单发方式(当发生错误或丢失仲裁时不重发); – 只听模式(监听CAN总线,无应答,无错误标志; – 支持热插拔(无干扰软件驱动位速率检测); – 硬件禁止CSI参考模型中的两层:物理层 接受滤波、超载 和数据连路层
逻辑链路控制(LLC) 媒体访问控制(MAC) 物理信令(Physical Sisnal Lins, PSL) 物理媒体附件( Physical Attachment, PMA) 媒体接口(Medium Dependent Interface, MDI) 数据 链路 层
SJAl000在软件和引脚上都是与它的前—款 PCA82C200独立CAN控制器兼容的,在此基础上 增加了很多新的功能。为了实现软件兼容, SJAl000采用了两种工作方式: Basic CAN方式(PCA82C200兼容方式)和PeliCAN方 式(扩展特性方式)。工作方式通过时钟分频寄存 器中的CAN方式位来选择。 上电复位默认工作方式是Basic CAN方式,Basic CAN和PeliCAN方式的区别如下:在PeliCAN方式 下,SJAl000有一个重新设计的含很多新功能的 寄存器组。SJAl000包含PCA82C200中的所有位, 同时增加了一些新的功能位。PeliCAN方式支持 CAN2.0B协议规定的所有功能(29位的标识符)。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


上一页 下一页 返回
第六节 SJA1000详细介绍

⑥最近一次的误码寄存器; ⑦对每一个CAN总线错误的错误中断; ⑧仲裁丢失中断以及详细的位位置; ⑨一次性发送(当错误或仲裁丢失时不重发); (10)只听模式(CAN总线监听,无应答,无错误标志); (11)支持热插(无干扰软件驱动位速检测); (12)硬件禁止CLKOUT输出。
第七章 CAN控制器SJA1000

第一节 CAN控制器的作用 第二节 SJA1000概述 第三节 SJA1000内部结构及引脚定义 第四节 SJA1000在系统中的位置 第五节 CAN的控制模块

第六节 SJA1000详细介绍
第一节 CAN控制器的作用


在CAN的网络层次结构中,数据链路层和物理层是保证通信 质量直观重要、不可缺少的部分,也是网络协议中最复杂的 部分。CAN控制器就是扮演这个角色,它是一块可编程电路 的组合来实现这些功能,对外它提供了与微处理器的物理线 路的接口。通过它的编程,CPU可以设置它的工作方式,控 制它的工作状态,进行数据的发送和接收,把应用层建立在 它的基础之上。 目前,许多知名的半导体厂家都生产了CAN控制芯片。其类 型一种是独立的,一种是与微处理器集成在一起的,就在前 面一章已经进行过描述。由于在实际应用中我们只要掌握了 其中的一种,其余的就可以触类旁通,这也是CAN能够迅速 推广的原因。

上一页 下一页 返回
第六节 SJA1000详细介绍

4.命令寄存器(CMR)

命令位初始化SJA1000传输层上的动作。命令寄存器对单 片机来说是只写存储器。如果去读这个地址,返回值是 “1111 1111”。两条命令之间至少有一个内部时钟周期, 内部时钟的频率是外部振荡频率的1/2.命令寄存器各位功能 如表7-5所示。
下一页 返回
第五节 CAN的控制模块





4.接收缓冲器 接收缓冲器是ACF和CPU之间的接口,用来储存从CAN总 线上接收并被确认的报文。接收缓冲器作为接收FIFO的一 个窗口,可被CPU访问。CPU在此FIFO的支持下可以在处 理报文的时候接收其他报文。 5.验收滤波器 验收滤波器把它其中的数据和接收的识别码的内容相比较, 以决定是否接收报文。在纯粹的接收测试中,所有的报文都 保存在RXFIFO中。 6.位流处理器 位流处理器是一个在发送缓冲器、接收缓冲器和CAN总线之 间控制数据流的程序装置。它还在CAN总线上执行错误检测、 仲裁、填充和错误处理。


返回
第五节 CAN的控制模块




本节以SJA1000为例,说明CAN的控制模块。图7-4是 SJA1000的模块结构,其功能如下: 1.CAN核心模块 根据CAN规范,CAN核心模块控制CAN帧的发送和接收。 2.接口管理编辑 接口管理逻辑解释来自CPU的命令,控制CAN寄存器的寻 址,向主控制器提供中断信息和状态信息。 3.发送缓冲器 发送缓冲器是CPU和BSP之间的接口,能够存储发送到 CAN网络上的完整报文。缓冲器长13个字节,由CPU写入、 BSP读出。
上一页 下一页 返回
第二节 SJA1000概述

⑧支持热插拔(软件位速率检测); ⑨验收滤波器扩展(4字节的验收代码,4字节的屏蔽); 10)自身报文接收(自接收请求)。 (9)24MHz时钟频率。 (10)对不同微处理器的接口。 (11)可编程的CAN输出驱动器配置。
(12)增强的温度适应。
下一页 返回
第二节 SJA1000概述



(6)同时支持11位和29位识别码。 (7)位速率可达1Mb/s。 (8)PeliCAN模式扩展功能有: ①可读/写访问的错误计数器; ②可编程的错误报警限制; ③最近一次错误代码寄存器; ④对每一个CAN总线错误的中断; ⑤具体控制位控制的仲裁丢失中断; ⑥单次发送(无重发); ⑦只听模式(无确认无活动的出错标志);
上一页 下一页 返回
第六节 SJA1000详细介绍


四、PeliCAN模式
1. PeliCAN地址列表 PeliCAN地址分配如表7-11所示。 2.模式寄存器(MOD)

模式寄存器(MOD)的内容是用来改变CAN控制器的行为 方式。
(1)工作模式中的模式寄存器。模式寄存器各位的功能说 明如表7-12。 (2)模式寄存器的复位值。模式寄存器的复位值如表7-13 所示。
返回
第二节 SJA1000概述





SJA1000是一种独立的CAN控制器,它在汽车和普通的工 业应用上有先进的特征。它是Philips半导体公司 PCA82C200 CAN控制器的替代产品,而且它增加了一种 新的工作模式——PeliCAN,这种模式支持具有很多新特征 CAN 2.0B协议 SJA1000的基本特征如下: (1)与PCA82C200独立的CAN控制器引脚兼容。 (2)与PCA82C200独立的CAN控制器电器兼容。 (3)具有PCA82C200模式。 (4)扩展的接收缓冲器。 (5)支持CAN2. 0A和CAN2.0B协议
上一页 下一页 返回
第六节 SJA1000详细介绍


三、BasicCAN的寄存器及其功能描述
1. BasicCAN分配地址表 BasicCAN分配地址表如表7-2所示。 2.寄存器复位值 检测到有复位请求后将中止当前接收/发送的报文而进入复 位模式。当想复位位传送了“1-0”的下降沿,CAN控制器 将返回工作模式。寄存器复位值如表7-3所示。 3.控制寄存器CR 控制寄存器的内容是用于改变CAN控制器的行为的。这些位 可以被单片机设置或复位,单片机可以对控制寄存器进行读 /写操作。控制寄存器各位说明如表7-4所示。

8.错误管理逻辑
错误管理逻辑负责传送层模块的错误管制。它接收BSP的出
错报告,通知BSP和IML进行错误统计。
上一页
返回
第六节 SJA1000详细介绍


一、与PCA82C200兼容性
在Basic CAN模式中,SJA1000模仿PCA82C200独立 控制器所有已知的寄存器。在如下描述的特性不同于 PCA82C200,这主要是为了软件上的兼容性。 1.同步模式 在SJA1000的控制寄存器中没有SYNC位。同步只有在 CAN总线上“隐性——显性”的转换是才有可能发生。因此, 写这一位是没有任何影响的。为了与现有软件兼容,读取这 一位时是可以把以前写入的值读出的。 2.时钟分频寄存器 时钟分频寄存器用来选择CAN工作模式。它使用从 PCA82C200保留下来的一位。象在PCA82C200中一样, 写一个0~7之间的值,就将进入Basic CAN模式。默认状 态是12分频的Motorola模式和2分频的Intel模式。保留 的另一位补充了一些附加功能。
7.发送缓冲区列表 发送缓冲区的全部内容列表如表7-8。缓冲器是用来存储单 片机要SJA1000发送的信息的。它被分为描述符区和数据 区。发送缓冲器的读/写只能由单片机在工作模式下完成。 在复位模式下读出的值总是“FFH”。

上一页 下一页 返回
第六节 SJA1000详细介绍



(1)识别码(ID)。识别码有11位(ID.0~ID.10)。 ID.10是最高位,在仲裁过程中是最先被发送到总线上。识 别码的值越低,其优先级越高。 (2)远程发送请求(RTR)。如果此位置1,总线将以远 程帧发送数据。这意味着此段中没有数据字节。 (3)数据长度码(DLC)。报文的数据区的字节数根据数 据长度码编制。在远程帧传送中,因为RTR被置位,数据长 度码是不被考虑的。这就迫使发送/接收数据字节数为0,总 之,数据长度码必须正确设置以避免两个CAN控制器用同样 的识别机制启动远程帧传送而发生总线错误。 (4)数据域。传送的数据字节数由数据长度码决定。发送 的第一位是地址12单元的数据字节1的最高位。
上一页 下一页 返回
第六节 SJA1000详细介绍




8.接收缓冲器 接收缓冲器的全部列表和发送缓冲器类似。接收缓冲器是 RXFIFO中可访问的部分。位于CAN地址的20~29之间。 识别码、远程发送请求位和数据长度码同发送缓冲器的相同, 只不过是在地址20~29. 9.验收滤波器 在验收滤波器的帮助下,CAN控制器能够运行RXFIFO只接 收同识别码的验收滤波器中预设值相一致的信息。验收滤波 器通过验收代码寄存器和验收屏蔽寄存器来定义。 (1)验收代码寄存器(ACR)。验收代码寄存器的位分配 如表7-9所示。 (2)验收屏蔽寄存器(AMR)。验收屏蔽寄存器的位配置 如表7-10所示。


上一页 下一页 返回
第六节 SJA1000详细介绍







3.命令寄存器(CMR) (1)工作模式中的CMR各位的功能。命令寄存器各位的功 能如表7-14所示。 (2)命令寄存器的复位值。命令寄存器的复位值如表7-15 所示。 4.状态寄存器SR 状态寄存器反映CAN控制器的状态。状态寄存器对CPU来 说是只读内存。 (1)工作模式中状态寄存器各位的功能。工作模式中状态 寄存器各位的功能如表7-16所示。 (2)状态寄存器的复位值与含义。状态寄存器的复位值与 含义如表7-17所示。
下一页 返回


第六节 SJA1000详细介绍

PCA82C200中双接收缓冲器的概念被PeliCAN中的接收 FIFO所代替。这对软件除了会增加数据溢出的可能性外, 不会产生应用上的影响。在数据溢出之前,缓冲器可以接收 两条以上报文。 4.支持CAN 2.0B协议 SJA1000被设计为全面支持CAN 2.0B协议,这就意味着 在处理扩展帧报文的同时,扩展振荡器的误差被修正了。在 BasicCAN模式下只可以发送和接收标准振报文。如果此时 检测到CAN总线上有扩展帧报文,如果报文正确,也会被允 许且给出一个确认信号,但没有接收中断产生。
相关文档
最新文档