PCI-E图像采集卡的开发_第1页
PCI-E图像采集卡的开发_第2页
PCI-E图像采集卡的开发_第3页
PCI-E图像采集卡的开发_第4页
PCI-E图像采集卡的开发_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电子科技大学硕士学位论文PCI-E图像采集卡的开发姓名:吴夏风申请学位级别:硕士专业:信号与信息处理指导教师:丁庆生20090501摘要随着计算机科学和视频技术的广泛发展,数字图像采集在电子通信与信息处 理领域得到了广泛的应用。视频图像釆集卡作为计算机视频应用的前端设备,承 担着模拟视频信号向数字视频信号转换的任务,设计一种功能灵活,使用方便, 便于嵌入到系统中的视频信号采集电路具有重要的实用意义。本文首先介绍数字图像采集系统的发展现状和前景,提出了本次设计的目标: 完成基于PCI-E总线的图像采集卡设计。图像采集卡系统的基本构成,是以FPGA处理器为核心,控制外围的A/D数据采 集模块,SD

2、RAM数据缓冲模块及PCI-E数据传输模块。本文详细介绍了系统芯片的 选择及最终的方案设计。本文主要介绍了图像采集卡的FPGA内部程序结构。它主要分为数据采集模块, SDRAM读写控制模块和PCI-E控制模块。说明了A/D采集数据从接收到存储详细过 程,以及龙SDRAM读写状态机和PCI-E总线的操控。图像采集卡WDM驱动程序的开发也是4文介绍的重点。驱动程序控制着采集卡 的工作状态,并主导着采集卡的数据向PC传输。文章详细介绍了WDM驱动程序的开 发过程及工作流程。文章最后给出了FPGA程序验证结果及系统综合调试结果,对系统开发过程进 行了总结,并对采集卡的发展做出了展望。关键词:图像采集,

3、PCI-Express, FPGA, WDMIAbstractAbstractWith the developing of computer science and video technology, digital image acquisition is widely used in communication and signal processing field As the foreside of computer video equipment, digital image acquisition card has the task of conversion from analo

4、g video signal to digital image .It is significant to design an embedded image acquisition system, which is useful and convenientIn this dissertation, digital image acquisition system's actuality and future are presents at first. Designing an auto-adaptive high resolution image acquisition card

5、is the goal of this projectThe basic form of an image acquisition system is FPGA processor, A/D converter, memory, and the PCI/PCI-E brige. In this dissertation, the system design and the chips selection aie introduced.The programme in FPGA is very important in the design This complicated system con

6、tains data acquisition module, data storage module and data transimition module The most important thing is that making these modules work together and cooperatively.Developing the WDM driver is also very important The driver controlls the acquisition and the data transimition.The dissertation intro

7、duces the development of the driver as well as the working flow in detail.Finally, the results of FPGA simulating and system debugging are put forward at the end of this dissertation. And, the development of the image acquision is summerized, as well as the future view.Keywords: image acquisition, P

8、CI-Express, FPGA, SDRAM第一章引言第一章引言独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均己在论文中作了明确的 说明并表示谢意。签名,日期: 年 月曰关于论文使用授权的说明本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被査阅和借阅。本人授权电子科

9、技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印.缩印或扫描 等复制手段保存.汇编学位论文。(保密的学位论文在解密后应遵守此规定)签名8导师签名:d艮第一章引言1.1高分辨率图像采集系统简介图像与人们的生产生活息息相关,是人类获取和交换信息的主要来源,据统 计人类有80%以上的信息来自于图像。随着计算机及视频技术及硬件技术的发 展,图像采集在电子通信与信息处理领域得到了广泛的应用,例如数字化广播电 视、网络媒体、监控系统等等,视频图像采集卡作为计算机视频应用的重要设备, 承担着模拟信号向数字信号转换的任务,在现代媒体系统中占提着重要的位置。 设计一种功能灵活,使用方便

10、,便于嵌入到系统中的视频信号采集电路具有重要 的实用意义。图像采集系统包括图像采集、图像传输、图像存储、图像处理和图像分析等。 传统的图像采集系统是一种基于个人计算机(PC)的系统。图像采集卡部分负责图 像信号的获取、釆集和控制以及与计算机间的高速数据传输及相应的控制,PC机 部分完成图像信号的存储、显示等功能。无疑图像采集卡在图像采集系统中居于 核心地位。目前比较主流的几种PC视频接口是VGA接口、DVI接口和HDMI接口。相 对而言,VGA接口比较落后,但由于它仍然是目前最多厂商所支持的一个低标准, 所以,它的应用范围是最广泛的叭由于VGA接口输出模拟信号,在分辨率提高 的情况下,VGA信

11、号所显示的图像有明显的失真。DVI接口是一种数字视频接口,它的支持较高的视频分辨率。DVI接口特别 适于作为液晶显示器的视频信号输入,能够最大限度的发挥液晶显示器清晰度高 图像失真小的优势。但DVI接口比较大,影响了使用性能。HDMI接口是目前很新型的一款视频接口,它是DVI接口的升级版。除了输 出数字信号,支持较高分辨率以外,它还可以同时输出音频信号。并且HDMI 接口非常小巧,使用方便。但目前来说,HDMI接口价格偏贵。随着PCI总线的推出,现在的图像采集卡借助PCI总线的线性突发传输的特 点,可采用面向计算机存储器的图像采集方式,即模拟图像通过A/D转换器后, 先存于PCI总线产品自身的

12、缓冲器中(一般只需几K的容量)叫 当缓冲器满后 第二童系统的方案设计和组成直接把图像数据传输给计算机的物理存储器。因此电路设计较为简化、成本低、 采集速度快、数据传输流畅,基本满足24帧/s的图像釆集要求叭而随着PCI-Express总线的提出,又将数据传输的速率提升到一个新的台阶。 作为第三代高性能10总线,其总线结构采取了根本性的变革:并行总线变为串行 总线,引脚数大大地减少;点到点的互连。这些变革不仅提高了数据传输的速率, 而且大大地减少了电路设计的成本。将这种总线应用到视频采集卡中,不但能够 缓解数据吞吐速率不匹配的矛盾,还能够简化电路的设计。1.2本课题的目标和意义本课题的主要目的是

13、设计开发一款基于PCI-E总线的采集VGA信号的图像采 集卡。该卡能够实时的采集一台机器上输出的多种分辨率(640x480、800x600、 1024x768> 1280x1024、1600x1200)和不同刷新率下(60Hz, 72Hz, 75Hz, 85Hz) 的图像信号,并以尽可能高的速度送入电脑硬盘保存,图像量化位数达到24位。 目前国内外有很多实现该功能的采集卡,而且达到的性能指标也很高,并且集成 了大量的图像处理功能。但是,这些图像采集卡的价格也非常昂贵,限制了其在 国内的应用。所以,尽量降低图像采集卡的成本,也是我们研究的目标.该类型的图像采集卡,不光可以应用与教育视频及录

14、像的制作,而且可以直 接从网络上下载视频资源,制成光碟发售,具有一定的实用价值。1.3作者的主要工作本论文的主要工作是设计一个高分辨率图像采集系统系统,能根据需要实时 采集不同分辨率和刷新率下的电脑视频信号(VGA)图像,并通过PCIExpress总 线传入电脑连续存储和显示。作者的主要工作如下:1. 制定整个系统方案以及芯片的选型:2. 编写系统FPGA程序,完成了基于PCI-Express总线的采集卡驱动程序以及 上位机控制程序;3. 完成FPGA内部程序的调试及系统综合调试。第二章系统的方案设计和组成2.1图'象处理系统的基本组成图像处理系统一般由A/D转换模块,数字信号处理模块

15、,D/A转换模块以及 存储模块等几个主要部分组成,如图31所示。图像输入信号首先通过A/D转换 模块或解码模块,输入到信号处理模块,进行信号的实时采集和编解码操作,然 后把得到的数据暂存在外部存储模块中,根据实际需求对该采集获得的数据进行 各种所需的处理,这是信号处理系统的核心部分,最后把处理后的数据送给D/A 或编码模块,并控制它们的输出。2.2核心控制模块的选择方案近年来,随着微电子技术的迅猛发展和芯片制造工艺的提高,频率更高,性 能更强的DSP和FPGA不断涌现。与此同时,由于DSP和FPGA技术的大量采用, 图像采集与处理的硬件结构方面也发生了重大变化,它平行处理结构渐渐取代了 串行结

16、构,由单片DSP或FPGA处理器发展成多DSP或FPGA处理器系统,或 带阵列DSP和FPGA的高速处理系统。下面对DSP和FPGA做一个简单的比较。DSP作为可编程超大规模集成电路(VLSI)器件,是通过可下载的软件或固 件来实现扩展算法和数字信号处理功能的,其最典型的用途是实现FIR滤波器和 FFT算法.在硬件上,DSP最基本的构造单元是被称为MAC的乘加器,它通常 被集成在数据信道中,这使得指令周期时间可以跟硬件的算术周期时间相同。此 外,DSP芯片还有若干个独立的片存储器、ROM、RAM、并行功能单元、锁相 环(PLL)、振荡器、几条8位或16位的总线、时钟中断电路等。为满足无线便携

17、式器件无电保存数据的要求,DSP芯片还采用了诸如闪速存储器、铁电存储器等 技术。当前,大多数的DSP芯片采用改进的哈佛结构,即数据总线和地址总线相 互分离,使得处理指令和数据可以同时进行,提高了处理效率。另外还采用了流 水线技术,将取指、取操作数、执行等步骤的指令时间可以重叠起来,大大提髙 运算速度。FPGA指的是现场可编程门阵列,它的基本功能模块是由n输入的查找表, 存储数据的触发器等组成。将査找表和触发器用可编程的布线资源连接起来,就 可以实现不同的组合逻辑和时序逻辑。由于FPGA内部结构的特点,它可以很容 易的实现分布式的算法结构,这一点对实时视频信号处理十分有利。因为实时视 频信号处理

18、中通常都需要大量的并行运算,而这些并行运算往往需要大量的乘和 累加操作,而通过分布式的算术结构,FPGA可以有效地实现乘和累加操作。实时视频处理对系统性能的要求极高,因此几乎所有只具最简单功能的通用 DSP都不具备这项功能。可编程逻辑器件允许设计人员利用并行处理技术实现视 频信号处理算法,并且只需单个器件就能实现期望的性能。基于DSP的解决方案 通常需要在单板上嵌入许多DSP,以得到必需的处理能力,这无疑将增加程序资 源开销和数据存储器资源开销。FPGA现有的面向信号处理的工具和IP模块还比不上发展较为成熟的DSP所 拥有的工具和软件。这些综合因素形成了 FPGA的一个重大缺点:BDTI公司的

19、分 析表明,优化FPGA复杂信号处理功能所花费的时间是优化DSP的5倍。尽管存 在这种缺点,FPGA的巨大性能优势还是使其成为一些高端信号处理应用的技术选 择。根据以上比较,由于本系统要进行大规模的多通道的图像采集与处理,我们 采用FPGA作为核心控制模块。2.3高速视频AD的选择2.3.1高速视频AD的发展现状高速视频AD即为对电脑输出的VGA模拟图像信号进行采集和转换的器件。 3第二章系统的方案设计和组成随着数字视频技术的发展,系统对图像采集的速度和采集图像的质量提出了更高 的要求,技术复杂的视频AD芯片由此也得到了一定的发展。总的来看,视频AD 的发展是性能价格比不断提高的过程,它有以下

20、的现状何:1. 内部处理复杂,接口不断简化。2. 越来越高的转换速率。3. 实现对更高分辨率的采集。4. 低电压驱动、低功耗。2. 3. 2高速视频AD的组成于电视信号的采集不同,电脑图像采集的采样率更高,由此高速视频AD也 就孕育而生了。表31给出了不同分辨率下的像素速率,例如,XGA分辨率下需 要94.5MHZ像素速率,但是很多液晶面板刷新频率限制在75HZ,输出的像素频 率只能达到78.5MHZ,因此需要一个视频AD芯片进行转换。表21不同分辨率下的像素速度刷新率(Hz)像素速率(MHz)SVGA (800x600)7249.5007550.0008556.250XGA (1024x76

21、8)7075.0007578.7508594.500SXGA (1280x 1024)60108.00075135.00085157.500普通的视频AD采样芯片,其内部有一个模拟信号输入的可编程放大器PGA (program mable gain amplifier)对模拟信号进行放大,随后三个AD转换器对放大 的图像信号进行模数转换,一个锁相环(Phase-Locked Loop)用于产生像素时钟, 除外还有一个"display timing generator"模块,产生外部图像处理芯片所需要的各种 控制信号,如图32所示。其中RGB为模拟输入,I_HS为行频信号,I

22、_VS为场 频信号,RX:0, GX:0, BX:0为经过A/D变换后的8位数字信号,0 HS为输 出的行频信号,O.VS为输出场频信号,OCLK为输出的像素时钟由于在髙分辨率下的像素速度有可能高于AD转换器的最大采样速度,从而造成像素点遗失。大多数视频AD解决的方法是奇偶像素交替法。即以一半的像 素频率进行采样,在奇数帧采集到奇数点,偶数帧采集到偶数点,然后组合为一 幅图。例如,在94.5MHZ的XGA( 1024x768)分辨率,AD转换器工作在48MHz 下,这样采集到完整的一幅完整的图像是由实际的奇偶两帧怪像拼装而成的,这 也就需要没计者把这些数据储存在一个缓冲区中,提取时进行重新组合

23、。®:0:01 m m rl fl RGBO_HSO_VSO CLK图22视频AD的内部组成2.3.3几款常用的高速视频AD现在的AD市场上,主要有ADI, TI, Philips几个公司曲产品。它们使用方 便,功能强大,可靠性强。现在对这三个公司产品简单比较。AD988x系列是ADI公司的主力产品,AD9888和AD98884使用又最为广泛。 AD988X芯片拥有单(双)通道输入,采样宽度为8位,采样率最高可达205Msps, 最高能采集分辨率为2048x1536、刷新率为85 Hz的输入.对于分辨率高于 1600x1280、刷新率离于85 Hz的输入,因为像素率的两倍高于最高工作

24、频率速率 205MHz,根据采样定理,不能无失真的采样,所以此时使用奇偶交替采样法,即 在第一帧只采奇数点的像素,第二帧采偶数点的像素,在后期处理中组合拼接形 成一幅完整的图像,就可以实现采集高分辨率图像的目的。A/D的工作模式以及 采样时钟频率,RGB信号输岀模式等参数都是由内部的控制寄存器的值决定,可 以通过厂c总线进行设置和修改2刚。TI公司的THS8083支持RGB、YUV两种信号输入。它最髙支持1024 x 768 分辨率和80MHz的采样频率。输入为单通道,输出为双通道,采样宽度为8位。 通过THS8O83内部的锁相环(PLL),能进行频率检测,并能通过尸C对其内部 寄存器的配置,

25、使采样芯片自适应的根据行频来调整采样频率,范围为13-80MHZ, 还能编程控制输岀相位和时钟频率何。TI公司的TVP7000时他最新研制的一款视频AD,也支持RGB和YUV多种 输入,最高支持SXGA (1280x 1024), 75HZ的刷新频率,最高能到150MHZ的 采样频率。它有3通道输入,单通道输出,采样精度为10位。其他功能和THS8083 相剛戮SAA6713是philips公司的一款优秀的视频AD芯片,它不但支持RGB模式 的VGA输入,还支持DVI输入,最高分辨率达到SXGA (1280 x 1024),它有RGB 和DVI双通道输入,双通道输出,8位的采样宽度。内部带有锁

26、相环,能通过I2C 总线配置其采样频率和时钟输岀频率,能对色度和亮度型号进厅调节,有很好的 采样效果综上所述,各个公司的器件都有各自的优势和缺点,我们需要根据自己的需 要进行仔细筛选。AD9888它的采样率很高,釆样范围广,但是不支持YUV信号 输入;而THS8083支持多种输入,但釆样速率低;TVP7000支持较高的分辨率, 也有较高的采样精度,但是没有DVI数字视频接口; SAA6713具备了数字模拟接 口,但是支持分辨率较低,采样宽度低。表32列出了这几个誥件的主要参数。表22五种视频AD的参数比较器件名称采样精度 (BIT)最大采率(MSPS)最大分辨率模拟输入 接口数输入方式AD98

27、848140SXGA (1280x 1024)1RGBAD98888205QXGA (2048 x 1536)2RGBTHS8083880XGA (1024x768)1RGB/YUV/YCbCrTVP700010150SXGA (1280x 1024)3RGB/YUV/YCbCrSAA67138150SXGA (1280x 1024)1RGB / DVI由于我们的系统输入为RGB色度信号,需要高达1280x 1024分辨率的图像 显示和200MSPS的釆样速率,所以选择AD公司的AD9888芯片。2.4外部存储器的选择方案2.4.1 SRAM和DRAM的基础知识与比较SRAM是“Static

28、RAM (静态随机存储器)”的简称,之所以这样命名是因为当 数据被存入其中后不会消失(同DRAM动态随机存储器是不同,DRAM必须在一 定的时间内不停的刷新才能保持其中存储的数据)。一个SRAM单元通常由46只 晶体管组成,当这个SRAM单元被赋予0或者1的状态之后,它会保持这个状态 直到下次被赋予新的状态或者断电之后才会更改或者消失。SRAM的速度相对比 较快,而且比较省电,但是存储lbit的信息需要46只晶体管制造成本太高。DRAM比SRAM控制起来要麻烦得多,但同时也比SRAM便宜得多,而且, 由于每个存储单元只包含一个晶体管,所以,占用的物理空间小,在容量上也可 以做得更大。DRAM中

29、较常用的有SDRAM和DDR SDRAM:SDRAM指的是Synchronous DRAM (同步动态随机存储器),是目前使用最 为广泛及普通的一种存储器类型。就如其名字所示,它是同步妁,也就是其工作 速度与系统总线速度是同步的,工作时钟周期最小可为5ns。DDR SDRAM指的是Double Data Rate SDRAM (双倍数据率同步动态随机存 储器),是目前SDRAM的更新产品,DDR SDRAM的核心建立在SDRAM的基础 上,但在速度和容量上有了进一步的提高。相对于现在使用的SDRAM,理论上 DDR SDRAM存储器可提供双倍于SDRAM的速度,这样也将带来双倍的性能。 与SD

30、RAM 一样,DDR SDRAM也是与系统总线时钟同步的,不同点在于DDR SDRAM在时钟的上升沿与下降沿时都进行数据处理与传输,而SDRAM只在时钟 的上升沿读取数据,因此不需要提高时钟的频率就能加倍提高SDRAM的速度, 但控制相对复杂。2.4.2外部存储器的选择在图像采集系统中,最高分辨率要求达到1600x1200,而A/D转换器的量化 位数为8位,且分为RGB三个通道,因此,我们存储一帧图像至少需要的存储器 容量为:1600x1200x8x3 =46080000Bit = 5.49M Bytes 约5.5Mbyte。由于需要的容量太大,不可能存放在芯片内部的RAM中,所以必 须使用外

31、部存储器来解决。从系统时钟來考虑,目前,设计的系统时钟在100 166MHz之间,对于SRAM, SDRAM和DDR SDRAM,这个时钟都可以满足。所 以,时钟的限制可以忽略。从成本来考虑,在同等容量的存储器中,SRAM的成 本要比DRAM的成本高很多。从器件体积考虑,单片SRAM的容量很小,需要多 片来组合,这样体积就比采用DRAM的要大很多。从控制的复杂度来考虑,SRAM 的控制最简单,不需要刷新操作,其次是SDRAM,它的控制难点在于需要刷新操 作,控制最复杂的是DDR SDRAM,它在时钟的上升沿和下降沿都要进行数据传 输。综上所述,从单片容量,时钟,体积,控制复杂度等几方面综合考虑

32、,SDRAM 是最佳选择。它的优点是成本低,速度和体积也完全可以满足我们的要求,虽然 控制比SRAM要复杂一些,但现在都有成熟的解决方案,况且价格比SRAM便宜 很多,有效的降低了设计成本,因此设计选用SDRAMo由于DDR SDRAM时钟 过高,上升沿和下降沿都要进行数据采集,因此控制极为复杂,而SDR SDRAM 采用单沿触发,频率在100166MHz之间,有成熟的控制模块,而且价格比DDR SDRAM低,符合设计要求,最后选择使用SDR SDRAM。2.5 PCI-Express接口方案的选择2.5.1 PCI-Express 总线简介PCI-Express是第三代高性能10总线,在总线

33、结构上采取了根本性的变革,主 要体现在两个方面:一是由并行总线变为串行总线;而是采用点到点的互连。PCI-Expressl.O支持每条通路在每个方向上的数据传输率达2.5GBps,每字节 10位编码,这样两个方向的带宽可达0.5GBps,整个链路的总带宽等于0.5GBps 乘以所含的通路数。每条链路的通路数可根据具体要求裁剪,有效通路数有7种 可选,这样最高传输率可达16GBps,大大高于目前任何一种总线,可满足当前及 将来一段时间高速设备带宽要求。由于总线变为链路,引脚数大大减小,每引脚 的平均带宽大幅提升,有助于PCI-Express成本的降低。PCI-Express突破传统总线的另一个特

34、点是采用点到点的互连方法,每个设备 都由独立的链路连接,独享带宽,这是提高传输率的有效解决方案。PCI-Express总线结构将一条链路视为一条总线,从而从地址空间,配置机制 和软件上都保持与传统PCI总线的兼容。个PCI-Express设备占一条总线(链路), 所以在基于PCI-Express的计算机内,桥和总线的数目很多。传统PCI设备亦可在9电子科技大学硕士学位论文PCI-Express 平台上运行,通it PCI-Express 到 PCI 的桥,可引岀 PCI (or PCI-X) 总线,传统PCI设备挂在这样的总线上便可融入PCI-Express结构。2.5.2方案选择PCI-Ex

35、press总线接口主要有两种实现方案,一种是利用专用桥芯片来实现, 另外一种是通过FPGA内部程序模拟PCI-Express总线时序,实现与PC的连接。 下面分别比较这两种方案的优缺点。釆用专用桥芯片的优点是易于系统的开发,缩短开发周期,易于系统维护。 缺点在于会增加PCB面积,增加布线难度以及系统的硬件成本。而第二种方案采 用FPGA模拟PCI-Express总线,优点是减小了布局布线难度,降低了硬件成本。 但是程序实现极其复杂,如果选用现有的IP核,则PCI-Express IP核的实现并不 是太成熟,并且IP核价格不菲。所以最终决定采取专用芯片的方式来实现 PCI-Express 总线接

36、口。本设计根据桥的类型和桥的规模重点考虑以下几种桥芯片。如表3-3所示,PEX8311是一款PLX公司的PCI-Express与局部总线的桥接芯 片,该芯片垠大的优点是,局部总线控制简便,它的内部寄存器与许多PCI与局 部总线的桥接芯片的相同,如:PCI9054, PCI9656等,可以方便地用于扳卡的升 级,缺点就是引脚数太多,增加布局布线难度;PEX8114是一款PLX公司的 PCI-Express与PCI或PCI-X总线的桥接芯片,它的PCI-Express总线端是X4的结 构,能够达到高达lOGbps的数据传输率,但是在本设计中,如此高的数据率并不 能得到充分的利用,而且X 4的PCI

37、-Express接口增加了 PCB设计的难度:PEX8111, PEX8112和XI02000A都是PCI-Express与PCI的桥接芯片,且理想数据传输率都 为2.5Gbps,都能满足本设计中数据传输的要求,考虑成本和布板难度最终决定使 用PLX公司的PEX8111.表23儿种PCI-Express桥接芯片的比较器件名称厂商桥的规模桥的类型管脚数PEX8111PLX32bit 66MHz PCI BUS xl PCI Express BUS (2.5Gbps)PCI-Express to PCI161/144PEX8112PLX32bit 66MHz PCI BUSxl PCI Expre

38、ss BUS (2.5Gbps)PCI-Express to PCI161/144PEX8U4PLX64bit 66MHz PCI/PCI-X BUSPCI-Express to PCI256第三章FPGA程序模块设计x4 PCI Express BUS (lOGbps)PEX8311PLX32bit 66MHz Local BUS xl PCI Express BUS (2.5Gbps)PCI-Express to Generic local337X102000ATI32bit 66MHz PCI BUSxlPCI Express BUS (2.5Gbps)PCJ-Express to PC

39、I201/1752-6系统整体方案设计本设计中,选用Altera公司的EP1C12F324 FPGA作为数字信号处理核心芯片, 因为它有1.2万个逻辑单元(LE),249个具有多种模式的I/O 口,核心电压为1.5V, 低功耗,可以直接连接外围的各种接口器件,如AD转换器,SDRAM存储芯片等。 图像输入端的A/D或解码模块选用ADI公司的AD9888,因为该芯片能支持到 1600x1280分辨率下的图像采集,双通道输出,最高采样频率能达到205 MHz,符 合设计的要求。SDRAM选用现代公司的HY57V28820HCT-K,它是一款容量为 128M bytes,时钟频率最高支持133MHz

40、,有4个Bank的8位存储器,能存储2 帧以上1600x1280分辨率下的图像,满足设计要求。由于存在和计算机大量的数 据通信,我们选用了 XI的PCI-Express总线结构。它的理论速度能达到250MB/S, 并且计算机控制方便。为了降低设计难度,选用丁一款PC】到PCI-Express的桥接 芯片PLX公司的PEX8111,通过它能方便的实现PCI-Express总线到PCI总线的 转换,其中PCI-Express接口与PC相连,PCI接口与硬件相连,PCI总线时序由 FPGA内部程序实现,整体框图如图33所示。图23系统整体框图2.7本章总结本章通过大量的比较分析,详细介绍了数字信号处

41、理器,高速AD,外部存储 器,PCI-Express接口等图像采集卡系统核心模块的实现方案及芯片选择。最后给 出了图像采集卡系统的整体方案。#第三章FPGA程序模块设计第三章FPGA程序模块设计3. 1 FPGA 简介FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列, 它是在PAL、GAL> EPLD等可编程器件的基础上进一步发展的产物。它是作为专 用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不 足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA (Logic Cell Array)

42、这样一个新概念,内部包 括可配置逻辑模块CLB (Configurable Logic Block)>输出输入模块IOB (Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。FPGA可做其它全定制或半定制ASIC电路的中试样片。FPGA内部有丰富的触发器和I/O引脚。FPGA是ASIC中设计周期最短、开发费用最低、风险最小的器件之一。FPGA采用高速CHMOS I艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠

43、性的最佳选择之一。 目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA 公司的Cyclone系列等。3.1.1 EP1C12 简介Altera Cyclone FPGA是目前市场上性价比最优且价格最低的FPGA之一。器 件基于成本优化的全铜1.5V SRAM工艺,容量从2910至20060个逻辑单元,具 有多达294912bit嵌入RAM。Cyclone FPGA支持各种单端I/O标准,如LV1TL、 LVCMOS、PCI和SSTL-2/3,通过LVDS和RSDS标准提供多达129个通道的差 分I/O支持。每个LVDS通道高达640Mbpso Cyclone器

44、件具有双数据速率(DDR) SDRAM和FCRAM接口的专用电路。Cyclone FPGA中有两个锁相环(PLLs)提 供六个输出和层次时钟结构,以及复杂设计的时钟管理电路。系统设计中选用Cyclone EP1C12F324C8,主要因为本设计需要6000个左右的 逻辑单元(LE)和200个左右10 口与FPGA连接,而Cyclone EP1C12F324C8具 有12060个逻辑单元(LE), 239616 bits RAM, 2个锁相环(PLL)和249个可配 置10 口,正好满足设计要求。EP1C12中具有两个可编程锁相环(PLL)和八个全局时钟线,提供健全的时 钟管理和频率合成功能,实

45、现疑大的系统性能。EP1C12PLL具有多种高级功能, 如频率合成、可编程相移、可编程延迟和外部时钟输出。这些功能允许设计者管 理内部和外部系统时序。3.2 FPGA模块设计本系统中,FPGA程序实现了对图像采集及数据传输过程的控制。根据各个功 能的不同,大致可以分为六个模块。他们分别是AD9888数据采集模块,SDRAM 存储器读写模块,PCIMaster模块、PCISlave模块、I2C总线配置模块和仲裁模块 Arbitero除此之外还用到了 Altera自带的一些免费IP core ,如异步双口 FIFO, PLL倍频器和SDRAM Controller模块等,系统框图如图3-1所示:图

46、31 FPGA内部模块框图FIFO -s DlRIAIMl控制|«1|3.2.1 AD9888数据采集模块该模块的主要功能是接受AD9888传输来的图像RGB视频数据,并将数据实 时的送入FIFO中。它的工作时钟使用像素时钟信号,除了数据输入外,还有一些 FIFO控制信号及与SDRAM模块交互的信号。它的接口定义如图32所示:其中,dataclk为输入像素频率,RGB_A为经过AD转换后视频采样信号,hsync 为行频信号,vsync为场频信号,cmdjjc为电脑输入的控制信号,他主要通知 AD9888模块当前采集图像的分辨率和刷新频率,data_AD为输出的视频采样信号, call

47、_AD_rdreq为标志位,当一行信号数据已经在AD_FIFO中储存完毕时置位, AD_fifo_ack在SDRAM模块己经从AD_FIFO中读完一行数据的时置位,ckinv为 时钟翻转信号,其它的为FIFO控制信号和测试信号。具体工乍流程为:首先,当PC发起图像釆集后,AD9888模块接收从PC传来的控制信号 Cmdjjc,从中获取当前采集图像的分辨率,刷新频率等信息。然后,等待场频信号(vsync)有效,场频信号有效后,进入等待状态,等待 行频信号(hsync)有效后开始采集。随后,当行频信号有效后,打开计数器,(例如分辨率为800x600情况下,计 数器为800)向FIFO存储色度信号(

48、data_AD),计数到800个点后,一行图像数 据采集完毕,并全部送入FIFO,停止存储,计数器清零。最后,通知SDRAM模块读取数据,然后重复上面的操作,直到数据存储完 毕。RGB.AP3 .0 hsync vsync cmdj>cpi.0 datadkd3tt_ADp3 0X4).«irvsedwW.O AD.fifo.ick rrtHe ovtrADM 屮0 cldnv如Jed卩switch .abvs_tst(15.D15第三章FPGA程序模块设计#第三章FPGA程序模块设计图32 AD9888模块接口定义#第三章FPGA程序模块设计本系统核心部份工作的时钟频率为10

49、0MHz,进行图像数据采集时,分辨率和 刷新频率的不同,决定着像素点频率dataclk的不同,当分辨率或刷新率比较大时, 像素点频率可能大于100MHz,这时会出现采集不完整的问题。本文中采取了奇偶交错采样法解决这一问题。所谓奇偶交错采样法,即在第一 场图像中采集像素的奇数点,而在接下来一场中使用AD9888的ckinv信号,让 dataclk翻转,采集像素的偶数点,最后将采集来的两场图像数据传入上位机,由 上位机将数据组合成一帧完整的图像。由于像素频率dataclk与系统核心部份时钟100MHz不匹配,为了能保证图像 采集质量,采用了乒乓操作,即使用了两个FIFO, AD9888对一个FIF

50、O存数时, SDRAM从另一个FIFO取数,从而做到了输入无像素点遗漏。乒乓操作的具体原 理如图33所示。图3-3乒乓操作示意图输入的图像采集数据通过FIFO控制择单元,分时的被送到Al和Bl两个FIFO 中。例如在采集第一帧图像数据的时间内,数据流被缓存到A1模块中,同时将 B1模块中的数据取出,进行运算后存储到B2模块中,并将A2模块中的数据输出 SDRAM模块。在采集第二帧视频的时间内,输入的图像数据流缓存在B1模块中, 同时把A1模块中上次存储的数取出,进行运算后存储到A2模块中,并输出B2 模块中的数据到SDRAMoAD9888接口模块的FPGA内部程序流程图如图3-4:图3-4AD

51、9888图接口模块程序流图3.2.2 SDRAM存储器读写模块该模块是数据缓存模块,它负责把从AD9888接口模块写入AD_FIFO中的图 像数据信号读出,存入外部SDRAM中。一帧数据储存完后,它再将SDRAM中 的图像数据依次取出,放入到PCI_FIF0中,等待PCIMaster模块的调用。它的接 口如图35所示:时钟elk 100为100MHz, AD_data为AD9888写入AD_FIFO中的图像数据, data_RGB为从SDRAM中读入的图像数据,call_AD_rdreq在一行信号数据已经 在AD_FIFO中储存完毕后置位,AD_fifb_ack在SDRAM模块已经从AD_FI

52、FO中 读完一行数据后置位。cmd_pc是从上位机传入的控制信号,包含有当前采集分辨 率,刷新频率等信息。pci_rd_ack为PCIMaster模块已经从PCI_FIFO中读完一行 数据的标志,pci rd en为已经将一行数据存入PCI_FIFO中的标志,ram_data为 输入SDRAM的数据,ram_addr为选取的SDRAM存储地址,emd, cmdack, dm 为SDRAM的控制信号,其它信号为AD_FIFO和PCI_FIFO的控制信号。如00 mAO_da>P3. (uu_Roep3 Ji caT/D.eg AO.rdtfr0y cmdcpiJn cmdxA pc.wmr

53、ftd«(W JJac.ogrrvnqups 心 AD.MoR AD.rtrtq rU.ld.fUUe Q ©nP.JJ J dau.u 尸rttfopi 如 阳R srw n poi.E.S test P图3-5 SDRAM读写模块输入输出引脚定义本模块的工作流程为:首先,从PCIMaster模块读入cmd_pc命令信号,确定SDRAM内需要的行数 和每行的点数。然后,初始化SDRAM,硬件上电后需要200us才能稳定工作,在等待过后配 置SDRAM。主要是通过地址线ramaddr写SDRAM的内部寄存器(mode_register)> 配置读写模式。本系统采用突发

54、读写,输出数据以页为单位。然后等待数个延时。配置完成后,进行读写SDRAM的操作。进行写操作时首先待call_AD_rdreq置位后,向SDRAM传输写(WRITE)命 令,同时在地址线上输出写入的BANK和地址,这样对应的SDRAM存储区域才 解除锁定状态,可以被访问。随后,打开计数器,进行连续的写入。当写完一行 数据,如1024个点时,使用PRECHAGE命令中止本次读写,同时使AD_fifo_ack 有效并使地址计数器自加1024,然后进行REFRESH后等待第二行数据写入。重 复上面的操作,直到写完一帧的数据。随后,程序进入读入状态,地址计数器清零。读入时,还是向SDRAM发出 读取(

55、READ)命令,同时打开地址计数器,传入选去的BANK和初始地址。等 待2个时钟周期后,开始读取数据。直到一行数据全部存入PCI_FIFO之后,使用 PRECHARGE命令,终止本行的读写,同时使pci_rd_en有效允许PCIMaster模块 从PCI_FIF 0读出数据,地址计数器自加1024,然后进行REFRESH,等待pci_rd_ack 有效后将第二行数据读入。重复上面的操作,直到读入一帧图像的数据,程序进 入等待状态。SDRAM的读写操作均采用有限状态机编写,主状态分为等待(idle), 初始配置(config_ram),连续写入(write_ram),连续读出(read_ram)

56、和读写结 17第三章FPGA程序模块设计束(read end)四个状态,具体的状态转移图如36所示:图3-6 SRAM模块状态转移图3.2.3尸C配置模块"C模块模拟了一个尸C总线时序,承担着配置AD9888芯片寄存器的任务。 通过不断根据分辨率配置AD9888,实现了对不通分辨率图像的实时采集。本系统中,VGA信号采集芯片AD9888的内部部分寄存器:时钟分频器(01H PLL Div MSB和02HPLLDivLSB)、本地晶体振荡器的电压电流输出控制寄存 器(03H VCO/CPMP)、相位调整寄存器(04HPhase Adjust)、通道模式选择寄 存器(15H ChannalMode )都需要通过尸C总线配置。因此 我们在FPGA中模 拟了 "C总线主控设备的时序,图37为/2C模块状态转移图。第三章FPGA程序模块设计#第三章FPGA程序模块设计idleCmdjK(28=lStopflag=lStopL state 模拟當束信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论