CAN应用层协议详解之DeviceNet协议

DeviceNet是基于CAN总线技术并符合全球工业标准的开放型通信网络。定位于工业控制的设备级网络,不仅降低了系统的复杂性,还减少了设备通信的电缆硬件接线,提高系统可靠性,降低安装、维护成本,是分布式控制系统的理想解决方案。

DeviceNet规范定义了一个网络通信标准,以便组成工业控制系统的各个设备之间可以进行数据通信。DeviceNet规范除了提供ISO模型的应用层定义之外,还定义了部分物理层和数据链路层。规范中不仅对DeviceNet节点的物理连接也作了规定,连接器、电缆类型、长度以及与通信相关的指示器、开关、相关的室内铭牌都作了详细规定。

1.DeviceNet基本概念

DeviceNet是建立在CAN协议基础之上,沿用了CAN协议所规定的物理层和数据链路层,并补充了不同的报文格式、总线访问仲裁规则及故障检测和隔离方法。DeviceNet的功能和特点如表1所示。

表1 DeviceNet特点

CAN应用层协议详解之DeviceNet协议

DeviceNet的应用层协议则采用的是通用工业协议(CIP)。CIP是一个在高层面上严格面向对象的协议。每个CIP对象具有属性(数据),服务(命令),连接和行为(属性值与服务间的关系),其主要功能有两个:一是面向连接的通信;二是定义了标准的工业应用对象。下文详细介绍通信部分。

CIP通信最重要的特点是它用不同的方式传输不同类型的报文,根据报文质量要求将需要发送的报文分为:显式报文和隐式报文。

CIP另一个重要特点是通信基于连接的。因此DeviceNet网络上任意两个节点通信之前必须建立起连接,且连接是可以动态建立和撤销。请注意这里的“连接”是逻辑上的关系,而非物理层的连接。

DeviceNet支持两种类型的连接:显式信息连接和I/O连接。

显式信息连接是点对点的连接方式,报文接收方必须对接到的报文做出相应的响应,通常这类报文对时间要求不高,主要用于上传/下载程序、修改设备参数、趋势分析和诊断等。

I/O连接则用于传送实时性要求较高的I/O报文,可以一对一、一对多的数据传送。DeviceNet支持多种I/O数据触发方式,如位选通(Bit strobe)、轮询(Poll)、状态改变(COS:Change Of State)/循环(Cyclic)等。

位选通:利用8字节的广播报文,每一位分别对应着网络上64个节点,指定要求响应的从节点,响应报文最大为8个字节。

轮询:这种触发方式适用于绝大多数设备,相比位选通的少量I/O数据,轮询命令可传送任意数量的数据。轮询命令依次发送到各从站设备,从站接收到命令后做出应答。

状态改变:此方式多用于离散的设备,当设备状态发生改变时,使用事件触发方式,发生通信,而不是依靠主设备不断查询。为了防止设备掉线,增加了心跳报文,定时获取设备运行状态。

循环:适用于一些模拟设备,可以根据设备信号发生快慢,灵活的设定循环通信的时间间隔,可以降低不必要的网络流量,循环时间设定值应小于模拟量输入发生变化的时间值。每台设备中,循环和状态改变是互斥的,同一时刻只能使用一种连接方式。

下面通过图1介绍DeviceNet网络中两台设备建立通信的一般流程。

CAN应用层协议详解之DeviceNet协议

图1 DeviceNet通信基本流程

DeviceNet网络上最多可有64个节点,节点地址(MAC ID)可为0~63,每一个节点都具有唯一的MAC ID。因此每个节点在上电之后、上线之前必须进行重复MAC ID检测,以确认其MAC ID是否已被网络上其它节点使用。节点在上电之后,将发送重复MAC ID检测报文,间隔一秒,如果连续两次发送都没有接收到来自其它节点的重复MAC ID响应报文,那么该节点可以使用此MAC ID并转为在线状态,否则表示该MAC ID已被其它节点占用,该节点为离线状态。然后,通过未连接显式信息建立显式信息连接,主从站通过显式信息进行各种配置和信息交换,主站通过显式信息读取从站的标识信息,并与预先保存的配置信息进行对比,只有完全一致时主站才会对从站进行下一步操作,否则主站将会主动释放显式信息连接。最后,建立I/O连接,并通过I/O连接进行实时数据收发。

注:不同的主站模块建立I/O连接的流程有所差别,上文强调的是DeviceNet网络是基于连接的一种通信网络。

DeviceNet 是一个基于连接的网络系统一个DeviceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送被分配一个连接ID CID 如果连接包含双向交换那么应当分配两个连接ID 值见图2。

CAN应用层协议详解之DeviceNet协议

图2 连接及连接ID

2.DeviceNet 关于CAN 标识区的使用

在DeviceNet 上有效的11 位CAN 标识位被分成4 个单独的信息组组1 组2和组3 和组4。

CAN应用层协议详解之DeviceNet协议

图3 DeviceNet的CAN报文定义

信 息 ID (Message ID) :在一特定端点内的信息组中识别一个信息信息ID 使得在一特定的端点内单个信息组中可以建立多重连接连接建立时该端点利用信息ID与MAC ID 的结合生成一个连接ID 该连接ID 在与相应传输有关的CAN 标识区内指定具体细节在本规范的后续部分中将被描述注意组2 和组3 预定义了确定信息ID 的使用;

源 MAC ID (Source MAC ID) :此 MAC ID 分配给发送节点组1 和3 需要在CAN标识区内指定源MAC ID;

目 的 MAC ID (DesTInaTIon MAC ID): 此 MAC ID 分配给接收设备信息组2 允许在CAN 标识区的MAC ID 部分指定源或目的MAC ID。

3.信息组1

DeviceNet 并不预定义组1 信息ID 的使用组1 信息ID 描述了通过一个特别端点交换的各种组1 信息。

CAN应用层协议详解之DeviceNet协议

图4 DeviceNet的信息组1定义

在组1 的传输中总线访问优先权被均匀地分配到网络的所有设备上当两个或多个组1 信息进行CAN 总线访问仲裁时小数字的组1 信息ID 值的信息将赢得仲裁并获得总线访问权。例如device #20 message_ID = 2将先于 device #5 message_ID = 6 赢得仲裁。

如果两个或多个信息ID 值相等的组1 信息进行总线仲裁那么来自MAC ID 值较低的设备的发送将赢得仲裁,例如device #2 message_ID=5 将先于 device #3 message_ID=5 赢得仲裁。这样在组1 中就提供了16 个级的优先权均匀分配方案

4.信息组2

组2 信息ID 描述了在一个特定端点上交换各种组2 ,信息组2 中的信息ID 值为6 和7 的用法例外

DeviceNet 预定义了一组用于主/从应用通讯的连接见第7 章这个定义保留组2 信息ID 值6。组 2 信息ID 值7 被保留用作被赋予相同MAC ID 节点的检测见第6 章网络访问状态机制。

CAN应用层协议详解之DeviceNet协议

在组2 内MAC ID 可以是发送节点的MAC ID 源MAC ID 也可以是接收节点的MAC ID 目的MAC ID 当通过组2 建立连接时端点将确定是源MAC ID还是目的MAC ID在组2 传输中总线访问优先权是根据标识符的MAC ID 部分的MAC ID 值来决定的当两个或多个组2 传输进行CAN 总线仲裁时其 MAC ID 数值较小的信息将获得总线访问权。

目前,致远电子的CANScope总线综合分析仪已免费标配CANPRO软件,可以解析主流的DeviceNet协议。

CAN应用层协议详解之DeviceNet协议

图5 协议解析

  • CAN应用层协议详解之DeviceNet协议已关闭评论
    A+
发布日期:2019年07月14日  所属分类:通信