CANopen协议之CAN总线简介.doc_第1页
CANopen协议之CAN总线简介.doc_第2页
CANopen协议之CAN总线简介.doc_第3页
CANopen协议之CAN总线简介.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

CANopen协议之CAN总线简介1 引言随着汽车工业的发展,20世纪80年代中期,率先由Bosch公司研发出新一代的汽车总线即控制器局域网CAN(Controller Area Network)总线,CAN总线具有布线简单、典型的总线型结构、可最大限度地节约布线与维护成本、稳定可靠、实时、抗干扰能力强、传输距离远等特点,这些都决定了CAN总线必定是一种成功的总线。CAN总线一经推出,不仅在汽车行业得到广泛的推广与应用,在诸如航天、电力、石化、冶金、纺织、造纸等领域也得到广泛应用。在自动化仪表、工业生产现场和数控机床等系统中也越来越多地使用了CAN总线,CAN总线的未来发展依然充满活力,有着巨大的发展空间。由于CAN总线本身只定义ISO/OSI模型中的第一层(物理层)和第二层(数据链路层),通常情况下CAN总线网络都是独立的网络,所以没有网络层。在实际使用中,用户还需要自己定义应用层的协议,因此在CAN总线的发展过程中出现了各种版本的CAN应用层协议,现阶段最流行的CAN应用层协议主要有CANopen、DeviceNet和J1939等协议。本系列文章主要介绍CAN总线、基于CAN总线的应用层协议CANopen,以及CANopen设备的应用及组网方式。本文主要介绍CAN总线相关的概念及网络结构。2 CAN总线特点CAN总线采用差分信号传输,通常情况下只需要两根信号线(CAN-H和CAN-L)就可以进行正常的通信。在干扰比较强的场合,还需要用到屏蔽地即CAN-G(主要功能是屏蔽干扰信号),CAN协议推荐用户使用屏蔽双绞线作为CAN总线的传输线。在隐性状态下,CAN-H与CAN-L的输入差分电压为0 V(最大不超过0.5 V),共模输入电压为2.5 V。在显性状态下,CAN-H与CAN-L的输入差分电压为2 V(最小不小于0.9 V),如图 1所示。其物理传输层详细和高效的定义,使得CAN总线具有其他总线无法达到的优势,注定其在工业现场总线中占有不可动摇的地位,CAN总线通信主要具有如下优势和特点。(1)CAN总线上任意节点均可在任意时刻主动地向其他节点发起通信,节点没有主从之分,但在同一时刻优先级高的节点能获得总线的使用权,在高优先级的节点释放总线后,任意节点都可使用总线。(2)CAN总线传输波特率为5 kb/s1 Mb/s,在5 kb/s的通信波特率下最远传输距离可以达到10 km,即使在1 Mb/s的波特率下也能传输40 m的距离。在1 Mb/s波特率下节点发送一帧数据最多需要134 s。(3)CAN总线采用载波监听多路访问、逐位仲裁的非破坏性总线仲裁技术。在节点需要发送信息时,节点先监听总线是否空闲,只有节点监听到总线空闲时才能够发送数据,即载波监听多路访问方式。在总线出现两个以上的节点同时发送数据时,CAN协议规定,按位进行仲裁,按照显性位优先级大于隐性位优先级的规则进行仲裁,最后高优先级的节点数据毫无破坏地被发送,其他节点停止发送数据(即逐位仲裁无破坏的传输技术)。这样能大大地提高总线的使用效率及实时性。(4)CAN总线所挂接的节点数量主要取决于CAN总线收发器或驱动器,目前的驱动器一般都可以使同一网络容量达到110个节点。CAN报文分为两个标准即CAN2.0A标准帧和CAN2.0B扩展帧,两个标准最大的区别在于CAN2.0A只有11位标识符,CAN2.0B具有29位标识符。(5)CAN总线定义使用了硬件报文滤波,可实现点对点及点对多点的通信方式,不需要软件来控制。数据采用短帧发送方式,每帧数据不超过8 B,抗干扰能力强,每帧接收的数据都进行CRC校验,使得数据出错机率极大限度地降低。CAN节点在错误严重的情况下具有自动关闭功能,避免了对总线上其他节点的干扰。(6)CAN总线通信介质可采用双绞线、同轴电缆或光纤,选择极为灵活,可大大节约组网成本。3 CAN控制器介绍随着CAN总线的不断发展壮大,符合CAN2.0A和CAN2.0B协议的独立芯片越来越多。如NXP公司推出的SJA1000及SJA1000F,可以直接与普通单片机组合,使该单片机具有CAN通信的能力。随着CAN需求的日益增大,芯片厂商也把CAN控制器直接集成到芯片内部,例如NXP公司的LPC2119、LPC2294、LPC2378等。以下主要以LPC2378的集成CAN控制器为例,对CAN控制器作一个介绍。LPC2378 CAN控制器结构如图2所示。该控制器是一个带有发送和接收缓冲器的串行接口,但它并不含有验收过滤器。验收过滤器是一个独立的模块,能够对所有CAN通道进行CAN标识符过滤。LPC2378 CAN控制器工作流程主要分为发送过程和接收过程。(1)发送过程CAN控制器完全受处理器控制,CPU通过内部总线向CAN控制器的发送寄存器里填写需要发的数据,然后启动CAN控制器的发送使能,发送的数据分别经过位流管理器(变成在总线上发送的二进制码)、错误管理逻辑(负责检测总线状态及发送是否出现错误)及位时序逻辑(管理数据在总线上的发送时序)、CAN收发器(负责把位流数据转换成CAN总线能够传输的差分电平),这样就完成了一帧CAN数据的发送,如图3所示。(2)接收过程CAN数据的接收与CAN数据的发送是一个相反的过程,如图4所示。当CAN收发器检测到CAN总线上有数据时,CAN收发器把CAN总线上的差分信号转换成位流数据,经过错误管理器及位时序逻辑单元对位数据流和时序进行检查,再经过位流管理器把位流数据转换成字节数据并存放到接收缓冲器中,当一帧数据接收完了之后则由接收缓冲器产生数据接收中断(通知CPU已经接收到一帧新数据),并将产生的各种状态通过改变状态寄存器的值来表示。以上主要介绍LPC2378 CAN工作流程,CAN2.0A/B标准协议在CAN控制器中都得以实现,用户只需要操作相关的CAN寄存器就可以控制CAN控制器动作(控制器的具体操作请参考LPC2378数据手册),因此可以大大提高CAN节点的开发时间,提高工作效率。4 CAN总线网络结构作为一个总线型网络,其结构如图5所示,其组网与维护相当方便。CAN总线具有在线增减设备,即总线在不断电的情况下也可以向网络中增加或减少节点。一条总线最多可以容纳110个节点,通信波特率为5 kb/s1 Mb/s,在通信的过程中要求每个节点的波特率保持一致(误差不能超过5%),否则会引起总线错误,从而导致节点的关闭,出现通信异常。5 CAN总线应用层协议由于CAN总线只定义了ISO/OSI中的物理层和数据链路层,因此对于不同的应用出现了不同的应用层协议,为了使不同厂商的产品能够相互兼容,世界范围内需要通用的CAN应用层通信协议,在过去的20年中涌现出许多的协议,不过到现在为止能够广泛被承认的协议却不多,现在CAN应用层协议主要有以下三种:(1)在欧洲等地占有大部分市场份额的CANopen协议,主要应用在汽车、工业控制和自动化仪表等领域,目前由CIA负责管理和维护;(2)J1939是CAN总线在商用车领域占有绝大部分市场份额的应用层协议,由美国机动车工程师学会发起,现已在全球范围内得到广泛的应用;(3)DeviceNet协议在美国等地占有相当大的市场份额,主要用于工业通信及控制和仪器仪表等领域。在以后的文章中将向读者重点介绍CANopen协议的基本概念及CANopen相关设备的使用及组网方法。现阶段我国在工业领域与欧洲和美国等其他的发达国家存在较大的差距。CAN总线作为新型现场总线已经漫延到生活生产的各个领域,能够提高生产效率以及降低生产成本,成为工业现场总线的发展趋势。广州致远电子有限公司提供各种接口的CAN卡、CAN总线分析仪、CAN网关及网桥、CAN卡的OPC服务器以及CAN相关的测试工具。CAN总线的浅析CANopen协议摘 要: 本文分析了CAN总线的一些特点以及在国内的的应用状况,提出了引入国际上通用的CAN总线高层应用协议,以提高国内CAN系统应用水平的建议,并简要介绍了一种CAN的高层协议CANopen协议。文章最后部分介绍了国际上一些较先进的CAN产品和开发方法。 关键词: CAN-bus协议;CANopen协议;嵌入式软件中间件 在设计嵌入式系统,尤其是分布式嵌入式系统时,解决好系统各单元间可靠、有效的通信是系统设计成败的关键,对实时性和安全可靠性要求高的网络而言就更是如此。解决这一问题有多种方案,如RS232/485串行总线、CAN、ProfitBus、FF、WorldFIP、LonWorks等各类型的现场总线,还有嵌入式以太网等。其中,尽管RS485串行总线协议的性能不高,但由于其在硬件成本以及开发简便性上的巨大优势,目前仍然是国内广泛的总线应用。 随着嵌入式系统应用的发展,RS485性能上的不足逐渐显露出来,已经不能满足设计一个高性能、高实时性系统的要求。尽管还需要实践的证明,但笔者经过多年的观察和实践,感觉到CAN总线是其中最有希望成功的。 选择CAN总线实现通信的原因 选择CAN总线作为最佳候选者,主要是基于以下几方面原因: CAN串行总线具有高性能 CAN的传输距离可以达到10公里;通信速率最高可达1Mbps;具有完善的错误检测机制;采用“多重访问冲突仲裁”机制的帧传输方式,可保证不丢失信息;每一帧中最多可以传输8个字节数据,可提供很高的实时性等等。性能上的优势保证了CAN可以应用在很多的领域,在汽车工业、船舶运输、机械控制、工厂自动化、楼宇自动化等都可以看到CAN的应用。 CAN在硬件成本上很具优势 除了性能外,和其它现场总线相比,CAN总线在硬件成本上也有很大优势。从硬件芯片上来说,智能节点要收发信息需要一个CAN控制器和一个CAN收发器。经过20多年的发展,CAN已经获得了国际上各大半导体制造商的大力支持,据CAN最主要的推广组织CIA(自动化CAN)统计,目前已经有20余种CAN控制器和收发器可供选择,片内集成CAN控制器的单片机更多达100余种。CAN在开发成本上的优势也很明显. 目前,从广泛应用的8位/16位单片机,到DSP和32位的PowerPC、ARM等嵌入式处理器,均在芯片内部含有CAN总线硬件接口单元。因此,从硬件角度看,CAN具备其它现场总线无法比拟的高集成化优势和广泛的市场支持基础。 CAN的开发平台也比较简单,用户如果选择普通单片机加上CAN控制器进行开发,则CAN的开发平台和普通单片机的开发平台完全相同;如果选择带有片内CAN控制器的单片机进行开发,则只要换用支持该单片机的仿真器就可以了,其他开发设备完全相同。开发CAN也需要相应的驱动程序。用户可以自行根据选择的CAN控制器开发驱动程序。 图1 CANopen协议通信模型通过采用高层协议将CAN的应用推向深化 和其他的现场总线相比,CAN只定义了物理层和数据链路层的规范(遵循OSI标准),这种设计和CAN规范定义时的历史条件有关,也可以使CAN能够更广泛地适应不同的应用条件,但必然给用户应用带来一些不便。用户在应用CAN协议时,必须自行定义高层协议。 如何将CAN协议的应用推向更深的层次,同时满足产品的兼容和互操作性?国际上通行的办法是发展基于CAN的高层应用协议,只用在应用层上,不同公司的产品才可能实现互操作,好的应用层协议更可以为用户带来系统性能的飞跃。 在CAN总线协议飞速发展的20年中,很多领域都制定了CAN在该领域应用时所采用的高层协议规范。其中,比较著名的有美国汽车工程师协会(SAE)制定的车内通信规范J1939等。这些协议和规范对CAN的推广起了很大的作用,但总体来说,协议的模块化特性都不太好,一般只能应用于特定的领域。为了能够把CAN推广到更多的领域,欧洲一些公司推出了CAL(应用层CAN)协议,尽管CAL在理论上正确,并在工业上可以投入应用,但每个用户都必须设计一个新的子协议,因为CAL 是一个真正的应用层协议。CAL 可以被看作一个应用CAN 方案的必要理论步骤,但在这一领域它不会被推广。从1993 年起,由Bosch公司领导的一个欧洲机构研究出一个协议原型,由此发展成为CANopen规范。 CANopen是一个基于CAL的子协议,采用面向对象的思想设计,具有很好的模块化特性和很高的适应性,通过扩展可以适用于大量的应用领域。在CANopen规范基本完成之后,Bosch将其移交给CIA组织,由其进行维护与发展。在1995年,CIA发表了完整版的CANopen通信子协议;仅仅用了5年的时间,它已成为全欧洲最重要的嵌入式网络标准。 CANopen 不仅定义了应用层和通信子协议,而且为可编程系统、不同器件、接口、应用子协议定义了大量的行规,遵循这些行规开发出的CANopen设备将能够实现不同公司产品间的互操作。另外,CANopen协议是免许可证的,任何组织和个人都可以开发支持CANopen协议的设备而不用支付版税,这也是CANopen得到迅猛发展的重要原因之一。CANopen目前已在汽车工业控制系统,公共交通运输系统,医疗设备,海运电子设备和建筑自动化系统中取得了广泛的应用,是将CAN应用推向深化的理想选择。 采用CANopen协议实现通信 CANopen协议中包含了标准的应用层规范和通信规范,其通信模型如图1所示。在CANopen的应用层,设备间通过相互交换通信对象进行通信。良好的分层和面向对象的设计思想将带给用户一个清晰的通信模型。 CANopen设备模型 一个CANopen设备模块可以被分为3部分,如图2所示。 通信接口和协议软件提供在总线上收发通信对象的服务。不同CANopen设备间的通信都是通过交换通信对象完成的。这一部分直接面向CAN控制器进行操作。 对象字典描述了设备使用的所有的数据类型,通信对象和应用对象。是一个CANopen设备的核心部分。对象字典位于通信程序和应用程序之间,向应用程序提供接口,应用程序对对象字典进行操作就可以实现CANopen通信。理解对象字典的概念是理解CANopen模型的关键。 应用程序由用户编写,包括功能部分和通信部分。通信部分通过对对象字典进行操作实现CANopen通信,而功能部分由用户根据应用要求实现。 CANopen网络的通信和管理都是通过不同的通信对象来完成的,为了能够实现通信,网络管理,紧急情况处理等功能,CANopen规范定义了四类标准的通信对象: 进程数据对象(PDO) 第一类通信对象为进程数据对象。PDO被映射到单一的CAN帧中,使用所有的8个字节的数据域来传输应用对象。每个PDO有一个独立的标识符并且可能只被一个节点发送,但它可以被多于一个节点接收,这种模式被称之为生产者/消费者通信模式。PDO可以通过多种模式传送,内部事件,外部时钟,远程帧请求以及从特定节点接收到同步报文都可以启动PDO发送。 服务数据对象(SDO) 第二类通信对象为服务数据对象,该对象可以传输大于8个字节的配置信息。也就是说,SDO传送协议允许传送任意长度的对象。接收者将确认收到的每个段信息,发送和接收者间将建立点对点的通信,称之为客户机/服务器模式。未来,CANopen将允许快速传输SDO,不必对传送的每个段都进行确认,只要在整个对象传送完毕后进行确认即可。 网络管理对象(NMT) 第三类通信对象是网络管理对象,包括节点警戒对象以及NMT对象。节点警戒对象是由NMT主节点远程请求发送的带有1字节数据的CAN帧,一个字节的数据中包含1个触发位以及7个用于表示节点状态的数据位。NMT主节点将周期性地发送节点警戒对象。发送周期(警戒时间)的长度在对象字典中规定并且可以通过SDO进行配置。另外,系统还定义了生命警戒时间,NMT主节点要在生命警戒时间过后向NMT从节点发送远程请求。这种机制保证了即使NMT主节点不

温馨提示

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

评论

0/150

提交评论