【无标题】

1、学习CANopen

CAN总线在OSI 7层网络模型中仅仅定义了物理层和数据链路层,没有规定应用层。
CANopen协议通常分为用户应用层、对象字典以及通信三个部分。
在这里插入图片描述
CANopen定义为小网络、 控制信号的实时通讯:

2 网络管理(NMT)

CANopen网络为了稳定可靠可控,都需要置一个网络管理主机NMT-Master(Network Management-Master)。所以每个 CANopen 从节点的 CANopen 协议栈中,必须具备 NMT 管理的相应代码,这是节点具备 CANopen 协议的最基本的要素。

NMT主机一般是CANopen网络中具备监控的PLC或者PC(当然也可以是一般的功能节点),所以也成为CANopen主站。相对应的其他CANopen节点就是NMT从机(NMT-slaves)。

NMT主机和NMT从机之间通讯的报文就称为NMT网络管理报文。管理报文负责层管理、网络管理和 ID 分配服务。例如,初始化、配置和网络管理(其中包括节点保护)。网络管理中,同一个网络中只允许有一个主节点、一个或多个从节点,并遵循主从模式。

2.1 NMT节点状态

     NMT节点包含6中状态:

(1)初始化(Initializing):节点上电后对功能部件包括CAN控制器进行初始化;

(2)应用层复位(Application Reset):节点中的应用程序复位(开始),比如开关量输出、模拟量输出的初始值;

(3)通讯复位(Communication reset):节点中的CANopen通讯复位(开始),从这个时刻起,此节点就可以进行CANopen通讯了。

(4)预操作状态(Pre-operational):节点的CANopen通讯处于操作就绪状态,此时此节点不能进行PDO通信,而可以进行SDO进行参数配置和NMT网络管理的操作;

(5)操作状态(operational):节点收到NMT主机发来的启动命令后,CANopen通讯被激活,PDO通信启动后,按照对象字典里面规定的规则进行传输,同样SDO也可以对节点进行数据传输和参数修改;

(6)停止状态(Stopped):节点收到NMT主机发来的停止命令后,节点的PDO通信被停止,但SDO和NMT网络管理依然可以对节点进行操作;

2.2 NMT 节点状态切换命令
NMT 网络管理中,最核心的就是NMT节点状态切换命令,这是NMT主站所进行网络管理的“命令”报文。CANID 均为 000h,具备最高的CAN优先级。数据为2个字节:

第1个字节代表命令类型:

01h为启动命令(让节点进入操作状态);

02h为停止命令(让节点进入停止状态);

80h为进入预操作状态(让节点进入预操作状态);

81h为复位节点应用层(让节点的应用恢复初始状态);

82h为复位节点通讯(让节点的CAN和CANopen通讯重新初始化,一般用于总线收到干扰,导致节点总线错误被动,或者总线关闭时)。

第2个字节代表被控制的节点 Node-ID,如果要对整个网络所有节点同时进行控制,则这个数值为0即可。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值