米尔电子
直播中

jf_15811252

3年用户 249经验值
擅长:嵌入式技术
私信 关注
[技术]

【米尔-瑞萨RZ/G2UL开发板】5.CAN通讯进阶CANopen

1 CANopen协议

从 OSI 的 7 层网络模型的角度来看同,CAN(Controller Area Network)现场总线仅仅 定义了第 1 层(物理层,见
ISO11898-2 标准)、第 2 层(数据链路层,见 ISO11898-1 标准); 而在实际设计中,这两层完全由硬件实现,设计人员无需再为此开发相关软件(Software) 或固件(Firmware),只要了解如何调用相关的接口和寄存器,即可完成对 CAN 的控制。
image.png

基本每个行业的 CAN 应用,都需要一个高层协议来定义 CAN 报文中的 11/29 位标识符、8 字节数据的使用。但在 CAN 总线的工业自动化应用中,由于设备的互通互联 的需求越来越多,所以需要一个开放的、标准化的高层协议:这个协议支持各种 CAN 厂商 设备的互用性、互换性,能够实现在 CAN 网络中提供标准的、统一的系统通讯模式,提供 设备功能描述方式,执行网络管理功能。

1.1 对象字典

CANopen 对象字典(OD: Object Dictionary)是 CANopen 协议最为核心的概念。所谓的 对象字典就是一个有序的对象组,描述了对应 CANopen 节点的所有参数,包括通讯数据的
存放位置也列入其索引,这个表变成可以传递形式就叫做 EDS 文件(电子数据文档 Electronic Data Sheet)。

每个对象采用一个 16 位的索引值来寻址,这个索引值通常被称为索引,其范围在 0x0000 到 0xFFFF 之间。为了避免数据大量时无索引可分配,所以在某些索引下也定义了一个 8 位 的索引值,这个索引值通常被称为子索引,其范围是 0x00 到 0xFF 之间。
image.png

1.2 NMT网络管理对象

它负责CAN 网络上的初始化、配置和故障处理。节点控制:
image.png

节点上线报文:任何一个 CANopen 从站上线后,为了提示主站它已经加入网络(便于热插拔),或者
避免与其他从站 Node-ID 冲突。这个从站必须发出节点上线报文(boot-up),如图 6.3 所示, 节点上线报文的 ID 为 700h+Node-ID,数据为 1 个字节 0。生产者为 CANopen 从站。
image.png

1.3 PDO

PDO 分为 TPDO(发送 PDO)和(接收 RPDO),发送和接收是以
CANopen 节点自身 为参考(如果 CAN 主站或者其他从站就相反)。TPDO
和 RPDO 分别有 4 个数据对象,每
种数据对象就是 1 条 CAN 报文封装。

PDO 通信参数,定义了该设备所使用的 COB-ID、传输类型、定时周期等。RPDO 通讯 参数位于对象字典索引的 1400h to 15FFh,TPDO 通讯参数位于对象字典索引的
1800h to 19FFh。每条索引代表一个 PDO 的通信参数集,其中的子索引分别指向具体的各种参数。

image.png

1.4 SDO

SDO 主要用于 CANopen 主站对从节点的参数配置。服务确认是 SDO 的最大的特点, 为每个消息都生成一个应答,确保数据传输的准确性。

image.png

1.5 紧急对象

紧急事件对象(Emergency),是当设备内部发生错误,触发该对象,发送设备内部错误
代码,提示 NMT 主站。紧急报文属于诊断性报文,一般不会影响 CANopen 通讯,其 CAN-ID 存储在 1014h的索引中,一般会定义为 080h +node-ID,数据包含 8 个字节。
image.png

1.6 时间戳

时间标记对象(Time Stamp),NMT 主机发送自身的时钟,为网络各个节点提供公共 的时间参考,即网络对时。时间戳协议采用广播方式,无需节点应答,CAN-ID

为 100h,数据长度为 6,数据为当 前时刻与 1984 年 1 月 1 日 0 时的时间差

image.png

2 硬件设计

硬件原理图:
image.png

使用开发板与can分析仪连接,进行数据帧分析:

image.png

3 移植验证

下载源码:
image.png

Canoepn源码:

image.png

编译源码,生成可执行文件,并拖入开发板中,添加可执行权限,运行:

image.png

由于当前只接了can分析仪,没有其他的can设备,因此会出现NMT错误。查看can分析仪数据:
image.png

更多回帖

发帖
×
20
完善资料,
赚取积分