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

[复制链接]
查看49259 | 回复0 | 2024-3-15 09:35:46 | 显示全部楼层 |阅读模式
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),为各种不同类型设备定义对象字典中的对象。设备子协议为对象字典中的每个对象描述了它的功能、名字、索引和子索引、数据类型,以及这个对象是必需的还是可选的,这个对象是只读、只写或者可读写等等

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

单个设备的对象配置的描述文件称作设备配置文件(DCF:DeviceConfiguration 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.3、预定义报文或者特殊功能对象

◆同步(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。所有其它的通讯对象是可选的。一个CANopen设备中CAN通讯接口、对象字典和应用程序之间的联系如图3-1所

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则