实时图像采集系统的FPGA逻辑设计与实现

2013-12-17 10:42戚秀真
电子科技 2013年4期
关键词:双口命令端口

戚秀真,周 颖

(1.长安大学信息工程学院,陕西西安 710064;2.陕西邮电职业技术学院计算机系,陕西咸阳 712000)

随着数字多媒体技术的不断发展,数字图像处理技术被广泛应用于可视电话、电视会议、监控系统等各种民用、商业及工业生产领域中。通常的数字图像处理系统主要包括两个部分:图像采集部分和图像处理部分;图像采集部分主要完成图像的数字化和图像缓存等,图像处理部分主要实现一些复杂的算法[1]。

1 系统结构描述

系统采用Philips半导体公司2000年推出的多制式TV解码器SAA7114H,将CCD输出的各种制式全电视信号转换为数字信号,再由FPGA(Field Programmable Gate Array)产生地址总线和控制总线将16位数字信号存入片内高速缓存双口RAM(Random Access Memory)中,然后再由 SDRAM(Synchronous Dynamic Random Access Memory)控制器将16位数据存入大容量缓存SDRAM中,随后再根据系统需要从SDRAM中取出数据进行处理[2]。

2 模拟视频信号的数字化

使用的CCD输出的是PAL制式的模拟复合视频信号(CVBS),因此需要进行A/D转换。视频解码芯片(SAA7114H)能将CVBS信号转换成YUV(4∶2∶2)格式的数字信号,其解码器是基于行锁定时钟解码,能完成PAL、NTSC、SECAM的3种彩色制式解码,使其符合ITU601彩色分量标准。SAA7114H提供6路模拟输入端,内设有模拟源选择器,能从CCD、TV或VCR源中输入复合视频信号CVBS或S端子的Y/C信号。图像端口(I端口)能输出8位和16位(用主控端HPD[7:0]扩展)数据流,以及与其相伴的基准和支持信息。在I端口所传送的信号有:IPD[7:0]为I端口数据信号;ICLK为连续基准时钟信号;IGPH为行基准输出信号;IGPV为场基准输出信号;IDQ为I端口数据有效旗标信号;ITRI为端口控制,可以使I端口切换到三态;IGP1和IGP0为I端口通用输出信号。图2为图像端口和扩展端口16位模式时序图。输出信号格式YUV(4∶2∶2)。

3 地址总线的产生

模拟视频信号的数字化之后产生源源不断的数据流,为把这些数据存入缓存,需要对每一个数据进行编址,同时还要生成读/写等控制信号。图像数据的顺序化处理方法的不同,编址方法也不同。为便于说明,假定处理的图像大小为512×512像素。

3.1 图像数据的顺序化处理方法

为节约存储空间,一种方法是对二维图像数据的存储地址中的行、列地址不进行独立生成,而是将图像以行优先的顺序进行线性化处理,使之成为一维的数据,即第2行的图像数据紧接着第1行的数据,接下来是第3行的数据,依次类推,形成统一的像素地址。这样像素地址=帧起始地址+像素偏移地址。这种方法节约存储空间,但是不便于像素寻址。另一种方法是将图像数据按二维数组方式存储,即生成独立的行、列地址。这样,像素地址=帧起始地址+行地址+像素偏移地址。这种图像数据编址方法便于寻址,但是可能会浪费存储单元为代价。

3.2 地址信号的产生

对于经过顺序化处理的图像数据,根据每一帧的帧起始地址以及每一像素出现的先后,为每一像素生成一个唯一的存储器地址。该地址由两部分组成:即该帧图像的在存储空间中的起始位置,称为帧起始地址,以及该像素在对应的一帧图像中出现的顺序位置,称为像素偏移地址。在系统内部,为便于对图像信息进行管理以及考虑到具体存储设备的限制,规定图像帧起始地址以1 kB为单位。

4 高速缓存

通常构成高速缓存的方案有3种[3]:

图3 地址信号产生逻辑

(1)FIFO(先进先出)方式。FIFO存储器就象数据管道一样,数据从管道的一头流入、从另一头流出,先进入的数据先流出。FIFO具有两套数据线而无地址线,可在其一端写操作而在另一端读操作,数据在其中顺序移动,因而能够达到很高的传输速度和效率,且由于省去了地址线而占用较少的FPGA资源。缺点是只能顺序读写数据,因而显得比较呆板。

(2)双口RAM方式。双口RAM具有两套独立的数据、地址和控制总线,因而可从两个端口同时读写而互不干扰,并可将采样数据从一个端口写入,从另一个端口读出。双口RAM也能达到很高的传输速度,并且具有随机存取的优点。

(3)高速SRAM切换方式。高速SRAM只有一套数据、地址和控制总线,可通过三态缓冲门分别接不同设备上。这种方式的优点是SRAM可随机存取,缺点是切换控制电路比较复杂,且只能不同设备分时读写。

系统选用双口RAM作为高速缓存。读写双口RAM时,使用了不同的时钟,以提高系统性能。

5 大容量缓存

由于图像采集系统要求至少要缓存16帧图像,因此需要大容量缓存来暂存图像数据。系统用8×106×16 bit的 SDRAM 作为大容量缓存[4]。

5.1 SDRAM

SDRAM有多种工作模式,内部操作是一个复杂的状态机。SDRAM的信号可分成:(1)控制信号。片选、同步时钟、时钟有效、行/列地址选择、读写选择、数据有效等。(2)地址。行/列地址、行/列地址选择控制、Bank块地址。(3)数据。双向信号,受数据有效信号控制。

SDRAM内部以Bank为组织,行、列地址共同寻址,这在很大程度上减少了地址位,提高器件的实用性,但使寻址变得复杂。由于SDRAM为了提高存储容量,采用硅片电容来存储信息,随着时间的推移,必须给电容重新充电才能保持电容里的数据信息,即“刷新”,它的存在使得SDRAM的应用变得复杂,带来了设计难度。

SDRAM支持数据猝发传输方式,提高了数据处理的速度。SDRAM内部的操作有很多种输入命令:模式寄存器设置、预充、激活、读/写、自动刷新、自我刷新、猝发突停、空操作等。根据这些命令,SDRAM内部的状态会进行转移,这些状态可以分为:空闲、模式寄存器设置、预充、激活、读/写、刷新、节电等。

5.2 SDRAM控制器模块设计

SDRAM控制器设计采用自顶向下模块化的设计方法,共分为4个模块[5]:SDRAM控制器顶层模块、控制接口模块、命令模块和数据通路模块,SDRAM控制器顶层模块初始化并把其余3个模块有机结合。控制接口模块接受主机发送来的命令和地址信号,解码命令并发送请求给命令模块;命令模块接受控制接口模块发送的命令和地址信号,产生合适的SDRAM操作命令;数据通路模块在执行SDRAM读写操作时控制数据的流向。图4所示为SDRAM控制器的模块框图。

图4 SDRAM控制器的模块框图

控制接口模块解码并寄存主机发送的命令,把解码后的空闲、写、读、刷新、充电和模式设置命令和地址信号送给命令模块。控制接口模块包含一个10 bit的递减刷新计数器和产生周期性刷新命令的命令模块。计数器计数到零后发出刷新请求,直至命令模块响应请求。命令模块响应刷新请求后,刷新计数器的值重新加载初始值。

数据通路模块提供SDRAM与主机之间的数据通路。写SDRAM时数据从DATAIN端口经该模块寄存后送给SDRAM;读SDRAM时数据从DATAOUT端口输出。

命令模块接收控制接口模块输入的解码后的命令和刷新控制单元发出的刷新请求命令,产生合适的SDRAM操作命令。该模块包含一个简单的仲裁逻辑单元,仲裁主接口和刷新单元发出的命令,刷新请求的优先级最高。当刷新单元和主接口同时发出命令时,仲裁单元挂起主接口的命令直到刷新操作执行完毕;若主接口发出的命令正在执行时,仲裁单元挂起刷新命令直至正在处理的操作执行结束。令模块同时执行地址信号的分时复用操作,满足SDRAM对地址信号的时序要求。输出信号OE用于控制数据通路的开断。

仲裁单元接收控制接口模块发出的命令后,命令产生单元根据接收到的命令产生合适的SDRAM控制信号。命令产生单元基于3个移位寄存器产生正确的时序:第一个寄存器控制SDRAM激活命令的时序;第二个寄存器控制SDRAM读写时的时序;第三个用于产生命令延时,以便决定所请求的命令是否执行完毕。

6 结束语

系统采用Altera的FPGA EP1C6实现,帧频、像素时钟自动适应。采集最大图像640×512,图像大小任意可调。系统实验使用了30 MHz像素时钟,采集了256×320数字图像,帧频187帧/s。通过对特定的图像进行采集和分析,系统采集无误码。

[1]朱磊,陆亨立.基于ASIC设计的图像采集系统的实现[J].微计算机信息:测控自动化,2005,21(2):160 -161.

[2]刘虹,黄涛.基于FPGA的高速图像采集系统的研究与实现[J].工业控制计算机,2004,14(8):18 -19.

[3]鲍晓宇,施克仁,洪玉萍,等.高速数据采集系统中高速缓存与海量缓存的实现[J].国外电子元器件,2003(7):4-7.

[4]杨鹏林,张晓飞.FPGA控制实现图像系统视频图像采集[J].计算机测量与控制,2003(11):451 -454.

[5]刘德良,姚春莲,李炜,等.多分辨率图像实时采集系统的FPGA逻辑设计[J].电子技术应用,2003(3):69-71.

猜你喜欢
双口命令端口
只听主人的命令
一种端口故障的解决方案
双口RAM在航天伺服系统中的应用
移防命令下达后
端口阻塞与优先级
Matching mechanism analysis on an adaptive cycle engine
系统网络端口安全防护
这是人民的命令
双口RAM读写正确性自动测试的有限状态机控制器设计方法
卫星三端口DC-DC变换器技术综述