APP下载

一种低成本高速以太网-RS485网关设计

2014-03-08贺春艳庹先国李怀良

自动化与仪表 2014年8期
关键词:网关以太网分布式

贺春艳 ,庹先国 ,,刘 勇 ,,李怀良

(1.成都理工大学 地质灾害防治与地质环境保护国家重点实验室,成都 610059;2.西南科技大学 核废物与环境安全国防重点学科实验室,绵阳 621010)

网络互联设备一直是分布式数据采集的核心构件之一。随着电子技术的发展,包括路由器在内的通用网络互联设备技术已经非常成熟,但在一些特殊应用领域,如地震勘探,设计出能满足实际需求的网络设备,仍然是一项挑战。特别是三维地震勘探中,由于以太网在多节点通信条件下实时能力较差[1],在考虑仪器体积、施工效率的基础上,单一采集链普遍采用RS485等串行总线网络[2],这与上层数据传输以太网不能直接兼容,极大降低了仪器的扩展能力和应用效果[3]。由于数据采集链与以太网不能直接互联而导致的系统勘探效率低下等问题已成为严重制约三维分布式地震勘探广泛应用的技术瓶颈之一。

1 分布式地震数据采集应用需求背景

如图1所示为分布式地震勘探系统示意图,数据中心、同步器、控制主机、远程终端以及网关组成地震数据采集局域网,各采集节点获取的地震数据通过RS485总线(采集链)传送到网关处理后,由局域网发送到控制主机。局域网硬件主要由以太网设备构成,相关产品已经非常成熟,限制系统性能的主要因素在网关上,需要其同时具备高速以太网和RS485两种网络接入能力,以及协议转换功能[4]。目前市面上还没有相关产品,参考设计也较少。因此,本文介绍一种采用DP83848和STM32等集成芯片设计的低成本高性能以太网—RS485网关,应用于三维分布式地震勘探中,可极大提高仪器扩展能力和施工效率。

图1 分布式地震数据采集系统示意图Fig.1 Distributed seismic data acquisition system diagram

2 硬件结构设计

网关由以太网控制器、网口、RS485控制器、主控CPU、系统电源等模块组成。主控CPU采用STM32F407RG,它是一款基于ARM Cortex M4内核的高性能低功耗微控制器,运算能力可达210 DMIPS;以太网控制器采用DP83848V,支持IEEE802.3全双工流量控制以及自动极性翻转功能,提供10 M/100 M以太网收发能力,其MAC控制器集成在主控CPU中,利用MII/RMII接口与其通信,可减少电路板上连接走线,提高抗干扰能力。同时,采用内部集成网络变压器的RJ45网口HR911105与其配合,可最大限度提高100 M以太网通信的稳定性;RS485收发器采用内部集成了三通道隔离器、三态差分线路驱动器、差分输入接收机和隔离式DC/DC转换器的单芯片ADM2582,其能提供最高16 Mb/s通信速率,满足高速数据采集链的网络通信需求。

如图2所示,以太网收发芯片利用其RMII接口与主控CPU的MAC控制器外设连接,包括数据通信引脚 TXD [1..0]、RXD[1..0]、TX_EN、CRS_DV以及管理通信引脚MDIO、MDC。以太网物理收发芯片和MAC控制器时钟均采用外部50 MHz高精度有源晶振提供。为增强系统抗干扰能力,减少PCB高频布线长度,本设计采用带网络变压器芯片的RJ45接口,将高速模拟差分信号线完全集成在网口芯片内部,在PCB板上仅需要将以太网收发芯片的TD+、TD-、RD+、RD-四根高频差分数据引脚, 分别通过49.9 Ω精密上拉电阻与RJ45接口 (网口变压器)对应引脚连接,在实际布线过程中,尽量将这4根高频线布设为最短等长直线,以便降低电磁干扰,提高通信质量。RS485收发芯片的TXD、RXD引脚分别与主控CPU串口外设对应引脚连接,同时为控制RS485通信方向,将其RE、DE引脚分别与CPU输出口引脚连接,当RE和DE为高电平时,收发器处于发送模式。为降低RS485总线上的反射干扰,在其差分输出引脚处接入120 Ω匹配电阻,用于吸收总线上的高频反射,同时接入保护二极管,避免因意外高压产生的危险。

图2 网关硬件电路Fig.2 Gateway hardware circuit

3 软件设计

3.1 前后台程序软件运行架构

系统软件按照功能可分为初始化代码段、后台程序代码段、前台程序代码段3部分。如图3所示为软件运行主流程。初始化代码段在系统上电复位后只运行一次,包括系统资源初始化、协议栈初始化、应用程序初始化。其中系统资源初始化主要完成对系统时钟、定时器、中断向量寄存器等系统资源进行配置,提供程序运行的基本环境;在系统资源初始化完成后,系统依次进行RS485和TCP/IP协议栈初始化;协议栈启动后,便可运行RS485客户端应用程序和TCP/IP服务器应用程序。整个初始化段代码运行完成后,便一直循环运行后台程序代码段,依次实现对两种协议栈和外部事件的循环处理。串口、网口中断程序位于前台程序代码段,平时处于休眠状态,只有产生相应事件后,后台程序才进入暂停状态,系统转去执行前台中断程序。

图3 软件运行主流程Fig.3 Main process software running

后台程序在运行过程中,依次查询是否有未处理的各种通信事件和外部事件产生,并根据查询结果,执行相应指令。主要通信事件有:RS485帧收到、RS485帧发送、以太网帧收到、以太网帧发送、外部触发中断等。所有事件均在前台中断程序中进行预处理并置相应标志位,但不做实际具体处理,而将具体事件处理过程放在后台程序中依次查询执行。

TCP/IP协议栈、RS485协议栈和外部事件处理代码段各自分配一个非固定时间片,按顺序轮换执行,其长度根据当前协议栈所需处理事件的多少和优先级来决定,一旦该代码段事件处理完成,便立即进入下一个代码段,代码段切换资源耗费几乎为零,这种“分时切换”和“前后台程序”配合的程序运行机制,可避免2种协议在高速运行过程中产生相互干扰而导致的系统混乱问题,而且运行效率也比较高。

3.2 RS485通信协议实现

在后台程序循环中,当查询到有RS485事件时,便进入RS485主处理函数,依次判断“是否有帧发送请求”、“是否收到完整数据帧”、“是否帧发送完成”等标志位,并根据判断结果调用相应处理程序,包括产生发送帧数据、帧数据解析、调用应用程序处理、置相应标志位等。协议栈在运行过程中,将需要用户处理的数据统一放置在全局帧数据缓冲中,并在适当时候调用用户程序进行处理,用户将需要发送的帧数据放置回全局发送缓冲帧中,由协议栈进行发送。如图4所示为RS485协议栈主处理流程。

图4 RS485协议栈主处理流程Fig.4 Main process of protocol stack

考虑数据采集节点CPU系统资源限制及总线大数据量和多种控制指令传输需求,各采集节点和网关之间采用面向串行通信的精简的点对点链路层通信协议(PPP),如图5所示为改进后的PPP帧格式及应用报文组织形式。

图5 改进后的PPP帧结构及应用报文组织形式Fig.5 PPP frame structure and application packets organization improved

改进的帧由6部分组成:帧头定界符(0x7E)、帧头(目地地址、源地址)、数据协议类型、数据、校验、帧尾定界符(0x7E)。其中数据协议类型根据地震数据采集需求,包括动态网络配置数据报文(DNCP)和用户网络数据报文(CNDP),DNCP 报文主要包含动态地址配置信息及网络环境监测信息,CNDP数据段又封装了用户实际发送的用户数据。

3.3 TCP/IP协议栈实现

由于TCP/IP是一个具有4层体系结构模型的大型互联网协议族,直接实现需要较多的系统资源开销,且其大部分协议对本网关实际应用联系不大,可对其进行简化,仅保留IP/TCP/ICMP/ARP/UDP等网络层和传输层协议[5],在保证其代码通用性和结构的稳定性的同时,最大限度降低了系统资源消耗。具体实现流程如图6所示。

图6 TCP/IP协议栈实现Fig.6 TCP/IP protocol stack implementation

同RS485协议栈实现类似,当进入TCP/IP主处理函数后,首先读取以太网数据帧,并依次判断“是否收到完整数据帧”、“是否定时事件到”、“是否有帧发送完成”等标志位,并根据判断结果,调用相应处理程序。其中,当收到完整的以太网数据包后,首先判断其是ARP、ICMP、IP中的哪一种,如果是IP数据包,还需判断是UDP还是TCP数据包,并再调用用户应用程序(服务器应用程序)。

3.4 RS485-TCP协议转换机制

由分布式地震勘探应用需求可知,各采集节点获取的地震数据通过RS485总线传输到网关后,由网关中的RS485协议栈接收,必须通过某种协议转换机制,转换成以太网数据帧后才能通过数据采集局域网传输到监控主机。在前面介绍的2个协议栈实现过程中,进入各自协议栈主处理函数后都首先判断是否有需要发送的数据帧,该帧发送需求便是另外一协议栈产生的需要转换的数据包,同时在各自协议栈主处理流程最后,也都有ACK事件处理操作,也可用于完成协议栈的相互转换功能。

网关在2种不同网络结构中分别充当不同的网络角色:监控主机通过以太网与网关进行连接,在此,网关作为服务器,运行TCP/IP服务器应用程序,而监控主机位于客户端,当服务器收到监控主机的数据访问请求后,通过协议转换,将以太网数据请求转换成RS485协议请求,此后,网关便作为客户端,将RS485请求发送到各数据采集节点服务器,各采集节点收到网关的数据请求后,产生回复数据,通过RS485发送给网关;由网关的RS485客户端收到数据后,转换成以太网数据包,并通过TCP/IP服务器和以太网返回给监控主机。

4 性能测试分析

为确定该网关的网络通信能力,对设计的网关进行实际现场测试,具体测试条件如下:单网关连接48道采集节点,每个节点内部采样缓存填充固定数据,循环发送相同数据,依次测试RS485通信速率、距离、误码率间的关系,具体测试数据如表1所示。

表1说明,该网关在外接48道采集节点情况下,最适合的工作速率是2.0 Mb/s,其采集链总长可达48×5=240 m。随着采集节点距离和通信速率的增加,误码率急剧上升。在实际勘探过程中,当采集节点AD采样率为1 k,精度为24位时,如果通信速率设置为2 Mb/s,则单网关可连接采集道数超过100道,基本实现了以太网和RS485采集链的高速数据连接。

表1 测试数据Tab.1 Test data

5 结语

本文采用物理层以太网集成芯片DP83848和STM32微控制器,设计了一种低成本以太网-RS485网关,实现以太网和RS485采集链的高速连接。利用“分时切换”和“前后台程序”配合的方法,对网关RS485和TCP/IP协议栈进行优化,避免2种协议在高速运行过程中产生相互干扰而导致的系统混乱,提高了运行效率,同时也为系统扩展提供了较多资源余量。测试表明,该网关网络通信能力稳定,单网关可挂接采集节点通道数超过100道,目前已应用到某套试验样机系统上。

[1] 陆其鹄,彭克中,易碧金.我国地球物理仪器的发展[J].地球物理学进展,2007,22(4):1332-1337.

[2] 张林行,林君,陈祖斌.RS-485通信协议在分布式地震仪中的应用[J].石油仪器,2001,15(6):32-33,38.

[3] 张林行,林君,陈祖斌.基于嵌入式以太网的分布式地震数据采集系统[J].计算机应用,2006,26(9):2258-2260.

[4] 郭戎潇,王洪强,李彦.一种小型嵌入式Internet终端的设计与实现[J].计算机与数字工程,2005,33(12):99-101.

[5] 黄钟鸣,叶进,黄建华,等.独立于操作系统的嵌入式TCP/IP实现[J].桂林电子科技大学学报,2011,31(6):473-476. ■

猜你喜欢

网关以太网分布式
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
信号系统网关设备的优化
天地一体化网络地面软网关技术及其应用
分布式光伏热钱汹涌
分布式光伏:爆发还是徘徊
基于ETC在线支付网关的停车场收费系统设计
谈实时以太网EtherCAT技术在变电站自动化中的应用
基于DDS的分布式三维协同仿真研究
基于Profibus-DP/Modbus网关的双阶挤出机组温度控制系统设计
浅谈EPON与工业以太网在贵遵高速公路中的应用