logo资料库

基于FPGA的高速图像采集系统设计.docx

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
基于FPGA的高速图像采集系统设计
基于 FPGA 的高速图像采集系统设计 时间:2009-03-30 10:22:58 来源:单片机与嵌入式系统 作者:重庆邮电大学 王海滨 杨晓非 引 言 在低速的数据采集系统中,往往采用单片机或者 DSP 进行控制;而对于图像采集这种高速数据采集的场合,这种方案就不能 满足需要。因此这种方案极大浪费了单片机或 DSP 的端口资源且灵活性差;若改用串口方式收集数据,则一方面降低了数据采 集的速度,另一方面极大地耗费 CPU 的资源。本系统采用 FPGA 作为数据采集的主控单元,全部控制逻辑由硬件完成,速度快、 成本低、灵活性强。为了增加缓冲功能,系统在 FPGA 外扩展了 256Mb 的 RAM,不仅增大了缓冲区容量,而且极大地降低了 读写频率,有效地减轻了上位机 CPU 的负担。在图像数据接口中,比较常见的是 VGA、PCI—Express,而这些接口扩展性差、 成本高。本系统采用高速的 USB 接口作为与上位机通信的端口,速度快、易安装、灵活性强。 1 系统框图 系统框图如图 1 所示。FPGA 控制单元采用 A1tera 公司 Cyclone II 系列的 EP2C5F256C6,主要由 4 个部分组成——主控模 块、CMOS 传感器接口、RAM 控制器以及 EZ—USB 接口控制器。传感器接口负责完成 SCCB 时序控制,RAM 控制器用于实现 RAM 读写与刷新操作的时序,USB 接口模块完成主控模块与 EZ—USB 之间的数据读写;而主控模块负责对从 EZ—USB 部分 接收过来的上位机命令进行解析,解析完命令后产生相应的信号控制各个对应模块,如 CMOS 传感器传输的图像格式、RAM 的 读写方式、突发长度等。 2 OV7620 模块设计 图像传感器采用 OV7620,接口图如图 2 所示。该传感器功能强大,提供多种数据格式的输出,自动消除白噪声,白平衡、 色彩饱和度、色调控制、窗口大小等均可通过内部的 SCCB 控制线进行设置。OV7620 属于 CMOS 彩色图像传感器。它支持连 续和隔行两种扫描方式,VGA 与 QVGA 两种图像格式;最高像素为 664×492,帧速率为 30fps;数据格式包括 YUV、YCrCb、 RGB 三种。0V7620 支持 SCCB 设置模式和自动加载默认设置模式,其选择由 SCCB 控制。本系统只需要支持 SCCB 模式,因 此在设计的时候将 SBB 接地。上电后 FP—GA 通过 SCCB 总线对 OV7620 进行设置,系统也可接受上位机发过来命令,设置其 工作模式。SCCB 总线时序类似于 I2C 总线时序,SIO 一 O 相当于 SDA,SIO 一 1 相当于 SCL。OV7620 工作于从模式,在写 寄存器的过程中先发送 OV7620 的 ID 地址,然后发送写数据的目的寄存器地址,最后发送要写入的数据。
OV7620 功能寄存器的地址为 0x00~0x7C,通过设置相应的寄存器,可以使它工作于不同的模式。例如,设置 OV7620 为连续扫描、RGB 原始数据 16 位输出方式,需要设置寄存器 0x12、Oxl3、Ox20、Ox28 分别为 OX2D、0x01、Ox02、0x20。 另外,图像输出的关键问题是帧同步,VO7620 传感器中 VSYNc、HSYNC、HREF、PCLK 分别表示垂直同步、水平同步、参 考信号和像素输出同步,可以通过它们之间的配合使用,定位出每帧输出图像的起始位和结束位。 3 RAM 时序控制模块 RAM 控制器接口主要用于实现 RAM 的基本操作时序,如充电(刷新)时序、模式设置时序、读写时序等。读写命令由主控模 块发出,由控制器具体执行。系统采用 Hy—nix 公司的 HY57V561620F(L)T(P),可实现 256 Mb 的大容量数据存储。 时序控制器由一个有限状态机(FSM)实现,其状态转换图如图 3 所示。加电复位 200μs 后,对 RAM 的所有块进行预充电, 充电操作的引脚电平如表 1 所列。充电完成后经 tRP 刷新所有块,延迟 tRFC 后进入模式设置状态。在模式设置状态中,需要对 RAS 延迟、突发长度等进行设置,延迟 tMRD 后进入空闲状态,等待主控单元的读写命令。在空闲状态中,每隔 64 ms 需要对 RAM 中所有行刷新。在本设计中定时刷新模块设计成一个计数器,计数脉冲选自控制器本身的时钟。由于 RAM 要求两次刷新 的最大时间间隔不超过 64 ms,假设系统的时钟频率为 1O0MHz,则时钟周期约为 0.01μs,并且要在 64 ms 内要完成全部 8 192 行的刷新,所以最大计数应该为 781 次(64 ms/8192/0.01μs)。系统采用 700 次的计数脉冲产生刷新请求。 RAM 控制器的读写地址与读写控制信号均由主控单元产生,主控单元结构框图如图 4 所示。PLL 用于产生 RAM 控 制器和缓冲区的时钟(系统设计为 100 MHz);CMD 命令解析模块实现对上位机发送过来的命令解析并产生相应的控制信号,如 CMOS 传感器控制、RAM 突发长度控制等。为了降低读写 RAM 的频率,系统设计了一个 8×16 位的 FIFO。当 8 个像素的数
据存入 FIFO 后,FIFO 向 RAM 控制器发送写请求(W_req);与此同时,写地址发生器产生写地址,由 RAM 控制器产生写数据 的时序。读写地址发生器是一个递增的计数器,每次的读写地址是上次的地址加 BL(突发长度)。由于 PCLK 的最高频率可达 9.2 MHz(640×480×30),而 RAM 的时钟频率是 100 MHz,每次写入一个像素的数据需要 5 个时钟周期(考虑 RAS 延迟),这样写 操作耗费整个时钟周期的 50%;加入 FIF0 后,读写的突发长度均是 8,可降低耗费的时钟周期至 10%左右。 4 EZ—USB 传输控制器 CY7C68013 是 Cypress 公司的 EZ—USB FX2 系列芯片,引脚连接图如图 5 所示。该系列芯片集成了 USB2.O 收发器、串 行接口引擎(SIE)、带 8.5 KB 片上 RAM 的增强型 8501、16 KB 的 RAM、4 KB 的 FIFO 存储器、I/O 口、数据总线、地址总 线和通用可编程接口(GPIF);共有 3 种接口模式——端口模式、从属 FIFO 接口模式和 GPIF 接口模式。在端口模式下,所有 I /O 引脚都可作为 805l 的通用 I/O 口,作为最基本的数据传输模式,其数据传输主要由固件程序完成,需要 CPU 的参与,因 此数据传输速率比较低。在从属 FIFO 接口模式下,外部逻辑或外部处理器可以直接与 FX2 端点 FIFO 相连。GPIF 接口模式使 用 PORTB 和 PORTD 构成通向 4 个 FX2 端点 FIF0(EP2、EP4、EP6 和 EP8)的 16 位数据接口。GPIF 作为内部的主控制器与 FIFO 直接相连,并产生用户可编程的控制信号与外部接口进行通信。后两种模式数据的传输通过执行 USB 本身的协议来完成, 微处理器不参与数据传输,从而使数据的传输速率大大地提高。 本方案采用从 FIFO 方式,由 FPGA 提供读写时钟,EZ—USB 的 CPU 不参与数据传输。其中端点 FIFO 相当于 FPGA 的外部 RAM,数据的读写分别由读写控制器完成。如果数据从 EZ_USB 读入到 FPGA 中,首先要检测 CON 控制线的状态,若 有数据要读,分配 FIFOADR=00,使 FIFO 指针指向输出端点,使能 SLOE 使之数据输出,然后采样数据线上的数据,读得的 数据送入命令解析模块解析;如果是数据从 FPGA 写入到 EZ_USB 中,则设置 FIFOADR 使之指向输入端点,拉低 SLWR,将 内部数据总线接到外部数据总线上,这样就完成了一次数据的写入。 除上述设计外还需要对 EZ_USB 模块本身进行设置,这部分属于固件开发部分。Cypress 公司为固件开发提供了一个固件库
和固件框架,都是在集成开发环境下开发的,固件库提供了一些常量、数据结构和函数来简化用户对芯片的使用。将代码在 Keil C51 环境中进行编译;编译通过后,将固件代码下载到单片机中。这部分主要完成相关寄存器的设置和波形文件的编写。 结 语 通过以上设计很好地解决了高速数据在采样、传输过程中的瓶颈,并以很短的时延真正实现了高速图像数据的采集。由于其 低成本、易安装的特性,拥有广阔的市场前景,可以应用于电话会议、远程医疗和远程教学等需要高清图像传输的领域。本设 计的创新点在于,它适应了不同的图像数据的应用需求,实现了多种速率的读写模式,可以是实时的突发长度读写和高速的全 页读写。
分享到:
收藏