CAN与CANOpen(四)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/maifansnet/article/details/51417833

CAN与CANOpen(一)基本概念 
CAN与CANOpen(二)报文格式 
CAN与CANOpen(三)错误处理
CAN与CANOpen(四)CANOpen对象字典 
CAN与CANOpen(五)PDO和SDO
CAN与CANOpen(六)网络管理和CAN FD

4.CANOpen



21 CANOpen所处的位置

前面讲解的CAN的内容主要处于数据链路层,牵扯到了一点物理层。下面介绍的CANOpen协议是处于应用层。上图标识了CANOpen协议所在网络架构中的位置。

4.1模型


22 CANOpen设备的模型

一个CANOpen设备从结构上可以分为上面3个模块(图22)。通讯模块可以收发总线上的各种通讯对象。对象字典描述了所有的数据类型,通讯对象和应用对象。应用模块提供了控制功能和处理硬件的接口。

对象字典是通讯模块和应用模块之间的接口。

4.2对象字典

4.2.1对象字典的结构


23对象字典的结构

对象字典是CANOpen最重要的特性,它将设备的描述标准化。

对象字典中的每一个对象都由16位的索引和8位的子索引来寻址。对于单个的对象字典项子索引总是0.所以一个数据字典最多有65536项。

静态数据类型包含标准数据类型的定义,比如BOOLEAN, INTEGER, floating, string,等。

复杂数据类型包含那些由标准数据类型构成的预定义的数据结构,他们对所有设备都是通用的。

制造商定义的复杂数据类型是由标准数据类型构成的数据结构,但是这些数据类型只是特定的设备使用。

设备子协议可能会为它们的设备定义一些额外的数据类型其中静态数据类型存放在0060-007F,复杂数据类型存放在0080-009F

通讯子协议区指定了CAN网络的一些参数,它们对所有设备都是通用的。

标准设备子协议区包含了一类设备的所有数据对象。它们可以通过CAN网络读写。

4.2.2数据类型



24基本的数据类型

CANOpen协议的基本数据类型如图24所列。

4.2.2.1整数的表示方式

INTEGER32为例:b=b0b1…b31


4.2.2.2浮点数的表示方式

REAL32为例:b=b0b1…b31





4.2.3对象的表示方式

 

Index (hex)
Object
(Symbolic Name)
Name
Type
Attrib.
M/O

25对象的基本属性

一个对象有上图所示的6种基本属性。

十六进制的index指示了对象在对象字典中的位置。其中不包含子索引。

Object列指示了对象的类型,如下图所示


Name是用来表示对象作用的文本。

Type指定数据类型。比如Boolean, Usigned8。如果对象是一个复杂类型,比如ARRAY。就会用子索引来指定组成复杂类型的每个基本类型。

Attrbi指定了对象的方位类型。如下图


M/O指定对象是必须的还是可选的。

4.2.4标识身份的对象

对象字典中的对象很多,但有几个是用来识别设备身份的,经常用到。


26用来身份识别的几个对象


27 Identity Object的子对象

1008h记录设备的名字,1009h记录设备的硬件版本号,100Ah记录设备的软件版本号。1018h记录了设备的制造商代码,产品号,序列号等。

展开阅读全文

没有更多推荐了,返回首页