IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> CANopen | 对象字典OD 02 - 修改CANopen节点的心跳报文发送间隔 -> 正文阅读

[嵌入式]CANopen | 对象字典OD 02 - 修改CANopen节点的心跳报文发送间隔

一、前言


通过修改CANopen节点的对象字典,改变它发送心跳报文的频率。

测试硬件如下:
在这里插入图片描述
STM32工程文件:
链接:https://pan.baidu.com/s/1MTahQyMBGKGTEWivzBiwUg
提取码:1yqx

二、实验的目的


当前的CANopen节点0x05是每1秒时间往CAN总线发送一次心跳报文。
在这里插入图片描述
板子上电后,通过CAN盒子可以监控如下CAN报文:
1、从时间戳上看到,报文是每1秒发送1次。
2、从CANID = 0x705得到,这个是Node_ID = 0x05的CANopen节点发出来的心跳报文。
3、报文的数据段只有1个字节(7F),表示该CANopen节点处于预操作状态。(在该状态下,PDO功能是关闭的)
在这里插入图片描述
通过下面的步骤,CANopen节点0x05将每2秒时间往CAN总线发送一次心跳报文。
在这里插入图片描述

三、对象字典OD


3.1、Slave.od

使用对象字典软件Objdictedit打开工程上的对象字典文件Slave1.od(在我这个演示工程上的命名)。
在这里插入图片描述
接着,找到对象字典0x1000 ~ 0x1029 Communication Parameters里,地址0x1017的Producer Heartbeat Time。此时,Producer Heartbeat Time的值等于0x03E8(十进制:1000)。
在这里插入图片描述
0x1017 Producer Heartbeat Time是什么意思呢?它的单位是什么?查看《CANopen_meno.pdf》的1.13 General communication objects,找到0x1017 Producer Heartbeat。原来0x1017是生产者心跳时间间隔(单位ms)。
在这里插入图片描述
最后,将0x1017 Producer Heartbeat Time从1000ms改为2000ms,即十六进制的0x7D0。
在这里插入图片描述
修改它,改为0x7D0。
在这里插入图片描述
最后记得生成词典,即Slave1.c代码文件。
在这里插入图片描述
替换原来的Slave1.c文件。
在这里插入图片描述

3.2、Slave1.c

刚才在Slave1.od文件上修改了0x1017 Producer Heartbeat Time,然后生成了Slave1.c文件。看看工程上的Slave1.c里的0x1017是不是被修改了。
在这里插入图片描述
接着,编译新的代码,烧写到STM32单片机里。
在这里插入图片描述

四、CAN盒子(收发器)


从CAN盒子收到的CAN报文看来,CANopen节点变成每2S时间发送1次心跳报文,实验成功。
在这里插入图片描述

五、细节补充


5.1、Slave1.od文件的作用

Canfestival提供Objdictedit软件修改.od文件(对象字典文件),Objdictedit软件可以将.od文件转换为.c代码文件(单片机的程序),还可以转换为.eds文件(CANopen的设备描述文件)。
.eds文件有什么用?例如,我最近开发完一个CANopen节点,准备将它加入机器人的CAN网络上。进行电气连线之前,需要先生成.eds文件给PLC工程师,PLC工程师将我提供的.eds文件导入到PLC控制器里,让PLC(机器人的主控,同时也是CANopen主站)可以在CAN网络上识别出我设计的CANopen节点。
在这里插入图片描述

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-28 09:30:35  更:2021-08-28 09:31:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 18:59:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计