课程设计can总线数据通信系统的设计

上传人:夏** 文档编号:506746343 上传时间:2023-09-16 格式:DOCX 页数:22 大小:38.48KB
返回 下载 相关 举报
课程设计can总线数据通信系统的设计_第1页
第1页 / 共22页
课程设计can总线数据通信系统的设计_第2页
第2页 / 共22页
课程设计can总线数据通信系统的设计_第3页
第3页 / 共22页
课程设计can总线数据通信系统的设计_第4页
第4页 / 共22页
课程设计can总线数据通信系统的设计_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《课程设计can总线数据通信系统的设计》由会员分享,可在线阅读,更多相关《课程设计can总线数据通信系统的设计(22页珍藏版)》请在金锄头文库上搜索。

1、CAN总线数据通信系统的设计摘要现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域 的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠 的数据通信提供了强有力的技术支持。CAN(Controller Area Network)属于现 场总线的范畴,是一种多主方式的串行通讯总线,数据通信实时性强。与 其它现场总线比较而言,CAN总线具有通信速率高、容易实现、可靠性高、 性价比高等诸多特点。本系统要在单片机中实现CAN总线的接口,通过CAN总线,实现两个 模块之间的数据通讯。系统主要由四部分所构成:PC机、微控制器80C51、 独立CAN通信控制器SJA1000和CAN总线

2、收发器PCA82C250。微处理器 80C51负责SJA1000的初始化,通过控制SJA1000实现数据的发送和接收等 通信任务。CAN总线节点的软件设计主要包括三大部分:CAN节点初始化、 报文发送和报文接收。本系统通过扩展CAN总线控制器SJA1000,在单片机系统中实现了 CAN总线的接口,并且编写了 SJA1000的驱动程序,通过读写其的内部寄 存器,完成工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR) 和接收代码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER) 的设置等基本操作;利用各基本操作,完成了对 SJA1000 的初始化,并且 实现了数据发送和接收

3、。目录第 1 章 原理与方案 错误!未定义书签1.1设计目的与要求错误!未定义书签。1.2 CAN总线介绍错误!未定义书签。1.3设计方案错误!未定义书签。131硬件设计方案 错误!未定义书签。132软件设计方案错误!未定义书签。第2章 硬件连接与说明错误!未定义书签。2.1硬件连接错误!未定义书签。2.1.1模块使用说明错误!未定义书签。2丄2实验箱连线错误!未定义书签。2.2 CAN总线控制器SJA1000错误!未定义书签。2.3 CAN控制器接口 PCA82C250错误!未定义书签。第3章 软件流程图及说明错误!未定义书签。3.1软件流程图错误!未定义书签。3.1.1主程序流程图 错误!

4、未定义书签。3.1.2初始化子程序流程图 错误!未定义书签。3.1.3发送数据子程序流程图 错误!未定义书签。3.1.4接收数据子程序流程图 错误!未定义书签。3.2软件实现过程错误!未定义书签。第4章 结果分析及心得体会错误!未定义书签。4.1结果分析错误!未定义书签。4.2心得体会错误!未定义书签。421 CAN应用中的问题 错误!未定义书签。422 CAN总线的其他应用错误!未定义书签。附录 程序清单错误!未定义书签。参考文献错误!未定义书签。第 1 章 原理与方案1.1 设计目的与要求扩展CAN总线控制器,在单片机系统中实现CAN总线的接口,并编 写接口芯片的驱动程序。通过CAN总线,

5、实现两个模块之间的数据通讯, CPU 控制第一个模块发送 1 帧数据,第二个模块收到这帧数据并送至另一 个 CPU 的内部存储器。1.2 CAN 总线介绍CAN全称为“Controller Area Network,即控制器局域网,是国际上 应用最广泛的现场总线之一。最初CAN被设计作为汽车环境中的微控制器 通讯,在车载各电子控制装置 ECU 之间交换信息,形成汽车电子控制网络。 比如发动机管理、系统变速箱控制器、仪表装备中,均嵌入CAN控制装置。一个由CAN总线构成的单一网络中,理论上可以挂接无数个节点。实 际应用中,节点数目受网络硬件的电气特性所限制。 例如当使用 Philips PCA8

6、2C250作为CAN收发器时,同一网络中允许挂接110个节点CAN可 提供高达 1Mbit/s 的数据传输速率,这使实时控制变得非常容易,另外硬件 的错误检定特性也增强了 CAN的抗电磁干扰能力。CAN 是一种多主方式的串行通讯总线。基本设计规范要求有高的位速 率,高抗电磁干扰性,而且能够检测出产生的任何错误。当信号传输距离 达到10Km时,CAN仍可提供高达50Kbit/s的数据传输速率。由于CAN总 线具有很高的实时性能,因此CAN已经在汽车工业、航空工业、工业控制、 安全防护等领域中得到了广泛应用。1.3 设计方案在本系统中,采用80C51单片机,80C51与PC机串行通信,设置 SJA

7、1000工作于Intel模式,由PC机发送的数据写入SJA1000并通过CAN 收发器发送。接收数据是通过中断进行的, CAN 总线传输过来的数据经 CAN接口芯片PCA82C250接收并写入SJA1000的RXFIFO,然后通过中 断提请CPU读取,读取的数据上传送给PC机。总体设计框图如图1-2所示。图 1-2 总体设计框图1.3.1 硬件设计方案1. 芯片介绍SJA1000:独立式CAN控制器,具有64字节的FIFO作为接收缓存。 6N137:高速光隔,最高速度10Mb/s,用于保护CAN控制器。PCA82C250: CAN总线收发器,是CAN控制器与CAN总线的接口器 件,对 CAN

8、总线差分式发送。2. CAN控制器与CPU接口设计对于CPU来说,CAN控制器是确保双方独立工作的存贮器映象外围设 备。CAN控制器与外部CPU的接口是通过控制器接口逻辑(CIL)实现的, 80C51的CPU通过将地址总线(AB)和数据总线(DB)连接到CIL上来 完成与 CAN 控制器之间的信息交换,不需要专门的控制总线( CB), CPU 与PCA82C250之间的状态、控制和命令信号的交换在CAN控制器中完成。SJA1000与单片机的接口电路如图1-3所示。图1-3 SJA1000与单片机的接口电路3. CAN控制器工作电路的连接为了增强CAN总线节点的抗干扰能力,SJA1000的TX0

9、和RX0并不 是直接与 PCA82C250 的 TXD 和 RXD 相连,而是通过高速光隔 6N137 后 与 PCA82C250 相连,这样就很好的实现了总线上各 CAN 节点间的电气隔 离。若 PCA82C250 处于 CAN 总线的网络终端,总线接口部分需加一个 120 欧姆的匹配电阻。CAN 控制器工作电路如下图所示:图 1-4 CAN 控制器工作电路1.3.2 软件设计方案CAN 总线节点的软件设计主要包括三大部分: CAN 节点初始化、报 文发送和报文接收。熟悉这三部分程序的设计就能编写出利用 CAN 总线进 行通信的一般应用程序。当然要将 CAN 总线应用于通信任务比较复杂的系

10、统中,还需详细了解有关CAN总线错误处理、总线脱离处理、接收滤波处 理、波特率参数设置和自动检测以及CAN总线通信距离和节点数的计算等 方面的内容。SJA1000 的初始化只有在复位模式下才可以进行,初始化主要包括工 作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR)和接收代 码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER)的设 置等。在完成SJA1000的初始化设置以后,SJA1000就可以回到工作状态, 进行正常的通信任务。发送子程序负责节点报文的发送。发送时用户只需将待发送的数据按 特定格式组合成一帧报文,送入SJA1000发送缓存区中,然后启动SJA1000

11、发送即可。接收子程序负责节点报文的接收以及其它情况处理。接收子程序比发 送子程序要复杂一些,因为在处理接收报文的过程中,同时要对诸如总线 脱离、错误报警、接收溢出等情况进行处理。 SJA1000 报文的接收主要有 两种方式:中断接收方式和查询接收方式,两种接收方式编程的思路基本 相同,如果对通信的实时性要求不是很强,一般采用查询接收方式。第 2 章 硬件连接与说明2.1 硬件连接单片机与 CAN 模块等外围器件的连接如图 2-1 所示。图 2-1 系统原理图2.1.1 模块使用说明CAN 总线模块由一个 CAN 总线控制器 SJA1000 和一个 CAN 收发器 PCA82C250 组成,它们

12、共同构成一个 CAN 节点。模块的电源由接口挂箱上 的接口插座提供。模块上的 RESET、INT、TX0、RX0 插孔分别对应于 SJA1000 芯片上 的相应引脚。模块上带有上电复位电路,也可通过RESET插孔进行手动复 位,只需在RESET上加上负脉冲。模块上提供两个RJ45接口和一组“CANH、CANL”插孔接口,这三 组接口是完全一致的。对于近距离 CAN 模块之间的通讯,可将各模块的 “CANH、CANL”插孔用导线连接;对于远距离CAN模块之间的通讯, 则可用双绞线连接各RJ45接口。每个CAN模块上都有一组终端电阻接口,即“ A、B”插孔。当总线 上只有两个CAN节点时,终端电阻

13、可不接。如总线上的CAN节点数为3 个或3个以上时,必须有一个而且只能有一个CAN模块接上终端电阻。 具体接法为:将 A 插孔和 CANL 插孔、 B 插孔和 CANH 插孔分别用导线 连接。2.1.2 实验箱连线两个 CAN 模块分别接在两个实验台上,第一个模块(发送)跳线接 LCS2,第二个模块(接收)跳线接LCS3,用双绞线连接两个模块的RJ45接 口,将第一个 CAN 模块接上终端电阻。2.2 CAN总线控制器SJA1000SJA1000是一种独立的CAN控制器,主要用于移动目标和一般工业环 境中的区域网络控制。它是 Philips 半导体公司 PCA82C200 CAN 控制器 (B

14、asicCAN)的替代产品,增加了一种新的操作模式PeliCAN,这种模 式支持具有很多新特性的 CAN2.0B 协议。2.3 CAN 控制器接口 PCA82C250PCA82C250 是 CAN 协议控制器和物理总线间的接口,它主要是为汽 车中高速通讯(高达1Mbps)应用而设计。此器件对总线提供差动发送能 力,对CAN控制器提供差动接收能力,与ISO11898标准完全兼容。PCA82C250 芯片由接收器、驱动器、基准电压产生电路、工作模式选 择电路及保护电路等组成。PCA82C250内部的限流电路可以防止发送输出 级对电池电压的正端和负端短路。虽然在这种故障条件出现时,功耗将增 加,但这

15、种特性可以阻止发送器输出级的破坏。在节点温度大约超过160C时,两个发送器输出端的极限电流将减少。 由于发送器是功耗的主要部分,因此芯片温度会迅速降低。PCA82C50芯片 的其他部分将继续工作。当总线短路时,热保护十分重要。CANH和CANL两条线也可以防止在汽车环境下可能发生的电气瞬变 现象。文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.第 3 章 软件流程图及说明3.1 软件流程图3.1.1 主程序流程图程序开始运行后,先调用初始化子程序,分别对两个 CAN 模块中的 SJA1000进行初始化,然后把要发送的数据写入CPU的存储器中,然后循 环调用发送数据子程序和接收数据子程序。具体流程如图3-1 所示。图 3-1 主程序流程图3.1.2 初始化子程序流程图初始化子程序先设置MOD选择复位模式,然后分别设置CDR选择工 作模式;设置IER选择中断类型;设置BTRO、BTR1设定传输速率;设置 OCR选择输出模式;设置ACR、AMR设定接收数据类型;RBSA、TXERR、 ECC均清零,最后设置MOD进入工作模式。具体流程如图3-2所示。图 3-2 初始化子程序流程图3.1.3 发送数据子程序流程图发送数据子程序先把三个控制字节写入发送缓冲区,然后把等待发送 的数据也写入发送缓冲区,最后设置CMR,发出发送请求、启动SJA1000 发

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

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

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