PROFIBUS-DP/MODBUS的网关结构设计

发布者:nu23最新更新时间:2009-12-16 来源: 单片机与嵌入式系统关键字:MODBUS协议  PROFIBUS-DP现场总线  网关 手机看文章 扫描二维码
随时随地手机看文章

引 言
    作为我国第一个工业通信领域现场总线技术国家标准的PROFIBUS现场总线,其应用范围已经相当广泛,占有很大的市场份额。在PROFIBUS家族中,PROFIBUS-DP总线的应用最为广泛。

    国内的一些厂商都在开发并相继推出自己的现场总线系列产品。但是其FCS系列产品在快速接入主流现场总线系统中有一些阻力,所占市场份额比较小,其提供的系统设计方案大多还是在主推DCS系统。为了能够快速接入主流现场总线,结合国家863课题,中国四联仪器仪表集团有限公司与本教研室共同研发PROFIBUS-DP/MODBUS网关,以期实现其FCS系列输入/输出从站设备快速无缝接入PROFIBUS-DP网络,并借此来提高其自动化设备的应用范围。

1 系统的总体设计

    MODBUS总线采用单主多从、查询一回应的工作方式,具有结构简单、可靠性高、受干扰的概率低、传输实时性能较好等优点;但是MODBUS总线没有路由器、网关等网络互联设备,网络规模有限,大型组网能力和网络处理能力较差。

    本系统使采用MODBUS协议的现场设备无缝接入PROFIBUS-DP现场总线系统,以此来提高现场设备选择的灵活性。这样做不仅仅扩展了MODBUS网络和PROFIBUS-DP网络的互联性,还大大降低了系统升级和更新换代所需要的费用。

    系统总体结构如图1所示。其关键部分是智能网关,它实现了协议之间的相互转换,无缝链接PROFIBUS-DP现场总线系统与MODBUS总线系统,使同一系统内同时存在PROFIBUS-DP总线和MODBUS总线的设备,已经存在和使用的设备不必做任何改变就能够直接接入PROFIBUS-DP网络。

    其中,微控制器为中国四联集团开发的主控制器,本智能网关在设计上为其预留了一个用于和主控制器进行通信的通信接口。底层的I/O模块实现工业现场信号的检测或控制执行设备的运行。

2 PROFIBUS-DP/MODBUS网关结构设计

    PROFIBUS-DP/MODBUS嵌入式网关硬件结构如图2所示。按照功能模块划分,网关可以分为电源管理模块、中央处理器模块、PROFIBUS-DP从站模块和RS485通信模块。

    本硬件设计要求串行口速率能够达到921.6 kbps。基于此要求,硬件平台选用Philips公司的ARM7TDMI核的微处理器。电源管理模块负责整套系统的电源供给。系统的稳定运行和电源模块的稳定性能关系密切,此处设计的电源模块兼有热插拔和电压转换的功能。PROFIBUS-DP从站模块的核心功能由协议芯片(VPC3+C)来实现,从站单元的配置和管理则由中央处理器模块来完成。

    中央处理器模块除了实现对PROFIBUS-DP从站模块的配置和管理外,还要完成MODBUS协议的实现以及两种协议数据交换协议栈的实现。为了提高系统的抗干扰能力,和外界进行通信的部分需要和系统在物理接口上进行电气隔离,此处的3个通信接口都需要进行隔离。根据通信速度要求的不同,选择磁耦芯片模块完成PROFIBUS-DP通信的隔离兼物理层电平转换功能;用双通道磁耦隔离芯片来完成另外两路串行口通信的隔离。这两款芯片都采用了最新的基于芯片尺寸的变压器隔离技术的磁耦。和传统的光耦比较,其转换速度、瞬态共模抑制能力、功耗、尺寸及成本等方面均有很明显的优势。

3 系统的软件设计

3.1 软件总体结构设计

    一般情况下,现场总线协议之间的转换器可分为物理层的中继器、MAC层的网桥及应用层的网关等几种形式。中继器方式需要更改底层硬件,网桥方式对应MAC层的协议转换复杂,而网关的形式则使得原有网段的协议不需做任何改变,实现起来最为简单。

    本系统采用了网关形式,软件总体流程如图3所示,主要实现了PROFIBUS-DP协议芯片VPC3+C的驱动程序和MODBUS协议,同时在应用层实现了PROFIBUS-DP总线和MODBUS总线协议数据帧的转换。MODB-US协议只是定义了消息域的格局和内容的公共格式,具体的物理层及应用层可以由用户根据需要定义。本网关MODBUS通信部分物理层采用标准的RS485总线,MAC协议是由软件实现的。

    CPU通过驱动VPC3+C来实现对PROFIBUS熔一DP通信过程的控制,包括通信接口检查、正常和发生故障情况下诊断数据的发送及数据交换等过程;通过MODBUS协议实现对下挂的输入/输出从站模块的查询操作;通过对输入/输出模块的应答帧(或通信超时)进行分析来判断模块的状态以及模块的通道状态;根据模块状态信息填充PROFIBUS-DP的诊断域的数据,并以此为依据来对网关状态(正常通信、报告错误或警告信息)进行控制。

3.2 网关协议栈设计

    网关协议栈为MODBUS输入/输出模块和PROFI-BUS-DP通信的桥梁。协议栈采用分层结构:PROFIBUS-DP通信层、协议映射层和MODDBUs I/O通信层。协议栈结构及报文处理流程如图4所示。

    (1)PROFIBUS-DP通信层

    负责对VPC3+C通信状态的监控管理,按照一定的规则将PROFIBUS-DP总线通信收到的数据映射到CPU内部的存储器,供I/O通信层调用,完成输出数据的更新;把I/O通信层的输入数据按照一定的规则映射到CPU内部的寄存器,在适当的时候写入VPC3+C的输入数据缓冲区,以完成输入数据的更新。

    (2)协议数据映射层

    负责将I/O模块映射为标准PROFIBUS-DP I/O模块的工作,包括对下挂的I/O模块类型和通信接口控制字的检查;各输入模块通道输入数据在PROFIBUS-DP输入数据中起始位置及所占长度的管理;PROFIBUS-DP输出数据向各输出模块通道输出数据上的映射关系管理。

    (3)MODBUS通信层

    负责完成和下挂MODBUS从站I/O模块的所有通信,包括读取I/O模块类型、读取通道输出值、设定通道输出值和参数设置等工作;根据映射层提供的输出数据映射关系,将PROFIBUS-DP的输出数据在CPU存储器里的映射数据更新到输出模块的相应通道上;读取各输入模块的通道输入值,给映射层提供输入数据资源。

3.3 PROFIBUS-DP总线驱动

    此网关PROFIBUS-DP部分采用协议芯片VPC3+C,其内部含有4KB RAM,用户可根据需要对其进行设置;有两种微处理器接口,数据/地址总线复用或单独操作。因为ARM核对外部RAM操作的速度较快,时序不能满足VPC3+C的操作时序,因此这里不采用数据/地址总线复用的方式,而是用ARM的GPIO口来模拟VPC3+C的操作时序。在这里模拟的是其在Intel模式下内部寄存器的读写时序。此驱动主要提供了以下功能:nxp_vpc3_read、nxp_vpc3_write、nxp_vpc3_init、nxp_vpc3_reset、nxp_vpc3_isr。这些函数分别向上层应用提供了读写VPC3+C寄存器、对其初始化、复位操作及中断的处理功能。其中对寄存器的读写操作是关键部分,函数原型如下:

    unsigned char nxp_vpc3_read(unsigned int addr);
    void nxp_vpc3_write(unsigned int addr,unsigned char data);

    其中,addr为要读写的寄存器地址,data为要写入的数据。

3.4 MODBUS协议的实现

    为增加信号传输的距离并提高抗干扰能力,MODB-US物理层采用标准的RS485通信。MODBUS协议实现软件的流程如图5所示。

    为了提高协议处理报文的效率,并提供良好的扩展性能,定义了函数指针数组,用于MODBUS应用层的数据处理。函数指针数组指针按照模块类型进行信息处理的导向。

3.5 协议数据的映射处理

    此网关的主要任务是完成PROFIBUS-DP的数据和MODB-实现的流程US数据的相互转换,为了保证数据的实时性采用单缓冲区技术来实现信息的及时更新。所谓“单缓冲区”,即不管是PROFIBUS-DP还是MODBUS中待转换的数据,只保留当前最新的一帧。考虑到现场通信的数据主要是数据的采集或模拟量的输出,采用单个缓冲区不仅仅大大降低了对内存的需求,而且可以保证通信的实时性。因为PROFIBUS-DP的正常通信需要组态的软件和下挂模块的硬件一致,才能保证系统的可靠运行。因此如何将MODBUS从站模块合理地映射成PROFIBUS-DP的标准模块很关键。这里根据模块特点(类型、数字量/模拟量、通道数量等)定义了不同的通信接口控制字(CFG_DAT)。系统上电后,网关通过MODBUS功能码0x11对下挂从站模块进行类型及状态查询,并根据类型得到对应不同模块的CFG_DAT。在PROFIBUS-DP进行通信接口配置(CFG_CHK)的过程中检查下挂模块的CFG_DAT和对主站硬件组态的模块对应的CFG_DAT,并根据此来填充诊断数据。如果检查通过,控制PROFIBUS-DP从站协议芯片进入数据交换状态;否则主站在进行诊断数据请求(DIAG-REQ)的时候,将诊断数据报告给主站。此网关判断的诊断信息包括:对应CFG_DAT错误的模块地址、模拟量输入MODBUS模块的通道断线标志。

3.6 关键技术研究

    (1)缓冲区数据映射——保证实时性

    网关在对两种协议的数据进行映射的过程中,采用了一次性内存拷贝技术和单缓冲区技术来尽快完成数据的处理且保证是最新数据,以此来保证数据传输在经过网关时的实时性。

    一次性内存拷贝技术是指,网关从协议芯片内部读取到PROFIBUS-DP的输出数据后,直接将存到的数据填充到MODBUS输出帧内;从MODBUS输入模块得到的数据直接填入到PROFIBUS-DP协议芯片的输入缓冲区。这样的方式可减少内存拷贝过程中所耗费的时间。如上所述,网关单缓冲区技术也是为了保证数据是最新采用的。此网关连接的两种设备的正常数据通信都是周期性的,且周期一般是固定不变的。如果MODBUS数据交换的周期小于PROFIBUS-DP的数据交换周期,则网关的缓存中只有1帧有效数据;如果MODBUS数据交换周期大于PROFIBUS-DP的数据交换周期,若采用链表保存PRO-FIBUS-DP的帧数据,则不管缓冲区的大小有多少,肯定导致缓冲区溢出,从而使PROFIBUS-DP的输出数据不能即时更新到MODBUS从站的通道上进而影响系统的实时性。

    (2)实时模块通信检查——保证可靠性

    系统除了在上电之后对下挂的MODBUS模块进行类型查询并和PROFIBUS-DP主站组态模块类型进行比较外,在进入正常数据交换之后,也会对模块的状态进行查询,判断模块是否发生错误。错误标志是在网关和MODB-US从站进行通信过程中根据从站的回应帧来判断的。在逐个检查模块错误标志后,如果没有错误标识被置位,继续正常通信过程;如果发现有错误标识被置位,则控制PRO-FIBUS-DP协议芯片离开数据交换状态,并且填充诊断信息。在此之后,不断查询MODBUS模块类型,直至模块类型和对PROFIBUS-DP主站组态数据一致为止,再控制PROFIBUS-DP协议芯片进入数据交换状态。这样采用实时查询模块是否出错状态的方式来保证软件组态数据和硬件类型相一致,防止出现输入/输出数据的错误。

    此网关系统中MODBUS协议是由软件来实现的,考虑到需要定时器等保证通信的可靠性,为了防止两种协议通信的相互影响,对PROFIBUS-DP输出数据的读取采用查询的方式而非中断方式进行。这样在PROFIBUS-DP的数据到来后不会打断正在进行的MODBUS通信,尤其是在PROFIBUS-DP通信速率较高的情况下,这种设计的可靠性更加明显。如果采用中断的方式,在PRO-FIBUS-DP通信速率超过一定值,其势必影响网关和MODBUS从站之间的通信(详见下面性能分析部分),严重时会导致MODBUS帧传输的不完整性,从而导致网关对MODBUS模块通信状态的误判,进而影响系统的稳定性。

4 网关测试结果

    在规定的条件下,对通信次数进行计数,程序的每个扫描周期进行一次MODBUS数据输入/输出的更新;PROFIBUS-DP输入/输出数据的更新,则是在VPC3+C收到PROFIBUS-DP的输出数据标志位置位后进行。对这两种数据更新的次数进行计数,分别为Cmidbus和Cdp在PROFIBUS-DP通信速率(λdp)变化的情况下,实际测试数据如表1所列。

    从表中可以看出,λdp=187.5 kbps时,Cdp=Cmodbus,实际上,此时已经出现了PROFIBUS-DP丢包现象。这也解释了上边所提到的如果λdp超过一定值,若采用中断方式处理PROFIBUS-DP的输出数据,势必影响正在进行的MODBUS的通信。

5 结 论

    将中国四联集团采用MODBUS协议的输入/输出从站设备无缝接入PROFIBUS-DP网络的智能通信网关的实现方案,有效地拓宽了其应用范围。在硬件设计上,采用电源管理模块实现网关的热插拔功能;采用专用芯片解析PROFIBUS-DP协议;采用磁耦隔离代替传统的光耦隔离,提高了系统的性能和可靠性。软件方面,采用单缓冲区设计、一次性内存拷贝技术、实时模块状态查询方式以及合理的中断应用来保证系统的实时性和可靠性,还对网关的性能进行了测试和简单计算,给出了保证不丢包所需要满足的公式。为其他工业通信网关的设计提供了参考。

关键字:MODBUS协议  PROFIBUS-DP现场总线  网关 引用地址:PROFIBUS-DP/MODBUS的网关结构设计

上一篇:浅谈工业以太网络技术的应用与发展
下一篇:IEEE1588在分散运动控制系统中的应用

推荐阅读最新更新时间:2024-03-30 21:30

蓝牙技术联盟宣布开放网关架构
蓝牙技术联盟(Bluetooth Special Interest Group; 简称SIG)近日宣布开放蓝牙网关架构并推出入门工具套件,助力开发者快速为蓝牙产品创建互联网网关。有了蓝牙网关,具有蓝牙功能的传感器就能透过蓝牙技术连接网关设备,向云端传递数据并进行数据交换。全新架构让所有人都能对固定式的、具有蓝牙功能的传感器进行远程监测和控制,藉此扩展了物联网的潜在应用领域。 全新的蓝牙互联网网关架构和入门工具套件为开发者、创客,和OEM等展示了如何快速、简单地在蓝牙设备和云端之间创建连接,而且无需智能手机或平板电脑做中间枢纽。这一重要的通信功能将传感器的控制权交给了人和系统,且不受距离远近的影响,为下一步实现物联网奠定了基础。
[物联网]
有线和无线的结合,构建智能云网关
分析公司 IHS Markit 预测到2025年,物联网(IoT)将涵盖750亿互联物品。要达到如此庞大的规模,制造商将需要将其原有系统(以及数十年来的囊括大部分有线协议的老旧基础设施)与不断改进的无线连接标准和技术相融合。 无论是在工厂还是楼宇中,汇聚、管理和分析云中边缘节点数据都具有巨大潜在优势。然而,通过各种通信协议将多种设备连接在一起并最终接入云中是物联网网络开发面临的最大障碍之一。借助智能网关(图1),无需直接接入互联网,即可简化端节点设计、减少网络流量并帮助加快决策制定。 图 1:智能网关是有助于管理750亿个互联物品的解决方案。 网关通过支持多种端节点本地连接途径,提供了一种良好的简化传感器网络
[物联网]
有线和无线的结合,构建智能云<font color='red'>网关</font>
MODBUS转PROFIBUS网关成功应用在中央空调系统
中国国家博物馆位于天安门广场东侧,与人民大会堂遥相呼应。是以展示历史与艺术并重,集征集、收藏、研究、考古、文化交流于一体的综合性国家博物馆。 该馆采用约克中央空调系统,控制与监控采用西门子S7300可编程控制器.由于约克空调系统通讯采用MODBUS总线,无法直接接入西门子PROFIBUS总线.应用北京微硬创新科技有限公司的MODBUS转PROFIBUS网关后,顺利将空调系统接入PROFIBUS总线.系统图如下: 微硬创新MODBUS转PROFIBUS网关有专用的GSD文件,加到STEP7里后,能够对网关进行配置,使用灵活简单.
[嵌入式]
风河发布全新IP智能网关平台
全球嵌入式及移动应用软件领导厂商风河(Wind River)近日发布可用于开发智能网关的全新软件网关器平台Wind River Platform for Gateways。这个平台初期将锁定家用网关市场。Wind River Platform for Gateways是风河旗下一系列智能网关解决方案的首批产品。风河也将通过这个系列解决方案满足日益增长的物联网需求。目前住友电工网络株式会社已率先采用Wind River Platform for Gateways开发其最新系列的服务网关产品。住友电工网络是在日本居于市场领导地位的宽带接入设备供货商,客户包括日本国内许多主要宽带服务运营商。 Wind River Platform
[嵌入式]
VoIP语音网关中TDM控制模块的设计
TDM控制模块是VoIP网关系统设计中的重要部分,是连接来自PSTN(Public Switched TelephoneNetwork)串行的TDM数据格式和并行的Wishbone数据格式的桥梁,实现两边数据跨时钟域无丢失的转换。为满足高速数据转换的要求,采用了Wishbone总线,将多个IP核集成为VoIP网关系统。 Wishbone最先是由Silicore公司提出,现在已被移交给OpenCores组织维护。Wishbone总线规范是一种片上系统IP核互连体系结构,定义了一种IP核之间共公的逻辑接口,可用于软核、固核和硬核,对开发工具和目标硬件没有特殊要求,并且几乎兼容已有所有的综合工具,可以用多种硬件描述语言来实现。 TD
[应用]
USB3.0主机控制器在嵌入式媒体网关上的应用
近年来随着网络接入方式越来越发达,数字媒体的日益普及,很多家庭都拥有了各种各样的媒体播放和存储设备。为了管理日益庞大的媒体文件,市场上出现了一种专门用来共享媒体文件的媒体网关。为了传输那些体积巨大的媒体文件到这个设备中, USB3.0 接口是一个非常好的选择。本文主要介绍瑞萨电子的USB3.0 主机控制器 Upd720200 在这类设备中的应用. 一:嵌入式媒体网关的系统架构 嵌入式媒体网关通俗的来说就是一台嵌入式的计算机,其架构和我们平常了解的个人电脑的架构基本类似,只是在普通个人电脑的基础上简化了相关的输入输出设备,以降低整个系统的成本。大多数嵌入式媒体网关的系统框图如下: 从框图我们可以看出来,
[嵌入式]
消防指示灯智能监控系统三端口网关电路模块设计
  提出采用两级环形总线网络拓扑、主从通信方式的消防指示灯智能监控系统。设计了用电池提供应急电源的通信网关的总体结构。采用单片机自带的双串口构成两个独立光电隔离的RS-485 接口作为下级环形总线主站,实现与智能应急标志灯之间交换数据。利用单片机的SPI 接口功能和另一个单片机扩展第三个独立的光电隔离RS-485 接口,作为上级环形总线网络的从站, 实现与监控主机之间状态和命令信息交换。   串口扩展电路   串口扩展的方式:一种是硬件的扩展方式。使用市面上对串口进行扩展的芯片,有SP2338DP,GM8123 系列。第二是软件模拟法。可根据串行通信的传送格式, 利用定时器和主机的I/O 口来模拟串行通信的时序, 以达到扩展串口的
[单片机]
消防指示灯智能监控系统三端口<font color='red'>网关</font>电路模块设计
基于ENC28J60嵌入式以太网/CAN网关设计
  随着Internet的普及,实现智能家居远程控制不再是人们的梦想,所谓远程控制,是指管理人员在异地通过计算机网络异地拨号或双方都接入Internet等手段,联通需被控制的计算机,将被控计算机的桌面环境显示到自己的计算机上,通过本地计算机对远方计算机进行配置、软件安装程序、修改等工作。远程唤醒(WOL),即通过局域网络实现远程开机。CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品着称的德国BOSCH公司开发了的,并最终成为国际标准(ISO118?8)。是国际上应用最广泛的现场总线之一。 在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网
[单片机]
基于ENC28J60嵌入式以太网/CAN<font color='red'>网关</font>设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved