当前位置:首页>> >>


CAN总线通信研究与软件设计.rar

收藏

资源目录
    文档预览:
    编号:20180914220230365    类型:共享资源    大小:3.49MB    格式:RAR    上传时间:2018-09-15
    尺寸:148x200像素    分辨率:72dpi   颜色:RGB    工具:   
    45
    金币
    关 键 词:
    CAN 总线 通信 研究 软件设计
    资源描述:
    太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸iCAN 总线通信研究与软件设计摘 要现场总线,又称现场网络,是一种工业数据通信总线。在当今时代,现场总线的发展速度非常之快,它的出现为工业的发展提供了非常好的技术保障,为分布式控制系统中的各个节点之间的数据通信提供了非常好的技术保障。CAN 总线是一种半双工通信的串行通信网络,属于现场总线的一种,它的数据通信功能强大,能够有效的支持分布式控制或实时控制系统。相比与其它现场总线,CAN 总线具有通信快、效率高、易实现、可靠性高等优势,现在已经在很多领域中都得到了应用。本文主要研究 CAN 总线通信技术的原理及其技术特点,研究了 CAN 通信的具体流程,包括初始化流程以及发送接收数据流程。运用 C 语言编写相关单片机程序以及CAN 的通信程序实现通信。本次软件设计是在 keil4 开发环境下进行的,主要编写了串口程序,SPI 接口程序以及 CAN 的初始化、发送和接收数据程序,并与相关硬件设计结合,实现两个 CAN节点之间的相互的数据通信。关键词:现场总线;CAN 总线;软件设计;通信太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸iiCAN bus communication research and software designAbstractField bus, also called the network, is a kind of industrial data communication bus. In today's era, the development of field bus speed is very fast, it provides a very good technical support for the development of industry, for data communication between each node in distributed control system provides a very good technical support. CAN bus is a half-duplex communication serial communication network, belongs to a kind of fieldbus, it has powerful data communication function, CAN effectively support distributed control or real-time control system. Compared with other field bus, CAN bus communication is fast, high efficiency, easy realize and high reliability advantages, now has been applied in many fields.In this paper, the principle of the CAN bus communication technology and its technical characteristics, research the CAN communication process, including the initialization process and the process to send and receive data. Using C language to write the microcontroller program, and CAN communication program to realize communication.The software design is under the environment of keil4 development, mainly to write a serial program, SPI interface program and CAN the initialization, send and receive data, and combined with relevant hardware design, the two CAN achieve data communication between nodes.Key words: The fieldbus;CAN bus; The software design;Communication;太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸目 录摘 要 ....................................................................iAbstract.................................................................ii1 绪论 ...................................................................11.1 课题背景 .........................................................11.2 选题目的 .........................................................11.3 选题意义 .........................................................11.4 本文结构 .........................................................22 相关技术介绍 ...........................................................32.1 CAN 总线介绍 ......................................................32.1.1 CAN 总线技术简介 ............................................32.1.2 CAN 总线的发展概况 ..........................................42.1.3 CAN 总线的特点 ..............................................42.1.4 CAN 总线协议介绍 ............................................52.2 单片机介绍 .......................................................62.2.1 单片机硬件特性 ..............................................72.2.2 单片机发展状况 ..............................................72.2.3 单片机设计 ..................................................82.3 开发环境及开发语言介绍 ..........................................102.3.1 keil uvision4 开发环境简介 .................................102.3.2 开发语言介绍 ...............................................113 系统设计 ..............................................................133.1 设计目的 ........................................................133.2 设计原理及方案 ..................................................133.2.1 CAN 总线通信原理 ...........................................133.2.2 软件设计方案 ...............................................133.3 软件设计流程图 ..................................................143.3.1 主程序流程图 ...............................................143.3.2 串口设计流程图 ..............................................153.3.2 CAN 初始化流程图 ...........................................163.3.3 发送数据子程序流程图 .......................................183.3.4 接收数据子程序流程图 .......................................184 系统实现 ..............................................................204.1 串口实现 ........................................................204.2 SPI 接口实现 .....................................................214.3 MCP2515 初始化 ...................................................244.4 CAN 发送和接收数据实现 ...........................................265 测试及设计成果分析 ....................................................295.1 硬件连接 ........................................................295.2 下载程序到单片机 ................................................295.3 结果分析 ........................................................31结 论 ...................................................................34太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸参考文献 .................................................................35致 谢 .................................................................36外文原文 .................................................................37中文翻译 .................................................................44太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸11 绪论1.1 课题背景在现如今科技日益发达的时代,现场总线通信技术已经得到了快速发展,在各个领域中都得到了广泛应用与好评,在这其中,尤其以 CAN 总线为典型代表。CAN 中文名称为控制器局域网,是目前世界上应用领域最广的现场总线之一。CAN 作为一种全双工通信的串行数据通讯总线,具有其它现场总线不具有的优势:通信速率高,有独特的设计和自己的规范,具有较高抗电磁干扰性,最重要的一点是它能够检测出在数据通讯中产生的任何错误。即使当信号传输距离非常远,比如达到 10 公里甚至以上时,CAN 的传输速率仍可达到惊人的 50kbps。CAN 拥有先进的技术,并且可靠性高、功能完善、实用性强,目前在各个自动化控制领域中都以离不开 CAN,比如:交通运输业、汽车业、工业控制、电力系统、自动控制等都已经随处可见 CAN 的应用。在 20 世纪 80 年代初期,欧洲汽车产业发展迅猛,当时为了解决汽车控制装置之间的数据传输问题,德国一家名为博世的公司提出了 CAN 总线这一技术,解决了设备间的通信问题。在当时,由于汽车业发展迅速,使用汽车的用户越来越多,人们对于汽车的功能需求也越来越复杂,而要想实现这些功能,就必须解决信号线需求庞大以及电子装置间复杂的通信等问题。因此博世公司在这个构想的基础上设计出了一种通信总线,并取名为 CAN 总线。CAN 总线刚刚问世不久,英特尔公司就生产出了第一个CAN 控制器,此后经过不断地发展,CAN 已经有了自己的国际标准,并且已经在很多领域都取得了广泛的应用。1.2 选题目的CAN 总线是德国博世公司为解决汽车控制设备之间的数据通信而开发的一种串行数据通信协议,它采用全双工通信技术,通信距离远,通信速率高,速率最高可达到1Mbps。由于 CAN 的高性能和它的可靠性,CAN 已经在越来越多的领域中使用和发展,利用 CAN 总线进行数据通信非常便捷快速稳定,CAN 总线发展的如此迅速,研究 CAN总线对它的进步有很大的意义,因此本文就针对 CAN 总线通信进行研究和探讨。本次毕业设计 CAN 总线通信系统设计主要实现两个 CAN 节点之间的数据通信功能。通过进行这个设计来深入的了解和掌握基于单片机的 CAN 总线的通信原理及通信功能,体验 CAN 数据通信的强大以及它的高效、便捷等优点。1.3 选题意义现场总线通信是现今各个领域中应用广泛且通信效果好的一种通信技术,生命力强大。现场总线是一种能够进行双向数据通信的、网络智能化的通信技术。现场总线通信系统采用双绞线、多回路的全数字化信息进行数据传输,大大节省了整个系统的成本,提高了整个系统的可靠性和抗干扰能力。另外,现场总线还具有可互连和可互操作的优点,可对各个设备的通信进行很好地梳理。这更加提高了它的通信功能和通信的实时性。现场总线通信已经成为了非常普遍的通信技术。CAN 总线即是一种现场总线,具有现场总线的优点,同时又具有自身的优势。CAN总线具有成本低、效率高、实时性高和可靠性高的特点,这些特点使其已经成为在全世界范围内得到广泛使用的现场总线之一。由于 CAN 总线具有先进的通信技术,它的太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸2应用已经不再局限于汽车工业,而是已经被广泛应用到交通运输、医疗等各个领域。研究 CAN 总线通信对我们更深入的了解 CAN 总线,掌握 CAN 总线的通信原理和通信协议,进一步的学习 CAN 总线,设计成一个 CAN 总线的通信系统有很大的帮助。研究 CAN 总线通信让我们了解 CAN 总线在各个生活领域当中的具体应用都具有非常大的价值,让我们对 CAN 总线目前的发展状况有明确的认识,这更有利于 CAN 总线通信技术今后的发展,有利于工业控制系统在计算机领域中的发展。1.4 本文结构本文拟从以下几个方面介绍 CAN 总线通信系统及本次相关设计:1. 第一章是绪论,介绍课题背景、选题目的以及选题意义。2. 第二章是对本次设计所用到的相关技术和原理的介绍,包括 CAN 总线的基本概念、CAN 总线特点以及 CAN 总线在当今国内外的发展现状进行介绍,本次设计使用的单片机设计部分简单介绍,还有对本次软件开发环境及相关技术的介绍。3. 第三章分析 CAN 总线通信原理、本次软件设计方案以及软件设计的流程图。4. 第四章是本次软件设计的具体模块设计,包括串口设计,SPI 设计以及 CAN 通信设计。5. 第五章是本次设计的设计成果展示。太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸32 相关技术介绍2.1 CAN 总线介绍CAN 是指控制器局域网络,是由著名的德国博世公司在研发汽车通信设备时想象出来并开发成的一种通信协议,CAN 属于现场总线的一种,随着不断发展,现如今 CAN已经有了自己的国际标准,这是相比于其它总线的一个巨大优势,CAN 已经成为当今世界各个领域中应用最广泛的现场总线之一。CAN 总线通信协议的发展非常迅速,已经成为北美和西欧在汽车计算机和嵌入式工业领域中的主要通信协议,在欧洲已经发展为汽车网络的标准协议。在上世纪 80 年代,随着工业技术的不断发展,汽车工业得到了快速的发展,人们对汽车的使用越来越多,功能需求也越来越广,这就出现了一系列问题,比如电子控制系统间的数据通信问题、线束多的问题等,为了解决这些问题适应广大汽车用户的需求从而提出了 CAN 总线的构想,发明了 CAN 总线通信技术。因为 CAN 总线通信协议性能非常高又非常可靠,随着不断的发展,CAN 总线已经被广泛地应用到工业、航空航天、医疗、交通等各个方面。2.1.1 CAN 总线技术简介CAN 总线以报文为单位进行数据传送,报文的优先级结合在 11 位标识符中,具有最低二进制数的标识符有最高的优先级。这种优先级一旦在系统设计时被确立后就不能再被更改。总线读取中的冲突可通过位仲裁解决。CAN 总线系统中的位仲裁,在网络最终确定哪一个站的报文被传送以前,报文的起始部分已经在网络上传送了,所有未获得总线读取权的站都成为具有最高优先权报文的接收站,并且不会在总线再次空闲前发送报文。CAN 具有较高的效率是因为 CAN 总线仅仅被那些发出请求的站利用,这些请求是根据报文在整个系统中的重要性按顺序处理的。这种方法在网络负载较重时有很多优点,因为总线读取的优先级已被按顺序放在每个报文中了,这可以保证通信的稳定性和正确性。在实践中,有两种重要的总线分配方法:按时间表分配和按需要分配。在第一种方法中,不管每个节点是否向总线发出请求,都对每个节点按最大时间进行分配。因此,不论其是立即进行总线存取或在一特定时间进行总线存取,总线都可以被分配给每个站,这将保证总线数据读取时有明确的总线分配。在第二种方法中,总线按照每个站传输数据的请求按需分配。因此,当多个站同时请求总线存取时,总线将终止所有站的请求,这时将不会有任何一个站获得总线分配。这两种 CAN 实现总线分配的方法,可保证当不同的站向总线发出传输请求时,明确地对总线进行分配。这种位仲裁的方法可以解决当两个站同时发送数据时产生的冲突问题。CAN 总线是现场总线的一种,它是一种比其它现场总线通信性更强的串行通信网络,它具有通信便捷,通信实时性强,可靠性高,通信功能强大等特点,跟其它的现场总线相比,CAN 总线通信具有下列优势:1. CAN 节点之间的通信功能更强在 CAN 的通信中,数据发送和数据接收都是有优先级之分的,系统中各节点在通信时的发送和接收都要根据缓冲器的优先级发送数据。与其他现场总线不同,CAN 通信协议编码是对 CAN 通信数据块直接进行编码,这样编码的好处是使 CAN 通信功能更太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸4快捷可靠,更有利于需求。如果有特殊需要,还可以使不同的节点同时接收到相同的数据。2. CAN 总线有错误检测的功能,且开发周期短CAN 收发器有两个输出端,即收发高端和收发低端,高端的状态只能是高电平,同样低端的状态是低电平。当通信中多个节点同时向总线发送数据时,如果有错误发生,也不会出现总线短路的情况。此外 CAN 节点还有一项其它现场总线不具备的功能,就是假如发生严重的错误,它可以自动停止输出数据,以免造成总线上其他节点的数据结果不正确,这就可以保证总线不会处于“死锁”状态。而且,CAN 相比于其它现场总线具有更完善更先进的通信协议,系统开发难度较低,开发周期短。3. CAN 总线是最有发展潜力的现场总线CAN 总线具有比其它现场总线更高效的性能,利用 CAN 总线实现数据通信功能更便捷、更可靠、并且实时性更强,目前 CAN 总线的使用已经越来越广泛,技术发展也越来越成熟。一开始 CAN 总线是为了解决汽车中设备间的通信问题而发明出来的,因此 CAN 总线应用最广泛的领域就是汽车领域,随着不断发展,现在一些世界著名的汽车品牌,如奥迪、奔驰、宝马等都运用 CAN 总线通信技术。现在它已经不单单应用在汽车领域,交通运输、机械、医疗、电子设备等领域也有了巨大的发展,可以说 CAN总线已经成为了应用最广泛且最有发展潜力的通信总线。4. CAN 总线已有自己的国际标准CAN 总线自从问世后就在汽车领域中得到了广泛的应用与好评,随着不断的发展,CAN 在其它领域中的使用也越来越广泛,并在 1993 年有了自己的国际标准,CAN 总线在市场上的竞争力大大提高,更加广为使用,这也对 CAN 总线今后的发展有很大的意义。2.1.2 CAN 总线的发展概况现场总线已经成为了工业控制系统通信中非常可靠的一类通信数据总线。尽管到目前为止,我国的技术水平并没有达到一定的高度,我们对现场总线的研究也尚不能称得上是世界先列,但现场总线的高性能高优势使得它已经被应用到各个领域中。当今现场总线并没有严格的规范,因此它可以自由的发挥,这会更加促进现场总线技术的发展和标准的产生。CAN 正是在这种不断需求和不断发展的背景下诞生的。在当今科技发展如此快速的背景下,CAN 控制器局域网也已经在中国取得了迅速的发展,已经被广泛应用于航空航天、交通、工业、医疗、汽车等领域,我们国家著名的神舟航天飞行器就运用了 CAN 的技术。现如今,CAN 已经在各个领域中有了广泛的使用和发展,这就产生了一个问题,即 CAN 通信报文势必要有一个统一的标准。飞利浦公司为我们开了先河,第一个制订并公布了 CAN 的标准,有了这个基础,不久国际标准化组织就制定并正式公布了 CAN的国际标准,CAN 终于实现了标准化,这就为 CAN 技术今后更好的发展打下了坚实的基础。因为 CAN 自身的高性能和高优势,它的发展规模也在不断扩大,已经不是早期刚刚研发出来仅仅应用于汽车领域,而是在航空航天、交通运输、医疗、机械、自动化等各个领域都得到了很好地应用与发展,已经在这些领域都有了一席之地。尽管 CAN总线通信仍然有一些不足和局限,但是随着通信技术的不断发展,生活和科研等对通信技术的要求的不断提高,我们相信 CAN 总线会不断进步和发展,在未来能够取得更大的成功。太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸52.1.3 CAN 总线的特点CAN 总线是德国博世公司针对汽车中设备的通信而开发出来的一种串行数据通信协议,它的通信范围广,通信速率高,即使在远距离也能实现快速通信。它具有以下特点:1. CAN 能将数据按照成帧方式进行处理CAN 总线通信功能强大,可以对数据按照成帧方式进行处理,通信快捷,实用性强。2. CAN 总线通信节点无数量限制和以往总线通信不同,CAN 通信是直接对通信数据模块进行编码,这可以说是 CAN总线最大的一个特点。这样的好处就是在分布式控制系统的通信中不仅可以使通信的节点个数不受限制,而且当有特殊要求时还可以让不同的节点同时接收到相同的数据,可以说相比以往有了很大的进步,这就是 CAN 相比其它总线通信的强大之处。3. CAN 总线各个节点之间可以自由通信CAN 总线的有着独一无二的设计,它上面的任意一个节点都可在通信中的任何时候向系统中的其它任何节点发送数据而不会收到阻碍,各节点之间可以不分时间不互相排斥进行自由通信,这就很好地保证了 CAN 总线通信的高效性。4. CAN 总线通信距离远、通信速率高,通信实时性强CAN 总线通信距离远,最远可达 10 公里,通信速率最高可达到 1Mbps,即使在最远距离通信,通信速率也能达到 50kbps。CAN 总线通信实时性强,可以在很小的范围内进行大量的数据通信,还可以在很远的距离进行少量数据的通信。2.1.4 CAN 总线协议介绍如表 2-1 所示,CAN 协议涵盖了国际标准化组织规定的 OSI(开放式系统互联)基本参照模型中的传输层、物理层以及数据链路层。表 2-1 OSI 基本参照模型OSI 基本参照模型 各层定义的主要项目7 层:应用层 由实际应用程序提供可利用的服务。6 层:表示层 进行数据表现形式的转换。如:文字设定、数据压缩等5 层:会话层 建立会话式的通信,控制数据正确地接收和发送4 层:传输层 控制数据传输的顺序、传输错误的检测等,保证通信的质量。如:错误修正、再传输控制。3 层:网络层 进行数据传送的路由选择或中继。如:单元间的数据交换、地址管理。2 层:数据链路层 将物理层收到的信号组成有意义的数据,提供传输错误控制灯数据传输流程。如:访问的方法、数据的形式。通信方式、连接控制方式、检错方式。1 层:物理层 规定了通信时使用的电缆、连接器等电气信号规格,以实现设备间的信号传送。太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸6如:信号电平、收发器、电缆、连接器等的形态。数据链路层是 CAN 总线通信协议的核心部分,主要负责数据的发送接收以及错误检测等,它的功能通常在 CAN 控制器的硬件中实现。数据链路层有两个组成部分,分别是逻辑链路控制层(LLC)和介质访问控制层(MAC) 。其中介质访问控制层又是数据链路层的核心部分。如表 2-2 为 OSI 基本参照模型中的传输层、数据链路层以及物理层的 CAN 协议定义。表 2-2 OSI 各层中 CAN 定义事项层 定义事项 功能传输层 再发送控制 永久再尝试接收消息的选择 可点对点连接、广播、组播。过载通知 通知接收准备尚未完成数据链路层(LLC)错误恢复功能 再次发送消息的帧化 有数据帧、遥控帧、错误帧、过载帧 4 种帧类型。连接控制方式 竞争方式(支持多点传送)数据冲突时的仲裁根据仲裁优先级较高的 ID 可继续被发送错误通知 CRC 错误、填充位错误、位错误、ACK 错误、格式错误。错误检测 所有单元都可随时检测错误。应答方式 ACK 和 NACK 两种数据链路层(MAC)通信方式 半双工通信位编码方式 NRZ(不归零)方式编码位时序 位时序、位的采样数物理层同步方式 根据同步段实现同步,并且具有再同步功能。CAN 通信可以对数据按成帧方式进行处理,是通过以下 5 种类型的帧进行的:数据帧、遥控帧、错误帧、过载帧、帧间隔。其中,数据帧和遥控帧有标准格式和扩展格式两种格式。标准格式有 11 个位的标示符,扩展格式有 29 个位的标示符。各种帧的用途如表 2-3 所示。表 2-3 帧的种类及用途帧 帧用途数据帧 用于发送单元向接收单元传送数据的帧。遥控帧 用于接收单元向具有相同 ID 的发送单元请求数据的帧。错误帧 用于检测出错误时向其它单元通知错误的帧。过载帧 用于接收单元通知其尚未做好接收准备的帧。帧间隔 用于将数据帧及遥控帧与前面的帧分离开来的帧。
    展开阅读全文
    1
      金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:CAN总线通信研究与软件设计.rar
    链接地址:http://www.gold-doc.com/p-158385.html

    当前资源信息

    4.0
     
    (2人评价)
    浏览:22次
    bysj上传于2018-09-15
    1
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们
    copyright@ 2014-2018 金牌文库网站版权所有
    经营许可证编号:浙ICP备15046084号-3
    收起
    展开