2.1. CANOPEN_MASTER

2.1.1. 概述

The canopen_master_demo 例程提供如下功能:

  • HeartBeat 心跳测试

  • NMT 测试

  • SDO 测试

  • PDO 测试

2.1.2. 硬件设置

一块开发板下载 master 例程, 一块开发板下载 slave 例程, 连接两块开发板

2.1.3. 运行步骤

程序下载成功后, 会进入循环等待从栈信息, 如果从栈是 initial/ pre-optional/ optional 状态, 读取 nodeid, 否则继续循环等待

根据 nodeid 对从栈通过 PDO 读取 信息

根据 nodeid 对从栈通过 SDO 读取/写入 信息

注意: 这个 sample 是为了简单呈现 canopen 通信流程, canopen 支持一主多从, 但是本 sample 只支持一主一从

2.1.4. 运行现象

当该例程成功运行后,会在串口终端打印如下:

----------------------------------------------------------------------
$$\   $$\ $$$$$$$\  $$\      $$\ $$\
$$ |  $$ |$$  __$$\ $$$\    $$$ |\__|
$$ |  $$ |$$ |  $$ |$$$$\  $$$$ |$$\  $$$$$$$\  $$$$$$\   $$$$$$\
$$$$$$$$ |$$$$$$$  |$$\$$\$$ $$ |$$ |$$  _____|$$  __$$\ $$  __$$\
$$  __$$ |$$  ____/ $$ \$$$  $$ |$$ |$$ /      $$ |  \__|$$ /  $$ |
$$ |  $$ |$$ |      $$ |\$  /$$ |$$ |$$ |      $$ |      $$ |  $$ |
$$ |  $$ |$$ |      $$ | \_/ $$ |$$ |\$$$$$$$\ $$ |      \$$$$$$  |
\__|  \__|\__|      \__|     \__|\__| \_______|\__|       \______/
----------------------------------------------------------------------
enter master mode and find slave device ~~
rxSize = 11, txSize = 8
excessive number of concurrent CAN RX filters enabled (needs 11, 16 available)

2.1.4.1. 测试

当前例程为 canopen 的 master role, 开发板运行当前例程, 连接运行 slave role 的开发板。

测试成功时: Master 端打印如下所示:

enter master mode and find slave device ~~
rxSize = 11, txSize = 8
excessive number of concurrent CAN RX filters enabled (needs 11, 16 available)
find device, id:70a, status preoptional
slave enter to optional mode
PDO test successfully!
slave HBtime: 1000 ms
slave HBtime: 2000 ms
SDO test successfully!
canopen test done