本发明针对电力系统中对于一些微弱信号的采集和监测设计了一种基于大规模现场可编程逻辑器件(FPGA),采用AD7606芯片,实现16位高速串行模数转换,为测量数据的实时性和准确性提供有力保障。
背景技术:
随着全球电网持续的发展,电力线监测、继电保护产品不断地更新换代并改变着设计模式,在电力线路测量和保护系统中,需要对多相输配电网络的大量电流和电压通道进行同步采样,对于现场测量到微弱的电压电流信号,必须先经过A/D(模/数)转换,变成数字信号,才能送入计算机进行相应的处理,从而实现对系统的控制。而现在多数是以单片机或CPU作为控制核心,尽管其编程简便,控制灵活,但是速度慢,控制周期长却成为影响系统高速性的重要因素,单片机的运行速度极大的限制了对AD高速性能的利用。
技术实现要素:
针对现有技术中存在的上述问题,本发明设计了一种以FPGA(EP4CE55F23I7)为控制核心,采用8通道16位高精度的AD7606进行数据采集,通过设计正确的AD时序来提高采集数据的速度,AD7606和FPGA接口模式为高速串行接口,将8个通道的实时电压值经过AD转换成16位二进制数,然后发送给FPGA进行后续的处理。整个软件的设计基于QuarterⅡ平台,使用Verilog语言进行编程,并且本次设计遵循AD各项硬件指标。
为了提高AD采样的速度,本发明采用如下的技术方案:一种基于FPGA的高速AD采集的设计方法,其特征在于:
以FPGA芯片为控制核心,采用8通道16位高精度的AD7606进行数据采集,通过设计正确的AD时序来提高采集数据的速度,AD7606和FPGA接口模式为高速串行接口,将8个通道的实时电压值经过AD转换成16位二进制数,然后发送给FPGA进行后续的处理。
本发明利用高集成度EP4CE55F23I7配合16位高精度8通道AD7606采集数据。
本发明采用AD7606的高速串行接口传输数据,nP/S/BSEL接3.3V高电平,将RANGE接口接地,表示AD输入电压值处于-5V至+5V之间,并且把Busy和Firstdata接口置空。AD7606有三种数字接口,分别是字节模式,并行模式以及串行模式,采用AD7606的高速串行接口,将nP/S/BSEL引脚接3.3V的高电平,其余的DB0-DB6和DB9-DB15口分别接地,将CONVA和CONVB连接在一起,表示同步采样。
本发明设计的AD7606时序里面,一等待完AD转换时间,就将CS和SCLK置低电平,即开始读取数据。AD7606有两个串行数据输出引脚分别是DoutA和DoutB,本发明通过双Dout线路回读数据,用双Dout线路在AD7606上读取八个同步转换结果,这种情况下使用64个时钟沿访问AD7606的数据。设计的AD7606时序里面,将每个采样间隔减少。
有益效果:本发明将FPGA和8通道AD7606结合在一起,采用AD高速串行接口,通过改变AD7606的时序时间来缩短其采样速度,节约了数据采集的时间,为后续对数据的处理起到至关重要的作用。
本发明通过不违背AD芯片的相关要求,尽可能的缩短时序时间来加快采样速率,和传统的单片机或者CPU作为控制芯片配合AD进行采样相比,FPGA+AD7606的数据采集系统不仅采样速度快,而且控制周期短,大大减少了前期数据采集的时间,具有开发周期短、灵活性强、通用能力好、易于开发、扩展等优点。
附图说明
图1是本发明实施例的流程框图。
图2是本发明实施例的FPGA和AD7606的接线图。
图3是本发明实施例的AD7606时序设计图。
具体实施方式
以下结合附图和具体实施例对本发明创造的技术方案做进一步的说明。
本发明基于FPGA的高速AD采集的设计方法,包含三个部分,首先是硬件平台的搭建,将EP4CE55F23I7型号的FPGA和8通道的AD7606构成一个数据采集系统(DAS)。在QuarterⅡ平台下,将编译好的Verilog语言用Jtag下载到FPGA里面,通过QuarterⅡ自带的SignalTap逻辑分析仪实时抓取采集的数据,分析处理。本实施例的基于FPGA的高速AD采集的设计方法,包含以下几点:
(1)FPGA和AD7606数据采集系统:采用8通道数据采集系统集成16位双极性同步采样SAR-AD7606,配合Altera公司生产的型号EP4CE55F23I7FPGA芯片。整个软件的设计基于QuarterⅡ平台,使用Verilog语言进行编程,并且本次设计遵循AD各项硬件指标。
(2)AD7606引脚设置问题:将RANGE接口接地,表示AD输入处于-5V至+5V之间,把busy和Firstdata接口不接。AD7606有三种数字接口,本发明采用高速串行接口(nP/S/BSEL=1),通过串行接口让FPGA从AD7606回读数据。
(3)设计AD7606时序的问题:本发明时钟频率是50MHZ,CONVAB是FPGA给AD7606的启动信号,下降沿有效,表示开始启动AD7606采样,设置t1为20个时钟周期,即等待20个时钟的时间,t2设置为2个时钟周期,表示开始启动AD7606的时间,t3为200个时钟周期,即4us的时间,这是AD硬件要求的模数转换时间,转换完成以后,CS和SCLK立刻置低电平,CS和SCLK信号用来传输AD7606数据,AD7606有两个串行数据输出引脚分别是DoutA和DoutB,本发明通过双Dout线路回读数据,对于8通道的AD7606而言,通道V1至V4的转换结果首先出现在DoutA上,通道V5至V8的转换结果首先出现在DoutB上,CS下降沿使得数据输出线路DoutA和DoutB脱离三态,SCLK上升沿将随后的所有数据位逐个送至串行数据输出DoutA和DoutB,本发明将CS输入在整个串行读取操作中保持低电平,如图3所示用双Dout线路在AD7606上读取八个同步转换结果,这种情况下使用64个时钟沿访问AD7606的数据,本发明将t4设置为64个时钟周期,t5设置为2个时钟周期。即把图3所示的t1和t5时间缩短,本发明设置t1为20个时钟周期,t5为2个时钟周期,在不影响AD硬件要求的同时,还可以再将t1和t5时间缩短。
如图1所示,是本实施例的流程框图。图2是本实施例的FPGA和AD7606的接线图,将AD7606里面的引脚RANGE接地,把Busy和Firstdata接口不接。AD7606有三种数字接口,分别是字节模式,并行模式以及串行模式,本发明采用高速串行接口,将nP/S/BSEL引脚接3.3V的高电平,其余的DB0-DB6和DB9-DB15口分别接地,将CONVA和CONVB连接在一起,表示同步采样。
图3是本实施例的AD7606时序设计图。本发明所用的时钟频率是50MHZ,采用Verilog语言,定义输入CONVAB为ad_convab,输入CS为ad_cs,SCLK为ad_sclk,AD7606的复位信号定义为ad_reset,并且还定义一个16位的计数器i,定义两个输出口为douta和doutb,首先在软件里一开始设置上电复位程序,并且将ad_convab,ad_cs,ad_sclk设置为高电平,根据AD硬件要求CONVAB下降沿有效,表示开始启动AD7606,所以在ad_convab下降之前先设置等待20个时钟周期,当ad_convab变为低电平两个时钟周期以后,拉高ad_convab,表示开始执行AD转换,由于AD7606的转换时间是4us,因此等待ad_busy200个时钟周期,转换完成以后,ad_cs和ad_sclk立刻置低电平,因为CS和SCLK信号用来传输AD7606数据,CS下降沿使得数据输出线路DoutA和DoutB脱离三态,SCLK上升沿将随后的所有数据位逐个送至串行数据输出DoutA和DoutB,本发明中将ad_cs在整个串行读取操作中保持低电平,同时ad_sclk每隔一个时钟反转一次,当ad_sclk在上升沿的时候读取信号,读取信号的时候采用移位寄存的方式存储,douta传给FPGAV1至V4通道的16位二进制数,doutb传给FPGA V5至V8的16位二进制数,当64个时钟周期结束以后,等待2个时钟周期进入下一轮的采样,重复步骤。为了能让每个间隔尽可能小,即采样间隔时间变短,采样速度变快,如图3所示,可以继续修改等待时间t5和t1。当发送给FPGA时候,还可以用SignalTap逻辑分析仪实时抓取douta和doutb引脚的数据,分析数据的准确性。
虽然本发明创造已较好地实施例公开如上,但它们并不是用来限定本发明创造,任何熟习此技艺者,在不脱离本发明创造之精神和范围内,自当可作各种变化或润饰,因此本发明创造的保护范围应当以本申请的权利要求保护范围所界定的为准。