苏州实操派科技有限公司官网-实操派教育科技,汇川技术PLC培训,实操派PLC培训,苏州PLC培训机构

terry_KT

文档

24

关注

0

好评

0
PDF

CANopen协议

阅读 319 下载 149 大小 891.57K 总页数 21 页 2024-08-07 分享
价格:免费文档
下载文档
/ 21
全屏查看
CANopen协议
还有 21 页未读 ,您可以 继续阅读 或 下载文档
1、本文档共计 21 页,下载后文档不带水印,支持完整阅读内容或进行编辑。
2、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。 免责声明: 版权:我们作为资源的整理方,所有资源均来自互联网的优秀作者们,版权归原作者或企业所有。
申明:任何使用本站收集的资源产生的不测后果,本站不对此负任何责任。
广州周立功单片机发展有限公司www.zlgmcu.2、CAL协议CAL(CAN Application Layer)协议是目前基于CAN的高层通讯协议中的一种,最早由Philips医疗设备部门制定。现在CAL由独立的CAN用户和制造商集团CiA(CAN in Automation)协会负责管理、发展和推广。CAL提供了4种应用层服务功能:CMS (CAN-based Message Specification)CMS提供了一个开放的、面向对象的环境,用于实现用户的应用。CMS提供基于变量、事件、域类型的对象,以设计和规定一个设备(节点)的功能如何被访问(例如,如何上载下载超过8字节的一组数据(域),并且有终止传输的功能)。CMS从MMS(Manufacturing Message Specification)继承而来。MMS是OSI为工业设备的远程控制和监控而制定的应用层规范。NMT(Network ManagemenT)提供网络管理(如初始化、启动和停止节点,侦测失效节点)服务。这种服务是采用主从通讯模式(所以只有一个NMT主节点)来实现的。●DBT(DistriBuTor)提供动态分配CAN ID(正式名称为COB-ID,Communication Object Identifier)服务。这种服务是采用主从通讯模式(所以只有一个DBT主节点)来实现的。LMT (Layer ManagemenT)LMT提供修政层参数的服务:一个节点(LMT Master)可以设置另外一个节点(LMT Slave)的某层参数(如改变一个节点的NMT地址,或改变CAN接口的位定时和波特率)。CMS为它的消息定义了8个优先级,每个优先级拥有220个COB-ID,范围从1到1760。剩余的标志(0,1761-2031)保留给NMT,DBT和LMT,见表2-1。表2-】映射到CAL服务和对象的COB-D(11位CAN标识符)COB-ID服务或对象0NMT启动/停止服务CMS对象优先级0221-440CMS对象优先级1441.660CMS对象优先级2661-880CMS对象优先级3881-1100CMS对象优先级41101-1320CMS对象优先级51321-1540CMS对象优先级61541-1760CMS对象优先级71761-2015NMT节点保护2016-2031NMT,LMT,DBT服务注意这是CAN2.0A标准,11位ID范围0,2047刃,由于历史原因限制在0,2031].如果使用CAN2.0B标准,29位D并不改变这个描述:表中的11位映射到29位COB-D中的最高11位,以至于表中的COB-D范围变得增大许多。2广州周立功单片机发展有限公司www.zlgmcu.3、CANopenCAL提供了所有的网络管理服务和报文传送协议,但并没有定义CMS对象的内容或者正在通讯的对象的类型(它只定义了how,没有定义what)。而这正是CANopen切入点。CANopen是在CAL基础上开发的,使用了CAL通讯和服务协议子集,提供了分布式控制系统的一种实现方案。CANopen在保证网络节点互用性的同时允许节点的功能随意扩展:或简单或复杂。CANopen的核心概念是设备对象字典(OD:Object Dictionary),在其它现场总线(Profibus,Interbus-S)系统中也使用这种设备描述形式。注意:对象字典不是CAL的一部分,而是在CANopen中实现的。下面先介绍对象字典(OD:Object Dictionary),然后再介绍CANopen.通讯机制。3.1对象字典0D对象字典(OD:Object Dictionary)是一个有序的对象组:每个对象采用一个l6位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个8位的子索引,对象字典的结构参照表31。不要被对象字典中索引值低于OxOFFF的‘data types'项所迷惑,它们仅仅是一些数据类型定义。一个节点的对象字典的有关范围在0x1000到0x9FFF之间。表3-1CANopen对象字典通用结构索引对象0000Not used0001001F静态数据类型(标准数据类型,如Boolean,.Integer 16)复杂数据类型0020003F(预定义由简单类型组合成的结构如PDOCommPar,SDOParameter)0040005F制造商规定的复杂数据类型0060007F设备子协议规定的静态数据类型0080009F设备子协议规定的复杂数据类型00A0OFFFReserved通讯子协议区域10001FFF(如设备类型,错误寄存器,支持的PDO数量)2000制造商特定子协议区域标准的设备子协议区域60009FFF(例如“DSP.401I/O模块设备子协议”:Read State8 Input Lines等)FFFFReservedCANope网络中每个节点都有一个对象字典,对象字典包含了描述这个设备和它的网络行为的所有参数。一个节点的对象字典是在电子数据文档(EDS:Electronic Data Sheet)中描述或者记录在纸上。不必要也不需要通过CAN-bus“审问”一个节点的对象字典中的所有参数。如果一个节点严格按照在纸上的对象字典进行描述其行为,也是可以的。节点本身只需要能够提供对象字典中必需的对象(而在CANopen规定中必需的项实际上是很少的),以及其它可选择的、构成节点部分可配置功能的对象。CANopen由一系列称为子协议的文档组成。通讯子协议(munication profile),描述对象字典的主要形式和对象字典中的通讯子协议区域中的对象,通讯参数。同时描述CANopen通讯对象。这个子协议适用于所有的CANopen设备。还有各种设备子协议(device profile),为各种不同类型设备定义对象字典中的对象。目前已有5种不3广州周立功单片机发展有限公司www.zlgmcu.同的设备子协议,并有几种正在发展。设备子协议为对象字典中的每个对象描述了它的功能、名字、索引和子索引、数据类型,以及这个对象是必需的还是可选的,这个对象是只读、只写或者可读写等等。注意:一个设备的通讯功能、通讯对象、与设备相关的对象以及对象的缺省值由电子数据文档(EDS:Electronic Data Sheet)中提供。单个设备的对象配置的描述文件称作设备配置文件(DCF:Device Configuration File),它和EDS有相同的结构。二者文件类型都在CANopen规范中定义。设备子协议定义了对象字典中哪些OD对象是必需的,哪些是可选的:必需的对象应该保持最少数目以减小实现的工作量。可选项一一在通讯部分和与设备相关部分一一可以根据需要增加以扩展CANopen设备的功能。如果需要的项超过了设备子协议中可以提供的,在设备子协议中已预留由足够空间提供给厂商的特定功能使用。对象字典中描述通讯参数部分对所有CANoper设备(例如在OD中的对象是相同的,对象值不必一定相同)都是一样的。对象字典中设备相关部分对于不同类的设备是不同的。3.2 CANopen通讯前面说明了CANopen中对象字典的概念,现在我们来介绍在CANopen网络中的通讯消息,它们的内容和功能,换句话:CANopen通讯模式。注意:请区分对象字典中的对象(使用对象字典索引和子索引)和通讯对象(或者消息,使用COB-D)。CANopen通讯模型定义了4种报文(通讯对象):1.管理报文●层管理,网络管理和D分配服务:如初始化,配置和网络管理(包括:节点保护)。●服务和协议符合CAL中的LMT,NMT和DBT服务部分。这些服务都是基于主从通讯模式:在CAN网络中,只能有一个LMT,NMT或DBT主节点以及一个或多个从节点。2.服务数据对象SDO(Service Data Object)·通过使用索引和子索引(在CAN报文的前几个字节),SDO使客户机能够访问设备(服务器)对象字典中的项(对象)。●SDO通过CAL中多元域的CMS对象来实现,允许传送任何长度的数据(当数据超过4个字节时分拆成几个报文)。协议是确认服务类型:为每个消息生成一个应答(一个SDO需要两个D)。SDO请求和应答报文总是包含8个字节(没有意义的数据长度在第一个字节中表示,第一个字节携带协议信息)。SDO通讯有较多的协议规定。3.过程数据对象PDO(Process Data Object)·用来传输实时数据,数据从一个生产者传到一个或多个消费者。数据传送限制在1到8个字节(例如,一个PDO可以传输最多64个数字I/O值,或者4个16位的AD值)。·PDO通讯没有协议规定。PDO数据内容只由它的CAND定义,假定生产者和消费者知道这个PDO的数据内容。●每个PD0在对象字典中用2个对象描述:■PDO通讯参数:包含哪个COBD将被PDO使用,传输类型,禁止时间和定时器周期,■PDO映射参数:包含一个对象字典中对象的列表,这些对象映射到PDO里,包括它们的数据长度(bits)。生产者和消费者必须知道这个映射,以解释PDO内容。●PDO消息的内容是预定义的(或者在网络启动时配置的):映射应用对象到PDO中是在设备对象字典中描述的。如果设备(生产者和消费者)支持可变PDO映射,那么使用SDO报文可以配置PDO映射参数。●PDO可以有多种传送方式:4广州周立功单片机发展有限公司www.zlgmcu.■同步(通过接收SYNC对象实现同步)◆非周期:由远程帧预触发传送,或者由设备子协议中规定的对象特定事件预触发传送。◆周期:传送在每1到240个SYNC消息后触发。■异步◆由远程帧触发传送。◆由设备子协议中规定的对象特定事件触发传送。表32给出来了由传输类型定义的不同PD0传输模式,传输类型为PD0通讯参数对象的一部分,由8位无符号整数定义。表3-2PD0传输类型定义触发PDO的条件传输类型(B=both needed O=one or both)PDO传输SYNCRTREvent0BB同步,非循环1-2400同步,循环241-251Reserved252BB、同步,在RIR之后2530异步,在RTR之后25400异步,制造商特定事件25500异步,设备子协议特定事件说明:RTR一接收到远程幀。Event-例如数值改变或者定时器中断。传输类型为:1到240时,该数字代表两个PD0之间的SYNC对象的数目)。一个PDO可以指定一个禁止时间,即定义两个连续PDO传输的最小间隔时间,避免由于高优先级信息的数据量太大,始终占据总线,而使其它优先级较低的数据无力竞争总线的问题。禁止时间由16位无符号整数定义,单位100us。一个PD0可以指定一个事件定时周期,当超过定时时间后,一个PD0传输可以被触发(不需要触发位)。事件定时周期由16位无符号整数定义,单位1s。●PDO通过CAL中存储事件类型的CMS对象实现。PDO数据传送没有上层协议,而且PDO报文没有确认(一个PDO需要一个CAN-D)。每个PDO报文传送最多8个字节(64位)数据。4.预定义报文或者特殊功能对象●同步(SYNC)■在网络范围内同步(尤其在驱动应用中):在整个网络范围内当前输入值准同时保存,随后传送(如果需要),根据前一个SYNC后接收到的报文更新输出值。■主从模式:SYNC主节点定时发送SYNC对象,SYNC从节点收到后同步执行任务。■在SYNC报文传送后,在给定的时间窗口内传送一个同步PDO。■用CAL中基本变量类型的CMS对象实现。■CANopen建议用一个最高优先级的COB-ID以保证同步信号正常传送。SYNC报文可以不传送数据以使报文尽可能短。时间标i记对象(Time Stamp)■为应用设备提供公共的时间幀参考。■用CAL中存储事件类型的CMS对象实现。广州周立功单片机发展有限公司www.zlgmcu.紧急事件(Emergency)■设备内部错误触发。■用CAL中存储事件类型的CMS对象实现。节点/俦命保护(Node/Life guarding)。■主从通讯模式■NMT主节点监控节点状态:称作节点保护(Node guarding)。■节点也可以(可选择)监控NMT主节点的状态:称作寿命保护(Life guarding)。当NMT从节点接收到NMT主节点发送的第一个Node Guard报文后启动寿命保护。■检测设备的网络接口错误(不是设备自身的错误):通过应急指示报告。根据NMT节点保护协议实现:NMT主节点发送远程请求到一个特定节点,节点给出应答,应答报文中包含了这个节点的状态。Boot-UP■主从通讯模式NMT从节点通过发送这个报文,向NMT主节点说明该节点己经由初始化状态进入预操作状态。CANopen DeviceCAN通讯接口:对象字典:应用:PDO,数据类型,应用程序,SDO,通讯对象,设备子协议实现特殊功能对象,应用对象NMT对象图3-】CANopen设备上面提到的通讯对象类型中有二个对象用于数据传输。它们采用二种不同的数据传输机制实现:·SDO用来在设备之间传输大的低优先级数据,典型的是用来配置CANopen网络上的设备。·PD0用来传输8字节或更少数据,没有其它协议预设定(意味者数据内容已预先定义)。一个CANopen设备必须支持一定数量的网络管理服务(管理报文,administrative messages),需要至少一个SDO。每个生产或消费过程数据的设备需要至少一个PDO。所有其它的通讯对象是可选的。一个CANopen设备中CAN通讯接口、对象字典和应用程序之间的联系如图3-1所示。3.3 CANopen预定义连接集为了减小简单网络的组态工作量,CANopen定义了强制性的缺省标识符(CAN-ID)分配表。这些标志符在预操作状态下可用,通过动态分配还可修改他们。CANopen设备必须向它所支持的通讯对象的提供相应的标识符。缺省ID分配表是基于11位CAN一ID,包含一个4位的功能码部分和一个7位的节点D(Node-D)部分。如图3-2所示。6广州周立功单片机发展有限公司www.zlgmcu.10965320Function CodeNode-ID图3-2预定义连接集DNode-D由系统集成商定义,例如通过设备上的拨码开关设置。Node-D范围是1~l27(0不允许被使用)。预定义的连接集定义了4个接收PD0(Receive--PDO),4个发送PDO(Transmit-PDO),1个SDO(占用2个CAN-ID),1个紧急对象和1个节点错误控制Node-Eror-Control)ID。也支持不需确认的NMT-Module--Control服务,SYNC和Time Stamp对象的广播。缺省D分配表如表3-3所示。表格3-3 CANopen预定义主/从连接集CAN标识符分配表CANopen预定义主/从连接集的广播对象功能码对象COB-ID通讯参数在OD中的索引(ID-bits 10-7)NMT Module Control0000000HSYNC0001080H1005H,1006H,1007HTIME SSTAMP00101012H,1013HCANopen主/从连接集的对等对象功能码对象功能码COB-ID通讯参数在OD中的索引(ID-bits 10-7)紧急0001081H-OFFH1024H,1015HPDO1(发送)0011181H-1FFH1800HPDO1(接收)0100201H-27FH1400HPDO2(发送)0101281H-2FFH1801HPDO2(接收)0110301H-37FH1401HPDO3(发送)0111381H-3FFH1802HPDO3(接收)1000401H-47FH1402HPDO4(发送)1001481H-4FFH1803HPDO4接收)1010501H.57FH1403HSDO(发送服务器)1011581H-5FH1200H1100601H-67FH1200HNMT Error Control1110701H-77FH1016H-1017H注意:·PDO/SDO发送接收是由(slave)CAN节点方观察的。NMT错误控制包括节点保护(Node Guarding),心跳报文(Heartbeat)和Boot-up协议。7广州周立功单片机发展有限公司www.zlgmcu.3.4 CANopen标识符分配D地址分配表与预定义的主从连接集(哭t)相对应,因为所有的对等D是不同的,所以实际上只有一个主设备(知道所有连接的节点D)能和连接的每个从节点(最多127个)以对等方式通讯。两个连接在一起的从节点不能够通讯,因为它们彼此不知道对方的节点D。比较上表的ID映射和CAL的映射,显示了具有特定功能的CANopen对象如何映射到CAL中一般的CANopen网络中CAN标识符(或COB-ID)分配3种不同方法:●使用预定义的主从连接集。D是缺省的,不需要配置。如果节点支持,PDO数据内容也可以配置。●上电后修改PDO的D(在预操作状态),使用(预定义的)SDO在节点的对象字典中适当位置进行修改。●使用CAL DBT服务:节点或从节点最初由它们的配置D指称。节点D可以由设备上的拨码开关配置,或使用CAL LMT服务进行配置。当网络初始化完毕,并且启动后,主节点首先通过"Connect_Remote_Node报文(是一个CAL NMT服务)和每个连接的从设备建立一个对话。一旦这个对话建立,CAN通讯ID(SDO和PDO)用CAL DBT服务分配好,这需要节点支持扩3,5 CANopen boot-up过程在网络初始化过程中,CANopen支持扩展的boot-up,也支持最小化boot-up过程。扩展boot-up是可选的,最小boot-up则必须被每个节点支持.两类节点可以在同一个网络中同时存在。如果使用CAL的DBT服务进行D分配,则节点必须支持扩展boot-Up过程。可以用节点状态转换图表示这两种初始化过程,如图3-3所示。扩展boot-up的状态图在预操作和操作状态之间比最小化boot-up多了一些状态。Power-onInitialising(f)6Pre-Operational(a,b,c,d)313Stopped(a,b)1Operational2(a,b,c,d,e)图3-3 CANopen最小化boot-up节点状态转换图注意:·图33中括号内的字母表示处于不同状态那些通讯对象可以使用。a.NMT,b.Node Guard c.SDO,d.Emergency,e.PDO,f.Boot-up·状态转移(1一5由NMT服务发起),NMT命令字(在括号中):1:Start Remote node (0x01)广州周立功单片机发展有限公司www.zlgmcu.2:Stop Remote Node (0x02)3:Enter Pre-Operational State (0x80)4:Reset_Node(0x81)5:Reset Communication (0x82)6:设备初始化结束,自动进入Pre Operational状态,发送Boot-up消息在任何时候NMT服务都可使所有或者部分节点进入不同的工作状态。NMT服务的CAN报文由CAN头(COB-D-O)和两字节数据组成:第一个字节表示请求的服务类型(NMT mand specifier'),第二个字节是节点D,或者0(此时寻址所有节点)。仅支持最小化b0o-up的设备叫最小能力设备。最小能力设备在设备初始化结束后自动进入预操作I状态。在这个状态,可以通过SDO进行参数配置和进行COB-ID分配。设备进入准备状态后,除了NMT服务和节点保护服务(如果支持并且激活的话)外,将停止通讯。(因此‘Stopped”是描述这个状态的一个好名字)3.6 CANopen消息语法细节在以下部分中COB一ID使用的是CANopen预定义连接集中已定义的缺省标志符。3.6.1NMT模块控制(NMT Module Control).只有NMT-Master节点能够传送NMT Module Control报文.所有从设备必须支持NMT模块控制服务。NMT Module Control消息不需要应答。NMT消息格式如下:NMT-Master NMT-Slave(s)COB-IDByte 0Byte 10x000CSNode-ID当Node-D=O,则所有的NMT从设备被寻址。CS是命令字,可以取如下值:命令字NMT服务1Start Remote Node2Stop Remote Node128Enter Pre-operational State129Reset Node130Reset Communication3.6.2MNT节点保护(NMT Node Guarding)通过节点保护服务,MNT主节点可以检查每个节点的当前状态,当这些节点没有数据传送时这种服务尤其有意义。NMT-Master节点发送远程幀(无数据)如下:NMT-Master NMT-SlaveCOB-IDNMT-Slave节点发送如下报文应答:NMT-Master NMT-SlaveCOB-IDByte00x700 +Node IDBit7:toggle Bit6-0:状态数据部分包括一个触发位(b7),触发位必须在每次节点保护应答中交替置“0”或者“1”。触发位在第一次节点保护请求时置为“0”。位0到位6(bits0~6)表示节点状态,可为下表中的数值。9广州周立功单片机发展有限公司www.zlgmcu.状态0InitialisingDisconnected◆2Connecting◆Preparing◆4Stopped5Operational127Pre-operational注意:带*号的状态只有支持扩展boot-up的节点才提供。注意状态0从不在节点保护应答中出现,因为一个节点在这个状态时并不应答节点保护报文。或者,一个节点可被配置为产生周期性的被称作心跳报文(Heartbeat)的报文。Heartbeat Producer Consumer(s)COB-IDByte 00x700 +Node ID状态状态可为下表种的数值:状态意义0Boot-up4StoppedOperational127Pre-operational当一个Heartbeat节点启动后它的Boot-up报文是其第一个Heartbeat报文。Heartbeat消费者通常是NMT-Master节点,它为每个Heartbeat节点设定一个超时值,当超时发生时采取相应动作。一个节点不能够同时支持Node Guarding和Heartbeat协议。3.6.3 NMT Boot-upNMT-slave节点发布Boot-up报文通知NMT-Master节点它己经从initialising状态进入pre-operational状态。NMT-Master NMT-SlaveCOB-IDByte 00作为一个例子,假定第二个transmit-PDO映射如下(在CANopen中用对象字典索引0xlA01描述):对象OxlA01:第二个Transmit-.PDO映射子索引值意义022个对象映射到PD0中0x60000208对象0x6000,子索引0x02,由8位组成20x64010110对象0x6401,子索引0x01,由16位组成在CANopen I/O模块的设备子协议(CiA DSP..401)定义中,对象0x6OO0子索引2是节点的第2组8位数字量输入,对象0x6401子索引0x01是节点的第1组16位模拟量输入。这个PDO报文如果被发送(可能由输入改变,定时器中断或者远程请求帧等方式触发,和PDO的传输类型相一致,可以在对象0x1801子索引2中查找),则由3字节数据组成,格式如下:
文档评分
    请如实的对该文档进行评分
  • 0
发表评论

"π³ 实操派",培养中高端PLC工程师,PLC培训-Codesys培训

项目实战 手把手教学 微信&电话 15850116008
超2000节系统化课程,汇川优秀自动化讲师亲授!学一门Codesys,玩800家PLC仅剩少量名额
点击免费试听

到实操派,学PLC就是快!

扫码领取工控文库VIP

钻石VIP先到先得

服务电话 & 微信:9:00-22:00

15850116008

苏州实操派科技有限公司

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

Copyright © 苏州实操派科技有限公司 2022 到实操派,学PLC就是快!工业自动化业务培训适用人群:成人 ( 苏ICP备2022021576号-3 )

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

返回顶部