灵动微电子 · 2023年08月11日

CAN总线开发一本全(9) - CANopen调试用例(2)

一个CANopen的应用样例

Stop状态

从PCAN-View软件中发送如下命令,将NODE-ID为0x0A的节点设置为Stop状态:

image.png

在PCAN-View软件界面中菜单栏中选择Transmit->New Message...,将会弹出发送新消息的对话框。如图x所示。当然,也可以直接单击工具栏中的New Message按钮,或者使用ins快捷键触发对话框。

image.png
figure-pcan-view-new-msg
图x 在PCAN-View中发送新消息

在弹出的发送新消息对话框中填写Stop帧内容。如图x所示。

image.png
figure-pcan-view-new-msg-2
图x 在发送新消息对话框中填写帧内容

确认新建消息后,可以在PCAN-View窗口界面下半边Transmit看到新建的消息帧,但此时尚未发送。如图x所示。

image.png
figure-pcan-view-new-msg-3
图x 新建发送消息帧

此时,需要人工触发发送过程。可以选中即将发送的消息帧,再单击菜单栏Transmit->Send。如图x所示。或者也可以通过快捷键Space空格,或者直接双击即将发送消息帧的CAN-ID,也可以触发发送过程。

image.png
figure-pcan-view-new-msg-4
图x 触发发送消息帧

当发送帧完成之后,在PCAN-View的界面中可以看到,CAN-ID为0x70A的心跳消息的值,已经从05变成了04。说明对应的CANopen节点设备已经收到停止命令并生效了。如图x所示。

image.png
figure-pcan-view-new-msg-5
图x CANopen节点识别停止命令并更新心跳消息

在PCAN-View的Trace标签页中,也可检测到CAN网络上有通信帧的变化,如图x所示。

image.png
figure-canopen-msg-stop-node
图x PEAK-View观察到的Stop报文

Start状态

从PCAN-View软件中发送如下命令,将NODE-ID为0x0A的节点切换至Start状态:

image.png

之后,可检测到CAN网络上有通信帧如图x所示。

image.png
figure-canopen-msg-start-node
图x PEAK-View观察到的Start报文

Pre-operation状态

从PCAN-View软件中发送如下命令,将NODE-ID为0x0A的节点切换至Pre-operation状态:

image.png

之后,可检测到CAN网络上有通信帧如图x所示。

image.png
figure-canopen-msg-preoperaion-node
图x PEAK-View观察到的Pre-Operation报文

复位应用层

从PCAN-View软件中发送如下命令,将NODE-ID为0x0A的节点复位,让节点的应用恢复初始状态,比如列车门都恢复打开状态:

image.png

之后,可检测到CAN网络上有通信帧如图x所示。

image.png
figure-canopen-msg-reset-node
图x PEAK-View观察到的复位消息

CANopen从站节点收到复位消息后,会复位本机执行的CANopen协议栈,恢复或者刷新对象字典的默认配置属性。

复位通信层

从PCAN-View软件中发送如下命令,将NODE-ID为0x0A的节点的通信层复位,让节点的 CAN 和 CANopen 通讯重新初始化,一般用于总线收到 干扰,导致节点总线错误被动,或者总线关闭时:

image.png

总结

本文介绍了实现CANopen协议栈的一个广为使用的软件组件CANopenNode。特别从实践的角度上,详细分析了在具体微控制器上移植CANopenNode组件的方法,以集成了FlexCAN外设的MM32F0140微控制器为例,详述的移植过程,创建了一个运行CANopen协议框架的样例工程canopen_demo。为了演示CANopen协议栈的工作场景,同时验证移植工作已经成功完成,本例使用运行PCAN-View软件和CAN转接器PEAK-CAN,模拟一个CANopen的主站,向接入同一CAN网络的CANopen从站节点发送NMT网络管理命令,切换从站节点的状态,并使用PCAN-View软件的观察CANopen从站节点心跳包的变化。本文还简要说明了PCAN-View软件的使用方法,可以配置PEAK-CAN转接器的通信速率、观察CAN总线上的消息帧、发送自定义的消息帧、记录历史消息帧等。

作者:安德鲁苏
文章来源:安德鲁的设计笔记本

推荐阅读

更多MM32F5系列资料请关注灵动MM32 MCU专栏。如想进行MM32相关芯片技术交流,请添加极术小姐姐微信(id:aijishu20)加入微信群。
推荐阅读
关注数
6144
内容数
276
灵动MM32 MCU相关技术知识,欢迎关注~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息