在通讯领域中,我们所使用的CANopen总线协议具备很多特点,例如对象字典,和它的数据传输机制等等。这些方面它有着独特的地方,我们就来详细了解一下吧。CANopen总线协议包括通讯子协议(Communication Profile)和各种设备子协议(Device Profile)。通讯子协议描述对象字典的主要形式和对象字典中的通讯子协议区域中的对象,通讯参数,同时描述CANopen通讯对象,这个子协议适用于所有的CANopen设备,如CIA-DS301。设备子协议为各种不同类型设备定义对象字典中的对象,并为对象字典中的每个对象描述了它的功能、名字、索引和子索引、数据类型,以及这个对象是必需的还是可选的,这个对象是只读、只写或者可读写等等。目前已有多种不同的设备子协议,如:DS401、 DS402等。
CANopen标准的核心部分是通过对象字典(Object Dictionary)对设备功能进行描述。通过对象字典的入口可以对设备的“应用对象”进行基本网络访问,设备的“应用对象”可以是输入输出信号、设备参数、设备功能和网络变量等。CANopen设备的功能及特性以电子数据表单(EDS)的形式描述,实际的设备设置通过设备配置文件(DCF)进行描述。
大多数重要的设备类型,例如数字和模拟的输入输出模块,驱动设备,操作设备,控制器,可编程控制器或编码器,都在称为"设备子集"的协议中进行描述。设备子集定义了不同类型的标准设备及其相应的功能。依靠CANopen总线协议集的支持,可以对不同厂商的设备通过总线进行配置。
CANopen总线协议标准最核心的部分是通过对象字典(Object Dictionary)对设备功能进行描述。对象字典分为两部分,第一部分包括基本的设备信息,例如设备ID,制造商,通信参数等等。第二部分描述了特殊的设备功能。
一个16位的索引和一个8位的子索引唯一确定了对象字典的入口。通过对象字典的入口可以对设备的"应用对象"进行基本网络访问,设备的"应用对象"可以是输入输出信号,设备参数,设备功能和网络变量等等。
CANopen设备的功能及特性以电子数据单(EDS)的形式描述,EDS采用ASCII格式,可以将EDS理解成某种形式的表格。实际的设备设置通过所谓的设备配置文件(DCF)进行描述。EDS和DCF都可以从Internet上下载,并可以存储在设备之中。
象其他知名的现场总线系统一样,CANopen总线协议也分为两种基本的数据传输机制:通过进程数据对象(PDO)对小型的数据进行高速数据交换以及通过服务数据对象(SDO)对对象字典进行访问。后者主要用于在设备配置过程中传输参数以及传输大数据块。进程数据对象通常采用事件触发、循环或请求方式发送,作为广播对象,它的上层并没有附加协议。
一个PDO最大可传输8字节数据。在连接一个同步报文的时候,整个网络都可以采用同步方式对PDO进行传送和接收(Synchro-nous PDOs)。通过存储在对象字典中的PDO映射(PDO Mapping)结构,可以对应用对象到PDO对象的分配(Transmission Object)进行调整,这可以保证设备可以对不同的应用需求进行调整。
通过传输SDO可以实现可靠的数据传输,由两个CAN对象在两个网络节点间通过点对点的通信来实现这一过程。通过传输对象字典的索引以及子索引,可以定位相应的对象字典入口。通过SDO传送报文可以不受长度的限制,但传送SDO报文需要额外的协议开销。
标准化的事件触发的高优先级突发报文用于报告设备故障,可以通过中心时钟报文来提供整个系统的系统时钟。准备和协调建立一个分布式的自动化系统所需的功能都适于CAL网络管理(NMT)定义的机制,同样可应用于周期性的节点维护(node guarding)。
可以选择通过"Heartbeat Message"来显示CANopen总线协议的设备通信能力。PDO和SDO的CAN报文标识符可以直接通过对象字典的数据结构的入口标志符进行分配,或者,在简单的系统中,也可用预定义的标志符。