CANopen开源协议栈canfestival移植到树莓派pico开发板-----测试


前言

提示:这里可以添加本文要记录的大概内容:
上一篇文章已经介绍了canfestival代码移植部分,本篇主要介绍CANopen协议簇中NMT、PDO子协议功能测试。
测试硬件


提示:以下是本篇文章正文内容,下面案例可供参考

一、NMT功能测试

树莓派pico作为子站,使用CAN报文分析作为主站,模拟发送主站NMT网络管理报文。

1. 节点上线报文

复位树莓派pico,在CAN报文分析仪上位机上可以看见接收到CAN ID为0x701的节点上线报文:节点上线报文

2. NMT节点切换报文

CAN报文分析仪模拟CANopen主站,发送节点状态切换报文,树莓派pico子站能够根据切换报文,进入对应的CANopen状态。
CANopen 状态
树莓派pico复位后进入 pre-operational 状态:
树莓派pico 复位后状态
NMT网络管理报文的CAN ID 均为0x000,第一个字节是切换命令,第二个子接是从站的Node -ID。

1. 启动报文

发送启动报文后,从节点会进入操作状态。
报文为:

CAN ID切换命令从站Node ID
0x0000x010x01

CAN 报文分析仪发送报文如下:
CAN分析仪启动报文发送
树莓派pico 从站状态切换:
从节点进入操作状态

2. 停止报文

发送停止报文后,从节点会进入停止状态。
报文为:

CAN ID切换命令从站Node ID
0x0000x020x01

CAN 报文分析仪发送报文如下:
发送报文
树莓派pico状态切换:

树莓派pico状态切换

3. 进入预操作状态

发送进入预操作状态报文后,从节点会进入预操作状态。
报文为:

CAN ID切换命令从站Node ID
0x0000x800x01

CAN 分析仪发送报文如下:

发送报文
树莓派pico状态切换:
树莓派pico状态切换

4. 复位节点通讯

发送复位节点通信指令后,会让从节点CANopen初始化。
报文:

CAN ID切换命令从站Node ID
0x0000x820x01

CAN 分析仪发送报文如下:
发送报文
树莓派pico状态切换:
树莓派pico

3. 心跳报文

重新配置对象字典文件,打开心跳报文功能:
OD 0x1017
配置对象字典0x1017,心跳时间1000ms。
从站发送心跳报文:

CAN ID节点状态
0x701节点状态

节点状态为预操作:

节点心跳报文
节点状态运行:
节点运行

二、PDO功能测试

树莓派pcio 对象字典中配置一个TPDO和RPDO,其中TPDO传输模式为循环同步模式,CAN分析仪模拟主站功能,周期50ms发送同步帧。

1 TPDO报文

CAN分析仪发送报文如下:
同步帧
树莓派pico发送tpdo报文:
tpdo

1 RPDO报文

树莓派pico对象字典中rpdo 的cob id 为0x201,CAN分析仪发送报文如下:

发送报文

树莓派pico 接收到PDO,打印信息如下:
rpdo

总结

树莓派pico NMT 和PDO测试正常,已经基本具备CANopen子站功能。

canfesvial移植工作基本完成,后续针对具体项目会做一些应用开发。

感谢各位读者,共勉之。

  • 18
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值