摘 要:在电力系统谐波分析中,模数转换(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。当标志信号GO=0时,AD_controller进入下一状态检测SDOFS,当检测到SDOFS由1变为0时,进入写数据状态,从SD最高位开始由高到低逐位往SDI端口写数据,每个SCLK时钟周期写一位,直到写完16位数据,AD73360根据这16位数据的前8位数据针对把后8位数据写入相应AD73360的相应控制寄存器,写完16位数据后,系统把SDIFS引脚设为高阻状态,并产生一个SCLK周期的END(对END置1)信号,作为一个控制字配置完成的标志。系统检测到END标志信号后,在未对所有控制字进行有效配置的情况下,把下一个控制字赋给PDATA,并产生一个SCLK周期的GO(把GO置0)标志信号,系统检测到GO标志信号后,再检测SDOFS,在SDOFS为1的下一个SCLK开始通过SDI端口向AD73360写下一个控制字,直到8个控制字都被写入AD73360,配置完成后,AD73360进入数据模式,开始进行A/D转换。完成配置任务后AD_controller结束配置状态,把SDI设为高阻状态,并开始接收SDO引脚的数据,并把接收到的串行数据转换成16位并行数据[4]。
在QuartusII开发工具中,用Verilog HDL语言完成了对AD73360的配置,并进行了功能仿真,功能仿真结果如图5所示。
3 VGA显示
VGA(Video Graphics Array)是IBM在1987年随PS/2机一起推出的一种视频传输标准,具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛的应用。随着电子技术的发展,VGA接口出现在很多嵌入式平台上,用于图像信息的实时显示等。Altera公司提供的DE2开发板上有一个VGA接口,极大地方便了利用VGA实时显示。
3.1 VGA显示原理及时序
通用VGA显示卡系统主要由控制电路、显示缓存区和视频BIOS程序三个部分组成。控制电路主要完成时序发生、显示缓冲区数据操作、主时钟选择和D/A转换等功能;显示缓冲区提供显示数据缓存空间;视频BIOS作为控制程序固化在显示卡的ROM中。VGA接口为显示器提供两类信号,一类是数据信号,一类是控制信号。数据信号包括红、绿、蓝信号,简称RGB信号,控制信号包括水平同步信号和垂直同步信号。输出不同分辨率时,水平同步信号和垂直同步信号的频率也不同。
要实现VGA显示就要解决数据来源、数据存储、时序实现等问题,其中关键还是如何实现VGA时序。VGA的标准参考显示时序如图6所示。行时序和帧时序都需要产生同步脉冲、显示后沿、显示时序段和显示前沿四个部分。几种常用模式的时序参数如表1所示。
本系统集成了前端采集、中间处理和后续显示功能模块,充分利用了FPGA的逻辑资源和NiosII处理器的强大功能,较好地实现了预期目标。与同类系统相比,具有开发时间短、程序可移植性强和成本低等优势。该系统作为电力系统谐波分析系统的一部分,在数据采集及预处理方面已经取得较好的效果,后期将进一步研究基于FPGA内部逻辑结构的FFT实用算法。
参考文献
[1] 肖雁鸿,毛筱,等.电力系统谐波测量方法综述[J].电网技术,2002,26(6):61-64.
[2] 吴茂存.基于FPGA的电力系统谐波检测[D].济南:山东科技大学,2002.
[3] Analog Devices,Inc.AD73360 Data Sheet.1999.
[4] 孙国银.AD73360在电量测量系统中的应用[J].中国测试技术,2007,23(2):70-73.
[5] 潘松.SOPC技术实用教程[M].北京:清华大学出版社2005.
[6] 张志刚.FPGA与SOPC设计教程[M].西安:西安电子科技大学出版社,2007