侵权投诉
当前位置:

OFweek电子工程网

网络/协议

正文

数据采集系统网络传输平台设计

导读: 通过以太网传输数据具有组网方便,扩展性好,传输距离远等优点,因此很多地方采用。目前实现以太网传输一般是使用CPU运行操作系统来完成,设计较为复杂。并且CPU在产生接口时序方面较为不便,很多时候需要用FPGA+CPU的方式。

  1 引言

 

  数据采集很多时候需要将数据传输到远程计算机,也有些采集系统有很多采集点,比如火灾传感器,这就需要数据传输部分能够方便地组网。在短距离内USB传输和1394火线传输都是一个较为理想的方法,但涉及到远距离传输和组网时,它们就不是那么方便了。所以很多时候通过以太网传输采集到的数据是一种较好的方式。目前设备实现联网的做法一般是使用CPU运行操作系统,由操作系统里的软件协议栈完成对TCP/IP协议的处理。这种方式需要编写CPU与数据采集部分接口的驱动和网络通讯的传输软件,开发工作量较大,设计较为复杂。并且CPU在产生接口时序方面较为不便,很多时候需要用FPGA+CPU的方式:FPGA完成与数据采集部分接口时序的产生和数据的缓存,CPU完成数据传输。因为数据采集系统中经常会使用FPGA,如果能用FPGA和少量易用的外围器件实现网络传输则是一种较为理想的方式。我们设计了一个网络传输平台,主要包括FPGA、DDR芯片和硬件化的网络协议栈芯片,可以通过以太网和计算机通讯,将数据传输到计算机中。

 

  2 平台结构

 

  平台结构包括硬件上的结构和FPGA逻辑结构。其结构如图1所示。其中数据采集模块是数据采集系统的传输平台需要的一个模块,但是目前没有,可以根据实际需要进行开发。

 

  

 

  2.1 硬件结构

  平台主要包括三个部分:FPGA,DDR存储芯片和网络协议栈芯片。FPGA为平台的主控芯片,使用Alter Cyclone II EP2C20F256,该FPGA具有1 8,752个LE,239,616位存储器空间,26个嵌入式乘法器,4个PLL,152个用户可用管脚,封装采用256脚F‘meline BGA,体积较小。

  DDR存储芯片使用MICRON M’r46V128M8—6T,容量128MB,数据线宽度为8bit,该容量是DDR单片芯片中容量最大的。芯片最高可工作在167MHz。使用DDR对布板有较高的要求,我们在布板时考虑到了过孔和焊盘长度对走线长度的影响,保证了对同一组数据线和时钟的精确等长布线。通过估计信号的回流路径进行走线和参考平面分割,以保证信号回路阻抗的连续性,减小信号之间的串扰。选择了适当的线宽、叠层方式及叠层厚度,使得单端走线的阻抗控制在50欧姆,差分走线阻抗在100欧姆,以确保传输线的阻抗匹配。这些措施保证了良好的信号的完整性,提高了时序余度,降低了对DDR IPCore的时间参数精确性的要求,为平台的稳定运行打下了基础。

  网络协议栈芯片使用的是WIZNET W5300,芯片内部集成了以太网物理层(PHY)、802.3以太网MAC和TCP/IP协议栈。该芯片可用在10M/100M以太网中,完成ISO七层模型中的物理层、数据链路层、网络层和数据传输层的任务,将控制器从复杂的网络协议处理中解脱出来,提供了一个易于实现的网络传输方式。

  因此我们选取了并行接口,工作在直接寻址模式。

  2.2 FPGA逻辑结构

  在进行FPGA逻辑编写时采用了模块化设计,结构主要包括四个部分:DDR接口模块、网络接口模块、传输协议解析模块和寄存器模块。DDR接口模块对DDR芯片进行上电初始化,产生DDR的读写时序并控制DDR刷新。网络接口模块对网络协议栈芯片进行上电初始化,产生芯片的读写时序,并控制芯片发送和接受数据。传输协议解析模块对网络接口模块送来的数据进行解析,转换成对DDR或寄存器的读写操作,并将DDR模块或寄存器模块读出的数据送给网络接口模块,通过网口发送出去。寄存器模块包括16个16位的寄存器,存放参数设定和状态信息,远程用户通过读写寄存器实现对数据采集的控制。

  在进行FPGA逻辑编写时采用了层次化的设计。每层完成其特定工作,使得设计清晰明了。系统的层次结构如图2所示。

 

  

 

  从整体上来看,平台结构分为设备层、接口层和控制层。设备层为FPGA外围芯片,接口层作为设备层和控制层的桥梁,面向设备发送相应指令,产生特定时序的信号;面向控制层提供数据。

  控制层将接口层送来的数据进行解析,转化成对接口层的操作,控制整个平台的工作。在网络接口模块中,同样也可分为接口层和控制层。接口层将上层所有对W5300访问的操作按照其时序要求产生相应地信号,控制层则控制w5300芯片完成以太网通信。

  2.2.1 DDR接口模块

  DDR接口使用Altera提供的IPcore。该IPcore包括控制逻辑和数据通道两部分,如图3所示。

 

  

 

  控制逻辑面向DDR芯片执行总线的操作,对内提供一个简单的接口。数据通道在内部读写数据总线与DDR芯片的双向数据总线之间提供一个接口,因为DDR芯片的数据总线是上升下降沿都传送数据,内部总线仅在上升沿传送数据。所以内部数据总线宽度是DDR芯片数据总线的两倍。本设计中内部总线的宽度为16位。DDR突发数据传输长度选择2。

  FPGA逻辑巾还包括一个随机数Ⅻ4试模块。可以产生伪随机数写入DDR芯片。然后将其读出。

  通过比较两者是否相同,可毗判断芯片的好坏。随机数Ⅻ5试在上电时会执行一次。执行结果由扳子上LED灯指示。

  2.2 2 时络接口模块

  网络接口模块丹为控制层和接口层。控制层由多个处理模块组成,包括:复位模块、初始化模块、数据接收模块、数据发送模块和中断处理模块,每个模块完成一种情况的处理。这些模块受一十状态机的控制,状志机根据不同的话分别执行相应的模块。状态机的跳转如图4所示:

 

  

 

  系统上电开始,状态机进入复位W5300状态。在其复位管脚上产生一个2微秒的负脉冲以复位芯片。复位完成后进八初始化阶段。初始化阶段设置芯片工作方式、平台网络接口的MAC地址、源口地址、源端口号、掩码、同蓑和协议类型等。车系统采用的是直接寻址方式,协议娄型选择UDp。初始化完成后状态机进人空用状态。在这个状态下,先检测是否有中断㈣产生。如果有中断则进入中断处理状态,执行中断处理模块,如果没有中断则检剁是否有发送数据请求(SendReq)。

  如果有则进入数据技逆状志,执行数据发送模块。如果既没有中断也投有菱送数据请求。则进入数据接收状态,执行数据接收模块。数据接收模块执行时。首先要读取W5300内部的接收数据字节长度寄存器。如果不为0表明W5300接啦到数据,则读取数据,否则直接结束数据接收过程,状态机返到空闲状态。

1  2  下一页>  
声明: 本文由入驻OFweek公众平台的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

我来说两句

(共0条评论,0人参与)

请输入评论

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码: