微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 利用FPGA实现外设通信接口之: 利用FPGA实现A/D、D/A转换器接口

利用FPGA实现外设通信接口之: 利用FPGA实现A/D、D/A转换器接口

时间:06-05 来源:互联网 点击:

10.5利用FPGA实现A/D、D/A转换器接口

10.5.1A/D、D/A转换器接口的特点

A/D、D/A转换器是FPGA系统设计中的常用器件,经常用来实现模拟信号和数字信号的相互转换。根据应用场合的不同,A/D、D/A转换芯片的性能指标参数差别比较大,因此接口格式也无法统一。

10.5.2A/D、D/A转换器接口的实现方法

1.标准接口的A/D、D/A转换器与FPGA的接口设计

在一些典型的应用领域,需要处理的信号单一,芯片厂家设计的芯片一般会遵循一些行业标准接口。例如音频信号处理领域,很多厂家的音频A/D、D/A转换芯片都支持SPI接口。

FPGA实现这些标准的接口,如SPI接口,可以通过网络或者FPGA厂家获得一些参考代码。FPGA芯片的生产厂家会在其开发工具软件里面集成一些常用接口的IP核,设计者可以免费使用,降低了开发难度。

另外,有一些开源的网站,如http://www.opencores.org等,也提供了免费的接口IP核的源代码下载服务。设计者可以下载代码后,经过仿真验证或者适当修改后,应用到自己的系统中去。

2.特殊接口的A/D、D/A转换器与FPGA的接口设计

还有很多信号处理领域,如通信系统设计领域,需要处理的信号很复杂。这种情况下,A/D、D/A的芯片厂家一般会根据处理的精度和采样的速度要求来设计接口时序。

设计者要根据厂家提供的芯片手册给出的时序来设计接口。

有些高速的A/D或者D/A芯片会采用LVDS差分信号电平标准。这样的情况下,FPGA的管脚也要采用对应的LVDS模式。

需要注意的是,FPGA上每一组LVDS管脚是成对出现的,不是任意分组的。而且,如果一个BANK被设定为LVDS,那么这个BANK的所有管脚都是LVDS模式的。

10.5.3AD/DA转换器接口的注意事项

1.选择正确的时钟采样边沿

对于一个边沿采样的数据采集模块,经常需要确定采用上升沿还是下降沿来采样数据。那么,选择的依据就是保证数据采样的稳定、可靠。

为了保证同步,FPGA的采样时钟一般采用A/D转换芯片的输出时钟,这个时钟和数据是同步的。这个时钟和数据的关系与A/D转换芯片的具体型号有关。

图10.20A/D芯片的部分输出信号时序关系

例如,在如图10.20所示的时序图中,每当时钟的上升沿数据产生变化。那么这样的情况下,在时钟的下降沿的时候,数据是最稳定的,适合采样。

2.选择适合的同步头检测方法

A/D芯片的输出数据一般都是打包数据,以数据帧的格式输出。数据帧的同步格式分为两种:外同步模式和内同步模式。

图10.21A/D芯片的部分输出信号时序关系

外同步模式:是指除了时钟和数据信号外,还有同步指示信号。同步指示信号可以是脉冲信号,指示一帧有效数据的开始;也可以是电平信号,指示一帧有效数据的持续时间。

内同步模式:是指输出信号中只有时钟和数据信号,同步头隐藏在数据之中,如表10.7所示是ITU656标准的数字视频信号。

表10.7 ITU656标准的数字视频信号

帧结构

BlankingPeriod

80

10

TimingReferenceCode

FF

00

00

SAV

720PixelsYUV4:2:2Data

Cb0

Y0

Cr0

Y1

Cb2

Y2

Cr718

Y719

TimingReferenceCode

FF

00

00

EAV

BlankingPeriod

80

10

其中,“FF0000EAV”和“FF0000SAV”就是帧同步头,其作用也是用来指示有效数据开始和结束。其格式为:“FF0000XY”,XY的定义如下。

SAV_EVEN=8H80

EAV_EVEN=8H9D

SAV_ODD=8HC7

EAV_ODD=8HDA

3.选择有效的缓存策略

在数据采集系统中,缓存结构的设计直接影响系统的性能。对于简单的设计,可以采用一个FIFO或者双口RAM来实现缓存。如果单缓存不能满足系统的性能要求,可以采用乒乓结构的缓存。

在有些特殊情况下,采集模块后面数据处理模块的处理时间不固定,和数据内容相关。这时候采用乒乓结构的缓存策略就不能满足要求了,因为乒乓结构的切换时间一般是固定的,而且和数据内容是无关的。

还有一种比乒乓结构更复杂的缓存管理策略,那就是三缓存环形结构。如图10.22所示,这样的结构虽然比乒乓结构提供了更好的缓存性能,但是管理的复杂度大大提高了,系统的延迟也增加了。

图10.22三缓存的环形缓存区示意图

无论是单缓存,双缓存还是三缓存结构,只要能满足系统的实时采集要求就是有效的缓存策略。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top