Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
CANOpen
睿擎工业开发平台
睿擎工业开发平台--CanOpen示例测试
发布于 2025-06-22 20:02:17 浏览:58
订阅该版
[tocm] ### 创建CanOpen工程 依次选择 文件 -> 新建 -> 点击项目。  选择 RT-Thread RuiChing App 项目 -> 点击下一步。  类型选择示例工程,示例选择 canopen,填写项目名称。  ### 编译烧录运行后状态 通过MSH中的canopen_start命令启动canopen。 MSH界面提示canfestival进入init状态; MSH界面提示canfestival进入preOp状态; CAN抓包工具每隔2秒收到1帧ID为0x705,数据为0x7F的帧。   CAN抓包工具上周期性收到的这帧数据为从站的心跳包,其中0x7F表示从站已进入preOp状态。发送周期为2秒是因为心跳帧周期配置索引0x1017的值为2000(主站可以通过SDO修改该参数)。CanOpen协议栈运行的状态跳转如下,preOp是其中一个状态,即从站初始化完成后的状态。   从站状态对应的数值如下  ### 运行状态切换测试 主站可以同SDO控制从站的运行状态。状态切换的帧格式如下。  控制从站从prOp状态到Op状态:发送帧ID为0数据为0x01 0x00的数据使从站进入OP状态。进入OP状态后,心跳帧的数据变为0x05。MSH界面提示进入OP状态。   控制从站从OP状态到STOP状态:发送帧ID为0数据为0x02 0x00的数据使从站进入STOP状态。进入STOP状态后,心跳帧停止发送。MSH界面提示进入STOP状态。  控制从站从STOP状态到PREOP状态:发送帧ID为0数据为0x80 0x00的数据使从站进入PREOP状态。进入PRE状态后,心跳帧停止发送。MSH界面提示进入PREOP状态。  再次控制从站进入OP状态 ### SDO测试 SDO的帧格式如下:  读取心跳帧的发送周期,索引为0x1017,子索引为0。发送帧ID为0x605,数据为4B 17 10 00 00 00 00 00的数据。从站回应帧ID为0x585,数据为4B 17 10 00 D0 07 00 00的数据,即心跳帧的发送周期为0x7D0。为示例代码中的值。  读取示例代码中Test_Value的值。该值默认为0,因此先通MSH中的命令修改该值为0x12。  再通过SDO读取Test_Value的值,该变量对应的索引为0x2000,子索引为0。发送帧ID为0x605,数据为4F 00 20 00 00 00 00 00的数据。从站回应帧ID为0x585,数据为4F 00 20 00 12 00 00 00的数据,即Test_Value的值为0x12,为通过MSH中的命令设置的值。  通过SDO修改Test_Value的值为0x34。发送帧ID为0x605,数据为2F 00 20 00 34 00 00 00的数据。从站回应帧ID为0x585,数据为60 00 20 00 00 00 00 00的数据,即Test_Value的值修改为0x34。  再通过SDO读取Test_Value的值。发送帧ID为0x605,数据为4F 00 20 00 00 00 00 00的数据。从站回应帧ID为0x585,数据为4F 00 20 00 34 00 00 00的数据,即Test_Value的值为0x34,为通过SDO设置的值。  ### PDO测试 因示例工程中的对象字典中没有0x13xx和0x14xx的索引,所以该示例暂不支持PDO的收发。   ### 总结 个人观点: 这块睿擎工业开发板已实现了CANOPEN的基本功能,CAN硬件发送接收都正常,CANOPEN状态跳转正常,SDO功能正常; 对于这块睿擎工业开发板,在这上面应该实现的是CANOPEN的主站功能; 建议完善对象字典的索引,即可以实现CANOPEN的PDO功能; 该睿擎工业开发板的底板上的CAN的硬件为非隔离式,但是在工业中的设备中,大多数为隔离式的CAN,增加设备的可靠性。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
Hlafklio
一瓶不满半瓶晃
文章
5
回答
0
被采纳
0
关注TA
发私信
相关文章
1
CANOpen协议的简单介绍,连载之-一
2
我也来传一个CANOpen移植,RTT+STM32F107+CanOpenNode
3
菜鸟也出把力 RT-Thread+CanOpen(开源的CanFestival)
4
关于STM32裸机移植canopen出现的问题
5
canfestival 例程是一个轴,要多加轴如何添加
6
移植canopen CanFestvial 在上电初始化时,开402例程,can接收线程挂掉了,什么问题引起的呢
7
canopen如何通过对象字典控制外设
8
谁有rtthread 移植好的canopen工程源码发一下
9
移植CANfestival,发现can无法接收数据
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
6
五分钟玩转RT-Thread新社区
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
Bootloader
AT
Hardfault
CAN总线
ART-Pi
FinSH
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
FAL
RTC
rt-smart
I2C_IIC
UART
cubemx
BSP
ESP8266
PWM
ota在线升级
WIZnet_W5500
packages_软件包
flash
freemodbus
GD32
潘多拉开发板_Pandora
ADC
编译报错
keil_MDK
定时器
flashDB
ulog
socket
msh
rt_mq_消息队列_msg_queue
中断
Debug
SFUD
C++_cpp
at_device
本月问答贡献
踩姑娘的小蘑菇
6
个答案
3
次被采纳
加缪
11
个答案
1
次被采纳
RTT_逍遥
5
个答案
1
次被采纳
用户名由3_15位
5
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
chejia12
7
篇文章
3
次点赞
纯白酱
2
篇文章
4
次点赞
Hlafklio
2
篇文章
1
次点赞
530china
1
篇文章
7
次点赞
rv666
1
篇文章
7
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部