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