基于CAN总线节点通信的设计与实现.doc

上传人:滴答 文档编号:4012897 上传时间:2019-09-10 格式:DOC 页数:53 大小:711KB
下载 相关 举报
基于CAN总线节点通信的设计与实现.doc_第1页
第1页 / 共53页
基于CAN总线节点通信的设计与实现.doc_第2页
第2页 / 共53页
基于CAN总线节点通信的设计与实现.doc_第3页
第3页 / 共53页
基于CAN总线节点通信的设计与实现.doc_第4页
第4页 / 共53页
基于CAN总线节点通信的设计与实现.doc_第5页
第5页 / 共53页
点击查看更多>>
资源描述

1、 毕 业 设 计设计题目:基于 CAN总线节点通信的设计与实现- 1 -基于 CAN总线节点通信的设计与实现摘 要本设计是基于 CAN总线节点的网络通信。设计的硬件用到了 ARM处理器,CAN总线模块(主要有控制器 MCPC2510,收发器 82C250等),PC 机,虚拟机。设计实现了用 ARM处理器通过 SPI串口总线 1将信息发送各给 CAN总线,利用芯片 MCP2510作为控制器控制收发器采集 CAN总线上的信息,然后通过设置好的CAN总线模块的自回环模式实现将采集到的信息自收自发。ARM 处理器会通过 TCP协议,CAN总线是一种新兴的现场总线 2,短短时间内就成为了国际上应用最广泛

2、的现场总线之一,其成本低,能耗小,稳定性高,抗干扰强,传输速度快,传输距离远。被广大的技术人员所喜爱。CAN 总线开始只是应用于汽车行业,后来由于其众多的优点被逐渐拓展到各个领域,广为人们认知和应用。TCP同 UDP协议一样属于运输层协议。不同的是它是基于字节流的,是一种面向连接的,可靠的通信协议。TCP 协议通过三个报文段完成连接的建立,这个过程称为三次握手。TCP 用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算和校验。本设计采用了 TCP协议就是因为它的可靠性。套接字(Socket)是为了在多个 TCP连接或多个应用程序进程需要通过同一个 TCP协议端口传输数据时,为了区别不

3、同的应用程序进程和连接,许多计算机操作系统为应用程序与 TCPIP 协议交互提供的接口。关键词:CAN 总线,MCP2510,TCP 协议,虚拟机。- 2 -Based on the CAN bus communication design and ImplementationAbstractThe design is based on CAN bus network communication. Design of the hardware used in the ARM processor, CAN bus module ( the main controller MCPC2510, tr

4、ansceiver82C250, PC machine, a virtual machine ).Design and implementation of a ARM processor through the SPI serial bus to send information to the CAN bus, using chip MCP2510 as the controller controls the transceiver to collect the information of the CAN bus, and then through the set of CAN bus mo

5、dule self loopback mode to achieve the information collected since the resumption of spontaneous. The ARM processor via the TCP protocol,CAN bus is a new kind of field bus, a short time has become the international most widely used one of the field bus, its low cost, low energy consumption, high sta

6、bility, strong interference resistance, high transmission speed, the transmission distance. The vast majority of technical staff favorite. CAN bus is used in the automotive industry, and later because of its numerous advantages are gradually extended to various fields widely, cognition and applicati

7、on.TCP and UDP protocol as a transport layer protocol. Different is that it is based on a stream of bytes, is a connection-oriented, reliable communication protocol. The TCP protocol through the three message segment linking the establishment, this process is called the three handshake. TCP uses a c

8、hecksum function to test whether there is an error in the data; sending and receiving are the calculation and validation. This design uses the TCP protocol because of its reliability.Socket ( Socket ) to a TCP connection or a plurality of application process through the same TCP protocol port data t

9、ransfer, in order to distinguish the different application processes and connections, many computer operating system to the application and the TCP / IP protocol interaction interface.Key words: CAN bus, MCP2510, TCP protocol, virtual machine- 1 -目 录1 绪论 .31.1 can总线概述: .32.2 套接字 Socket概述: .42 CAN 总线

10、原理基础 .52.1 CAN 总线发展史 .52.2 CAN总线的优势 .62.3 CAN总线的电气特点 .62.4 can总线的 MAC帧结构 .72.5 can控制器 MCP2510简介 .73 linux 网络编程基础 .113.1 linux简介 .113.2 TCP/IP协议 .113.2.1 TPC/IP简介 .113.2.2 TCP和 UDP简介 .123.2.3 三次握手 .133.3 socket套接字 .143.3.1 socket简介 .143.3.2 Socket套接字主要类型 .153.3.3 套接字的使用步骤 .154 系统的设计 .184.1 系统的总体设计概述

11、.185系统各部分的详细设计 .195.1 超级终端的建立 .195.2 CAN模块详细设计 .195.2.1 can的初始化 .195.2.2 CAN数据接收 .215.2.3 CAN数据发送 .225.2.4 CAN总线数据的自发自收 .245.3 TCP协议网络传输详细设计: .265.3.1 ARM目标板服务器的设计 .265.3.2 虚拟机客户端的设计 .286 系统测试 .316.1 CAN自发自收的测试 .316.2 TCP协议通信测试 .316.3 总体测试 .317 结束语 .32谢辞 .33参考文献 .34附录 .35外文资料 .41中文翻译 .47- 2 -1绪论1.1

12、can总线概述:随着人们生活水平的不断进步,科学技术的不断创新发展,导致了自动化系统的深刻变革。为了满足科技多元化的要求,在以往现场总线的基础上不断创新,克服生活、生产中遇到的各种技术性难题,譬如电控系统的车身布线庞大复杂,安装控件短缺,等等。于是 CAN总线在上个世纪 80年代应运而生了。CAN总线全称 Controller Area Network,也即控制器局域网 3,是现在全球应用最广泛的现场总线之一。它最早是德国 Bosch公司推出的,并最终成为国际标准(ISO11898) 。其起先只是应用于车载各电子装置 ECU之间交换信息,现在是否使用了 CAN总线已经成为了判断一部车是否达到数

13、字化的基本标准,后来由于其优良的电子特性和超值的性价比,不断的被拓展应用于其他各个行业。CAN的只要优点有主要包括以下:成本低。可用双绞线、同轴电缆、光纤,这就是使 CAN总线系统在建设和维护过程中显得极为便利。极高的总线利用率。总线仅仅被那些请求总线悬而未决的节点利用,这些请求是根据报文在整个系统中的重要性按顺序处理的。这种方法在网络负载较重时有很多优点,因为总线读取的优先级已被按顺序放在每个报文中了,这可以保证在实时系统中较低的个体隐伏时间。很远的数据传输距离,最长可达 10km。很告诉的传输速度,当传输距离为 10km的时候传输速度为 5kbps,但是当传输距离在 40m之内时,can

14、总线的传输速度是可以达到 1Mbps这个相当可观的速度。CAN总线的标准帧的帧 ID标示符位数为 11位,这就决定了 CAN总线上的接点数可以达到 110个,若是使用扩展帧 ID的话,该报文帧 ID的标示符位数是 29位,所以 CAN总线的节点数基本上是没有限制。可以跟根据报文的 ID决定接受或者屏蔽该报文。具有可靠的错误处理和检错机制。CAN 协议采用 CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性。发送的信息遭到破坏后可自动重发节点在眼中错误的情况下具有自动退出总线的功能。报文不包含源地址或目标地址仅用标识符来指示功能信息优先级信 4。此外,CAN 只有 2根线与外部相连,并

15、且内部集成了错误探测和管理模块。CAN总线采用了多主竞争式总线结构,具有多主站运行和分散仲裁的串行总线以及- 3 -广播通信的特点。CAN 总线上任意节点可在任意时刻主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。 CAN总线协议已被国际标准化组织认证,技术比较成熟,控制的芯片已经商品化,性价比高,特别适用于分布式测控系统之间的数通讯。CAN 总线插卡可以任意插在 PC AT XT兼容机上,方便地构成分布式监控系统。由于具有如此众多的优点,CAN 卓越的特性、极高的可靠性和独特的设计,特别适合工业过程监控设备的互连,因此,越来越受到工业界的重视,并已公认为最有前途的现

16、场总线之一。CAN 总线被国际上公认为几种最有前途的现场总线之一。由于其高性能、高可靠性、实时性等优点现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。控制器局域网近几年在中国迅速普及推广。2.2 套接字 Socket概述:套接字,是支持 TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端面点,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程。套接字是网络 I/O的基础。常用的 TCP/IP协议的套接字类型有 3种类型:流式套接字,它使用了传输控制协议,即 TCP。流式套接字用于提供面向连接、可靠的数据传

17、输服务,该服务将保证数据能够实现无差错、无重复发送,并按顺序接收。数据包套接字,它使用 UDP协议进行数据的传输。数据包套接字提供了一种无连接的服务,该服务并不能保证数据传输的可靠性,数据有可能在传输过程中丢失或出现数据重复,且无法保证顺序地接收到数据。以上 2种又称为标准套接字。原始套接字,它与标准套接字的区别在于:原始套接字可以读写内核没有处理的 IP数据包,而流套接字只能读取 TCP协议的数据,数据包套接字只能读取UDP协议的数据。所以原始套接字主要应用于协议的开发。套接字区分不同应用程序进程间的网络通信和连接,主要有 3个参数:通信的目的 IP地址、使用的传输层协议(TCP 或 UDP

18、)和使用的端口号。本设计为了稳定可靠的传送数据采用了流式套接字。 - 4 -2 CAN总线原理基础2.1 CAN 总线发展史CAN总线是一种高性能、高可靠性、实时性等优点现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门的现场总线,它是于 80年代为现代汽车应用被德国博世公司领先推出的一种多主机局部网。随着计算机硬件、软件技术及集成电路技术的迅速发展,CAN 逐渐的被推广到各个不同领域,这就导致各种应用领域通信报文需要被标准化。为此,1991 年 9月 PHILIPS SEMICONDUCTORS制订并发布了包含标准和扩展两种报文格式的 CAN技术规范(VE

19、RSION 2.0) 。2.0A 就是曾在 CAN技术规范版本 1.2中定义给出的的CAN报文格式,能提供 11位地址,使 can能够挂接 110个节点;而 2.0B给出了标准的和扩展的两种报文格式,提供 29位地址,这就使 can节点的个数基本没有了限制。又过了两年,ISO 于 1993年 11月正式颁布了道路交通运载工具-数字信息交换-高速通信控制器局部网(CAN)国际标准(ISO11898) ,为控制器局部网标准化、规范化推广铺平了道路。随着集成电路技术以及计算机硬、软件技术的飞速发展,工业控制系统已成为计算机技术应用领域中最具活力的一个分支,并取得了巨大进步。由于对系统可靠性和灵活性的

20、高要求,工业控制系统的发展主要表现为:控制面向多元化,系统面向分散化,即负载分散、功能分散、危险分散和地域分散。分散式工业控制系统就是为适应这种需要而发展起来的。这类系统是将计算机技术、自动控制技术、通信技术、显示技术和转换技术紧密结合的产物。它的核心是微型计算机,所以在适应范围、可扩展性、可维护性以及抗故障能力等方面,较之分散型仪表控制系统和集中型计算机控制系统都具有明显的优越性。现场设备、接口与计算设备以及通信设备组成了典型的分散式控制系统。现场总线能同时满足过程控制和制造业自动化的需要,因此现场总线已成为工业数据总线领域中最为活跃的一个领域。尽管目前对现场总线的研究尚未能提出一个完善的标

21、准,但现场总线的高性能价格必将吸引众多工业控制系统采用。现场总线的开发拓展与应用已成为工业数据总线领域的热点。总之,正是由于当时现场总线的标准尚未统一,也使得现场总线的应用得以不拘一格地发挥,并为现场总线的完善提供更加丰富的依据。同时低廉的成本,优越的电气特性,超强的稳定性使得控制器局部网 CAN(CONTROLLER AERANETWORK)在当时的社会及科技背景下应运而生了。- 5 -2.2 CAN总线的优势 CAN属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。基于 CAN总线的分布式控制系统,网络各节点之间的数据通信实时性强,开发周期短,并且 CAN是到目前为止

22、惟一有国际标准的现场总线。2.3 CAN总线的电气特点CAN总线一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光纤。CAN总线采用差分电压传送,两条信号线一条用 CAN_H(后边简称 H线)表示 一条用 CAN_L(后面简称 L线)表示,当两条信号线电压均为 2.5V时,为静态,我们称之为“隐性” ,用逻辑 1来表示。当 H线电压高于 L线电压的时候,通常是3.5V、1.5V,这个时候为“显性” ,用逻辑 0来表示。CAN 总线通过 CAN收发器接口芯片 P82C250的两个输出端 CAN_H和 CAN_L与物理总线相连。CAN 总线的接受过滤器可根据 CAN的这种电

23、气特性根据节点发送方的 ID报文帧决定是否接受该数据,这为 CAN总线的仲裁奠定了技术基础 5,在以后的章节会有详细的介绍。CAN总线的一个位时间由同步段,传播段,相位段 1和相位段 2组成。每段的时间份额是可以通过 CAN总线控制器来实现编程控制的。而时钟系统 tsys和波特率预分值 BRP则决定了时间份额的大小:tp=BRP/tsys。如图 2-1所示:图 2-1 can总线的一个位时间CAN总线 2个节点之间的数据传输速度是和 2个节点之间的距离有关的,图2-2表示的是两节点直接传输速度和其距离的关系:传输速度/kbps1000 500 250 125 100 50 20 10 5- 6

24、 -节点之间距离/m40 130 270 530 620 1300 3300 6700 10000图 2-2 can总线节点之间传说速度与距离的关系2.4 can总线的 MAC帧结构常用的 CAN总线帧数据主要有 2中格式:标准格式和扩展格式。标准格式帧数据由 ID为 11位的仲裁场,控制场,数据场,crc 场,ack 场组成。扩展格式帧数据由 ID为 29位的仲裁场,控制场,数据场,crc 场,ack 场组成。如图 2-3所示:图 2-3 can总线的帧数据结构在标准格式中,报文的起始位称为帧起始(SOF) ,然后是由 11位标识符和远程发送请求位 (RTR)组成的仲裁场。RTR 位标明是数

25、据帧还是请求帧,在请求帧中没有数据字节。 控制场包括标识符扩展位(IDE) ,指出是标准格式还是扩展格式。它还包括一个保留位 (ro) ,为将来扩展使用。它的最后四个字节用来指明数据场中数据的长度(DLC) 。数据场范围为 08 个字节,其后有一个检测数据错误的循环冗余检查(CRC) 。 应答场(ACK)包括应答位和应答分隔符。发送站发送的这两位均为隐性电平(逻辑 1) ,这时正确接收报文的接收站发送主控电平(逻辑 0)覆盖它。用这种方法,发送站可以保证网络中至少有一个站能正确接收到报文。 报文的尾部由帧结束标出。在相邻的两条报文间有一很短的间隔位,如果这时没有站进行总线存取,总线将处于空闲状

26、态。2.5 can控制器 MCP2510简介Mcp2510是一种带有 SPI接口的 CAN总线控制器,灵活的中断能力、接收帧屏蔽和过滤、帧优先级设定等特性使其能够很好的对信息进行管理,减轻了处理器的负担和软件设计的复杂度。它支持 CAN技术规范 V2.0A和 V2.0B,也即支持标准格式和扩展格式的 CAN数- 7 -据帧结构。同时具有接受滤波和管理信息的功能,它支持回环模式可以实现数据的自发自收。MCP2510通过 SPI接口与 MCU进行数据传输,MCU 可用过 MCP2510与 can总线上的其他 MCU单元进行数据传输。MCP2510 内含 3个发送缓冲器与 2个接收缓冲器,同时还具有

27、灵活的中断管理能力,这些特点使得 MCU对 CAN总线的操作变的非常简便。图 2-4为 MCP2510内部结构图:图 2-4 MCP2510内部结构图(1)收发操作MCP2510的发送操作通过 3个发送缓冲器来实现。这 3个发送缓冲器各占据14字节的 SRAM。第 1字节是控制寄存器 TXBNCTRL,该寄存器用来设定信息发送的条件,且给出了信息的发送状态;第 26 字节用来存放标准的和扩展的标识符以及仲裁信息;最后 8字节则用来存放待发送的数据信息。在进行发送前,必须先对这些寄存器进行初始化。(2)中断管理MCP2510有 8个中断源,包括发送中断、接收中断、错误中断及总线唤醒中断等。利用中

28、断使能寄存器(CANINTE)和中断屏蔽寄存器(CANINTF)可以方便地实现对各种中断的有效管理。当有中断发生时,INT 引脚变为低电平并保持在低电平,直到 MCU清除中断为止。(3)错误检测CAN协议具有 CRCF错误、应答错误、形式错误、位错误和填充错误等检测功能。MCP2510 内含接收出错计数器(REC)和发送出错计数器(TEC)两个错误计数器。因而对网络中的任何一个节点来说,都有可能因为错误计数器的数值不同而使其处于错误一激话、错误一认可和总线一脱离 3种状态之一 6。MCP2510正常工作之前,需要进行正确的初始化。单片机对 MCP2510的接收缓冲器和发送缓冲器的操作,必须通过 SPI接口用 MCP25lO内置读写命令来完成。其读、写命令时序图如图 2-5和图 2-6所示:

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

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。