现场总线技术研究与软件设计-基于CAN总线通信的毕业论文

0 下载量 171 浏览量 更新于2024-04-13 收藏 1.59MB DOCX 举报
本篇论文研究了CAN总线通信技术的原理和技术特点,探讨了CAN通信的具体流程,并通过C语言编写相关单片机程序以及CAN的通信程序实现了通信。在现场总线发展迅猛的当今时代,CAN总线作为一种半双工通信的串行通信网络,具有通信快、效率高、易实现、可靠性高等优势,在分布式控制或实时控制系统中得到广泛应用。本次软件设计利用Keil4开发环境,编写了串口程序、SPI接口程序以及CAN的初始化、发送和接收数据程序,在与相关硬件设计结合的基础上实现两个CAN节点之间的数据通信。 现场总线,作为一种工业数据通信总线,为工业发展提供了技术保障,为分布式控制系统中各个节点之间的数据通信提供了技术支持。CAN总线作为现场总线的一种,拥有强大的数据通信功能,能够有效支持分布式控制系统或实时控制系统。相比其他现场总线,CAN总线具有通信快速、效率高、易实现和可靠性高等优势,因此在多个领域得到广泛应用。该论文的研究内容主要集中在CAN总线通信技术的理论和实践方面,通过对CAN通信流程的深入研究,结合单片机程序的编写,充分展示了CAN总线通信的效果和应用场景。 在本次软件设计中,作者通过使用C语言编写相关单片机程序以及CAN的通信程序,实现了CAN总线节点之间的数据通信。借助Keil4开发环境,作者成功编写了串口程序、SPI接口程序以及CAN的初始化、发送和接收数据程序,这些程序的编写为CAN总线的应用提供了强有力的支持。关键词如现场总线、CAN总线、软件设计、通信等术语在本文中得到了充分的解释和实践,读者可以通过本文了解CAN总线通信技术的原理和实现方法,以及如何在实际项目中应用这些技术。 总的来说,本篇优秀论文通过对CAN总线通信技术的深入研究和实践应用,为读者展示了CAN总线在分布式控制系统和实时控制系统中的重要作用,并指导读者如何在实际项目中进行CAN总线通信的软件设计。通过本文的学习,读者能够更好地理解和掌握现场总线和CAN总线的相关知识,为工业自动化领域的发展做出贡献。
2023-05-26 上传
机电工程学院 毕业设计说明书 设计题目: CAN总线通信接口及程序设计 2012 年 5 月 21 日 目 次 1 CAN总线介绍 1.1 CAN总线的发展背景 随着汽车产业的发展,需要一种更利于信息数据传输交换的通信协议。汽车中的各种 电子控制系统需要较高的技术支持,而随着汽车的发展,汽车是否安全、是否便利、成 本是否低、是否舒适都已成为人们首要考虑的事情。但是传统的汽车控制技术已不足以 满足人们越来越高的要求,也已不适以汽车的发展方向。20世纪80年代,德国Bosch公司 着手研究用于汽车产业的新的通信协议及控制方法,并首先提出了CAN总线控制系统。这 一崭新的网络协议使得汽车产业得到了飞速的发展。 CAN总线最明显的特点是最大程度地减少了汽车控制系统中的线束的数量及长度,另 外还大大提高了系统控制的可靠性和稳定性。在没有CAN总线协议之前,一辆汽车中用于 各种控制通信的线束的总长度达3公里之长,严重影响了汽车的通信速度和通信精度。并 且还使汽车的整体结构繁冗复杂,可靠性低,成本高,难以维护。因此CAN总线的出现无 疑具有重大的意义和作用。作为一种新的网络通信协议,CAN总线不仅减少了汽车中线束 的长度,还提高了汽车的整体性能,极大的促进了汽车产业的发展。 CAN总线刚被提出的时候,仅仅应用于汽车产业上,但CAN总线通信协议的性能和可靠 性经过多年的检验,已被应用于越来越多的产业,比如航空、船舶、机床等产业设备方 面。仅仅二十多年的发展,CAN总线便已成为自动化领域技术的潮流。 CAN总线是串行通信网络。传统运用的是基于R线构建分布式控制系统,这种传统的控 制系统是基于通信节点的地址编码的,因此其结构复杂,直接导致系统的通信效率不高 ,并且控制的可靠性能低。CAN总线通过每个网络节点进行数据通信,每个节点可以互相 收发数据,CAN总线协议对通信数据编码,不对节点地址编码,使各个节点可以同时接收 到相同的数据,大大增强了数据通信的实时控制及传输性能。另一方面CAN总线使用起来 非常方便。CAN总线的结构十分简单,仅有2根线(CANH和CANL)和外部设备相连,但CA N总线的内部却有非常复杂和智能的通信模块,可以方便快捷准确无误的进行数据的自由 通信。 1.2 CAN总线的通信层介绍 CAN总线是串行通信协议,可以实现各个节点在数据传输时的自由通信及互不影响, 因此CAN总线应具有标准的通信协议,这样可以使CAN总线更加方便的应用于控制系统中 。为了实现这样的设计理念,根据ISO/OSI参考模型,CAN总线包含ISO/OSI参考模型中的 数据链路层(Data Link Layer)和物理层(Physical Layer)。 (1)数据链路层 数据链路层连接硬件和软件的结合层,主要作用是通过各种数据协议而实现数据的传 输。CAN总线中的数据链路层又可以分为两个子层:逻辑链路控制子层(LLC)和介质方 向控制子层(MAC)。逻辑链路控制子层是数据链路层的核心层,它为远程数据的传输提 供服务,控制数据的逻辑传输。 (2)物理层 物理层是OSI参考模型中的最底层,主要作用是规定节点电气方面的特征。为了实现 数据的自由收发,在同一网络中的物理层应该是处处一样的。 1.3 CAN总线报文帧格式 CAN总线上的数据信息都是以报文的形式发送的。报文的格式并不唯一,而是有几种 不同的格式,但是报文的长度却受到电气及内部控制的限制。CAN总线的报文传输也就是 帧的传输,帧是CAN总线传送数据单位。帧也有不同的格式,主要区别在于标识符长度不 同。在CAN2.0A协议下帧具有11位标识符,叫作标准帧;而在最新的CAN2.0B协议下具有 29位标识符的帧叫作扩展帧。 为了实现数据的传输和控制,CAN总线报文传输具有4种不同类型的帧结构:数据帧、 远程帧、错误帧、过载帧。其中数据帧的结构图如图1-1所示。 详细的CAN总线报文帧结构可以参阅参考资料[6]. 1.4 CAN总线的优势 CAN总线已经成为现在控制领域最流行的控制方案,只所以从CAN总线诞生以来仅仅二 十年间便已成为公认的最好的工业生产控制方案,是因为CAN总线相比其他控制总线在通 信能力和速度方面具有明显的优势。虽然现在还有很多基于R线组建的工业控制系统,但 它不具备CAN总线的诸多优点。相比于其他的控制系统,CAN的优势在于:(1)CAN总线 是多主工作方式,CAN总线舍弃了传统控制系统中站地址编码方法,而是对通信的数据进 行编码,也就是说,CAN总线的节点是根据传输数据信息确定是否接收数据。这样可以简 化控制系统。从面增强了CAN总线网络的数据通信能力,也提高了系统的可靠性。(2) CAN总线的多个节点同时向总线上发送数据时,不会致使总线出现短路现象。因为CAN总 线是通过CAN收发器