图1 CAN的突发优势和多节点拥堵
CANopen的创始人是非常了解CAN总线这个特征,所以在设计CANopen时,对其定义为小网络、控制信号的实时通讯:
报文传输采用CAN标准帧格式。即11bit的ID域,以尽量减小传输时间;
网络控制报文均采用数据最小字节数。比如心跳报文,只有1个字节数据;
实时更新的过程数据无需接收方报文应答。即采用生产消费模型,降低总线负载;
需要接收方确认的配置参数一般都是采用快速单字传输。即1个报文最多传送1个32字节的参数变量,避免了分帧引起的实时性降低。
以上这些定义都是为了节约时间开销,最大限度保证实时性。同时为了减小简单网络的组态工作量,CANopen定义了强制性的缺省标识符(CAN帧ID)分配表,以减少使用者与维护者的学习时间,快速上手。
网络管理(NMT)与特殊协议(Special protocols)报文ID分类
虽然CANopen的通讯发挥了CAN的特色,所有节点通信地位平等,运行时允许自行发送报文,但CANopen网络为了稳定可靠可控,都需要设置一个网络管理主机NMT-Master(Network Management-Master),就像一个交响乐团的指挥家,所有节点的启动、停止都是有他进行指挥,如图2所示。
图2 NMT-Master就像交响乐指挥家
NMT主机一般是CANopen网络中具备监控的PLC或者PC(当然也可以是一般的功能节点),所以也成为CANopen主站。相对应的其他CANopen节点就是NMT从机(NMT-slaves)。
NMT主机和NMT从机之间通讯的报文就称为NMT网络管理报文。管理报文负责层管理、网络管理和ID分配服务。例如,初始化、配置和网络管理(其中包括节点保护)。网络管理中,同一个网络中只允许有一个主节点、一个或多个从节点,并遵循主从模式。
另外,为了协调各个节点的同步、心跳、时间、错误提示等通讯控制,CANopen还定义了一系列特殊协议(Special protocols)报文。如表 1所示,为CANopen预定义报文(Pre-defined CAN-IDs)的NMT报文和特殊协议报文。
表1 NMT与特殊协议的CAN-ID定义
Object对象 | Specification规范 | CAN-ID |
NMT网络管理命令 | CiA301 | 000h |
Global failsafe command全局故障安全命令 | CiA304 | 001h |
Flying master动态主站 | CiA302-2 | 071h to 076h |
Indicate active interface标示活动接口 | CiA302-6 | 07Fh |
Sync同步报文 | CiA301 | 080h |
Emergency紧急报文 | CiA301 | 081h to 0FFh(080h +node-ID) |
Time stamp时间戳报文 | CiA301 | 100h |
Safety-relevant data objects安全相关数据对象 | CiA301 | 101h to 180h |
CAN-ID就是这类报文的COB-ID,其中读者必须需要记住的是绿色底纹的这些常用的CAN-ID含义,在研发和应用CANopen中,这三类是最为常用的NMT与特殊协议报文。
USBCAN-E-P与PCI-5010-P主站卡可为PC机拓展出CANOpen通讯接口,实现CANOpen协议的数据通信。作为CANOpen网络的管理者,实现全部的CANOpen网络管理(NMT)功能。
CANopen主站卡系列
暂无评论哦,快来评论一下吧!