课程设计--CAN总线
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
题目 CAN通信
二级学院电子信息与自动化
专业自动化
班级 107070103 学生姓名学号
指导教师熊文
考核项目
设计50分平时
成绩
20分
答辩30分
设计质量
20分
创新设计
15分
报告质量
15分
熟练程度
20分
个人素质
10分
得分
总分考核等级教师签名
摘要:
CAN总线是控制器局域网总线(contr01ler AreaNetwork)的简称。属于现场总线的范畴,是一种有效支持分布式控制或实时控制的串行通信网络。由于其高性能、高可靠性及独立的设计而被广泛应用于工业现场控制系统中。SJAl000是一个独立的CAN控制器,PCA82C200的硬件和软件都兼容,具有一系列先进的性能,特别在系统优化、诊断和维护方面,因此,SJAl000将会替代PCA82C200。SJAl000支持直接连接到两个著名的微型控制器系列80C51和68xx。下面以单片机AT89C52和SJAl000为例,介绍CAN总线模块的硬件设计和CAN通信软件的基本设计方法。
关键词:AT89S52 CAN通信 SJA1000
目录:
(一) 背景:
(二) CAN介绍
(三) SJA1000内部结构和功能简介
(四) 硬件电路图
(五) 初始化程序
(六) 测试
(七) 总结
一背景:
CAN(Controller Area Network)数据总线是一种极适于汽车环境的汽车局域网。CAN总线是德国Bosch公司为解决汽车监控系统中的
复杂技术难题而设计的数字信号通信协议,它属于总线式串行通信网
络。由于采用了许多新技术和独特的设计思想,与同类车载网络相比,CAN总线在数据传输方面具有可靠、实时和灵活的优点。
1991年9月Philips半导体公司制定并发布了CAN技术规范(版本
2.0),该技术规范包括A部分和B两部分,其中2.0A给出了CAN报文的标
准格式;2.0B给出了标准和扩展两种格式。此后,1993年11月ISO正
式颁布了道路交通运输工具一数据信息交换一高速通信控制器局域
网(CAN)的国际标准IS011898,为控制器局域网的标准化和规范化铺
平了道路。
二CAN介绍
CAN通信的特点:
(1) CAN是到目前为止唯一具有国际标准且成本较低的现场总线;
(2) CAN废除了传统总线的站地址编码,对通信数据块进行编码,为
多主方式工作,不分主从,通信方式灵活,通过报文标识符通信,可
使不同的节点同时接收到相同的数据,无需站地址等节点信息。
(3) CAN采用非破坏性总线仲裁技术,当多个节点同时向总线发送信
息时,优先级较低的节点会主动地退出发送,而最高优先级的节点可
不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其
是在网络负载很重的情况下也不会出现网络瘫痪情况(以太网则有可
能出现这种情况)。
(4) CAN只需通过报文滤波即可实现点对点、一点对多点即全局广播
等方式传送接收数据,无需专门的“调度”。
(5) CAN的直接通信距离最远可达10km(速率5kbps以下);通信速率最
高可lMbps(此时通信距离最长为40m);
(6) CAN上的节点数最多可达110个(主要取决于总线驱动电路)。
(7) CAN采用短帧结构,单帧最大长度仅150位,传输时间短,从而保
证了通信的实时性,受干扰概率低。
(8) CAN的每帧信息都有CRC校验及其他检错措施,降低了数据出错
率,保证了数据通信的可靠性。
(9) CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线
上其他节点的操作不受影响。
(10) CAN的通信介质可使用双绞线作为传输介质,价格低廉,可靠性
强。
三SJA1000内部结构和功能简介
SJAl000是一个独立的控制器,有两种不同的模式。(1)BasiccAN 模式:系统上电后默认的模式,与PCA82C200兼容。(2)PelicAN模式:支持CAN2.0B协议规定的所有功能。SJAl000的内部结构如图1所示,
其功能模块主要有:接口管理逻辑、接收FIFO队列、接收滤波器、发
送缓冲器和CAN核心模块。CAN核心模块基于CAN2.0B的协议执行对CAN
帧的发送和接收。逻辑管理接口实现与外部单片机的连接。SJAlO00
的发送缓冲器可以存储一个完整的报文,当单片机开始一个传送时,
逻辑管理接口会使CAN核心模块读发送缓冲器的数据,依照CAN2.OB 协议发送数据。当收到一个报文时,cAN核心控制模块将连续的位转换为标准的数据存放于接收过滤器中,通过验收码寄存器、验收屏蔽寄存器进行过滤处理,将符合标志位要求的数据放人接收FIF0队列中。
图1
●管脚及电气特性与独立CAN总线
控制器PCA82C200兼容;
●软件与PCA82C200兼容(缺省为
基本CAN模式);
●扩展接收缓冲器(64字节FIFO);
●支持CAN2.0B协议;
●同时支持11位和29位标识符;
●位通讯速率为1Mbits/s;
●增强CAN模式(PeliCAN);
●采用24MHz时钟频率;
●支持多种微处理器接口;
●可编程CAN输出驱动配置;
●工作温度范围为-40~+125℃。
图2
SJA1000的功能框图如表1所示,图2是其引脚图。从表1可以看出,SJA1000型独立CAN总线控制器由以下几部分构成;
(1)接口管理逻辑:它接收来自微处理器的命令,控制CAN寄存器的地址,并为微处理器提供中断和状态信息。
(2)发送缓冲器:有13字节长。它位于CPU和位流处理器(BSP)之间,能存储一条将在CAN总线上发送的完整的报文,报文由CPU写入,由SBP读出。
(3)接收缓冲器(RXB、RXFIFO):它是CPU和接收滤波器之间的接口,用来存储从CAN 总线接收并通过了滤波的报文。接收缓冲器RXB是提供给CPU可访问的13字节的窗口,这个窗口是属于接收FIFO(RXFIFO)的一部分,共由64字节长。有了这个FIFO,可以在CPU处理一个报文的同时继续接收其他到来的报文。
(4)接收滤波器:它把报文头中的标识符和接收滤波寄存器中的内容进行比较,以判断文报文是否被接收。如果被接收,报文存入RXFIFO。
(5)位流处理器:它是一个控制发送缓冲器、RXFIFO并行数据和CAN总线(串行数据)之间数据的序列发生器,同时它也执行错误检测、仲裁、位填充和CAN总线错误处理功能。
(6)位定时逻辑不:它将SJA1000同步于CAN总线上的位流。
(7)错误管理逻辑:它按照CAN协议完成错误界定。
由于SJA1000与PCA82C2000兼容,因此SJA1000的缺省工作方式即基本CAN模式与82C200相同。下面介绍SJA1000工作在增强CAN模式(PeliCAN)下的寄存器配置。在初始化期间,芯片在复位模式(RESET MODE)时的寄存器配置如表1所列,在工作期间的运行模式(OPERATING MODE)下,部分寄存器的定义将有所更改。