CAN总线的应用分析.doc_第1页
CAN总线的应用分析.doc_第2页
CAN总线的应用分析.doc_第3页
CAN总线的应用分析.doc_第4页
CAN总线的应用分析.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

HEFEI UNIVERSITY集散控制与现场总线课程设计设计 名称: CAN总线的应用分析 班 级: 08自动化(2)班 姓 名: 李宏灶 学 号: 0805070110 指导教师: 丁 健 摘要:CAN(Controller Area Network)现场总线作为一种有效支持分布式控制和实时控制的技术,以其稳定性好、可靠性高、抗干扰能力强、通讯速率高、维护成本低及其独特的设计越来越受到人们的重视,并被公认为最有前途的现场总线之一。本文的主要工作是在分析了CAN 总线工作原理以及其总线协议的基础上,就开发CAN 现场总线系统的有关技术作了分析和研究,并探讨了其应用软件和硬件的设计方案。关键词: CAN总线;特点;总线协议;应用技术一、CAN 总线的简介1.1 CAN总线发展控制器局域网CAN( Controller Area Network)属于现场总线的范畴,是一种有效支持分布式控制系统的串行通信网络。是由德国博世公司在20世纪80年代专门为汽车行业开发的一种串行通信总线。由于其高性能、高可靠性以及独特的设计而越来越受到人们的重视,被广泛应用于诸多领域。而且能够检测出产生的任何错误。当信号传输距离达到10km时,CAN仍可提供高达50kbit/s的数据传输速率。由于CAN总线具有很高的实时性能和应用范围,从位速率最高可达1Mbps的高速网络到低成本多线路的50Kbps网络都可以任意搭配。因此,CAN己经在汽车业、航空业、工业控制、安全防护等领域中得到了广泛应用。 随着CAN总线在各个行业和领域的广泛应用,对其的通信格式标准化也提出了更严格的要求。1991年CAN总线技术规范(Version2.0)制定并发布。该技术规范共包括A和B两个部分。其中2.0A给出了CAN报文标准格式,而2.0B给出了标准的和扩展的两种格式。美国的汽车工程学会SAE在2000年提出了J1939协议,此后该协议成为了货车和客车中控制器局域网的通用标准。1.2 CAN总线的特点(1)具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点;(2)采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作;(3)具有优先权和仲裁功能,多个控制模块通过CAN 控制器挂到CAN-bus 上,形成多主机局部网络;(4)可根据报文的ID决定接收或屏蔽该报文;(5)可靠的错误处理和检错机制;(6)发送的信息遭到破坏后,可自动重发;(7)节点在错误严重的情况下具有自动退出总线的功能;(8)报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。1.3 CAN总线的工作原理CAN总线使用串行数据传输方式,可以1Mb/s的速率在40m的双绞线上运行,也可以使用光缆连接,而且在这种总线上总线协议支持多主控制器。CAN与I2C总线的许多细节很类似,但也有一些明显的区别。当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。 当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。我们可以很容易地在CAN总线中加进一些新站而无需在硬件或软件上进行修改。当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。二、CAN 总线协议的分析2.1 CAN总线协议内容CAN总线的物理层是将ECU连接至总线的驱动电路。ECU的总数将受限于总线上的电气负荷。物理层定义了物理数据在总线上各节点间的传输过程,主要是连接介质、线路电气特性、数据的编码/解码、位定时和同步的实施标准。(1) 总线竞争的原则BOSCH CAN基本上没有对物理层进行定义,但基于CAN的ISO标准对物理层进行了定义。设计一个CAN系统时,物理层具有很大的选择余地,但必须保证CAN协议中媒体访问层非破坏性位仲裁的要求,即出现总线竞争时,具有较高优先权的报文获取总线竞争的原则,所以要求物理层必须支持CAN总线中隐性位和显性位的状态特征。在没有发送显性位时,总线处于隐性状态,空闲时,总线处于隐性状态;当有一个或多个节点发送显性位,显性位覆盖隐性位,使总线处于显性状态。 在此基础上,物理层主要取决于传输速度的要求。在CAN中,物理层从结构上可分为三层:分别是物理信号层(Physical Layer Signaling,PLS)、物理介质附件(Physical MediaAttachment,PMA)层和介质从属接口(Media Dependent:Inter-face,MDI)层。其中PLS连同数据链路层功能由CAN控制器完成,PMA层功能由CAN收发器完成,MDI层定义了电缆和连接器的特性。目前也有支持CAN的微处理器内部集成了CAN控制器和收发器电路,如MC68HC908GZl6。PMA和MDI两层有很多不同的国际或国家或行业标准,也可自行定义,比较流行的是ISOll898定义的高速CAN发送/接收器标准。(2) 节点数量理论上,CAN总线上的节点数几乎不受限制,可达到2000个,实际上受电气特性的限制,最多只能接100多个节点。(3) CAN的数据链路层CAN的数据链路层是其核心内容,其中逻辑链路控制(Logical Link control,LLC)完成过滤、过载通知和管理恢复等功能,媒体访问控制(Medium Access control,MAC)子层完成数据打包/解包、帧编码、媒体访问管理、错误检测、错误信令、应答、串并转换等功能。这些功能都是围绕信息帧传送过程展开的。2.2 CAN 总线的分层结构ISOOSI 模型将各种协议分为七层,自下而上依次为:物理层、链路层、网络层、传送层、会话层、表达层和应用层。CAN 协议也是建立在国际标准组织的开放系统互连模型基础上的,不过,考虑到作为工业控制底层网络,其信息传输量较少,实时性要求比较高,因此,CAN 的模型结构只取了OSI 底层的物理层、数据链路层和顶层的应用层。其中物理层和数据链路层一般都固化在专用的CAN 总线接口芯片和微处理器中,CAN 总线系统的研发者主要进行应用层的开发工作。三、CAN 总线的应用3.1 CAN 总线的硬件设计CAN 总线采用的总线式拓扑结构成本低,结构简单,系统可靠性高。通过CAN总线连接各个网络节点,形成多主机控制器局域网。信息的传输采用CAN 通信协议,通过CAN 控制器3 来完成。各网络节点一般为带有微控制器的智能节点完成现场的数据采集和基于CAN 协议的数据传输。CAN 控制器芯片有两种: 一种是独立的(如PHILIPS 公司的SJA1000),一种是和微控制器集成在一起的。前者使用上比较灵活,常用的微控制器基本上都能满足CAN 控制器接口的需要。后者在片内将CAN 总线控制器作为内部的一个寄存器模块与微处理器集成在一起,设计的灵活性降低,但同时外部电路的复杂性也降低了,整个系统工作相对稳定。CAN 收发器为CAN 总线通信控制器与物理总线之间的接口,它可以提供向总线的差动发送能力和CAN 控制器的差动接收能力。对于CAN 控制器及带有CAN总线接口的器件,CAN 收发器并不是必须使用的器件,,因为多数CAN 控制器均具有配置灵活的收发器件,并允许总线故障,只是驱动能力只允许20 - 30 个节点连接在一条总线上。若网络的规模比较大,节点数比较多,需外加总线驱动元件,以增大输出电流。如82C250 可支持多达110个节点,并能以100 Mbps 的速率工作在恶劣的电气环境之下。一般在驱动芯片和CAN 控制器之间加入光电耦合器,增加抗干扰能力。物理层的设计要注意电缆的终端阻抗匹配,这直接影响了CAN 总线能否正常工作和网络性能。另外,CAN 通讯数据传输的是数字量,所以对数据的采集通常需使用A / D 转换模块。3.2 CAN 应用软件的设计根据CAN 控制器和微处理器的特性,CAN 驱动程序通常分为3 个层次:硬件抽象层,功能函数层和应用程序接口层。通常我们只关心应用程序接口层,它包括初始化CAN 控制器,发送数据函数,接收数据函数。在设计应用层软件时,最重要的是实现CAN 的正常通讯,也就是如何利用CAN 控制器与CAN 网络上其它节点进行数据通讯。而正常的通讯无非是向总线上发送数据和从总线上接收数据。但是在正常通讯之前必须要对CAN 控制器进行初始化,以便让CAN 控制器的工作方式、总线波特率、验收过滤器等各个功能与实际的工作相符。(1) 初始化CAN 模块CAN 控制器初始化函数主要用来实现CAN 工作时的参数设置。这些初始化的内容包括硬件使能CAN,软件复CAN,设置CAN 报警界限,设置总线波特率,设置中断工作方式,设置CAN 验收过滤器的工作方式,设置CAN 控制器的工作模式等。(2) CAN 数据发送模块对CAN 模块初始化成功后,就可以调用驱动程序的发送数据函数来实现数据的发送。将要发送的数据按CAN 格式组成报文,写入CAN 模块的发送缓冲区中,然后启动发送命令,将报文送到总线上去。返回值0,表示数据成功写入缓冲区并成功启动发送,但是否发送成功,并不知道。要想明确的知道是否发送成功请在调用该函数后查询TCS 状态位,或配

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论