微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > 基于DeviceNet 的嵌入式I/O模块设计

基于DeviceNet 的嵌入式I/O模块设计

时间:12-09 来源:互联网 点击:

备可通过发送释放连接或删除连接请求服务来断开连接。在某个特定的连接上长时间没有进行通信,这个通信将自动断开以释放资源。其中,MAC ID可通过硬件设定,也可通过软件来配置。标识符分为四组,如图2所示。DeviceNet连接分为显式信息连接和I/O连接。

2.2 DeviceNet与CAN

DeviceNet总线协议是基于CAN总线技术的。它的数据链路层完全遵循CAN 规范的定义,并通过CAN 控制器芯片实现。它只使用CAN 2.0A 中的定义,不支持CAN 2.0B中的扩展报文格式。DeviceNet只用125 Kb/s,250 Kb/s,500 Kb/s 三种可选速率,达不到CAN 的最高通信速率1 Mb/s.DeviceNet 只使用数据帧,错误帧和超载帧三种帧表示和控制,并未使用CAN 中定义的远程帧。

DeviceNet 在CAN 总线的基础上又增加了面向对象、基于连接的现代通信技术理念,并开发了应用层。

其应用层规定了CAN 数据帧的使用方法、重复节点地址检测机制、对象模型及设备的标准化。使DeviceNet的应用更广泛,安全性更好。

2.3 ModBus协议介绍

ModBus 是一种应用于工业控制器的网络通信协议,它是由Modicon 公司开发的,主要应用于电子控制器方面,现已成为一种通用工业标准。该协议支持传统的RS 232,RS 422,RS 485和以太网设备。它定义了一个控制器能认识使用的消息结构,使用者不需要关心它们内部的网络通信方式。控制器与控制器,控制器与其他设备之间(通过网络)的通信都要通过ModBus协议来实现。ModBus 协议制定了消息域格局和内容的公共格式,并详细描述了一个控制器请求访问其他设备的过程以及如何回应其他设备的请求,以及侦测错误并记录的过程。当使用ModBus网络进行通信时,按照此协议的规定,每个控制器需要知道它们的设备地址,并能识别按地址发来的消息,根据这些信息决定要产生的动作。

ModBus协议的消息也能在其他网络上进行传输,只需要将消息转换为适用于其他网络上使用的帧或包结构即可。

ModBus分为两种传输模式,ASCII和RTU模式。本文采用RTU模式进行说明。控制器使用主/从技术进行通信,能直接或经由调制解调器(Modem)组网。网络上的每个从站必须有惟一的地址。地址范围为1~247.

从站地址用于寻址从站设备。ModBus通信由主节点发起,即仅主设备能发起数据传输(即查询),从设备根据主设备查询提供的数据做出回应信息或响应动作。主设备以单播或广播模式与从设备通信。在单播模式下,从设备返回消息作为回应,在广播模式下,不作任何回应(地址0作为广播地址)。ModBus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、错误检测域,具体的ModBus 协议通信过程如图3所示。

从设备回应消息也由ModBus协议构成,包括确认要行动的域、要返回的数据、和错误检测域。如果在消息接收过程中发生错误,或从设备不能执行其命令,从设备将建立错误消息并把它作为回应发送出去。

对于ModBus通信协议,信息传输为异步方式,以字节为单位传送。报文的信息帧格式分为独立的信息头和发送的编码数据两部分,其报文结构如图4所示,下面分别介绍。

地址码为通信传送的第一个字节。每个从机都有具有惟一的地址码,响应回送以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。

功能码为通信传送的第二个字节。ModBus通信规约定义功能号为1~127.作为主机请求发送,通过功能码告诉从机执行什么动作。作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。

数据区是根据不同的功能码而不同。数据区可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址。CRC码为字节的错误检测码。

当通信命令发送给接收设备时,符合相应地址码的设备接通信命令,将地址码去掉,获取真正的命令内容,判断是否有误,无误则执行相应的任务并把执行结果返送给发送者。回送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码,如果出错就不发送任何信息。

3 嵌入式I/O模块的设计与实现

协议转换模块的功能是把DeviceNet格式的命令报文转换为ModBus的报文命令,再传给底层的ModBus设备,设备在接收到ModBus命令之后,会向报文转换模块发送ModBus格式的响应

报文,最后经协议转换模块将报文转换为Devicenet 格式的报文传输给DeviceNet 主站。本I/O 模块既是DeviceNet的从站实现接收主站报文并做出响应的功能,同时又可以作为ModBus的主站向其他ModBus设备发送报文并接收响应报文。

3.1 架构设计

本程序采用中断的方法来实现两种报

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top