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

时间: 2024-09-02 13:53:48 |   作者: 技术方案

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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