首页 CANopen协议介绍(中文)

CANopen协议介绍(中文)

举报
开通vip

CANopen协议介绍(中文)广州虹科电子科技有限公司020-38743030www.hkaco.comCANopen协议介绍流行欧洲的CAN-bus高层协议1广州虹科电子科技有限公司020-38743030www.hkaco..com目录1、介绍..........................................................................................................................................................

CANopen协议介绍(中文)
广州虹科电子科技有限公司020-38743030www.hkaco.comCANopen 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 介绍流行欧洲的CAN-bus高层协议1广州虹科电子科技有限公司020-38743030www.hkaco..com目录1、介绍.....................................................................................................................................................................12、CAL协议............................................................................................................................................................23、CANopen.............................................................................................................................................................33.1对象字典OD........................................................................................................................................33.2CANopen通讯.....................................................................................................................................43.3CANopen预定义连接集.....................................................................................................................63.4CANopen标识符分配.........................................................................................................................83.5CANopenboot-up过程........................................................................................................................83.6CANopen消息语法细节.....................................................................................................................94、总结...................................................................................................................................................................185、说明...................................................................................................................................................................191广州虹科电子科技有限公司020-38743030www.hkaco..com1、介绍从OSI网络模型的角度来看同,现场总线网络一般只实现了第1层(物理层)、第2层(数据链路层)、第7层(应用层)。因为现场总线通常只包括一个网段,因此不需要第3层(传输层)和第4层(网络层),也不需要第5层(会话层)第6层(描述层)的作用。CAN(ControllerAreaNetwork)现场总线仅仅定义了第1层、第2层(见ISO11898标准);实际 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 中,这两层完全由硬件实现,设计人员无需再为此开发相关软件(Software)或固件(Firmware)。同时,CAN只定义物理层和数据链路层,没有规定应用层,本身并不完整,需要一个高层协议来定义CAN报文中的11/29位标识符、8字节数据的使用。而且,基于CAN总线的工业自动化应用中,越来越需要一个开放的、标准化的高层协议:这个协议支持各种CAN厂商设备的互用性、互换性,能够实现在CAN网络中提供标准的、统一的系统通讯模式,提供设备功能描述方式,执行网络管理功能。应用层(Applicationlayer):为网络中每一个有效设备都能够提供一组有用的服务与协议。通讯描述(Communicationprofile):提供配置设备、通讯数据的含义,定义数据通讯方式。设备描述(Deviceproflile):为设备(类)增加符合规范的行为。下面的章节将介绍基于CAN的高层协议:CAL协议和基于CAL协议扩展的CANopen协议。CANopen协议是CAN-in-Automation(CiA)定义的标准之一,并且在发布后不久就获得了广泛的承认。尤其是在欧洲,CANopen协议被认为是在基于CAN的工业系统中占领导地位的标准。大多数重要的设备类型,例如数字和模拟的输入输出模块、驱动设备、操作设备、控制器、可编程控制器或编码器,都在称为“设备描述”的协议中进行描述;“设备描述”定义了不同类型的标准设备及其相应的功能。依靠CANopen协议的支持,可以对不同厂商的设备通过总线进行配置。在OSI模型中,CAN标准、CANopen协议之间的关系如下图所示:CiADSP-401CiADSP-404CiADSP-xxxApplicationCommunicationProfileCiADS-301LayerChipCAN2.0ADataLinkLayerISO11898PhysicalLayerCable图1.1CAN、CANopen标准在OSI网络模型中的位置框图1广州虹科电子科技有限公司020-38743030www.hkaco..com2、CAL协议CAL(CANApplicationLayer)协议是目前基于CAN的高层通讯协议中的一种,最早由Philips医疗设备部门制定。现在CAL由独立的CAN用户和制造商集团CiA(CANinAutomation)协会负责管理、发展和推广。CAL提供了4种应用层服务功能:CMS(CAN-basedMessageSpecification)CMS提供了一个开放的、面向对象的环境,用于实现用户的应用。CMS提供基于变量、事件、域类型的对象,以设计和规定一个设备(节点)的功能如何被访问(例如,如何上载下载超过8字节的一组数据(域),并且有终止传输的功能)。CMS从MMS(ManufacturingMessageSpecification)继承而来。MMS是OSI为工业设备的远程控制和监控而制定的应用层规范。NMT(NetworkManagemenT)提供网络管理(如初始化、启动和停止节点,侦测失效节点)服务。这种服务是采用主从通讯模式(所以只有一个NMT主节点)来实现的。DBT(DistriBuTor)提供动态分配CANID(正式名称为COB-ID,CommunicationObjectIdentifier)服务。这种服务是采用主从通讯模式(所以只有一个DBT主节点)来实现的。LMT(LayerManagemenT)LMT提供修改层参数的服务:一个节点(LMTMaster)可以设置另外一个节点(LMTSlave)的某层参数(如改变一个节点的NMT地址,或改变CAN接口的位定时和波特率)。CMS为它的消息定义了8个优先级,每个优先级拥有220个COB-ID,范围从1到1760。剩余的标志(0,1761-2031)保留给NMT,DBT和LMT,见表2-1。表2-1映射到CAL服务和对象的COB-ID(11位CAN标识符)COB-ID服务或对象0NMT启动/停止服务1-220CMS对象优先级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位ID并不改变这个描述;表中的11位映射到29位COB-ID中的最高11位,以至于表中的COB-ID范围变得增大许多。2广州虹科电子科技有限公司020-38743030www.hkaco..com3、CANopenCAL提供了所有的网络管理服务和报文传送协议,但并没有定义CMS对象的内容或者正在通讯的对象的类型(它只定义了how,没有定义what)。而这正是CANopen切入点。CANopen是在CAL基础上开发的,使用了CAL通讯和服务协议子集,提供了分布式控制系统的一种实现 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。CANopen在保证网络节点互用性的同时允许节点的功能随意扩展:或简单或复杂。CANopen的核心概念是设备对象字典(OD:ObjectDictionary),在其它现场总线(Profibus,Interbus-S)系统中也使用这种设备描述形式。注意:对象字典不是CAL的一部分,而是在CANopen中实现的。下面先介绍对象字典(OD:ObjectDictionary),然后再介绍CANopen通讯机制。3.1对象字典OD对象字典(OD:ObjectDictionary)是一个有序的对象组;每个对象采用一个16位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个8位的子索引,对象字典的结构参照表3-1。不要被对象字典中索引值低于0x0FFF的‘datatypes’项所迷惑,它们仅仅是一些数据类型定义。一个节点的对象字典的有关范围在0x1000到0x9FFF之间。表3-1CANopen对象字典通用结构索引对象0000Notused0001-001F静态数据类型(标准数据类型,如Boolean,Integer16)复杂数据类型0020-003F(预定义由简单类型组合成的结构如PDOCommPar,SDOParameter)0040-005F制造商规定的复杂数据类型0060-007F设备子协议规定的静态数据类型0080-009F设备子协议规定的复杂数据类型00A0-0FFFReserved通讯子协议区域1000-1FFF(如设备类型,错误寄存器,支持的PDO数量)2000-5FFF制造商特定子协议区域标准的设备子协议区域6000-9FFF(例如“DSP-401I/O模块设备子协议”:ReadState8InputLines等)A000-FFFFReservedCANopen网络中每个节点都有一个对象字典。对象字典包含了描述这个设备和它的网络行为的所有参数。一个节点的对象字典是在电子数据文档(EDS:ElectronicDataSheet)中描述或者记录在纸上。不必要也不需要通过CAN-bus“审问”一个节点的对象字典中的所有参数。如果一个节点严格按照在纸上的对象字典进行描述其行为,也是可以的。节点本身只需要能够提供对象字典中必需的对象(而在CANopen规定中必需的项实际上是很少的),以及其它可选择的、构成节点部分可配置功能的对象。CANopen由一系列称为子协议的文档组成。通讯子协议(communicationprofile),描述对象字典的主要形式和对象字典中的通讯子协议区域中的对象,通讯参数。同时描述CANopen通讯对象。这个子协议适用于所有的CANopen设备。还有各种设备子协议(deviceprofile),为各种不同类型设备定义对象字典中的对象。目前已有5种不3广州虹科电子科技有限公司020-38743030www.hkaco..com同的设备子协议,并有几种正在发展。设备子协议为对象字典中的每个对象描述了它的功能、名字、索引和子索引、数据类型,以及这个对象是必需的还是可选的,这个对象是只读、只写或者可读写等等。注意:一个设备的通讯功能、通讯对象、与设备相关的对象以及对象的缺省值由电子数据文档(EDS:ElectronicDataSheet)中提供。单个设备的对象配置的描述文件称作设备配置文件(DCF:DeviceConfigurationFile),它和EDS有相同的结构。二者文件类型都在CANopen规范中定义。设备子协议定义了对象字典中哪些OD对象是必需的,哪些是可选的;必需的对象应该保持最少数目以减小实现的工作量。可选项――在通讯部分和与设备相关部分――可以根据需要增加以扩展CANopen设备的功能。如果需要的项超过了设备子协议中可以提供的,在设备子协议中已预留由足够空间提供给厂商的特定功能使用。对象字典中描述通讯参数部分对所有CANopen设备(例如在OD中的对象是相同的,对象值不必一定相同)都是一样的。对象字典中设备相关部分对于不同类的设备是不同的。3.2CANopen通讯前面说明了CANopen中对象字典的概念,现在我们来介绍在CANopen网络中的通讯消息,它们的内容和功能,换句话:CANopen通讯模式。注意:请区分对象字典中的对象(使用对象字典索引和子索引)和通讯对象(或者消息,使用COB-ID)。CANopen通讯模型定义了4种报文(通讯对象):1.管理报文层管理,网络管理和ID分配服务:如初始化,配置和网络管理(包括:节点保护)。服务和协议符合CAL中的LMT,NMT和DBT服务部分。这些服务都是基于主从通讯模式:在CAN网络中,只能有一个LMT,NMT或DBT主节点以及一个或多个从节点。2.服务数据对象SDO(ServiceDataObject)通过使用索引和子索引(在CAN报文的前几个字节),SDO使客户机能够访问设备(服务器)对象字典中的项(对象)。SDO通过CAL中多元域的CMS对象来实现,允许传送任何长度的数据(当数据超过4个字节时分拆成几个报文)。协议是确认服务类型:为每个消息生成一个应答(一个SDO需要两个ID)。SDO请求和应答报文总是包含8个字节(没有意义的数据长度在第一个字节中表示,第一个字节携带协议信息)。SDO通讯有较多的协议规定。3.过程数据对象PDO(ProcessDataObject)用来传输实时数据,数据从一个生产者传到一个或多个消费者。数据传送限制在1到8个字节(例如,一个PDO可以传输最多64个数字I/O值,或者4个16位的AD值)。PDO通讯没有协议规定。PDO数据内容只由它的CANID定义,假定生产者和消费者知道这个PDO的数据内容。每个PDO在对象字典中用2个对象描述:PDO通讯参数:包含哪个COB-ID将被PDO使用,传输类型,禁止时间和定时器周期。PDO映射参数:包含一个对象字典中对象的列表,这些对象映射到PDO里,包括它们的数据长度(inbits)。生产者和消费者必须知道这个映射,以解释PDO内容。PDO消息的内容是预定义的(或者在网络启动时配置的):映射应用对象到PDO中是在设备对象字典中描述的。如果设备(生产者和消费者)支持可变PDO映射,那么使用SDO报文可以配置PDO映射参数。PDO可以有多种传送方式:4广州虹科电子科技有限公司020-38743030www.hkaco..com同步(通过接收SYNC对象实现同步)非周期:由远程帧预触发传送,或者由设备子协议中规定的对象特定事件预触发传送。周期:传送在每1到240个SYNC消息后触发。异步由远程帧触发传送。由设备子协议中规定的对象特定事件触发传送。表3-2给出来了由传输类型定义的不同PDO传输模式,传输类型为PDO通讯参数对象的一部分,由8位无符号整数定义。表3-2PDO传输类型定义触发PDO的条件传输类型(B=bothneededO=oneorboth)PDO传输SYNCRTREvent0B-B同步,非循环1-240O--同步,循环241-251---Reserved252BB-同步,在RTR之后253-O-异步,在RTR之后254-OO异步,制造商特定事件255-OO异步,设备子协议特定事件说明:SYNC–接收到SYNC-object。RTR-接收到远程帧。Event–例如数值改变或者定时器中断。传输类型为:1到240时,该数字代表两个PDO之间的SYNC对象的数目)。一个PDO可以指定一个禁止时间,即定义两个连续PDO传输的最小间隔时间,避免由于高优先级信息的数据量太大,始终占据总线,而使其它优先级较低的数据无力竞争总线的问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 。禁止时间由16位无符号整数定义,单位100us。一个PDO可以指定一个事件定时周期,当超过定时时间后,一个PDO传输可以被触发(不需要触发位)。事件定时周期由16位无符号整数定义,单位1ms。PDO通过CAL中存储事件类型的CMS对象实现。PDO数据传送没有上层协议,而且PDO报文没有确认(一个PDO需要一个CAN-ID)。每个PDO报文传送最多8个字节(64位)数据。4.预定义报文或者特殊功能对象同步(SYNC)在网络范围内同步(尤其在驱动应用中):在整个网络范围内当前输入值准同时保存,随后传送(如果需要),根据前一个SYNC后接收到的报文更新输出值。主从模式:SYNC主节点定时发送SYNC对象,SYNC从节点收到后同步执行任务。在SYNC报文传送后,在给定的时间窗口内传送一个同步PDO。用CAL中基本变量类型的CMS对象实现。CANopen建议用一个最高优先级的COB-ID以保证同步信号正常传送。SYNC报文可以不传送数据以使报文尽可能短。时间标记对象(TimeStamp)为应用设备提供公共的时间帧参考。用CAL中存储事件类型的CMS对象实现。5广州虹科电子科技有限公司020-38743030www.hkaco..com紧急事件(Emergency)设备内部错误触发。用CAL中存储事件类型的CMS对象实现。节点/寿命保护(Node/Lifeguarding)。主从通讯模式NMT主节点监控节点状态:称作节点保护(Nodeguarding)。节点也可以(可选择)监控NMT主节点的状态:称作寿命保护(Lifeguarding)。当NMT从节点接收到NMT主节点发送的第一个NodeGuard报文后启动寿命保护。检测设备的网络接口错误(不是设备自身的错误):通过应急指示报告。根据NMT节点保护协议实现:NMT主节点发送远程请求到一个特定节点,节点给出应答,应答报文中包含了这个节点的状态。Boot-UP主从通讯模式NMT从节点通过发送这个报文,向NMT主节点说明该节点已经由初始化状态进入预操作状态。图3-1CANopen设备上面提到的通讯对象类型中有二个对象用于数据传输。它们采用二种不同的数据传输机制实现:SDO用来在设备之间传输大的低优先级数据,典型的是用来配置CANopen网络上的设备。PDO用来传输8字节或更少数据,没有其它协议预设定(意味着数据内容已预先定义)。一个CANopen设备必须支持一定数量的网络管理服务(管理报文,administrativemessages),需要至少一个SDO。每个生产或消费过程数据的设备需要至少一个PDO。所有其它的通讯对象是可选的。一个CANopen设备中CAN通讯接口、对象字典和应用程序之间的联系如图3-1所示。3.3CANopen预定义连接集为了减小简单网络的组态工作量,CANopen定义了强制性的缺省标识符(CAN-ID)分配表。这些标志符在预操作状态下可用,通过动态分配还可修改他们。CANopen设备必须向它所支持的通讯对象的提供相应的标识符。缺省ID分配表是基于11位CAN-ID,包含一个4位的功能码部分和一个7位的节点ID(Node-ID)部分。如图3-2所示。6广州虹科电子科技有限公司020-38743030www.hkaco..com图3-2预定义连接集IDNode-ID由系统集成商定义,例如通过设备上的拨码开关设置。Node-ID范围是1~127(0不允许被使用)。预定义的连接集定义了4个接收PDO(Receive-PDO),4个发送PDO(Transmit-PDO),1个SDO(占用2个CAN-ID),1个紧急对象和1个节点错误控制(Node-Error-Control)ID。也支持不需确认的NMT-Module-Control服务,SYNC和TimeStamp对象的广播。缺省ID分配表如表3-3所示。表格3-3CANopen预定义主/从连接集CAN标识符分配表CANopen预定义主/从连接集的广播对象功能码对象COB-ID通讯参数在OD中的索引(ID-bits10-7)NMTModuleControl0000000H-SYNC0001080H1005H,1006H,1007HTIMESSTAMP0010100H1012H,1013HCANopen主/从连接集的对等对象功能码对象功能码COB-ID通讯参数在OD中的索引(ID-bits10-7)紧急0001081H-0FFH1024H,1015HPDO1(发送)0011181H-1FFH1800HPDO1(接收)0100201H-27FH1400HPDO2(发送)0101281H-2FFH1801HPDO2(接收)0110301H-37FH1401HPDO3(发送)0111381H-3FFH1802HPDO3(接收)1000401H-47FH1402HPDO4(发送)1001481H-4FFH1803HPDO4(接收)1010501H-57FH1403HSDO(发送/服务器)1011581H-5FFH1200HSDO(接收/客户)1100601H-67FH1200HNMTErrorControl1110701H-77FH1016H-1017H注意:PDO/SDO发送/接收是由(slave)CAN节点方观察的。NMT错误控制包括节点保护(NodeGuarding),心跳报文(Heartbeat)和Boot-up协议。7广州虹科电子科技有限公司020-38743030www.hkaco..com3.4CANopen标识符分配ID地址分配表与预定义的主从连接集(set)相对应,因为所有的对等ID是不同的,所以实际上只有一个主设备(知道所有连接的节点ID)能和连接的每个从节点(最多127个)以对等方式通讯。两个连接在一起的从节点不能够通讯,因为它们彼此不知道对方的节点ID。比较上表的ID映射和CAL的映射,显示了具有特定功能的CANopen对象如何映射到CAL中一般的CMS对象。CANopen网络中CAN标识符(或COB-ID)分配3种不同 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 :使用预定义的主从连接集。ID是缺省的,不需要配置。如果节点支持,PDO数据内容也可以配置。上电后修改PDO的ID(在预操作状态),使用(预定义的)SDO在节点的对象字典中适当位置进行修改。使用CALDBT服务:节点或从节点最初由它们的配置ID指称。节点ID可以由设备上的拨码开关配置,或使用CALLMT服务进行配置。当网络初始化完毕,并且启动后,主节点首先通过”Connect_Remote_Node”报文(是一个CALNMT服务)和每个连接的从设备建立一个对话。一旦这个对话建立,CAN通讯ID(SDO和PDO)用CALDBT服务分配好,这需要节点支持扩展的boot-up。3.5CANopenboot-up过程在网络初始化过程中,CANopen支持扩展的boot-up,也支持最小化boot-up过程。扩展boot-up是可选的,最小boot-up则必须被每个节点支持。两类节点可以在同一个网络中同时存在。如果使用CAL的DBT服务进行ID分配,则节点必须支持扩展boot-up过程。可以用节点状态转换图表示这两种初始化过程,如图3-3所示。扩展boot-up的状态图在预操作和操作状态之间比最小化boot-up多了一些状态。图3-3CANopen最小化boot-up节点状态转换图注意:图3-3中括号内的字母表示处于不同状态那些通讯对象可以使用。a.NMT,b.NodeGuard,c.SDO,d.Emergency,e.PDO,f.Boot-up状态转移(1-5由NMT服务发起),NMT命令字(在括号中):1:Start_Remote_node(0x01)8广州虹科电子科技有限公司020-38743030www.hkaco..com2: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-ID=0)和两字节数据组成;第一个字节表示请求的服务类型(‘NMTcommandspecifier’),第二个字节是节点ID,或者0(此时寻址所有节点)。仅支持最小化boot-up的设备叫最小能力设备。最小能力设备在设备初始化结束后自动进入预操作l状态。在这个状态,可以通过SDO进行参数配置和进行COB-ID分配。设备进入准备状态后,除了NMT服务和节点保护服务(如果支持并且激活的话)外,将停止通讯。(因此‘Stopped’是描述这个状态的一个好名字)3.6CANopen消息语法细节在以下部分中COB-ID使用的是CANopen预定义连接集中已定义的缺省标志符。3.6.1NMT模块控制(NMTModuleControl)只有NMT-Master节点能够传送NMTModuleControl报文。所有从设备必须支持NMT模块控制服务。NMTModuleControl消息不需要应答。NMT消息格式如下:NMT-MasterNMT-Slave(s)COB-IDByte0Byte10x000CSNode-ID当Node-ID=0,则所有的NMT从设备被寻址。CS是命令字,可以取如下值:命令字NMT服务1StartRemoteNode2StopRemoteNode128EnterPre-operationalState129ResetNode130ResetCommunication3.6.2MNT节点保护(NMTNodeGuarding)通过节点保护服务,MNT主节点可以检查每个节点的当前状态,当这些节点没有数据传送时这种服务尤其有意义。NMT-Master节点发送远程帧(无数据)如下:NMT-MasterNMT-SlaveCOB-ID0x700+Node_IDNMT-Slave节点发送如下报文应答:NMT-MasterNMT-SlaveCOB-IDByte00x700+Node_IDBit7:toggleBit6-0:状态数据部分包括一个触发位(bit7),触发位必须在每次节点保护应答中交替置“0”或者“1”。触发位在第一次节点保护请求时置为“0”。位0到位6(bits0~6)表示节点状态,可为下表中的数值。9广州虹科电子科技有限公司020-38743030www.hkaco..comValue状态0Initialising1Disconnected*2Connecting*3Preparing*4Stopped5Operational127Pre-operational注意:带*号的状态只有支持扩展boot-up的节点才提供。注意状态0从不在节点保护应答中出现,因为一个节点在这个状态时并不应答节点保护报文。或者,一个节点可被配置为产生周期性的被称作心跳报文(Heartbeat)的报文。HeartbeatProducerConsumer(s)COB-IDByte00x700+Node_ID状态状态可为下表种的数值:状态意义0Boot-up4Stopped5Operational127Pre-operational当一个Heartbeat节点启动后它的Boot-up报文是其第一个Heartbeat报文。Heartbeat消费者通常是NMT-Master节点,它为每个Heartbeat节点设定一个超时值,当超时发生时采取相应动作。一个节点不能够同时支持NodeGuarding和Heartbeat协议。3.6.3NMTBoot-upNMT-slave节点发布Boot-up报文通知NMT-Master节点它已经从initialising状态进入pre-operational状态。NMT-MasterNMT-SlaveCOB-IDByte00x700+Node_ID03.6.4过程数据对象(PDO)作为一个例子,假定第二个transmit-PDO映射如下(在CANopen中用对象字典索引0x1A01描述):对象0x1A01:第二个Transmit-PDO映射子索引值意义022个对象映射到PDO中10x60000208对象0x6000,子索引0x02,由8位组成20x64010110对象0x6401,子索引0x01,由16位组成在CANopenI/O模块的设备子协议(CiADSP-401)定义中,对象0x6000子索引2是节点的第2组8位数字量输入,对象0x6401子索引0x01是节点的第1组16位模拟量输入。这个PDO报文如果被发送(可能由输入改变,定时器中断或者远程请求帧等方式触发,和PDO的传输类型相一致,可以在对象0x1801子索引2中查找),则由3字节数据组成,格式如下:10广州虹科电子科技有限公司020-38743030www.hkaco..comPDO-producerPDO-consumer(s)COB-IDByte0Byte1Byte20x280+Node_ID8位数据量输入16位模拟量输入16位模块量输入(低8位)(高8位)通过改变对象0x1A01的内容,PDO的内容可被改变(如果节点支持(可变PDO映射))。注意在CANopen中多字节参数总是先发送LSB(littleendian)。不允许超过8个字节的数据映射到某一个PDO中。在CANopenApplicationLayerandCommunicationProfile(CiADS301V4.02)中定义了MPDO(multiplexorPDO),允许一个PDO传输大量变量,通过在报文数据字节中包含源或目的节点ID、OD中的索引和子索引来实现。举个例子:如果没有这个机制,当一个节点有64个16位的模拟通道时,就需要16个不同的Transmit-PDOs来传送数据,3.6.5服务数据对象(SDO)SDO用来访问一个设备的对象字典。访问者被称作客户(client),对象字典被访问且提供所请求服务的CANopen设备别称作服务器(server)。客户的CAN报文和服务器的应答CAN报文总是包含8字节数据(尽管不是所有的数据字节都一定有意义)。一个客户的请求一定有来自服务器的应答。SDO有2种传送机制:加速传送(Expeditedtransfer):最多传输4字节数据分段传送(Segmentedtransfer):传输数据长度大于4字节SDO的基本结构如下:ClientServer/ServerClientByte0Byte1-2Byte3Byte4-7SDO对象索引对象子索引**CommandSpecifier(**最大4字节数据(expeditedtransfer)或4字节字节计数器(segmentedtransfer)或关于blocktransfer参数)或者ClientServer/ServerClientByte0Byte1-70SDO命令字最大7字节数据(segmentedtransfer)SDO命令字包含如下信息:下载/上传(Download/upload)请求/应答(Request/response)分段/加速传送(Segmented/expeditedtransfer)CAN帧数据字节长度用于后续每个分段的交替清零和置位的触发位(togglebit)SDO中实现了5个请求/应答协议:启动域下载(InitiateDomainDownload),域分段下载(DownloadDomainSegment),启动域上传(InitiateDomainUpload),域分段上传(UploadDomainSegment)和域传送中止(AbortDomainTransfer)。在CANopen通讯协议的最新版本中,引入了一种新的SDO传送机制:块传送(Blocktransfer):当传送数据长度大于4字节时,多个分段只由1个确认报文应答(如果是下载,则由服务器启动传送,如果是上传,则由客户启动传送)以增加总线吞吐量。相应的协议为:启动块下载(InitiateBlockDownload),块分段下载(DownloadBlockSegment),块下载结束(EndBlockDownload),启动块上传(InitiateBlockUpload),块分段上传(UploadBlock11广州虹科电子科技有限公司020-38743030www.hkaco..comSegment)和块上传结束(EndBlockUpload)。下载(Download)是指对对象字典进行写操作,上传(Upload)指对对象字典进行读操作。这些协议的SDO命令字(SDOCAN报文的第一个字节)语法和细节在下面部分说明:(‘-’表示不相关,应为0)。启动域下载(InitiateDomainDownload)Bit76543210Client001-nesServer011-----说明:n:如果e=1,且s=1,则有效,否则为0;表示数据部分中无意义数据的字节数(字节8-n到7数据无意义)。e:0=正常传送,1=加速传送。s:是否指明数据长度,0=数据长度未指明,1=数据长度指明。e=0,s=0:由CiA保留。e=0,s=1:数据字节为字节计数器,byte4是数据低位部分(LSB),byte7是数据高位部分(MSB)。e=1:数据字节为将要下载(download)的数据。域分段下载(DownloadDomainSegment)Bit76543210Client000tncServer001t----说明:n:无意义的数据字节数。如果没有指明段长度,则为0。c:0=有后续分段需要download,1=最后一个段。t:触发位,后续每个分段交替清零和置位(第一次传送为0,等效于request/response)。启动域上传(InitiateDomainUpload)Bit76543210Client010-----Server010-nes说明:n,e,s:与启动域下载相同。域分段上传(UploadDomainSegment)Bit76543210Client011t----Server000tnc说明:n,c,t:与域分段下载相同。SDO客户或服务器通过发出如下格式的报文来中止SDO传送:域传送中止(AbortDomainTransfer)Bit76543210C/S100-----12广州虹科电子科技有限公司020-38743030www.hkaco..com在域传送中止报文中,数据字节0和1表示对象索引,字节2表示子索引,字节4到7包含32位中止码,描述中止报文传送原因,见表3-4所示。表3-4域传送中止SDO:16进制中止代码表(字节4到7)中止代码代码功能描述05030000触发位没有交替改变05040000SDO协议超时05040001非法或未知的Client/Server命令字05040002无效的块大小(仅BlockTransfer模式)05040003无效的序号(仅BlockTransfer模式)05030004CRC错误(仅BlockTransfer模式)05030005内存溢出06010000对象不支持访问06010001试图读只写对象06010002试图写只读对象06020000对象字典中对象不存在06040041对象不能够映射到PDO06040042映射的对象的数目和长度超出PDO长度06040043一般性参数不兼容06040047一般性设备内部不兼容06060000硬件错误导致对象访问失败06060010数据类型不匹配,服务参数长度不匹配06060012数据类型不匹配,服务参数长度太大06060013数据类型不匹配,服务参数长度太短06090011子索引不存在06090030超出参数的值范围(写访问时)06090031写入参数数值太大06090032写入参数数值太小06090036最大值小于最小值08000000一般性错误08000020数据不能传送或保存到应用08000021由于本地控制导致数据不能传送或保存到应用08000022由于当前设备状态导致数据不能传送或保存到应用对象字典动态产生错误或对象字典不存在08000023(例如,通过文件生成对象字典,但由于文件损坏导致错误产生)启动块下载(InitiateBlockDownload)Bit76543210Client110--ccs0Server101--sc-0说明:cc:客户数据是否使用CRC校验,0=no,1=yes。sc:服务器数据是否使用CRC校验,0=no,1=yes。13广州虹科电子科技有限公司020-38743030www.hkaco..coms:是否指明数据集长度,0=数据集长度未指明,1=数据集长度指明。s=0:由CiA保留。s=1:数据字节为字节计数器,字节4:LSB,字节7:MSB。服务器字节4表示blksize,即每块中分段的数目,0
本文档为【CANopen协议介绍(中文)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
中小学教育资料汇总
暂无简介~
格式:pdf
大小:919KB
软件:PDF阅读器
页数:21
分类:互联网
上传时间:2023-02-27
浏览量:4