logo资料库

课程设计-CAN总线数据通信系统的设计.doc

第1页 / 共28页
第2页 / 共28页
第3页 / 共28页
第4页 / 共28页
第5页 / 共28页
第6页 / 共28页
第7页 / 共28页
第8页 / 共28页
资料共28页,剩余部分请下载后查看
摘要
目 录
第1章 原理与方案
1.1 设计目的与要求
扩展CAN总线控制器,在单片机系统中实现CAN总线的接口,并编写接口芯片的驱动程序。通过CAN
1.2 CAN总线介绍
1.3 设计方案
1.3.1 硬件设计方案
1.3.2 软件设计方案
第2章 硬件连接与说明
2.1 硬件连接
2.1.1 模块使用说明
2.1.2 实验箱连线
2.2 CAN总线控制器SJA1000
2.3 CAN控制器接口PCA82C250
第3章 软件流程图及说明
3.1 软件流程图
3.1.1 主程序流程图
3.1.2 初始化子程序流程图
3.1.3 发送数据子程序流程图
3.1.4 接收数据子程序流程图
3.2 软件实现过程
第4章 结果分析及心得体会
4.1 结果分析
4.2 心得体会
4.2.1 CAN应用中的问题
4.2.2 CAN总线的其他应用
附录 程序清单
参考文献
学 号: 1049721203588 课 程 设 计 现场总线 题 目 学 院 专 业 班 级 姓 名 指导教师 CAN 总线通信 自动化学院 电力电子与电力传动 自研 1203 班 袁广凯 许湘涟 2013 年 1 月 16 日
摘要 现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域 的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠 的数据通信提供了强有力的技术支持。CAN(Controller Area Network)属于现 场总线的范畴,是一种多主方式的串行通讯总线,数据通信实时性强。与 其它现场总线比较而言,CAN 总线具有通信速率高、容易实现、可靠性高、 性价比高等诸多特点。 本系统要在单片机中实现CAN总线的接口,通过CAN总线,实现两个 模块之间的数据通讯。系统主要由四部分所构成:PC机、微控制器80C51、 独立CAN通信控制器SJA1000和CAN总线收发器PCA82C250。微处理器 80C51负责SJA1000的初始化,通过控制SJA1000实现数据的发送和接收等 通信任务。CAN总线节点的软件设计主要包括三大部分:CAN节点初始化、 报文发送和报文接收。 本系统通过扩展 CAN 总线控制器 SJA1000,在单片机系统中实现了 CAN 总线的接口,并且编写了 SJA1000 的驱动程序,通过读写其的内部寄 存器,完成工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR) 和接收代码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER) 的设置等基本操作;利用各基本操作,完成了对 SJA1000 的初始化,并且 实现了数据发送和接收。
目 录 第 1 章 原理与方案.......................................................................................... 1 1.1 设计目的与要求.......................................................................................1 1.2 CAN 总线介绍......................................................................................... 1 1.3 设计方案...................................................................................................2 1.3.1 硬件设计方案 ..................................................................................2 1.3.2 软件设计方案 ..................................................................................4 第 2 章 硬件连接与说明.................................................................................. 5 2.1 硬件连接...................................................................................................5 2.1.1 模块使用说明 ..................................................................................5 2.1.2 实验箱连线 ......................................................................................6 2.2 CAN 总线控制器 SJA1000..................................................................... 6 2.3 CAN 控制器接口 PCA82C250................................................................6 第 3 章 软件流程图及说明.............................................................................. 8 3.1 软件流程图...............................................................................................8 3.1.1 主程序流程图 ..................................................................................8 3.1.2 初始化子程序流程图 ..................................................................... 8 3.1.3 发送数据子程序流程图 ............................................................... 10 3.1.4 接收数据子程序流程图 ............................................................... 10 3.2 软件实现过程.........................................................................................10 第 4 章 结果分析及心得体会........................................................................ 13 4.1 结果分析.................................................................................................13 4.2 心得体会.................................................................................................14 4.2.1 CAN 应用中的问题 ...................................................................... 15 4.2.2 CAN 总线的其他应用 ..................................................................15 I
附录 程序清单................................................................................................ 16 参考文献............................................................................................................ 24 II
武汉理工大学《现场总线》课程设计说明书 第 1 章 原理与方案 1.1 设计目的与要求 扩展 CAN 总线控制器,在单片机系统中实现 CAN 总线的接口,并编 写接口芯片的驱动程序。通过 CAN 总线,实现两个模块之间的数据通讯, CPU 控制第一个模块发送 1 帧数据,第二个模块收到这帧数据并送至另一 个 CPU 的内部存储器。 1.2 CAN 总线介绍 CAN 全称为“Controller Area Network”, 即控制器局域网,是国际上 应用最广泛的现场总线之一。最初 CAN 被设计作为汽车环境中的微控制器 通讯,在车载各电子控制装置 ECU 之间交换信息,形成汽车电子控制网络。 比如发动机管理、系统变速箱控制器、仪表装备中,均嵌入 CAN 控制装置。 一个由 CAN 总线构成的单一网络中,理论上可以挂接无数个节点。实 际应用中,节点数目受网络硬件的电气特性所限制。例如当使用 Philips PCA82C250 作为 CAN 收发器时,同一网络中允许挂接 110 个节点。CAN 可 提供高达 1Mbit/s 的数据传输速率,这使实时控制变得非常容易,另外硬件 的错误检定特性也增强了 CAN 的抗电磁干扰能力。 CAN 是一种多主方式的串行通讯总线。基本设计规范要求有高的位速 率,高抗电磁干扰性,而且能够检测出产生的任何错误。当信号传输距离 达到 10Km 时,CAN 仍可提供高达 50Kbit/s 的数据传输速率。由于 CAN 总 线具有很高的实时性能,因此 CAN 已经在汽车工业、航空工业、工业控制、 安全防护等领域中得到了广泛应用。 1
武汉理工大学《现场总线》课程设计说明书 1.3 设计方案 在本系统中,采用 80C51 单片机,80C51 与 PC 机串行通信,设置 SJA1000 工作于 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 总线差分式发送。 2. CAN 控制器与 CPU 接口设计 对于 CPU 来说,CAN 控制器是确保双方独立工作的存贮器映象外围设 备。CAN 控制器与外部 CPU 的接口是通过控制器接口逻辑(CIL)实现的, 2
武汉理工大学《现场总线》课程设计说明书 80C51 的 CPU 通过将地址总线(AB)和数据总线(DB)连接到 CIL 上来 完成与 CAN 控制器之间的信息交换,不需要专门的控制总线(CB),CPU 与 PCA82C250 之间的状态、控制和命令信号的交换在 CAN 控制器中完成。 SJA1000 与单片机的接口电路如图 1-3 所示。 图 1-3 SJA1000 与单片机的接口电路 3. CAN 控制器工作电路的连接 为了增强 CAN 总线节点的抗干扰能力,SJA1000 的 TX0 和 RX0 并不 是直接与 PCA82C250 的 TXD 和 RXD 相连,而是通过高速光隔 6N137 后 与 PCA82C250 相连,这样就很好的实现了总线上各 CAN 节点间的电气隔 离。 若 PCA82C250 处于 CAN 总线的网络终端,总线接口部分需加一个 120 欧姆的匹配电阻。 3
武汉理工大学《现场总线》课程设计说明书 CAN 控制器工作电路如下图所示: 图 1-4 CAN 控制器工作电路 1.3.2 软件设计方案 CAN 总线节点的软件设计主要包括三大部分:CAN 节点初始化、报 文发送和报文接收。熟悉这三部分程序的设计就能编写出利用 CAN 总线进 行通信的一般应用程序。当然要将 CAN 总线应用于通信任务比较复杂的系 统中,还需详细了解有关 CAN 总线错误处理、总线脱离处理、接收滤波处 理、波特率参数设置和自动检测以及 CAN 总线通信距离和节点数的计算等 方面的内容。 SJA1000 的初始化只有在复位模式下才可以进行,初始化主要包括工 作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR)和接收代 码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER)的设 置等。在完成 SJA1000 的初始化设置以后,SJA1000 就可以回到工作状态, 进行正常的通信任务。 发送子程序负责节点报文的发送。发送时用户只需将待发送的数据按 特定格式组合成一帧报文,送入 SJA1000 发送缓存区中,然后启动 SJA1000 4
分享到:
收藏