CAN协议简介课件_第1页
CAN协议简介课件_第2页
CAN协议简介课件_第3页
CAN协议简介课件_第4页
CAN协议简介课件_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

网络协议分层,现场总线,现场总线网络一般只实现了第1层(物理层)、第2层(数据链路层)、第7层(应用层)。因为现场总线通常只包括一个网段,因此不需要第3层(传输层)和第4层(网络层),也不需要第5层(会话层)第6层(描述层)的作用。,CAN与CANopen的共同点与不同点,1、CAN只定义了物理层与链路层,而没有定义用户层,用户可根据自己的需要定义一些网络上的通信约定;CANopen是在CAN的基础上定义了用户层,即规定了用户、软件、网络终端等之间用来进行信息交换的约定。2、从OSI网络模型的角度来看同,现场总线网络一般只实现了第1层(物理层)、第2层(数据链路层)、第7层(应用层)。因为现场总线通常只包括一个网段,因此不需要第3层(传输层)和第4层(网络层),也不需要第5层(会话层)第6层(描述层)的作用。CAN(ControllerAreaNetwork)现场总线仅仅定义了第1层、第2层(见ISO11898标准);实际设计中,这两层完全由硬件实现,设计人员无需再为此开发相关软件(Software)或固件(Firmware)。同时,CAN只定义物理层和数据链路层,没有规定应用层,本身并不完整,需要一个高层协议来定义CAN报文中的11/29位标识符、8字节数据的使用。而且,基于CAN总线的工业自动化应用中,越来越需要一个开放的、标准化的高层协议:这个协议支持各种CAN厂商设备的互用性、互换性,能够实现在CAN网络中提供标准的、统一的系统通讯模式,提供设备功能描述方式,执行网络管理功能。3、can2.0是物理层和链路层协议,基本上由硬件来实现,CANOpen是应用层协议基本上由软件来实现,CAN,CAN总线是一种串行通信协议,具有较高的通信速率的和较强的抗干扰能力,可以作为现场总线应用于电磁噪声较大的场合。由于CAN总线本身只定义ISO/OSI模型中的第一层(物理层)和第二层(数据链路层),通常情况下CAN总线网络都是独立的网络,所以没有网络层。在实际使用中,用户还需要自己定义应用层的协议,因此在CAN总线的发展过程中出现了各种版本的CAN应用层协议,现阶段最流行的CAN应用层协议主要有CANopen、DeviceNet和J1939等协议。CAN总线并不采用物理地址的模式传送数据,而是每个消息有自己的标识符用来识别总线上的节点。标识符主要有2个功能:消息滤波和消息优先级确定。节点利用标识符确定是否接收总线上的传送的消息当有2个或更多节点需要传送数据时,根据标识符确定消息的优先级。总线访问采用多主原则,所有节点都可以作为主节点占用总线。CAN总线相对于Ethernet具有非破坏性避免总线冲突的特点(CSMA/CA协议,与CSMA/CD协议相似),这种方式可以保证在产生总线冲突的情况下,具有更高优先级的信息没有被延时传输。层协议,现阶段最流行的CAN应用层协议主要有CANopen、DeviceNet和J1939等协议。,CAN特点,其物理传输层详细和高效的定义,使得CAN总线具有其它总线无法达到的优势,注定其在工业现场总线中占有不可动摇的地位,CAN总线通信主要具有如下所示的优势和特点:(1)CAN总线上任意节点均可在任意时刻主动的向其它节点发起通信,节点没有主从之分,但在同一时刻优先级高的节点能获得总线的使用权,在高优先级的节点释放总线后,任意节点都可使用总线;(2)CAN总线传输波特率为5Kbps1Mbps,在5Kbps的通信波特率下最远传输距离可以达到10Km,即使在1Mbps的波特率下也能传输40m的距离。在1Mbps波特率下节点发送一帧数据最多需要134s;(3)CAN总线采用载波监听多路访问、逐位仲裁的非破坏性总线仲裁技术。在节点需要发送信息时,节点先监听总线是否空闲,只有节点监听到总线空闲时才能够发送数据,即载波监听多路访问方式。在总线出现两个以上的节点同时发送数据时,CAN协议规定,按位进行仲裁,按照显性位优先级大于隐性位优先级的规则进行仲裁,最后高优先级的节点数据毫无破坏的被发送,其它节点停止发送数据(即逐位仲裁无破坏的传输技术)。这样能大大的提高总线的使用效率及实时性;,CAN特点,(4)CAN总线所挂接的节点数量主要取决于CAN总线收发器或驱动器,目前的驱动器一般都可以使同一网络容量达到110个节点。CAN报文分为两个标准即CAN2.0A标准帧和CAN2.0B扩展帧,两个标准最大的区别在于CAN2.0A只有11位标识符,CAN2.0B具有29位标识符;(5)CAN总线定义使用了硬件报文滤波,可实现点对点及点对多点的通信方式,不需要软件来控制。数据采用短帧发送方式,每帧数据不超过8字节,抗干扰能力强,每帧接收的数据都进行CRC校验,使得数据出错机率极大限度的降低。CAN节点在错误严重的情况下具有自动关闭的功能,避免了对总线上其它节点的干扰;(6)CAN总线通信介质可采用双绞线、同轴电缆或光纤,选择极为灵活。可大大节约组网成本。,CAN总线的物理连接和电平特性,CAN总线采用差分信号传输,通常情况下只需要两根信号线(CAN-H和CAN-L)就可以进行正常的通信。在干扰比较强的场合,还需要用到屏蔽地即CAN-G(主要功能是屏蔽干扰信号),CAN协议推荐用户使用屏蔽双绞线作为CAN总线的传输线。在隐性状态下,CAN-H与CAN-L的输入差分电压为0V(最大不超过0.5V),共模输入电压为2.5V。在显性状态下,CAN-H与CAN-L的输入差分电压为2V(最小不小于0.9V),其物理连接和电平特性如下图所示:图1.3CAN总线物理连接,CAN总线的物理连接和电平特性,图1.4CAN总线的基本结构,CAN总线的物理连接和电平特性,图1.5CAN总线的电平特性,CAN总线的数据格式,CAN协议有以下5中不同类型的帧格式:,CAN总线的数据格式,CAN2.0B总线规范定义了2种不同的数据格式(标准帧和扩展帧),其主要区别在于标识符的长度不同:标准帧有11位的标识符,扩展帧有29位的标识符。CAN总线的标准帧数据长度是4410位,而扩展帧的长度是64128位。根据数据流代码的不同,标准帧可以插入32位的填充位,扩展帧可以插入28位的填充位。因此标准数据帧最长为131位,扩展帧最长为156位。图1.6数据帧,CAN总线的数据格式,图1.7远程帧,CAN总线的数据格式,图1.8错误帧,CAN总线的数据格式,图1.8过载帧,CAN总线的数据格式,图1.8过载帧,CAN总线的数据格式,在数据帧,各数据位的意义如下:SOF(1bit)标识一个消息帧的开始,在空闲时间的下降沿同步所有的总线模块;ID(11/29bits)标准帧11位,扩展帧29位,标识了此消息的优先级和过滤信息;RTR(1bit)远程传输请求,如果RTR=1表示在数据帧中没有有效数据,请求远程节点向发出请求帧的节点发送数据;IDE(1bit)标识符扩展,如果IDE=1,则采用扩展的数据帧传送数据;r0(1bit)保留;DLC(4bit)数据长度代码,数据帧允许的数据字节数为(08),其他长度数值不允许使用;DATA(064bits)消息数据;CRC(15bits)循环冗余校验码,只用于检测错误而不能校正;ACK(2bits)每一个接听者收到消息后必须发送响应位(ACK);EOF(7bits)帧的结束;IFS(3bits)内部帧空间,将接收到的消息从总线处理单元复制到缓冲,只有扩展模式有该位;,CAN总线的数据格式,SRR(1bit)代替标准帧中的远程帧请求位(RTR);r0(1bit)保留。根据系统通信速率的要求,CAN总线的物理布线长度具有严格的限制。每个数据帧由几个字节(最多8个字节)组成,从而提高了总线对于新的数据帧的响应时间。但另一方面,CAN总线不适合高数据吞吐类型的信息传输,比如实时图像处理。,CAN总线的仲裁,CAN总线采用的是一种叫做“载波监听,多主访问/冲突避免”(CSMA/CA)的通信模式。这种总线仲裁方式允许总线上的任何一个设备都有机会取得总线的控制权并向外发送数据。如果在同一时刻有2个或2个以上的设备要求发送数据,就会产生总线冲突,CAN总线能够实时地检测这些冲突并对其进行仲裁,从而使具有高优先级的数据不受任何损坏地传输。总线处于空闲状态时呈现隐形电平,此时任何节点都可以向总线发送显性电平作为帧的开始。如果2个或2个以上同时发送就会产生竞争。CAN解决这种冲突的方法和CSMA/CD相似,并对其进行了改进采用CSMA/CA,访问总线,按位对标识符进行仲裁。各节点在向总线发送电平的同时,也对总线上的电平读取,并与自身发送的电平比较,如果电平相同继续发送下一位,不同则停止发送退出总线竞争。剩余的节点继续上述过程,直到总线上只剩下一个节点发送的电平,总线竞争结束,优先级高的节点获得总线的控制权。如下图所示:,CAN协议层,CAN总线是个开放的系统,其标准遵循ISO的OSI七层模式,而CAN的基本协议只有物理层和数据链路层。实际上,CAN总线的核心技术是其MAC应用协议,主要解决数据冲突的CSMA/CA协议。CAN总线一般用于小型的现场控制网络中,如果协议的结构过于复杂,网络的信息传输速率势必会变慢。因此,CAN总线只用了7层模型中的3层:物理层,数据链路层,应用层。如下图12所示:图1.12CAN协议层结构,CAN协议层,(1)物理层:传输线的物理接口差分双绞线;IC集成方式和接收数据;可采用光纤传输;可选的编码格式:PWM、NRZ、曼侧斯特编码。(2)数据链路层定义消息格式和传输协议;CSMA/CA避免总线冲突。(3)应用层工业标准和汽车应用有细微区别;为通信、网络管理和实时操作系统提供接口。,CAN的通信错误及其处理,在CAN总线中存在5种错误类型,它们互相并不排斥,下面介绍一下它们的区别、产生的原因及处理方法。(1)位错误:向总线发送出一位的某个节点同时也在监视总线,当监视总线位的电平与送出的电平不同时,则在该位时刻检测到一个位错误。但是在仲裁的填充位流期间或应答间隙送出隐形位而检测到显性位时,不认为是位错误。送出认可错误标注的发送器,在检测到显性位时也不认为是位错误;(2)填充错误:在使用位填充方法进行编码的报文中,出现了第6个连续相同的位电平时,检测出一个填充错误;(3)CRC错误:CRC序列是由发送器CRC计算的结果组成的。接收器以与发送器相同的方法计算CRC。如果计算的结果与接收到的CRC序列不同,则检测出一个CRC错误;(4)形式错误:当固定形式的位区中出现一个或多个非法位时,则检测到一个形式错位;(5)应答错误:在应答间隙,发送器未检测到显性位时,则由它检测出一个应答错误。检测到出错条件的节点通过发送错误标志进行标定。当任何节点检测出位错误、填充错误、形式错误、或应答错误时,由该节点在下一位开始发送出错误标志。,CAN的通信错误及其处理,当检测到CRC错误时,出错标志在应答界定符后面那一位开始发送,除非其他出错条件的标志已经开始发送。CAN总线中,任何一个单元可能处于下列3中故障状态之一:错误激活状态(ErrorActive)、错误认可状态(ErrorPassive)和总线关闭状态(Busoff)。具体的错误计算方式可以参考CAN2.0协议标准。图1.13错误处理,CAN的通信错误及其处理,图1.14CAN控制器的三种状态,CANopen协议,CANopen协议是在20世纪90年代末,由CiA组织(CAN-in-Automation)在CAL(CANApplicationLayer)的基础上发展而来,一经推出便在欧洲得到了广泛的认可与应用。经过对CANopen协议规范文本的多次修改,使得CANopen协议的稳定性、实时性、抗干扰性都得到了进一步的提高。并且CIA在各个行业不断推出设备子协议,使CANopen协议在各个行业得到更快的发展与推广。目前CANopen协议已经在运动控制、车辆工业、电机驱动、工程机械、船舶海运等行业得到广泛的应用。从OSI网络模型的角度来看同,现场总线网络一般只实现了第1层(物理层)、第2层(数据链路层)、第7层(应用层)。因为现场总线通常只包括一个网段,因此不需要第3层(传输层)和第4层(网络层),也不需要第5层(会话层)第6层(描述层)的作用。CAN(ControllerAreaNetwork)现场总线仅仅定义了第1层、第2层(见ISO11898标准);实际设计中,这两层完全由硬件实现,设计人员无需再为此开发相关软件(Software)或固件(Firmware)。,CANopen协议,同时,CAN只定义物理层和数据链路层,没有规定应用层,本身并不完整,需要一个高层协议来定义CAN报文中的11/29位标识符、8字节数据的使用。而且,基于CAN总线的工业自动化应用中,越来越需要一个开放的、标准化的高层协议:这个协议支持各种CAN厂商设备的互用性、互换性,能够实现在CAN网络中提供标准的、统一的系统通讯模式,提供设备功能描述方式,执行网络管理功能。应用层(Applicationlayer):为网络中每一个有效设备都能够提供一组有用的服务与协议。通讯描述(Communicationprofile):提供配置设备、通讯数据的含义,定义数据通讯方式。设备描述(Deviceproflile):为设备(类)增加符合规范的行为。CANopen是基于CAN的高层协议,由CAN-in-Automation(CiA)定义的标准之一,并且在发布后不久就获得了广泛的承认。尤其是在欧洲,CANopen协议被认为是在基于CAN的工业系统中占领导地位的标准。大多数重要的设备类型,例如数字和模拟的输入输出模块、驱动设备、操作设备、控制器、可编程控制器或编码器,都在称为“设备描述”的协议中进行描述;“设备描述”定义了不同类型的标准设备及其相应的功能。依靠CANopen协议的支持,可以对不同厂商的设备通过总线进行配置。,CANopen协议,在OSI模型中,CAN标准、CANopen协议之间的关系如下图所示:图2.1CAN、CANopen标准在OSI网络模型中的位置框图,CANopen设备的结构,一般来说,每一个CANopen节点设备都由3部分组成,通讯、对象字典和用户应用,如下图所示:图2.2CANopen节点设备的结构(1)通讯(Communication):数据交换的具体实现机制,通常包括报文管理(NMT)、服务数据对象(SDO)、过程数据对象(PDO)和预定义或特殊功能对象。(2)对象字典(ObjectDictionary):一个能够描述和影响设备应用行为的所有数据元素对象的集合。(3)应用(Application):应用对象包含与外界环境的相互沟通并实现特定的功能。,对象字典(OD),CANopen的一个最重要特征是标准化的设备描述。这被叫做“对象字典”,用来提供对设备所有重要数据、参数和功能的访问(无论远程或本地)。对象字典(OD:ObjectDictionary)是一个有序的对象组;每个对象采用一个16位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个8位的子索引。CANopen网络中每个节点都有一个对象字典。对象字典包含了描述这个设备和它的网络行为的所有参数。对于每一个CANopen设备,对象字典结构都是相同的,这为通信参数、制造商定义对象和设备对象提供了一套标准化的地址空间。这种统一的对象字典结构和标准化的通讯参数对象使得“新”设备的集成变得十分的容易。从“外部”看来,比如通过CAN总线,各种类型的CANopen设备都提供相同的结构。每个对象字典被进一步细分为4096个入口数据区。其中从0 x1000到0 x1FFF被称作通讯数据区(由CiA301详细定义),从0 x2000to0 x5FFF包含的是生产商定义对象,从0 x6000到0 x9FFF是设备描述区,从0 xA000到0 xAFFF保留给网络变量。网络变量数据区是动态的入口区域(或者说是动态的通道),在与程序控制器(比如PLC)交换数据时使用。在程序控制器中,数据类型和个数不是静态的而是依赖于用户程序。一般来说,网络变量是在网络配置过程中生成的,比如使用CANopen配置工具。,对象字典(OD),对于每一个对象字典中的对象来说都有相应的值,该值可以用SDO读写。一个对象字典入口可以直接代表设备的一个属性或是一个功能(比如,设备启动,数字输入状态)。访问该对象时需要知道数据类型和“值”所代表的意义。因此,每一个CANopen设备生产厂商需要提供“电子数据表单”(EDS)来描述每一个对象字典入口的地址(index/sub-index),参数名,数据类型,访问类型和默认值。一般,EDS以ASCII格式文件提供。EDS文件也被用来作为建立设备配置的模板。在建立设备配置的过程中,EDS文件中的默认值由用户期望的配置参数值替代(比如,PDOCOB-ID,PDOmapping等等)。对设备的配置也被存储为一个文件,“设备配置文件”(DCF)。因此,DCF也可以被看作为填写了有效设备配置数据的EDS文件。虽然说对象字典对于一个CANopen设备来说是必须的,但实际上只有其中的一部分入口是必须的。下表所示是对象字典的前几项:表2对象字典,对象字典(OD),CANopen有一系列称为子协议的文档组成:(1)通讯子协议(CommunicationProfile)通讯子协议,描述对象字典的主要形式和对象字典中的通讯对象以及参数。这个子协议适用所有的CANopen设备,其索引值范围从0 x10000 x1FFF。(2)制造商自定义子协议(Manufacturer-SpecificProfile)制造商自定义子协议,对于在设备子协议中未定义的特殊功能,制造商可以在此区域根据需求定义对象字典对象。因此这个区域对于不同的厂商来说,相同的对象字典项其定义不一定相同,其索引值范围为0 x20000 x5FFF。(3)设备子协议(DeviceProfile)为各种不同类型的设备定义对象字典中的对象。目前已有十几种为不同类型的设备定义的子协议,例如DS401、DS402、DS406等,其索引值范围为0 x60000 x9FFF。,CANopen通讯,CANopen通讯模型定义了4种类型的报文:(1)管理报文NMT负责层管理、网络管理和ID分配服务,例如,初始化、配置和网络管理(其中包括节点保护)。网络管理中,同一个网络中只允许有一个主节点、一个或多个从节点,并遵循主从模式。(2)服务数据对象SDO(ServiceDataObject)主要用于主节点对从节点的参数配置。服务确认是SDO的最大的特点,为每个消息都生成一个应答,确保数据传输的准确性。在一个CANopen系统中,通常CANopen从节点作为SDO服务器,CANopen主节点作为客户端。客户端通过索引和子索引,能够访问数据服务器上的对象字典。这样CANopen主节点可以访问从节点的任意对象字典项的参数,并且SDO也可以传输任何长度的数据(当数据长度超过4个字节时就拆分成多个报文来传输)。,CANopen通讯,(3)过程数据对象PDO(ProcessDataObject)用来传输实时数据,其传输模型为生产者消费者模型如图2.3所示。数据长度被限制为18字节。PDO通信对象具有如下的特点:PDO通讯没有协议规定,PDO数据内容由它的CAN-ID(也可称为COB-ID)定义;每个PDO在对象字典中用2个对象描述:PDO通讯参数,该通讯参数定义了该设备所使用的COB-ID、传输类型、定时周期;PDO映射参数,映射参数包含了一个对象字典中的对象列表,这些对象映射到相应的PDO,其中包括数据的长度(单位,位),对于生产者和消费者都必须要知道这个映射参数,才能够正确的解释PDO内容。PDO消息内容是预定义的,如果PDO支持可变PDO映射,那么该PDO是可以通过SDO进行配置;,CANopen通讯,PDO可以有多种的传输方式:同步传输(通过接收同步对象实现同步),同步传输又可分为非周期和周期传输。非周期传输是由远程帧预触发或者由设备子协议中规定的对象特定事件预触发传送。周期传输则是通过接收同步对象(SYNC)来实现,可以设置1240个同步对象触发;异步传输(由特定事件触发),其触发方式可有两种,第一种是通过发送与PDO的COB-ID相同的远程帧来触发PDO的发送,第二种是由设备子协议中规定的对象特定事件来触发(例如,定时传输,数据变化传输等)。,CANopen通讯,(4)预定义报文或特殊功能为CANopen设备提供特定的功能,方便主站对从站管理。在CANopen协议中,已经为特殊的功能预定义了COB-ID,其主要有以下几种特殊报文:同步(SYNC),该报文对象主要实现整个网络的同步传输,每个节点都以该同步报文作为PDO触发参数,因此该同步报文的COB-ID具有比较高的优先级以及最短的传输时间;时间标记对象(TimeStamp),为各个节点提供公共的时间参考;紧急事件对象(Emergency),当设备内部发生错误触发该对象,即发送设备内部错误代码;节点/寿命保护(Node/LifeGuarding),主节点可通过节点保护方式获取从节点的状态。从节点可通过寿命保护方式获取主节点的状态;启动报文对象(Boot-up),从节点初始化完成后向网络中发送该对象,并进入到预操作状态。,CANopen的预定义连接集,CANopen预定义连接是为了减少网络的组态工作量,定义了强制性的缺省标识符(CAN-ID)分配表,该分配表是基于11位CAN-ID的标准帧格式。将其划分为4位的功能码和7位的节点号(Node-ID)。如图2.5所示,在CANopen里也通常把CAN-ID称为COB-ID(通信对象编号)。CANopen设备必须向它所支持的通讯对象提供标识符。图2.5预定义连接集ID其中节点号由系统集成商给定,每个CANopen设备都需要分配一个节点号,节点号的范围为1127(0不允许被使用)。预定义连接集定义了4个接收PDO(Receive-PDO)、4个发送PDO(Transmit-PDO)、1个SDO(占用2个CAN-ID)、1个紧急对象和1个节点错误控制(Node-Error-Control)ID。也支持不需确认的NMT模块控制服务、同步(SYNC)和时间标志(TimeStamp)对象报文。,CANopen的标识符分配,ID地址分配表与预定义的主从连接集(SET)相对应,因为所有的对等ID是不同的,所以实际上只有一个主设备(知道所有连接的节点ID)能和连接的每个从节点(最多127个)以对等方式通讯。两个连接在一起的从节点不能够通CANopen网络中CAN标识符(或COB-ID)分配3种不同方法:使用预定义的主从连接集。ID是缺省的,不需要配置。如果节点支持,PDO数据内容也可以配置。上电后修改PDO的ID(在预操作状态),使用(预定义的)SDO在节点的对象字典中适当位置进行修改。使用CALDBT(参考CAL协议)服务:节点或从节点最初由它们的配置ID指称。节点ID可以由设备上的拨码开关配置,或使用CALLMT(参考CAL协议)服务进行配置。当网络初始化完毕,并且启动后,主节点首先通过“Connect_Remote_Node”报文(是一个CALNMT服务)和每个连接的从设备建立一个对话。一旦这个对话

温馨提示

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

评论

0/150

提交评论