CAN控制器SJA1000与单片机的接口电路

合集下载

CAN总线应用电路

CAN总线应用电路

涡流量计CAN总线接口电路图快速瓶劲识别-更好的负载测试方法CAN总线是一种串行数据通信协议,在CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可以完成对通信数据成帧处理。

涡流量计CAN总线接口的具体电路如图1所示。

笔者用SJA1000作为流量计的CAN控制器,与CPU(单片机)的I/O口直接相连,再通过PCA82C250组成CAN总线。

这种结构很容易实现CAN网络节点中的信息收发,从而实现对现场的控制。

SJA1000的AD0~AD7连接到MSP420F149的P0口,INT接到P1.0,/CS接到P1.1,/RD连接到P1.2,/WR连到P1.3,ALE连到P1.4,SJA1000的RX0与TX0分别通过两个高速光耦CNW137与PCA82C250相连后,连到CAN总线上。

PCA82C250为CAN总线收发器,是CAN控制器与CAN总线的接口器件,对CAN 总线差分方式发送,其RS引脚用于选择PCA82C250的工作方式:高速方式、斜率方式。

RS接地为高速,RS引脚串接一个电阻后再接地,用于控制上升和下降斜率,从而减小射频干扰。

RS引脚接高电平,PCA82C250处于等待状态。

此时,发送器关闭,接收器处于低电流工作,可以对CAN总线上的显性位做出反应,通知CPU。

实验数据表明15~200K 为较理想的取值范围,在这种情况下,可以使用平行线或双绞线作总线,本文中PCA82C250的斜率电阻为取30K。

CNW137为高速光耦,最高速度为10Mbps,用于保护CAN总控制器SJA1000。

CAN 总线的终端匹配电阻起相当重要的作用,不合适的电阻会使数据通信的抗干扰性及可靠性大大降低,甚至无法通信,范围为108~132Ω,本文使用的电阻为124Ω。

SJA1000的功能简介CAN通信协议主要由CAN控制器完成。

SJA1000是适用于汽车和一般工业环境控制器局域网(CAN)的高集成度独立控制器,具有完成高性能通信协议所要求的全部必要特性,具有简单总线连接的SJA1000可完成物理层和数据链路层的所有功能,应用层功能可由微控制器完成,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复用的地址/数据总线访问寄存器和控制读/写选通信号都在这里处理。

基于SJA1000的CAN节点设计v1.0

基于SJA1000的CAN节点设计v1.0

基于SJA1000的CAN节点设计文件信息类别内容关键词SJA1000,CTM系列隔离CAN收发器基于SJA1000的CAN节点设计摘要修订历史版本日期原因Rev X1 2006-12-13 内部制定初稿Rev 1.0 2006-12-15 第一次发布目录1. 基于SJA1000的CAN节点设计 (3)1.1 硬件设计电路 (3)1.1.1收发器隔离电路设计 (3)1.1.2 CAN总线接口设计 (4)1.2 软件设计 (5)程序清单1.1 定义片选地址 (5)程序清单1.2 初始化SJA1000 (5)程序清单1.3 发送报文 (6)2. 应用实例 (7)3. 声明 (1)1.基于SJA1000的CAN节点设计1.1 硬件设计电路CAN总线是一种最有前途的现场总线,因其优异性能而在工业控制、汽车电子、安防等方面得到广泛应用。

设计CAN-bus通讯接口是很重要的一个环节,设备的正确运行与其密切相关。

如图 1.1给出了一个实际的CAN-bus通讯单元电路图,电路结构为:MCU(P89C52)+CAN控制器(SJA1000)+隔离CAN收发器(CTM Module)。

图 1.1 CAN-bus通讯单元原理图如图 1.1所示,整个系统电源采用+5V电源输入,上电复位芯片(CAT810L)可保证上电时正确的启动系统。

微处理器采用PHILIPS的P89C52单片机,该系列单片机是80C51微控制器的派生器件,采用先进的CMOS工艺制造,指令系统与80C51完全相同。

CAN控制器采用PHILIPS的SJA1000,SJA1000是一款独立的控制器,用于汽车和一般工业环境中的控制器局域网络。

它是PHILIPS半导体PCA82C200 CAN控制器(BasicCAN)的替代产品。

而且,它增加了一种新的工作模式(PeliCAN),这种模式支持具有很多新特性的CAN 2.0B 协议,是目前市面上用的最广的一款CAN控制器。

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)

CAN总线数据通信系统的设计

CAN总线数据通信系统的设计

封面作者:PanHongliang仅供个人学习CAN总线数据通信系统的设计摘要现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。

它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。

CAN(ControllerArea Network)属于现场总线的范畴,是一种多主方式的串行通讯总线,数据通信实时性强。

与其它现场总线比较而言,CAN总线具有通信速率高、容易实现、可靠性高、性价比高等诸多特点。

本系统要在单片机中实现CAN总线的接口,通过CAN总线,实现两个模块之间的数据通讯。

系统主要由四部分所构成:PC机、微控制器80C51、独立CAN通信控制器SJA1000和CAN总线收发器PCA82C250。

微处理器80C51负责SJA1000的初始化,通过控制SJA1000实现数据的发送和接收等通信任务。

CAN总线节点的软件设计主要包括三大部分:CAN节点初始化、报文发送和报文接收。

本系统通过扩展CAN总线控制器SJA1000,在单片机系统中实现了CAN总线的接口,并且编写了SJA1000的驱动程序,通过读写其的内部寄存器,完成工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR)和接收代码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER)的设置等基本操作;利用各基本操作,完成了对SJA1000的初始化,并且实现了数据发送和接收。

目录第1章原理与方案31.1设计目的与要求31.2CAN总线介绍31.3设计方案31.3.1 硬件设计方案41.3.2 软件设计方案5第2章硬件连接与说明52.1硬件连接52.1.1 模块使用说明52.1.2 实验箱连线62.2CAN总线控制器SJA100062.3CAN控制器接口PCA82C2506第3章软件流程图及说明错误!未定义书签。

3.1软件流程图73.1.1 主程序流程图73.1.2 初始化子程序流程图73.1.3 发送数据子程序流程图错误!未定义书签。

基于SJA1000的CAN总线通信模块设计

基于SJA1000的CAN总线通信模块设计

3 通信模块的硬件设计[2]
CAN 通信系统一般包括和高速增强型并口(EPP)的接口 上位机模块(EPP-CAN)以及底层模块。这个底层模块是由单 片机 CAN 通信模块组成的单片机系统,不带其他的接口。
3.1 EPP 和CAN的连接
利用 PC 机提供的平行口(打印机接口)实现和CAN 控制器 的通信。我们选用 CAN 网络控制器芯片SJA1000,他的数据通信 是采用8位并行结构,为了简化电路的设计,避免串并之间的相互 转化,采用计算机的并行口。通过 PC 的 EPP 口和 CAN 总线控制 器芯片 SJA1000 相连。我们设计了一个 CAN-EPP 接口板。这个 接口板主要由 CAN 控制器芯片 SJA1000 和 CAN 控制器接口芯片 82C250 组成。接口板的设计如下图 3-1 所示。我们将并行口的 WRITE ,DATASTB以及 ADDSTB 信号线分别和 SJA1000 的 ALE,RD 和 WR 引脚相连,8 位数据线对应相连,而 SJA1000的 INT 引脚加 上反门和并行口的 INT 信号线相连(SJA1000的中断逻辑和并行 口的中断逻辑正好相反)即可完成简单的 CAN-EPP 接口板功能。
逻辑 EML、位时序逻辑 BTL、位流处理器 BSF 几个部分。 CAN 核心模块负责 CAN 信息帧的收发和 CAN 协议的实现。
接口管理逻辑负责同外部主控制器的接口,该单元中的每一个寄存 器都可由主控制器通过SJA1000 的地址/数据总线访问。主控制 器可直接将标识符和数据送入发送缓冲区然后置位命令寄存器 CMR 中的发送请求位 T R 启动 C A N 核心模块读取发送缓冲区 中的数据, 按 CAN 协议封装成一完整 CAN 信息帧通过收发器 发往总线,验收滤波器单元完成接收信息的滤波,只有验收滤波通 过且无差错才把接收的信息帧送入接收FIFO 缓冲区且置位接收 缓冲区状态标志SR.0 表明接收缓冲区中已有成功接收的信息帧。

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总线控制器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档