CAN总线应用协议总线应用协议CANOPEN分析分析
作为一种真正开放的CAN总线高层协议,CANopen协议允许不同的CAN设备以标准化的方式进行通讯,使得CAN
设备具有互操作性.随着CANopen协议的日益完善,它已经广泛应用于多个行业.本文将对CANopen协议的对象字
典、通讯对象及网络管理等几个方面进行简要分析。
1.CANopen对象字典
CANopen对象字典OD(Object Dictionary)是CANopen协议最为核心的概念。所谓的对象字典就是一个有序的对象组,每个对
象采用一个16位的索引值来寻址,这个索引值通常被称为索引,其范围在0x1000~0x9FFF之间。为了允许访问数据结构中的
单个元素,同时也定义了一个8位的索引值,这个索引值通常被称为子索引。
每个CANopen设备都有一个对象字典,对象字典包含了描述这个设备和它的网络行为的所有参数,对象字典通常用电子数据
文档EDS(Electronic Data Sheet)来记录这些参数,而不需要把这些参数记录在纸上。对于CANopen网络中的主节点来说,
不需要对CANopen从节点的每个对象字典项都访问。
CANopen对象字典中的项由一系列子协议来描述。子协议为对象字典中的每个对象都描述了它的功能、名字、索引、子索
引、数据类型,以及这个对象是否必需、读写属性等等,这样可保证不同厂商的同类型设备兼容。
CANopen协议的核心描述子协议是DS301,其包括了CANopen协议应用层及通信结构描述,其他的协议子协议都是对DS301
协议描述文本的补充与扩展。在不同的应用行业都会起草一份CANopen设备子协议,子协议编号一般是DS4xx。
CANopen协议包含了许多的子协议,其主要划分为以下三类:
(1)通信子协议(Communication Profile)
通信子协议,描述对象字典的主要形式和对象字典中的通信对象以及参数。这个子协议适用所有的CANopen设备,其索引值
范围从0x1000~0x1FFF。
(2)制造商自定义子协议(Manufacturer-specific Profile)
制造商自定义子协议,对于在设备子协议中未定义的特殊功能,制造商可以在此区域根据需求定义对象字典对象。因此这个区
域对于不同的厂商来说,相同的对象字典项其定义不一定相同,其索引值范围为0x2000~0x5FFF。
(3)设备子协议(Device Profile)
设备子协议,为各种不同类型的设备定义对象字典中的对象。目前已有十几种为不同类型的设备定义的子协议,例如
DS401、DS402、DS406等,其索引值范围为0x6000~0x9FFF。
2.通讯对象
CANopen网络的通讯是以报文的方式传送,CANopen通讯模型定义了四种报文,也即四种通讯对象,分别是管理报文、服务
数据对象SDO(Service Data Object)、过程数据对象PDO(Process Data Object)、预定义报文或者特殊功能对象,下面分别
介绍。
1.管理报文
●层管理,网络管理和ID分配服务:如初始化,配置和网络管理(包括:节点保护)。
●服务和协议符合CAL中的LMT,NMT和DBT服务部分。这些服务都是基于主从通讯模式:在CAN网络中,只能有一个
LMT,NMT或DBT主节点以及一个或多个从节点。
2.服务数据对象SDO(Service Data Object)
●通过使用索引和子索引(在CAN报文的前几个字节),SDO使客户机能够访问设备(服务器)对象字典中的项(对象)。
●SDO通过CAL中多元域的CMS对象来实现,允许传送任何长度的数据(当数据超过4个字节时分拆成几个报文)。
●协议是确认服务类型:为每个消息生成一个应答(一个SDO需要两个ID)。SDO请求和应答报文总是包含8个字节(没有意
义的数据长度在第一个字节中表示,第一个字节携带协议信息)。SDO通讯有较多的协议规定。
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使用,传输类型,禁止时间和定时器周期。
评论5
最新资源