您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术基于DeviceNet 的嵌入式I/O模块设计方案 正文
基于DeviceNet 的嵌入式I/O模块设计方案

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

点击数:7296 次   录入时间:03-04 11:36:20   整理:http://www.55dianzi.com   嵌入式系统-技术

    引 言

    DevICeNet是一种基于CAN总线技术的符合全球工业标准的开放型现场总线通信网络,它用于控制,配置和数据采集等方面。CAN 总线具有布线简单、典型的总线型结构、稳定可靠、实时、抗干扰能力强、传输距离远、布线成本低等特点。由于具备了这些特点,Devi-ceNet总线被广泛应用于工业自动化控制,它不仅可以接入更多,更复杂的设备,还可以为上层提供更多的信息和服务。在很多欧美国家,越来越多的系统方案设计采用DeviceNet来实现。

    ModBus协议是应用于电子控制器上的一种通用语言,是全球第一个真正用于工业现场的总线协议,由于该协议的产生,使控制器之间、控制器经由网络和其他设备之间实现相互通信。ModBus协议现在已经成为一种通用的工业标准,应用该协议技术可以使不同厂商生产的控制设备连成一个工业网络,进行集中监控管理。此协议定义了一个控制器能认识使用的消息结构体,从而使用户不需要关心它们使用哪种网络进行通信。它描述了一个控制器请求访问其他设备的过程,如何回应来自其他设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。

    本文主要解决DeviceNet 与ModBus 之间的协议转换问题。标准的ModBus口是使用RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。控制器能直接或经由Modem 组网。基于DeviceNet 的嵌入式I/O 模块通过I/O 口发送和接收数据,ModBus通过串口与嵌入式I/O模块进行通信。通过此过程完成DeviceNet与ModBus之间的协议转换问题。

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

    DeviceNet是一种上层的应用层协议,其物理层和数据链路层采用CAN总线技术,ModBus协议只是用于数据链路层上的协议[1].这两种现场总线是异构的,因此要实现两种协议之间的通信,必须要进行协议转换。协议转换的转换过程是分层次进行的。首先把总线设备发送过来的设备逐层解包,得到需要的数据,然后再把数据按另一协议所需的方式打包,发送到相应的设备上。

    DeviceNet与ModBus协议都采用主从通信模式,所以它们之间的通信只能是单向的,主站发送命令报文而从站被动接收命令报文。本设计中的嵌入式I/O模块既是De-viceNet从站,又是ModBus的主站。通过该模块可以实现DeviceNet主站的数据与ModBus从站的数据进行传输。

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

    本设计采用的处理器为LPC2129,硬件结构如图1所示。它是NXP 公司的32 位工业级ARM7 处理器,其内部集成了两个CAN 控制器,在一片处理器内首先将主站端的DeviceNet协议数据转换成中间协议数据,之后转换成ModBus可以识别的协议数据。

    拨码开关用来设置DeviceNet 端的波特率及MAC地址,其中波特率的开关为3 位,分别代表125 Kb/s,250 Kb/s,500 Kb/s;MAC地址的开关为6位,地址为0~63.

    RS 232 既可作为程序下载接口,也可作为通用的RS 232串口实现与上位机的通信。系统的供电电源采用24 V的直流供电,并在内部将24 V电源转化为模块需要的5 V,3.3 V及1.8 V电压电源。

     

     

    2 DeviceNet 和ModBus 协议介绍

    2.1 DeviceNet协议规范

    DeviceNetTM规范由Rockwell 公司开发,并将其作为一个基于CAN协议的开放式现场总线标准而公布。与其他现场总线相比,它具有突出的高可靠性、实时性和灵活性。其主要技术特点可归纳为:

    (1)采用CAN物理层和数据链路层规约,使用CAN规约芯片,从而有强大的支持。

    (2)可以容纳64个节点地址,每个节点支持无限个的I/O口;

    (3)网络拓扑结构,节点设备配电方式灵活,可网络统一配电或自行供电;

    (4)网络速度可选125 Kb/s,250 Kb/s 和500 Kb/s;有误接线保护功能;

    (5)数据传送方式多样,支持选通、轮询、循环、状态变化等方式;

    (6)采用逐位仲裁机制实现按优先级发送信息;

    (7)支持轮询或状态改变(基于事件),多主站和主从,支持从设备的即用即拔,无需网络断电。

    DeviceNet是面向连接服务的网络,任意两个节点的通信必须建立在逻辑连接的基础上。建立连接时与连接相关的传送会分配一个11位连接标识符(Connec-tion ID,CID),连接标识符由设备媒体访问控制标识符(MAC ID)和信息标识符(Message ID)两部分组成。连接建立后设备可通过发送释放连接或删除连接请求服务来断开连接。在某个特定的连接上长时间没有进行通信,这个通信将自动断开以释放资源。其中,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所示,下面分别介绍。

     

     

     

     

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

[1] [2]  下一页


本文关键字:嵌入式  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术