基于SOPC的以太网远程数据采集系统设计
2012-07-13尉广军
马 骏,尉广军
(军械工程学院 导弹工程系,河北 石家庄 050003)
在工业测控系统中,往往存在现场检测环境恶劣,设备分散,需要检测系统具有远程分布式数据采集功能,以实现设备的远程检测与监控。嵌入式以太网技术将以太网技术和嵌入式技术有机结合在一起,很好的满足这种需求。Ethernet与传统通讯接口相比,具有性价比高、传输距离远、分布运行等特点[1];SOPC是基于 FPGA解决方案的SOC,是 MCU、DSP、FPGA的有机结合,具有体积小、功耗低、可灵活配置等优点[2-3]。利用SOPC以太网技术将SOPC嵌入式测量模块接入网络进行控制,使其实现PC机所具有的远近程测量控制和信息发布各项功能,让工作人员远离现场,仍可以对测量设备进行控制并获得测量数据。
1 系统总体设计
本系统采用FPGA+Nios II的架构进行设计[4-5]。系统主要有数据采集模块、FPGA模块、存储器模块、网络接口模块组成,系统总体结构如图1所示。首先将待测量经传感器转化为电信号,然后经前端信号调理,A/D转换写入FPGA片上FIFO,然后FPGA读出数据经信号恢复、FIR数字滤波后存入RAM中,最后通过Ethernet传输到上位机进行显示、诊断等处理。本方案可作为单独采集系统和一台计算机组成检测系统;也可加入路由器,一个采集模块与多台计算机相连实现数据共享,或者一台计算机与多个采集模块相连,实现分布式检测。
2 系统硬件设计
本设计采用的FPGA器件是Altera公司的Cyclone II系列EP2C35F672芯片。EP2C35内置35个18×18的硬件乘法器,有105个M4K RAM块,共 483 840位[3]。在FPGA基础上构建基于Nios II的SOPC系统,使用软硬件协同的方法对A/D转换器和网络传输芯片进行控制。存储器模块包括SRAM、SDRAM、Flash 3种类型的存储器。一片IDT71V416S256 K×16 bits的SRAM,用作FPGA的缓存使用,存放运行的程序;一片A3V64S40ETP 4 M×16 bits的SDRAM,用来存储程序运行的中间数据;一片AMD29LV128M123R 16 MB的FLASH存储器,用来保存固化的程序和数据。为解决速率匹配、数据缓冲等问题,利用FPGA片上RAM资源设计8 k×16 bits FIFO,将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,产生中断[6]。在转换结束后,将数据读入FPGA的FIFO中。AD8364与FPGA的连接如图2所示.
图1 系统总体结构框图Fig.1 Overall design scheme of system
2.2 网络接口模块
本设计的网络芯片采用DAVICOM公司的DM9000A,该芯片具有通用处理器接口、一个10/100M PHY和4 kbytes的SRAM,是一款低功耗高性能的网络控制器[3]。DM9000A支持8位和16位两种数据接口,本设计采用16位模式。其接口电路原理图如图3所示。
图2 AD8364电路原理图Fig.2 Schematic circuit diagram of ADS8364
图3 DM9000A接口电路原理图Fig.3 Schematic circuit diagram of DM9000A interface
2.3 SOPC设计
FPGA硬件设计基于Altera公司的SOPC开发环境SOPC Builder.Altera公司为SOPC工具提供了众多的IP核支持,可以直接调用[2]。本设计中AD控制器需要自定制,用Verilog HDL编写控制时序与接口逻辑,采用摩尔状态机来产生ADS8364的转换控制信号以及FIFO读入时钟。其控制模块仿真波形如图4所示。DM900A控制器使用友晶公司的DE2开发系统中为我们提供了DM900A控制器核[3]。
将 NIOS II处理器、UART JTAG、SRAM 控制、SDRAM 控制器、CFI控制器、EPCS控制器、PLL及 ADS8364控制器、DM900A控制器核添加到SOPC Builder中生成SOPC系统[1-8],如图5所示。点击Generate生成Nios II系统。然后在Quartus II添加PLL模块,添加输入输出引脚,完成顶层模块硬件接口的连接。最后分配引脚,编译下载到FPGA中,就完成了FPGA硬件设计。
图4 A/D控制模块仿真波形图Fig.4 Simulation waveform of A/D controlling module
图5 SOPC系统配置Fig.5 System configuration of SOPC
3 系统软件设计
软件设计主要是在Nios II IDE环境中,采用μC/OS-II嵌入式实时操作系统,使用LWIP作为网络协议栈。LWIP即Light Weight IP(轻量级IP),是瑞十计算机科学院的Adam Dunkels等人开发的一套用于嵌入式系统的开放源码的轻型TCP/IP协议栈。LWIP的主要目的是减少存储器占用和代码尺寸,使其适合应用于小型、资源有限的嵌入式系统中[2-5]。本设计使用标准的socket接口来实现TCP/IP操作[7]。
软件主要由3个任务组成:数据采集任务、FIR滤波任务、网络传输任务。在程序中调用lwip_stack_init()函数和lwip_divice_init()函数分别完成协议栈和驱动程序的初始化,调用 init_done_func()、get_mac_addr()和 get_ip_addr()函数设置MAC和IP地址;然后由标准Socket接口完成网络操作。NIOS II开发包中有很多LWIP的编程实例,修改部分代码即可使用[8-9]。由 μC/OS-Ⅱ的 OSTaskCteate()函数创建数据采集任务 DataAcquisitionTask()和滤波任务 FilterTask()。
数据采集任务负责从A/D输出数据通过PIO口采集到片上FIFO中,通过调用IORD_ALTERA_AVALON_PIO_DATA()函数在每个采样周期连续采样10次,将采集的数据放入FIFO中,唤醒滤波任务。滤波任务采样FIR滤波,利用Altera提供的DSP Builder在FPGA中建立一个FIR滤波器,对一个采样周期的数据进行滤波,然后将滤波后的数据放入发送队列[10]。通过仿真FIR滤波器对高频信号有很好的滤除效果。网络传输任务从发送队列取数据发送到上位机。取数据发送到上位机。软件流程如图6所示。
4 结束语
随着计算机技术和互联网技术的深入发展,数据采集处理技术广泛应用于工业、通信、测试测量等领域,越来越多的设备需要网络接入功能,以实现设备的远程监控。本设计将嵌入式SOPC技术和成熟的以太网技术结合在一起组成远程数据采集系统,介绍了从底层硬件,到NiosⅡ应用软件的整个架构的设计。最后在开发板上实现并通过实验验证,结果满足设计要求,具有良好的性能。此数据采集系统可以根据需要灵活配置,可以适应不同的应用场合。
图6 软件流程Fig.6 Flow of software
[1]刘岩.以太网分布式数据采集系统的实现 [D].石家庄:河北科技大学,2009.
[2]李兰英.Nios II嵌入式软核SOPC设计原理及应用 [M].北京:北京航空航天大学出版社,2009.
[3]张志刚.FPGA与SOPC设计教程—DE2实践[M].西安:西安电子科技大学出版社,2007.
[4]潘宗树.基于Nios II的SOPC系统设计与研究 [D].武汉:武汉科技大学,2007.
[5]梅大成,柴志勇.基于SOPC的以太网实时数据采集系统设计与实现[J].计算机应用,2009(29):108-109.
MEI Da-cheng,CHAI Zhi-yong.Design and implementation of ethernet real-time data acquisition system based on SOPC[J].Journal of Computer Applications,2009(29):108-109.
[6]ADS8364 datasheet[EB/OL].[2006-08].http//www.ti.com.
[7]李明.基于SOPC的网络视频监控系统的设计与实现[D].大连:大连理工大学,2006.
[8]赵宇亮.基于SOPC技术的USB及以太网接口设计[D].哈尔滨:哈尔滨工程大学,2010.
[9]陈长胜,李大鹏,王建宇.基于Altera SOPC技术的嵌入式以太网终端设计[J].航空计算技术,2008,38(5):81-84.
CHEN Chang-sheng,LI Da-peng,WANG Jian-yu.Design of embedded ethernet node based on Altera SOPC technology[J].Aeronautical Computing Technique,2008,38(5):81-84.
[10]彭澄宇.FIR滤波器的SOPC实现[D].重庆:重庆大学,2006.