网站大量收购闲置独家精品文档,联系QQ:2885784924

canopen协议分析近年原文.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

CANopen协议分析

作为一种真正开放的CAN总线高层协议,CANopen协议允许不同的CAN设备以标准化的方式进行通讯,使得CAN设备具有互操作性.随着CANopen协议的日益完善,它已经广泛应用于多个行业.本文将对CANopen协议的对象字典、通讯对象及网络管理等几个方面进行简要分析。

?1.CANopen对象字典

CANopen对象字典OD(ObjectDictionary)是CANopen协议最为核心的概念。所谓的对象字典就是一个有序的对象组,每个对象采用一个16位的索引值来寻址,这个索引值通常被称为索引,其范围在0x1000~0x9FFF之间。为了允许访问数据结构中的单个元素,同时也定义了一个8位的索引值,这个索引值通常被称为子索引。

每个CANopen设备都有一个对象字典,对象字典包含了描述这个设备和它的网络行为的所有参数,对象字典通常用电子数据文档EDS(ElectronicDataSheet)来记录这些参数,而不需要把这些参数记录在纸上。对于CANopen网络中的主节点来说,不需要对CANopen从节点的每个对象字典项都访问。

CANopen对象字典中的项由一系列子协议来描述。子协议为对象字典中的每个对象都描述了它的功能、名字、索引、子索引、数据类型,以及这个对象是否必需、读写属性等等,这样可保证不同厂商的同类型设备兼容。

CANopen协议的核心描述子协议是DS301,其包括了CANopen协议应用层及通信结构描述,其他的协议子协议都是对DS301协议描述文本的补充与扩展。在不同的应用行业都会起草一份CANopen设备子协议,子协议编号一般是DS4xx。

CANopen协议包含了许多的子协议,其主要划分为以下三类:

通信子协议(CommunicationProfile)

通信子协议,描述对象字典的主要形式和对象字典中的通信对象以及参数。这个子协议适用所有的CANopen设备,其索引值范围从0x1000~0x1FFF。

制造商自定义子协议(Manufacturer-specificProfile)

制造商自定义子协议,对于在设备子协议中未定义的特殊功能,制造商可以在此区域根据需求定义对象字典对象。因此这个区域对于不同的厂商来说,相同的对象字典项其定义不一定相同,其索引值范围为0x2000~0x5FFF。

设备子协议(DeviceProfile)

设备子协议,为各种不同类型的设备定义对象字典中的对象。目前已有十几种为不同类型的设备定义的子协议,例如DS401、DS402、DS406等,其索引值范围为0x6000~0x9FFF

2.通讯对象

CANopen网络的通讯是以报文的方式传送,CANopen通讯模型定义了四种报文,也即四种通讯对象,分别是管理报文、服务数据对象SDO(ServiceDataObject)、过程数据对象PDO(ProcessDataObject)、预定义报文或者特殊功能对象,下面分别介绍。

管理报文

●层管理,网络管理和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中是在设备对象字典中描述的。如果设备(生产

文档评论(0)

【晓娣】 + 关注
实名认证
内容提供者

好文档大家想

1亿VIP精品文档

相关文档