1、对象字典OD
对象字典(OD:Object Dictionary)是CANopen协议核心部分,是一个有序的对象组;每个对象采用一个16位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个8位的子索引,对象字典的结构参照下表。不要被对象字典中索引值低于0x0FFF的‘data types’项所迷惑,它们仅仅是一些数据类型定义。一个节点的对象字典的有关范围在0x1000到0x9FFF之间。
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.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主节点说明该节点已经由初始化状态进入预操作状态。
上面提到的通讯对象类型中有二个对象用于数据传输。它们采用二种不同的数据传输机制实现:
◆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