基于SOPC的以太网远程数据采集系统设计
摘要:针对测控系统中设备分散,检测环境恶劣的情况,设计了一种基于SOPC的以太网远程数据采集系统。系统采样基于NiosⅡ软核的SOPC架构,以μC/OS-Ⅱ嵌入式实时操作系统为软件运行平台,以LWIP为以太网通信协议,实现了远程数据采集和以太网传输及控制。整个系统在CycloneⅡEP2C35开发板上实现并通过验证,实验结果满足设计要求并具有较好的应用前景。
关键词:SOPC;以太网;NiosⅡ;LWIP;远程数据采集
在工业测控系统中,往往存在现场检测环境恶劣,设备分散,需要检测系统具有远程分布式数据采集功能,以实现设备的远程检测与监控。嵌入式以太网技术将以太网技术和嵌入式技术有机结合在一起,很好的满足这种需求。Ethernet与传统通讯接口相比,具有性价比高、传输距离远、分布运行等特点;SOPC是基于FPGA解决方案的SOC,是MCU、DSP、FPGA的有机结合,具有体积小、功耗低、可灵活配置等优点。利用SOPC以太网技术将SOPC嵌入式测量模块接入网络进行控制,使其实现PC机所具有的远近程测量控制和信息发布各项功能,让工作人员远离现场,仍可以对测量设备进行控制并获得测量数据。
1 系统总体设计
本系统采用FPGA+NiosⅡ的架构进行设计。系统主要有数据采集模块、FPGA模块、存储器模块、网络接口模块组成,系统总体结构如图1所示。首先将待测量经传感器转化为电信号,然后经前端信号调理,A/D转换写入FPGA片上FIFO,然后FPGA读出数据经信号恢复、FIR数字滤波后存入RAM中,最后通过Ethernet传输到上位机进行显示、诊断等处理。本方案可作为单独采集系统和一台计算机组成检测系统;也可加入路由器,一个采集模块与多台计算机相连实现数据共享,或者一台计算机与多个采集模块相连,实现分布式检测。
本设计采用的FPGA器件是Altera公司的Cyclone II系列EP2C35F672芯片。EP2C35内置35个18×18的硬件乘法器,有105个M4K RAM块,共483 840位。在FPGA基础上构建基于Nios II的SOPC系统,使用软硬件协同的方法对A/D转换器和网络传输芯片进行控制。存储器模块包括SRAM、SDRAM、Flash 3种类型的存储器。一片IDT71V416S256Kx16bits的SRAM,用作FPGA的缓存使用,存放运行的程序;一片A3V64S40ETP4 Mx16 bits的SDRAM,用来存储程序运行的中间数据;一片AMD29LV128M123R 16 MB的FLASH存储器,用来保存固化的程序和数据。为解决速率匹配、数据缓冲等问题,利用FPGA片上RAM资源设计8 k×16 bitsFIFO,将AD采样的数据进行缓存。
2.1 数据采集模块
数据采集模块包括前端信号调理电路和A/D转换电路。前端调理主要包括传感器、调理电路。信号调理主要实现对模拟信号的缓冲、放大,以获得ADC所满足的输入信号。
本设计采用的A/D转化器为美国TI公司的ADS8364,ADS8364是高速、低功耗,六通道同步采样16位并行输出模数转换器。采用+5 V工作电压,当工作频率为5 MHz时,其同步采样为250 kHz,转换时间4μs。六路模拟输入分为3组(A、B和C),每个输入端都有一个保持信号来实现所有通道的同时采样与转换功能,适合于多路采集系统的需要。3个保持信号(/HOLDA,/HOLDB,/HOLDC)可以启动指定通道的转换,当3条HOLD线均为低电平时,6个模拟输入同时被采样。A0、A1、A2均接高,A/D转换结果输出FIFO模式。A/D转换结束后产生转换结束信号EOC,产生中断。在转换结束后,将数据读入FPGA的FIFO中。AD8364与FPGA的连接如图2所示。
2.2 网络接口模块
本设计的网络芯片采用DAVICOM公司的DM9000A,该芯片具有通用处理器接口、一个10/100M PHY和4 kbytes的SRAM,是一款低功耗高性能的网络控制器。DM9000A支持8位和16位两种数据接口,本设计采用16位模式。其接口电路原理图如图3所示。
2.3 SOPC设计
FPGA硬件设计基于Altera公司的SOPC开发环境SOPC Builder.Altera公司为SOPC工具提供了众多的IP核支持,可以直接调用。本设计中AD控制器需要自定制,用Verilog HDL编写控制时序与接口逻辑,采用摩尔状态机来产生ADS8364的转换控制信号以及FIFO读入时钟。其控制模块仿真波形如图4所示。DM900A控制器使用友晶公司的DE2开发系统中为我们提供了DM900A控制器核。
将NIOSII处理器、UART JTAG、SRAM控制、SDRAM控制器、CFI控制器、EPCS控制器、PLL及ADS8364控制器、DM900A控制器核添加到SOPC Builder中生成SOPC系统,如图5所示。点击Generate生成NiosII系统。然后在QuartusⅡ添加PLL模块,添加输入输出引脚,完成顶层模块硬件接口的连接。最后分配引脚,编译下载到FPGA中,就完成了FPGA硬
- 基于SoPC的FIR滤波器设计与实现(07-18)
- 基于FPGA的语音录制与回放系统(09-18)
- 基于SOPC的智能电子血压计设计(06-19)
- 基于SoPC的FPGA在线测试方法 (10-09)
- 基于SOPC系统的虚拟示波器设计(01-12)
- 基于SOPC的人脸检测系统的设计(10-29)