CANopen基本原理及其应用(二)——对象字典和通讯机制

1、对象字典OD

对象字典(OD:Object Dictionary)是CANopen协议核心部分,是一个有序的对象组;每个对象采用一个16位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个8位的子索引,对象字典的结构参照下表。不要被对象字典中索引值低于0x0FFF的‘data types’项所迷惑,它们仅仅是一些数据类型定义。一个节点的对象字典的有关范围在0x1000到0x9FFF之间。

CANopen对象字典通用结构

CANopen网络中每个节点都有一个对象字典。对象字典包含了描述这个设备和它的网络行为的所有参数。

一个节点的对象字典是在电子数据文档(EDS:Electronic Data Sheet)中描述或者记录在纸上。不必要也不需要通过CAN-bus“审问”一个节点的对象字典中的所有参数。如果一个节点严格按照在纸上的对象字典进行描述其行为,也是可以的。节点本身只需要能够提供对象字典中必需的对象(而在CANopen规定中必需的项实际上是很少的),以及其它可选择的、构成节点部分可配置功能的对象。

CANopen由一系列称为子协议的文档组成。

通讯子协议(communication profile),描述对象字典的主要形式和对象字典中的通讯子协议区域中的对象,通讯参数。同时描述CANopen通讯对象。这个子协议适用于所有的CANopen设备。

还有各种设备子协议(device profile),为各种不同类型设备定义对象字典中的对象。设备子协议为对象字典中的每个对象描述了它的功能、名字、索引和子索引、数据类型,以及这个对象是必需的还是可选的,这个对象是只读、只写或者可读写等等

注意:一个设备的通讯功能、通讯对象、与设备相关的对象以及对象的缺省值由电子数据文档(EDSElectronicData Sheet)中提供。

单个设备的对象配置的描述文件称作设备配置文件(DCFDeviceConfiguration File),它和EDS有相同的结构。二者文件类型都在CANopen规范中定义。

设备子协议定义了对象字典中哪些OD对象是必需的,哪些是可选的;必需的对象应该保持最少数目以减小实现的工作量。

可选项――在通讯部分和与设备相关部分――可以根据需要增加以扩展CANopen设备的功能。如果需要的项超过了设备子协议中可以提供的,在设备子协议中已预留由足够空间提供给厂商的特定功能使用。

对象字典中描述通讯参数部分对所有CANopen设备(例如在OD中的对象是相同的,对象值不必一定相同)都是一样的。对象字典中设备相关部分对于不同类的设备是不同的。

 

2、CANopen通讯

前面说明了CANopen中对象字典的概念,现在我们来介绍在CANopen网络中的通讯消息,它们的内容和功能,换句话:CANopen通讯模式。

注意:请区分对象字典中的对象(使用对象字典索引和子索引)和通讯对象(或者消息,使用COB-ID)。

CANopen通讯模型定义了4种报文(通讯对象):

2.1 管理报文

◆ 层管理,网络管理和ID分配服务:如初始化,配置和网络管理(包括:节点保护)。

2.2 服务数据对象SDO(Service Data Object)

◆ 通过使用索引和子索引(在CAN报文的前几个字节),SDO使客户机能够访问设备(服务器)对象字典中的项(对象)。

◆协议是确认服务类型:为每个消息生成一个应答(一个SDO需要两个ID)。SDO请求和应答报文总是包含8个字节(没有意义的数据长度在第一个字节中表示,第一个字节携带协议信息)。SDO通讯有较多的协议规定。

2.3 过程数据对象PDO(Process Data Object)

◆用来传输实时数据, 数据从一个生产者传到一个或多个消费者。数据传送限制在1到8个字节(例如,一个PDO可以传输最多64个数字I/O值,或者4个16位的AD值)。

◆ PDO通讯没有协议规定。PDO数据内容只由它的CAN ID定义,假定生产者和消费者知道这个PDO的数据内容。

◆ 每个PDO在对象字典中用2个对象描述:

      ●PDO通讯参数:包含哪个COB-ID将被PDO使用,传输类型,禁止时间和定时器周期。

      ●PDO映射参数:包含一个对象字典中对象的列表,这些对象映射到PDO里,包括它们的数据长度(in bits)。生产者和消费者必须知道这个映射,以解释PDO内容。

◆ PDO消息的内容是预定义的(或者在网络启动时配置的):

映射应用对象到PDO中是在设备对象字典中描述的。如果设备(生产者和消费者)支持可变PDO映射,那么使用SDO报文可以配置PDO映射参数。

◆PDO可以有多种传送方式:

      ●同步(通过接收SYNC对象实现同步)

             ■ 非周期:由远程帧预触发传送,或者由设备子协议中规定的对象   特定事件预触发传送。

             ■ 周期:传送在每1到240个SYNC消息后触发。

      ●异步  

             ■ 由远程帧触发传送。

             ■ 由设备子协议中规定的对象特定事件触发传送。

 

下表给出来了由传输类型定义的不同PDO传输模式,传输类型为PDO通讯参数对象的一部分,由8位无符号整数定义。

◆一个PDO可以指定一个禁止时间,即定义两个连续PDO传输的最小间隔时间,避免由于高优先级信息的数据量太大,始终占据总线,而使其它优先级较低的数据无力竞争总线的问题。禁止时间由16位无符号整数定义,单位100us。

◆一个PDO可以指定一个事件定时周期,当超过定时时间后,一个PDO传输可以被触发(不需要触发位)。事件定时周期由16位无符号整数定义,单位1ms。

2.4 预定义报文或者特殊功能对象

◆同步(SYNC)

      ●在网络范围内同步(尤其在驱动应用中):在整个网络范围内当前输入值准同时保存,随后传送(如果需要),根据前一个SYNC后接收到的报文更新输出值。

      ●主从模式:SYNC主节点定时发送SYNC对象,SYNC从节点收到后同步执行任务。

       ●在SYNC报文传送后,在给定的时间窗口内传送一个同步PDO。

      ●CANopen建议用一个最高优先级的COB-ID以保证同步信号正常传送。SYNC报文可以不传送数据以使报文尽可能短。

◆时间标记对象(Time Stamp)

      ●为应用设备提供公共的时间帧参考。

      ●用CAL中存储事件类型的CMS对象实现。

◆紧急事件(Emergency)

      ● 设备内部错误触发。

      ●用CAL中存储事件类型的CMS对象实现。

◆节点/寿命保护(Node/Life guarding)。

      ●主从通讯模式

      ●NMT主节点监控节点状态:称作节点保护(Node guarding)。

      ●节点也可以(可选择)监控NMT主节点的状态:称作寿命保护(Life guarding)。当NMT从节点接收到NMT主节点发送的第一个Node Guard报文后启动寿命保护。

      ●检测设备的网络接口错误(不是设备自身的错误):通过应急指示报告。

      ● 根据NMT节点保护协议实现: NMT主节点发送远程请求到一个特定节点,节点给出应答,应答报文中包含了这个节点的状态。

◆Boot-UP

      ●主从通讯模式

      ● NMT从节点通过发送这个报文,向NMT主节点说明该节点已经由初始化状态进入预操作状态。

CANopen设备模型

上面提到的通讯对象类型中有二个对象用于数据传输。它们采用二种不同的数据传输机制实现:

◆SDO 用来在设备之间传输大的低优先级数据,典型的是用来配置CANopen网络上的设备。

◆PDO 用来传输8字节或更少数据,没有其它协议预设定(意味着数据内容已预先定义)。

一个CANopen设备必须支持一定数量的网络管理服务(管理报文,administrative messages),需要至少一个SDO。每个生产或消费过程数据的设备需要至少一个PDO。所有其它的通讯对象是可选的。

关于虹科工业通讯

虹科是一家在工业自动化领域,特别是工业总线通讯行业经验超过10年的高科技公司。虹科工业通讯事业部与世界知名的工业通讯专家PEAK-System,Hilscher,Kunbus,SYS TEC,Koenig-Pa,Port,Copa-data,TenAsys,SoC-e、RELYUM】等深度合作,提供业内顶尖水平的工业总线协议软硬件解决方案,协议类型包含【CAN、CANopen、EtherCAT、Profibus、Profinet、EtherNET/IP、TSN】等,产品类型包含代码、软件、芯片、板卡、模块等。虹科工业通讯以客户需求为导向,以技术能力为基础,为国内企业提供最适合的产品和最满意的服务。特别是在工业4.0的大环境下,虹科工业通讯与时俱进,推出了TSN(时间敏感网络)的解决方案,后者将在推动万物互联的潮流中扮演着如高速公路般的连接作用。

微信扫一扫,关注我们获取更多工业通讯干货~

点击链接,关注我们的实时动态:www.hongconsys.com

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值