微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 现场总线CANopen学习总结笔记三---基本原理和通信对象

现场总线CANopen学习总结笔记三---基本原理和通信对象

时间:12-14 来源:互联网 点击:
第四章,应用层,为重点章。

主要包含知识点基本原理、通信对象、对象字典、网络管理系统、CAN标识符分配、节点ID分配。

这篇笔记主要是先记录基本原理和通信对象。

4.1基本原理

为了便于统一观察CANopen设备,我们引入一种基本的设备模型,其包含:通信单元、应用过程、对象字典。

通信单元由CAN收发器、CAN控制器和CANopen协议栈组成,协议栈中包括通信对象(PDO和SDO)和状态机。

对象字典是应用单元与通信单元之间的接口,实际上是设备的所有参数列表。

CANopen协议中定义了3种不同类型的通信关系:分别为主机-从机模型、客户端-服务端模型以及生产者-消费者模型。

主机-从机模型仅用于网络管理(NMT),每组主机-从机模型都需要一个CAN标识符。

客户端-服务器描述的是两个设备之间的通信关系。需要两个CAN标识符,只用于SDO通信。

生产者-消费者模型描述一个生产者和一个或多个消费者的一对多通信关系,只需要一个CAN标识符。

4.2通信对象

CANopen应用层详细描述了各种不同类型的通信对象(COB),分4种类型:

过程数据对象(PDO)

服务数据对象(SDO)

预定义对象

网络管理对象

过程数据对象(PDO):

1.通信参数

通信参数用来描述PDO特性。通信参数按照定义好的地址保存在设备对象,用户可以通过服务数据对象对通信参数进行访问。

通信参数记录有5个可用的子条目:COB标识符、传输类型、禁止时间、事件计数器和同步初始值。前两项为必选。

2.PDO的CAN标识符

COB标识符(COB-ID)位于通信参数的子索引01h上,COB标识符是一个32位值,0~10位是CAN标准帧标识符。只有在预操作状态下才能对PDO的COB标识符进行访问。

3.PDO链路

如果使用生产者-消费者模型在不可编程的NMT从机之间直接进行数据交换,用户还必须为这些从机配置适当的CAN标识符,使生产者的CAN标识符和消费者的CAN标识符一致,这种方法叫做PDO链路。

4.PDO的通信类型

PDO的通信类型有事件驱动、远程请求或轮询、同步传输。

事件驱动是当输入值发生改变的时候,数据立即被发送出去。

PDO通信参数索引02h为PDO传输类型,其定义了触发TPDO传输或处理收到的RPDO的方法。

传输类型有01~240241~251,252,253,254、255。书中的表4.2PDO传输类型“×”表示选中的类型,而并非是不支持的意思。

5.禁止时间和事件计时器

禁止时间(子索引03h)的功能相当于PDO发送过滤器,在PDO输入数据第一次变化时,无等待地直接发送该PDO数据,之后PDO输入数据再发生变化时就不会立即触发PDO发送。禁止时间可以避免PDO占用全部总线带宽,从而妨碍发送最低优先级的PDO

子索引(05h)为异步PDO传输设置一个事件计时器。

子索引06h(同步初始值)定义了同步计数器的初始值,在传输同步信息时,同步计数器不断递增以进行同步。

6.PDO通信的优化

在优化中具有决定性意义的是保留足够的总线带宽可供其他功能使用。

需要注意PDO通信的优缺点,总线负载,“浪涌”的概念,其中总线负载是指多个循环范围内的CAN总线占有率的平均值。

另外,还有一个相当重要的PDO通信参数---PDO映射参数。PDO映射参数包含指向PDO需要发送的过程数据的指针(利用索引和子索引表示)。那么说明索引与子索引的组合就是一个指针,应该可以这样理解。

PDO映射参数的子索引00h表示的是映射对象的数量。

所有映射过程参数的最大长度都不能超过8字节,分为静态PDO映射、可变PDO映射、动态PDO映射。其中静态PDO无法修改,可变PDO可以修改,不过要遵守修改方法。

而动态PDO映射是指设备处于操作状态时,对其进行PDO配置。

7.复用PDO

MPDO融合了PDO和SDO的主要特性,其指定了地址(索引和子索引)的过程数据将通过一个独有的CAN消息以高速广播的方式传播。

(11.28)

其中有两个寻址方式,一个是源模式寻址,一个是目标模式寻址。主要应用领域一是通过传输过程数据地址实现传输任意数量的数据,无需设置PDO。二是群发消息。

优点:MPDO映射记录子索引值为255,而普通PDO在0~64之间。

缺点:需要更多的带宽。

总结一个:PDO是用来传输实时数据。

4.2.2服务数据对象SDO

CANopen设备为用户提供了一种访问内部设备数据的标准途径,设备由一种固定的结构(对象字典)管理。对象字典的条目可以通过服务数据对象(SDO)来访问,由此需要成对的SDO服务器和客户端。SDO之间的数据交换通常都是由SDO客户端发起的,这好比是对象字典是在一间房子里面的管家,SDO服务器是门禁系统,SDO客户端是邮递员,当有邮递员来的时候,会发起门铃以告诉门禁要来送信(数据)。

SDO之间交换至少需要两个CAN报文

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top