一种基于FPGA+ADS130E08多路同步数据采集系统设计
2015-07-27张文俊汪相坤成印沙王洪亮李绪勇河南许继智能科技股份有限公司河南许昌461000
张文俊,汪相坤,成印沙,王洪亮,李绪勇(河南许继智能科技股份有限公司,河南 许昌 461000)
一种基于FPGA+ADS130E08多路同步数据采集系统设计
张文俊,汪相坤,成印沙,王洪亮,李绪勇
(河南许继智能科技股份有限公司,河南许昌461000)
摘要:随着电网系统的持续发展,电力自动化系统逐渐的对配电侧电压等级的综保测控装置提出了AD数据的高精度、动作可靠要求。本设计方案在CPU(8313)和ADS130E08之间设计了一个利用可编程逻辑器件FPGA自带的核心模块实现的一个模块和FIFO缓冲区,接收后的数据存入FIFO缓冲区,这样的目的是解决主频300MHz以上高速CPU与低速外设的矛盾。
关键词:FPGA;ADS130E08;模数转换器模块;FIFO
综保装置通过铜芯电缆采集多路模拟量信号,或多或少的存在各种干扰信号.配电侧电压等级的装置采用逐次逼近型ADC来实现数据的采集,采样的数据进行实时补偿后近似的等同于同步数据采样数据。这些方案采样速度一般、控制要求低,所以一通道都需要基于负反馈运放的抗混叠滤波器.所以,实现起来元器件多,外设多,分立的元器件会引入干扰,而去除干扰需在软件上占用CPU的资源。本文提一种使ADS130E08的AD芯片实现多路同步数据采集的实现方案。
1 硬件系统的分析与设计
ADS130E08是一款8通道、同步采样、16位、三角积分(ΔΣ)模数转换器(ADC),此转换器带有内置可编程增益放大器(PGA),内部基准,和一个外部振荡器接口。ADS130E08每通道上提供一个灵活的输入多路复用器,此多路复用器可独立连接至内部生成的信号来实现测试、温度、和故障检测。
本设计中ADS130E08的设计如图1:
图1中全部8路的采样通道配置的一样,做成了通用型设计,从其中一路采样通道可以计算出采样的电压范围为压差0.8伏,每个通道增益设置为2,参考电压为2.5伏,为了提高采样精度,使用了一个低噪声高精度运放OPA211;
2 系统的软件设计
ADS130E08通过一个串行接口输出采样数据,DIN为输入数据端口,DOUT为输出数据端口,DRDY为有效数据准备就绪端口为,SCLK为输出串行时钟.ADS130E08串行输出时序图如图2所示,DRDY是有效数据就绪信号.它在第一个SCLK下降沿返回高电平,低电平表示一帧数据的开始,如果CS信号为低电平,这3个信号就有效,变换为高电平,4个信号均为初始的高阻状态.在本设计中。CPU初始化后把CS置位成高电平。无采样有效数据传输情况,DRDY信号输出高电平.当有采样数据要输出的时候,DRDY信号置位为低电平.低电平宽度近似等于1个SCLK周期。当没有输出时.SCLK置位低电平,DRDY从低电平变置位高电平后.SCLK时钟信号上升沿后数据输出,SCLK占用16x6+24个周期.由于SCLK频率不高,在用CPU的串行接口接收数据时.CPU接收120位得有效数据,接收这样一帧数据大约需要96us的时间,而CPU通过异步FlFO得到数据.8313控制器CPU总线速度很快.例如读取一个字节数据约100 ns.读走一帧数据约为100nsxl5=1.5us(cpu总线宽度设计为16位,小于19位数据,所以在读取FIFO巾数据时.把采样标号锁存到一个暂存寄存器中,读取采样数据后再读取通道号,所以读取全部数据需要12次)。这样做提高了CPU的利用效率。
FPGA中使用的FIFO和串并转换模块作为高速CPU和ADS130E08之间的外置软模块.FPGA中串并转换模块输出的串行采样数据转换成19位的并行数据(采样数据占16位,采样标占3位)写入FlFO.如此,可编程逻辑器件FPGA自带的核心模块实现的一个模块和FIFO缓冲区一旦接收完成采样的有效的数据便向通过一个常用端口输出中断信号于CPU,CPU内部中断程序中读出采样有效数据(附加采样的标号)。通知CPU读取FIF0中的数据。这样CPU可以和外部低速的FIFO的在速度上配合完整.有利于高速CPU有更大的效率去处理其他的实时任务。本设计中的FIFO是利用ISE10.1中的参数化的IP核在FPGA芯片的实现。以上数据均做成模块化,以方便适时调整;
3 结束语
本文利用ADS130E08设计一个通用的多路数据采集系统,通过利用可编程逻辑器件FPGA自带的核心模块实现的一个模块和FIFO缓冲区,系统采样硬件电路的设计大大简化,同时方便并且减轻了高速CPU多任务处理采样数据的负担,CPU不在直接用串行接口接收ADS130E08芯片输出的数据,只需把ADC输出的每帧数据存入可编程逻辑器件FPGA自带的核心模块实现的一个模块和FIFO缓冲区,并上送一个中断信号,在主CPU的中断子程序中快速读出采样数据。提高了采样精度,同时提高了整个系统的实时性和准确性。
参考文献:
[1]Freescale semiconductor.MPC8313 DataSheet[EB/OL].(2007) [2010-07].
[2]Texas Instruments Inc 16bit 8KSPS Sampling ANALOG TO DIAITALCONVERTER ADS130E08 2001.
[3]褚振勇,翁木云.FPGA设计及应用[M].西安:西安电子科技大学出版社,2002.