基于FPGA的数据采集及显示
摘 要: 在电力系统谐波分析中,模数转换(ADC)电路是影响系统检测性能的主要环节之一。基于NiosII的谐波分析系统具有逻辑控制能力强、信号处理实时性高、系统抗干扰能力强等特点。以Altera公司的DE2开发板为平台,实现了采样电路的硬件设计;在Quartus II 中用Verilog HDL语言完成了与FPGA的接口设计,并最终实现VGA显示。
关键词: ADC;NiosII;FPGA;谐波分析;VGA
谐波是电力系统的一大公害,消除谐波污染,把谐波含量控制在允许范围内,已经成为主管部门和用电单位的共同奋斗目标。而要消除电网中的谐波,首先就要对谐波进行准确测量,谐波测量工作已经越来越引起人们的关注[1]。A/D转换电路是电力系统谐波测量中必不可少的一个重要环节,是电力系统谐波测量系统前端的核心。
FPGA因具有强大的逻辑控制能力、高速的运算能力、灵活的可编程性,已经越来越多的被用于各种数字系统。在FPGA内部一般都内嵌有可配置的高速RAM、PLL、LVDS、LVTTL以及硬件乘法累加器等DSP模块。用FPGA模块来实现数字信号处理可以很好地解决并行和顺序性的矛盾,直至速度问题,而且其灵活的可配置性,使得FPGA构成的DSP系统非常易于修改,易于测试及硬件升级。在QuartusII开发软件中用Verilog HDL硬件描述语言能够很容易进行逻辑电路设计,并且在FPGA中可以实现用硬件进行配置,可有效降低软件运行时间和软件设计复杂程度[2]。因此,FPGA非常适合在电力系统谐波测量系统中作为核心器件。
本文中采样电路选用AD73360,在QuartusII中用Verilog HDL硬件描述语言实现了AD73360及VGA与FPGA的接口设计,最后通过实验验证了设计的正确性。
1 系统总体方案
系统以Altera公司的DE2开发板为平台,系统框图如图1所示。信号采集单元核心器件为电压、电流互感器。互感器将待测高压、大电流信号线性转换为合适的微弱电压信号,该微弱电压信号经信号调理电路放大为合适的电压信号,经低通滤波电路滤除高于2 500 Hz的高频噪声,然后送到A/D转换单元进行A/D转换,转换后形成数字信号存储到存储器中,再送到FFT处理单元进行快速傅里叶变换,变换后得到的数据再储存到存储器中,再进行一系列相关运算,如:谐波电压含有量、谐波电流含有量、各次谐波电压含有率、各次谐波电流含有率等,最后经VGA进行显示出波形和相关数据。
2 AD73360的配置[3]
2.1 A/D电路设计
A/D电路如图2所示。A/D电路可分为以下三个部分。
(1)电源部分。AD73360有5 V和3 V两种工作模式,为了能够与FPGA实现直接连接,采用3 V供电(FPGA接口电平为3.3 V左右),这样无需外加电平转换电路,可以简化电路设计、降低系统功耗、节约成本。
(2)模拟输入部分。AD73360有6个通道,每个通道又分为正端VINP和负端VINN,每个通道都可以由AD73360内部控制寄存器配置为差分输入和单端输入两种方式,本设计采用单端交流耦合输入方式。
(3)与FPGA接口部分。AD73360采用六线制串行接口,能很方便与外部电路实现接口连接,为了实现AD73360与FPGA的连接,就需要在FPGA中设计一个控制器,在Quartus II中设计的A/D控制器AD_controller如图3所示。
2.2 AD73360的配置
AD73360为可编程A/D转换器,每次启动系统都要对其进行配置。对AD73360的配置有两种方式,一种方法是用程序来实现,另外一种方法是利用FPGA具有很强的逻辑控制能力,用硬件实现对AD73360的配置,后者虽然会占用一些硬件资源,但是这样可以大大简化系统程序设计,节约软件运行时间,因此本设计采用后者。系统上电或者手动复位后,AD73360被复位,在复位状态下,AD73360的八个控制字寄存器被初始化为00H,同时AD_controller也被复位到初始状态,SE被置1,从而AD73360串口进入工作状态。当复位信号变为高时,AD73360进入编程模式,该模式下,AD73360数字端接口时序如图4所示。在编程模式下,AD73360的SDOFS引脚以主时钟频率的1/2048的频率产生输出数据标志信号,当控制寄存器被正确配置后,将产生与设定采样频率同频的SDOFS标志信号,每个输出标志信号以后SDO引脚将连续输出16位随机数据,这时候的数据是随机产生的,不是有效的A/D转换数据。与此同时,在SCLK时钟的下降沿,若SDIFS标志位有效,则AD73360于下一个SCLK下降沿开始读取SDI引脚数据,并存到AD73360中的串行寄存器。
撤销复位信号后,AD_controller开始对AD73360进行配置,配置过程如图4所示。系统复位后标志信号GO被置1,经过三个SCLK时钟周期后GO被置0,此时把第一个配置数据赋给SD,标志信号GO保持一个SCLK时钟周期后,又被置1。当
- 用NiosII搭建的固态盘设备系统(03-23)
- 基于μC/OS2II的LED显示屏控制器(08-14)
- 基于Nios II的RTEMS嵌入式开发模式的搭建(03-01)
- NIOS II常用函数整理(06-06)
- NIosII软处理器快速入门(06-06)
- 基于FPGA的片上可编程系统(SOPC)设计之:典型实例-基于NIOS II处理器的数字钟设计(06-05)