硬汉嵌入式论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: eric2013
收起左侧

[BSP视频教程] BSP视频教程第28期:CANopen协议栈专题,CANopen主从机组网实战,CAN词典工具使用方法以及吃透PDO玩法(2023-11-01)

  [复制链接]

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2024-2-7 15:55:09 | 显示全部楼层
只能发送SDO、心跳报文,不能发送PDO是怎么回事?
环境:keil v5.32   stm32f103tbu6
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-2-13 14:57:54 | 显示全部楼层
张帆无敌帅 发表于 2024-2-7 15:55
只能发送SDO、心跳报文,不能发送PDO是怎么回事?
环境:keil v5.32   stm32f103tbu6

PDO要进入正常操作模式才可以使用。
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2024-2-18 08:23:58 | 显示全部楼层
eric2013 发表于 2024-2-13 14:57
PDO要进入正常操作模式才可以使用。

现在发送心跳报文的时候的数据就是05
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-2-18 08:48:55 | 显示全部楼层
张帆无敌帅 发表于 2024-2-18 08:23
现在发送心跳报文的时候的数据就是05

那可能其它地方的实现有点问题,看看是不是必要的宏定义没有开。
回复

使用道具 举报

12

主题

111

回帖

147

积分

初级会员

积分
147
发表于 2024-2-26 11:30:28 | 显示全部楼层
最近公司的车规芯片回来了,CAN这块要做压力测试,以前出的芯片都不带CAN,公司在CAN这块领域也是空白。不知道需不需要移植CANOPEN来做压力测试比较方便,H7-TOOL能不能做压力测试的监测设备。没有参照,好烦啊,也没个标准。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-2-26 15:18:48 | 显示全部楼层
PKB404 发表于 2024-2-26 11:30
最近公司的车规芯片回来了,CAN这块要做压力测试,以前出的芯片都不带CAN,公司在CAN这块领域也是空白。 ...

TOOL可以做压力测试监测

CANopen可以不用移植,先将收发函数的整稳定了。然后是测试CANopen才需要移植一起测。
回复

使用道具 举报

12

主题

111

回帖

147

积分

初级会员

积分
147
发表于 2024-2-26 15:36:10 | 显示全部楼层
eric2013 发表于 2024-2-26 15:18
TOOL可以做压力测试监测

CANopen可以不用移植,先将收发函数的整稳定了。然后是测试CANopen才需要移植 ...

H7-TOOL能支持大概一周或者更长时间的数据监控和记录吗
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-2-26 16:45:17 | 显示全部楼层
PKB404 发表于 2024-2-26 15:36
H7-TOOL能支持大概一周或者更长时间的数据监控和记录吗

可以无限记录,只要你的电脑处理的过来,硬盘够大。
回复

使用道具 举报

12

主题

111

回帖

147

积分

初级会员

积分
147
发表于 2024-2-26 17:01:35 | 显示全部楼层
eric2013 发表于 2024-2-26 16:45
可以无限记录,只要你的电脑处理的过来,硬盘够大。

好的大佬,我去申请买一套,之前买的图莫斯的上位机拉胯,有时候会卡死
回复

使用道具 举报

0

主题

9

回帖

9

积分

新手上路

积分
9
发表于 2024-3-12 10:37:29 | 显示全部楼层
全是干货!!!题外话,硬汉哥,实现CANopen协议的开源组件也不少,CANfestival也很出名,想问一下为什么最后选了CANopenNode,这两个各有啥优缺点
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-3-13 08:26:00 | 显示全部楼层
鄢一安 发表于 2024-3-12 10:37
全是干货!!!题外话,硬汉哥,实现CANopen协议的开源组件也不少,CANfestival也很出名,想问一下为什么最 ...

CANfestival停更好多年了。

CANopenNode还在持续更新。
回复

使用道具 举报

0

主题

9

回帖

9

积分

新手上路

积分
9
发表于 2024-3-13 10:36:53 | 显示全部楼层
eric2013 发表于 2024-3-13 08:26
CANfestival停更好多年了。

CANopenNode还在持续更新。

好的,感谢硬汉哥
回复

使用道具 举报

44

主题

230

回帖

362

积分

高级会员

积分
362
发表于 2024-3-14 10:45:35 | 显示全部楼层
本帖最后由 snakeemail 于 2024-3-14 11:52 编辑

请问有没有更简单的can协议,我的设备只需要有限的功能,实现起来和RS485一样。
但是这个canopen耗费太大资源了。
https://www.sohu.com/a/478408431_121124496
这个是网上找到的,canTiny软件协议,不知道还有没有,其它简单的。
我这边是F103,一个邮箱8Byte,3个邮箱就是24Byte。我的协议,完全可以限制在24Byte里面。

我的想法:
一次固定传24BYTE, 接收机接到24Byte,才开始处理。
把硬件的报文ID, 等同于 目的地址。
采用主从结构,只有主机发, 从机才能答复。
这样实现起来,最简单。


完了,还是要在每个子帧里面加上编号,因为邮箱发送,是硬件控制先后顺序。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-3-16 08:57:01 | 显示全部楼层
snakeemail 发表于 2024-3-14 10:45
请问有没有更简单的can协议,我的设备只需要有限的功能,实现起来和RS485一样。
但是这个canopen耗费太大 ...

可以的,就做成485的用户,简单易维护。出问题了也好找。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2024-3-27 13:20:11 | 显示全部楼层
工程里的CAN301 303 304 305 305 还有storage等等 都需要移植吗 这些函数里都调用了吗 好像硬汉哥没讲这里面的呢?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-3-28 08:37:41 | 显示全部楼层
橘子洲头 发表于 2024-3-27 13:20
工程里的CAN301 303 304 305 305 还有storage等等 都需要移植吗 这些函数里都调用了吗 好像硬汉哥没讲这里 ...

用不到,可以不移植,添加上也不影响。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2024-3-28 09:17:18 | 显示全部楼层
eric2013 发表于 2024-3-28 08:37
用不到,可以不移植,添加上也不影响。

我用F1移植的 HAL库的爆了很多错,CANopen/STM32文件夹下的app,driver,storageBlank OD.c 这些是不是都用不到 可以不添加...
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2024-3-28 09:39:33 | 显示全部楼层
eric2013 发表于 2024-3-28 08:37
用不到,可以不移植,添加上也不影响。

硬汉哥有没有F1移植的教程嘞...看了看F1好像 要改的很多...试了试失败了
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2024-3-28 13:12:17 | 显示全部楼层
BZU2020 发表于 2023-12-22 19:25
谢谢  解决一部分了 又遇到问题了  我用F103跑的  当主机添加了8个RPDO后可以正常工作,但是继续添加RPDO ...

求一份F1的CANopenNode代码
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-3-29 09:06:22 | 显示全部楼层
橘子洲头 发表于 2024-3-28 09:39
硬汉哥有没有F1移植的教程嘞...看了看F1好像 要改的很多...试了试失败了

F1系列的没做,改的地方不多,就把那个移植文件修改下即可。
回复

使用道具 举报

0

主题

34

回帖

34

积分

新手上路

积分
34
发表于 2024-4-9 09:13:57 | 显示全部楼层
非常棒的资料,准备好好学习研究一下
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2024-5-7 17:54:05 | 显示全部楼层
我裸机移植H7到keil,初始化串口就打印 Error: Can't allocate memory 怎么解决,然后就一直进入HardFault_Handler
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-5-8 08:26:11 | 显示全部楼层
disnox 发表于 2024-5-7 17:54
我裸机移植H7到keil,初始化串口就打印 Error: Can't allocate memory 怎么解决,然后就一直进入HardFault_ ...

xxx.S文件的栈开小了。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2024-8-4 17:56:26 | 显示全部楼层
硬汉哥,有个疑问想不明白,为什么CANopenNode_STM32的app文件里函数resetCommunication加入了一段LSS的内容,这不是305协议的么?必须要有么?另外有没有交流群呀?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-8-5 09:08:29 | 显示全部楼层
Andrea_Lee 发表于 2024-8-4 17:56
硬汉哥,有个疑问想不明白,为什么CANopenNode_STM32的app文件里函数resetCommunication加入了一段LSS的内 ...

不是必须要有的,我就没用。

我们只有开发板售后群。
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2024-9-25 17:35:56 | 显示全部楼层
我把CANOPENNODE移植到F1尝试了下,设置了心跳检测,也能正常运行,就是当我从站断开时,主站检测到掉线会报告错误,停止工作,当从站重新上线时主站不会自动恢复工作,我想让从所有从站上线时主站自动恢复工作状态
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-9-26 08:05:32 | 显示全部楼层
Kilomi 发表于 2024-9-25 17:35
我把CANOPENNODE移植到F1尝试了下,设置了心跳检测,也能正常运行,就是当我从站断开时,主站检测到掉线会报告 ...

复位CAN外设,重新运行。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2024-11-26 15:40:00 | 显示全部楼层
环境: pc通过can工具向stm32从机发送命令
配置文件:我使用了你们提供的slave.xdd文件导出的代码。
现象:发送 02 00 时,canopen从机依旧发送心跳包05 .  想关闭心跳包,发送 2B 17 10 00 00 00 00 00  命令,也不生效。
请问,该怎么配置,才能实现关闭心跳包和成功相应NMT命令啊?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-11-27 08:14:18 | 显示全部楼层
alen_wp 发表于 2024-11-26 15:40
环境: pc通过can工具向stm32从机发送命令
配置文件:我使用了你们提供的slave.xdd文件导出的代码。
现象 ...

是不是从机ID不对,我们的这个是0x18

123344.png
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2024-11-27 09:55:47 | 显示全部楼层
本帖最后由 alen_wp 于 2024-11-27 12:49 编辑
eric2013 发表于 2024-11-27 08:14
是不是从机ID不对,我们的这个是0x18

感谢回复。我是小白,刚接触这canopen这部分。
我代码里设置的从机ID是05
canOpenNodeSTM32.desiredNodeID = 5;               /* Node-ID */
我用的调试器是usb转can模块(上位机是与其配套的),不是贵司的H7-TOOLs。
调试canopen从机,上位机和can调试器必须是支持canopen的吗?(是必须要支持canopen的usb转can模块吗?)

目前的连接方式
(pc  ==》  usb转can模块  ==》  canopen从机)

通讯内容

通讯内容

通讯内容如下
(pc发送 2B 17 10 00 00 00 00 00 之后,从机依旧发送心跳包 05)







测试环境

测试环境
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-11-28 08:30:18 | 显示全部楼层
alen_wp 发表于 2024-11-27 09:55
感谢回复。我是小白,刚接触这canopen这部分。
我代码里设置的从机ID是05
canOpenNodeSTM32.desiredNod ...

这个有必要调试跟踪下了,正常情况下接收到是有反应的。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2024-11-28 13:43:51 | 显示全部楼层
eric2013 发表于 2024-11-28 08:30
这个有必要调试跟踪下了,正常情况下接收到是有反应的。

感谢解答,我再研究研究
回复

使用道具 举报

1

主题

17

回帖

20

积分

新手上路

积分
20
发表于 2024-12-3 11:35:17 | 显示全部楼层
硬汉哥,canopen支不支持传输文件呢,如果支持传输文件的话,使用sdo的块传输吗还是?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-12-4 09:07:44 | 显示全部楼层
chenxingccc 发表于 2024-12-3 11:35
硬汉哥,canopen支不支持传输文件呢,如果支持传输文件的话,使用sdo的块传输吗还是?

普通SDO协议可以下载文件。
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2025-4-16 14:26:24 | 显示全部楼层
楼主,你这个CAN字典工具,好像不能添加DS402的协议,还有其他的对象字典生成工具吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2025-4-17 09:20:38 | 显示全部楼层
zztq 发表于 2025-4-16 14:26
楼主,你这个CAN字典工具,好像不能添加DS402的协议,还有其他的对象字典生成工具吗?

其它的没研究过了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-26 02:18 , Processed in 0.808919 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表