DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1430|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-12 16:31:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
        10.5  利用FPGA实现A/D、D/A转换器接口

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

        A/D、D/A转换器是FPGA系统设计中的常用器件,经常用来实现模拟信号和数字信号的相互转换。根据应用场合的不同,A/D、D/A转换芯片的性能指标参数差别比较大,因此接口格式也无法统一。
         
        10.5.2  A/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.3  AD/DA转换器接口的注意事项

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

        对于一个边沿采样的数据采集模块,经常需要确定采用上升沿还是下降沿来采样数据。那么,选择的依据就是保证数据采样的稳定、可靠。
         
        为了保证同步,FPGA的采样时钟一般采用A/D转换芯片的输出时钟,这个时钟和数据是同步的。这个时钟和数据的关系与A/D转换芯片的具体型号有关。
         
       

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

         
        例如,在如图10.20所示的时序图中,每当时钟的上升沿数据产生变化。那么这样的情况下,在时钟的下降沿的时候,数据是最稳定的,适合采样。
         
        2.选择适合的同步头检测方法

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

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

         
        外同步模式:是指除了时钟和数据信号外,还有同步指示信号。同步指示信号可以是脉冲信号,指示一帧有效数据的开始;也可以是电平信号,指示一帧有效数据的持续时间。
         
        内同步模式:是指输出信号中只有时钟和数据信号,同步头隐藏在数据之中,如表10.7所示是ITU656标准的数字视频信号。
         
        表10.7 ITU656标准的数字视频信号
                                                                        帧  结  构
                       
                                                                        Blanking Period
                       
                                                                        …
                       
                                                                        80
                       
                                                                        10
                       
                                                                        Timing Reference Code
                       
                                                                        FF
                       
                                                                        00
                       
                                                                        00
                       
                                                                        SAV
                       
                                                                        720 Pixels YUV 4:2:2 Data
                       
                                                                        Cb0
                       
                                                                        Y0
                       
                                                                        Cr0
                       
                                                                        Y1
                       
                                                                        Cb2
                       
                                                                        Y2
                       
                                                                        …
                       
                                                                        Cr718
                       
                                                                        Y719
                       
                                                                        Timing Reference Code
                       
                                                                        FF
                       
                                                                        00
                       
                                                                        00
                       
                                                                        EAV
                       
                                                                        Blanking Period
                       
                                                                        80
                       
                                                                        10
                       
                                                                        …
                       
         
        其中,“FF 00 00 EAV”和“FF 00 00 SAV”就是帧同步头,其作用也是用来指示有效数据开始和结束。其格式为:“FF 00 00 XY”,XY的定义如下。
        SAV_EVEN=8'H80
        EAV_EVEN=8'H9D
        SAV_ODD =8'HC7
        EAV_ODD =8'HDA
         
        3.选择有效的缓存策略

        在数据采集系统中,缓存结构的设计直接影响系统的性能。对于简单的设计,可以采用一个FIFO或者双口RAM来实现缓存。如果单缓存不能满足系统的性能要求,可以采用乒乓结构的缓存。
         
        在有些特殊情况下,采集模块后面数据处理模块的处理时间不固定,和数据内容相关。这时候采用乒乓结构的缓存策略就不能满足要求了,因为乒乓结构的切换时间一般是固定的,而且和数据内容是无关的。
         
        还有一种比乒乓结构更复杂的缓存管理策略,那就是三缓存环形结构。如图10.22所示,这样的结构虽然比乒乓结构提供了更好的缓存性能,但是管理的复杂度大大提高了,系统的延迟也增加了。
       

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

         
        无论是单缓存,双缓存还是三缓存结构,只要能满足系统的实时采集要求就是有效的缓存策略。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-8-2 21:16 , 耗时 0.089751 秒, 22 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表