课程CAN通信CAN总线毕业论文

上传人:夏** 文档编号:493877564 上传时间:2023-11-14 格式:DOCX 页数:12 大小:90.16KB
返回 下载 相关 举报
课程CAN通信CAN总线毕业论文_第1页
第1页 / 共12页
课程CAN通信CAN总线毕业论文_第2页
第2页 / 共12页
课程CAN通信CAN总线毕业论文_第3页
第3页 / 共12页
课程CAN通信CAN总线毕业论文_第4页
第4页 / 共12页
课程CAN通信CAN总线毕业论文_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《课程CAN通信CAN总线毕业论文》由会员分享,可在线阅读,更多相关《课程CAN通信CAN总线毕业论文(12页珍藏版)》请在金锄头文库上搜索。

1、课程设计题目CAN通信摘要:CAN总线是控制器局域网总线(contr01ler AreaNetwork)的简 称。属于现场总线的畴,是一种有效支持分布式控制或实时控制的串 行通信网络。由于其高性能、高可靠性与独立的设计而被广泛应用于 工业现场控制系统中。SJAl000是一个独立的CAN控制器,PCA82C200 的硬件和软件都兼容,具有一系列先进的性能,特别在系统优化、诊 断和维护方面,因此,SJAl000将会替代PCA82C200O SJAl000支持直 接连接到两个著名的微型控制器系列80C51和68xx。下面以单片机 AT89C52和SJAl000为例,介绍CAN总线模块的硬件设计和CA

2、N通信软件 的基本设计方法。关键词:AT89S52 CAN 通信 SJA1000目录:(一)背景:(二)CAN介绍(三)SJA1000部结构和功能简介(四)硬件电路图(五)初始化程序(六)测试(七)总结一背景:CAN(Controller Area Network)数据总线是一种极适于汽车环 境的汽车局域网CAN总线是德国Bosch公司为解决汽车监控系统中的 复杂技术难题而设计的数字信号通信协议,它属于总线式串行通信网 络。由于采用了许多新技术和独特的设计思想,与同类车载网络相比, CAN总线在数据传输方面具有可靠、实时和灵活的优点。1991年9月Philips半导体公司制定并发布了CAN技术

3、规(版本2.0),该技术规 包括A部分和B两部分,其中2.0A给出了CAN报文的标准格式;2.0B给 出了标准和扩展两种格式。此后,1993年11月ISO正式颁布了道路交 通运输工具一数据信息交换一高速通信控制器局域网(CAN)的国际标 准IS011898,为控制器局域网的标准化和规化铺平了道路。二CAN介绍CAN通信的特点:(1) CAN是到目前为止唯一具有国际标准且成本较低的现场总线;(2) CAN废除了传统总线的站地址编码,对通信数据块进行编码,为多 主方式工作,不分主从,通信方式灵活,通过报文标识符通信,可使 不同的节点同时接收到一样的数据,无需站地址等节点信息。(3) CAN采用非破

4、坏性总线仲裁技术,当多个节点同时向总线发送信息 时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不 受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其是 在网络负载很重的情况下也不会出现网络瘫痪情况(以太网则有可能 出现这种情况)。(4) CAN只需通过报文滤波即可实现点对点、一点对多点即全局广播等 方式传送接收数据,无需专门的“调度”。(5) CAN的直接通信距离最远可达10km(速率5kbps以下);通信速率最 高可lMbps(此时通信距离最长为40m);(6) CAN上的节点数最多可达110个(主要取决于总线驱动电路)。(7) CAN采用短帧结构,单帧最大长度仅150位

5、,传输时间短,从而保 证了通信的实时性,受干扰概率低。(8) CAN的每帧信息都有CRC校验与其他检错措施,降低了数据出错率, 保证了数据通信的可靠性。(9) CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上 其他节点的操作不受影响。(10) CAN的通信介质可使用双绞线作为传输介质,价格低廉,可靠性 强。三 SJA1000部结构和功能简介SJAl000是一个独立的控制器,有两种不同的模式。(1)BasiccAN 模式:系统上电后默认的模式,与PCA82C200兼容。(2)PelicAN模式: 支持CAN2.0B协议规定的所有功能。SJAl000的部结构如图1所示,其 功能模块主要

6、有:接口管理逻辑、接收FIF O队列、接收滤波器、发送 缓冲器和CAN核心模块。CAN核心模块基于CAN2. 0B的协议执行对CAN 帧的发送和接收。逻辑管理接口实现与外部单片机的连接。SJAlO00 的发送缓冲器可以存储一个完整的报文,当单片机开始一个传送时,逻辑管理接口会使CAN核心模块读发送缓冲器的数据,依照CAN2.OB 协议发送数据。当收到一个报文时,cAN核心控制模块将连续的位转 换为标准的数据存放于接收过滤器中,通过验收码寄存器、验收屏蔽 寄存器进行过滤处理,将符合标志位要求的数据放人接收FIF0队列 中。ALE2AS. G8,CLKOUT. Z1 MODE. INT %AD7

7、t:0 ADO CXTAL1XTAL2 42 10 7.11/ 10 择制? 8地址/敞据 LJi2, 1, 况心23103JAWQ0传时序遂缉VddjVSSS振荡器.弦咬滤波器二i击误管理逻辑内部总改1513141920TX0TX1RXORX1VSS2七口复椅17R3TAD6AD5AD7AD4ALE/ASAD3CSAD2RD/FAD1WRADOCLKOUTVSS2XTAL1RX1XTAL2RXOMODEVDD3RSTTXOINTTX1VSS1VDD1VDD2VSS3图2管脚与电气特性与独立CAN总线 控制器P CA82C200兼容;软件与PCA82C200兼容(缺省为 基本CAN模式);扩展

8、接收缓冲器(64字节FIFO);支持CAN2.0B协议;同时支持11位和29位标识符; 位通讯速率为1Mbits/s;增强 CAN 模式(PeliCAN);采用2 4MHz时钟频率;支持多种微处理器接口;可编程CAN输出驱动配置;工作温度围为-40+125笆。SJA1000的功能框图如表1所示,图2是其引脚图。从表1可以看出,SJA1000型独立CAN总 线控制器由以下几部分构成;(1) 接口管理逻辑:它接收来自微处理器的命令,控制CAN寄存器的地址,并为微处理 器提供中断和状态信息。(2) 发送缓冲器:有13字节长。它位于CPU和位流处理器(BSP)之间,能存储一条将 在C AN总线上发送的

9、完整的报文,报文由。?。写入,由SBP读出。(3) 接收缓冲器(RXB、RXFIFO):它是CPU和接收滤波器之间的接口,用来存储从CAN 总线接收并通过了滤波的报文。接收缓冲器RXB是提供给CPU可访问的13字节的窗口,这个窗 口是属于接收FIFO (RXFIFO )的一部分,共由64字节长。有了这个FIFO,可以在CPU处理一 个报文的同时继续接收其他到来的报文。(4) 接收滤波器:它把报文头中的标识符和接收滤波寄存器中的容进行比较,以判断 文报文是否被接收。如果被接收,报文存入RXFIFO。(5) 位流处理器:它是一个控制发送缓冲器、RXFIFO并行数据和CAN总线(串行数据) 之间数据

10、的序列发生器,同时它也执行错误检测、仲裁、位填充和CAN总线错误处理功能。(6) 位定时逻辑不:它将SJA1000同步于CAN总线上的位流。(7) 错误管理逻辑:它按照CAN协议完成错误界定。由于SJA1000与PCA82C2000兼容,因此SJA1000的缺省工作方式即基本CAN模式与82C200一 样。下面介绍S邛1000工作在增强CAN模式(PeliCAN)下的寄存器配置。在初始化期间, 芯片在复位模式(RESET MODE)时的寄存器配置如表1所列,在工作期间的运行模式(OPERATING MODE) 下,部分寄存器的定义将有所更改。四硬件电路图图3是一般CAN总线连接方式图,本文中采

11、用AT89C52作为主控芯片, SJA1000为CAN控制芯片,PCA82C250作为CAN总线收发器,应用了 2套这 样的系统,一个作为下位机,另一个作为上位机,下位机负责接受由上位机 经CAN总线传输过来的数据。89C526N137RJ.0P0.1P0.2P0.3P0.4P0.5P0.fiP0.7P2.0ALEINTOSJAlOOfl 转23 38 24 37 25 36期 35F214175Ififi3D 3O1 o 1 T EHH2W- 123 1 1 S3 S3 uJ-DgDmss T T R RIO圈WW 切VS5OK2航瑚谶期岬潮撤岫CS伽丽ALKaiT14 脚19OOOrfVC

12、C 0刖ffl) OOTOUT VDD刖 0VCC=390Unf既涮1.3hd oua心即47KGND2CAM bus3DP 30PGBI1图4CAN总线接口的原理框图如图4所示。SJA1000的地址/数据复用总线同AT89C52的PO 口相连,MODE引脚接高电平时选择Intel模式。SJA1000的ALE ,RD,WR与单片机对应的管脚相连,INT接单片机的INT0口,CS接P2.7。 为了提高总线的驱动能力,在SJAl000与CAN总线之间加PCA82C250总线驱动 芯片,PCA82C250是SJAl000与物理总线间的接口。对模拟信号的采样用AD7715该器件有一个差分模拟输入端口,

13、能直接接收来自传感器的弱电平信 号并输出连续的数字信号。它运用转换技术实现了无损编码AT89C52的P1 口通过驱动电路接执行机构。五初始化程序系统软件设计的指导思想是系统上电后首先对单片机和SJA1000 进行初始化。以下是用C写的程序初始化程序。void CAN_init(void)EA=0;rest=0; /将复位键拉低,SJA1000进入复位工作模式delay(1);do /进入复位请求CONTROL_REG=0x01;while( (CONTROL_REG & 0x01) != 0x01 );时钟分频寄存器 BIT7位0: BasicCAN模式;1: PeliCAN模式CDR_REG

14、=0x08; /CLOCK OFF=1BTR0_REG=0x31; / 10kbpsBTR1_REG=0x1c; /SAM=1 总线采样 3 次ACR_REG=0x55;第 1 个节点AMR_REG=0xAA;验收滤波OCR_REG=0xAA;下拉输出CONTROL_REG |=0x1A; / OIE=1 EIE=1 TIE=1 RIE=1 RR=0rest=1;doCONTROL_REG=0x1A;while( (CONTROL_REG & 0x1A) != 0x1A);EA=1;对CAN控制器进行初始化,实际上就是对ACR、AMR、BTR0、BTRl、OCR 这些寄存器进行访问。只有当控制

15、寄存R中的复位请求位为高时,访问才 被允许,否则既写不进去,也读不出正确的容。对CR进行第一次写操作,要 设定将要开放的中断类型,并置位复位请求,允许初始化开始。对ACR、AMR 进行写操作,要界定对什么样的报文予以接收,因此有时称它们为验收滤波 器。当满足以下两个条件之一,并存在空的接收缓存器(RBF)时,完整报文 可被正确接收。条件一:ACR与报文标识符的高8位在AMR为“0”相关位上对应相等。条件二:AMR=0FFH,即ACR的所有位均为不相关(或屏蔽)位。这两个寄存器也是编排标识符的基本依据。对BTR0进行操作,可决定波特率预分频器(BRP)和同步跳转宽度(SJW)的 数值;对BTRl进行写操作,可决定位周期的宽度,采样点的位置与在每个采 样点进行采样的次数。这两个寄存器的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号