基于SJA1000的CAN总线通信模块设计
- 格式:pdf
- 大小:442.57 KB
- 文档页数:4
基于SJA1000的CAN总线智能控制系统设计SJA1000-Based CAN-Bus Intelligent Control System Design武汉理工大学系统仿真与控制中心 陆前锋 刘 波 陈明昭Lu Q ianfeng,Liu Bo,Chen Mingzhao 摘要:本文介绍了一种新型的现场总线控制器SJ A1000的基本原理结构及功能特点,重点叙述了基于CAN控制器SJA1000的智能控制系统硬件电路及软件设计,给出了初始化程序和部分通信程序。
关键词:CAN总线 SJ A1000 智能控制 系统设计Abstract:This pap er intro duces the element elementary configuratio n and functional character is tics of SJA1000,a hard circu it and soft co nfiguration of the intelligent controller system based on CAN co ntroller SJA1000is presented in the paper.A t last,the initialization an d co mmu nication pro-gram are given.Kewords:CAN bus SJA1000 Intelligent co ntr oll er System design中图分类号:TP571 文献标识码:A 文章编号:1003-7241(2003)01-0061-041 引言CAN总线是德国Bosch公司从80年代初为解放汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。
通信速率可以1Mbps,通信距离可达10KM。
CAN 总线通信接口中集成了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总线接口设计一、SJA1000简介SJA1000是一种独立的CAN控制器,用于移动目标和一般工业环境中的控制器局域网络(CAN)。
它是Philips公司早期CAN控制器PCA82C200(BasICCAN)的替代品,而且增加了一种新的工作模式(PeliCAN),这种模式支持具有很多新功能的CAN2.0B协议。
SJA1000与微处理器的接口主要由8根数据和地址分时复用线完成:AD0~AD7、ALE/AS、、/E、、、MODE和,其中MODE为接口方式选择信号,可设置成Intel方式或Motorola方式。
区别在于:Intel模式下,处理器对SJA1000写时,用、作为读、写数据信号,ALE下降沿锁存地址(此时地址信号要保证基本的建立保持时间),仅在读、写数据时为低;Motorola模式下,读、写信号用区分,用/E选通数据(下降沿锁存),AS和CS类似于Intel的ALE和。
二、CAN控制器与DSP的接口设计方法SJA1000的数据和地址信号为分时复用,而DSP为数据、地址信号分离的结构,而且DSP不提供ALE信号,设计的关键就是DSP要把SJA1000的地址当成数据写入并同时产生ALE信号。
分析读写信号所要求的最短有效时间,由于读低电平到数据有效的时间最长为50ns,所以要保证读信号有效时间至少50ns,ADSP21062在用2个软等待时,其低电平时间为62.5ns(25ns/2+2乘以25ns),可以满足要求。
三、DSP的接口信号和时序与早期的处理器不同,DSP芯片的片外引脚都采用地址线和数据线分离的设计方法,不再使用地址数据分时复用线,也没有ALE信号,这样就给CAN控制器与DSP的接口带来一定困难,且不同的DSP外部引脚和时序也略。
基于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控制器。
基于SJA1000的高可靠CAN总线通讯智能单元设计【摘要】CAN(Controller Area Network)总线是一种现场总线,由于其具有可靠性高、抗干扰能力强和实时性强的特点,而被广泛应用于工业控制领域。
本文介绍了一种基于SJA1000的高可靠CAN总线智能单元的设计方案。
该总线智能单元可以独立或者配合AT96总线和主控制器协同工作,易于系统扩展、优化和改进,利用微处理器完成数据发送/接受和错误诊断处理,降低主控制器的信息处理负担。
测试表明,该高可靠CAN总线智能单元的设计是可行的。
【关键词】高可靠;CAN总线;智能单元ABSTRACT:CAN bus is a field bus which is widely used in industrial control field because of its advantages in high reliability,strong anti-jamming and high real-time characteristic. This paper introduces a design of high-reliability intelligent CAN communication unit base on SJA1000. The intelligent CAN unit may work independently or with the supervisor computer by AT96 bus. It is easy for system’s expansion,optimization and amelioration. The unit completes the data transferring/receiving and the error diagnosing by the microprocessor,thus decreases the load factor of the supervisor computer. Experimental results show that the design of intelligent and high-reliability CAN communication unit is effective.KEY WORDS:high-reliability;CAN bus;intelligent unit0.引言随着核动力装置仪控系统数字化水平的不断提高,仪控系统设备内部、设备之间以及设备与现场仪表之间信息交换都将采用网络通讯技术,因此网络的安全性、可靠性都对核动力仪控系统正常完成其设计功能具有非常重要的意义。
封面作者: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总线控制系统的设计与实现~姓名张三院系电气工程学院)学号 XXXXXXXX班级 A/2017-05-19CAN-bus(Controller Area Network)即控制器局域网是国际上应用最广泛的现场总线之一。
最初CAN-bus被设计作为汽车环境中的微控制器通讯工具,用于在车载各电子控制装置ECU之间交换信息,从而形成汽车电子控制网络。
如今,CAN-bus作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,已被广泛应用到各个自动化控制系统中。
而且CAN-bus总线在通信能力、可靠性、实时性、灵活性、易用性、传输距离等方面较RS-485总线有着明显的优势。
因而用CAN总线取代RS-485总线将是大势所趋。
1 CAN总线的主要特性CAN总线与其它通信网的不同之处有二:一是报文传送中不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符来过滤报文,该收的收下,不该收的弃而不用。
其好处是可在线上网下网、即插即用和多站接收;二是特别强化数据安全,可满足控制系统及其它较高数据要求的系统需求。
CAN具有以下主要技术特性:(1)CAN遵从ISO模型,采用了其中的物理层、数据链路层与应用层。
采用双绞线,通信速率最高可达到1 Mbps/40 m,直接传输距离最远可达10 kin/5 kbps。
同一段总线内最多可挂接110个设备。
?(2)CAN的信号传输采用短帧结构,每一帧有效字节数为8个。
因而传输时间短,受干扰的概率低。
当节点发生严重错误时,CAN可自动关闭该节点,同时切断与总线的联系,以使总线上其它节点不受影响,因此CAN总线具有很强的抗干扰能力。
(3)CAN可支持多主工作方式,网络上任一节点在任何时候均可主动向其它节点发送信息,同时也支持点对点、一点对多点和全局广播方式来接收/发送数据。
处于优先级低的节点会主动停止发送,以此来避免总线冲突。
一、以下是我做的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的总线节点模块,包括SJA1000的部分重要寄存器的功能介绍,以及软件编程的实现。
,,,,,,,,,,,,,,,特点:1.可实现任意单片模块的互相通信,由于SJA1000兼容5V和3.3V的逻辑电平,且供电电压也为3.3V~5.6V,因而可以使基于逻辑供电5V和3.3V的系统能够很容易的挂在CAN总线网络上,解决模块之间的电平不兼容问题。
2.总线控制器宇驱动器之间利用6N137高速光耦隔离技术,使得网络上的各个模块与总线本身完全隔离,保证了总线的安全性,也保证了各模块之间的独立性。
当总线网络中含有大负载驱动时这点表现的尤为重要。
3.由于采用SJA1050作为总线驱动器,实现数据在总线网络里高速传输,最高速度可达到1Mbps。
二、CAN总线简介1,,,,,.CAN总线的特点,,,,,CAN(Controller,,,,,Area,,,,,Network局域控制网),,,,,总线由Bosch、Benz研究试验,于1986年2月正式提出,至1993年11月Bosch,,,,,CAN2.0成为国际标准(ISO11898)。
2000年CAN总线芯片年度销售超过1亿片,欧产轿车都至少装配一条CAN总线网络。
目前CAN总线的应用已从汽车、火车、轮船迅速扩展到机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械、家用电器及传感器等领域。
其被公认为是最有前途的现场总线之一。
由于采用了许多新技术及独特的设计,CAN总线与一般的通讯总线相比,它的数据通讯具有突出的可靠性、实时性和灵活性。
其特点可概括如下:●CAN是到目前为止唯一有国际标准的现场总线。
●CAN为多主方式工作,网络上任一节点均可在任一时刻主动地向网络上其他节点发送信息,而不分主从。
●在报文标识符上,CAN上的节点分成不同的优先级,可满足不同的实时需要,优先级高的数据最多可在134μs内得到传输。