>
首页 » 技术文章 » 基于FPGA与SDRAM的数字电视信号采集系统的设计与实现

基于FPGA与SDRAM的数字电视信号采集系统的设计与实现

作者:杭州国芯科技有限公司 梁骏 浙江工业大学 徐红  时间:2005-08-19 20:55  来源:本站原创

:本文为数字电视系统开发的需要实现了基于FPGASDRAM的数字信号采集系统。SDRAM可以提供大容量的存储空间。FPGA提供优秀的系统适应能力。该方案通过计算机并口实现FPGA与计算机的通信。

关键词FPGASDRAM;采集;数字电视

引言

在数字电视系统的设计,开发与调试过程中通常需要对数字化的电视信号进行采集与分析。虽然使用逻辑分析仪可以部分实现此项要求,但是高性能的逻辑分析仪价格昂贵,而且存取深度不足限制了对于海量数字电视信号的分析能力。尽管采用图像采集卡也可以方便地采集到大量的模拟电视图像,但是图像采集卡通常只能保存有效图像内容,行场同步信号将被丢失。而且采集卡使用自身的ADC对模拟电视信号进行采集,其性能与数字电视系统的真实环境存在差异。本文采用SDRAM作为外部存储器实现的大容量数字信号采集系统采集到真实的数字电视信号。

1 SDRAM接口状态转移图

2 上电序列

系统设计

本文实现的数字电视信号采集系统由一块FPGA与一块外挂的32比特SDRAM构成。FPGA设计灵活,修改方便。基于FPGA的设计经过修改可以移植到不同的工作环境。FPGA内的采集系统分为数据采集、数据缓冲、SDRAM接口和PC接口四大部分。数字化的电视信号通过数据采集模块被采集到FPGA内,并进行位宽调整等数据预处理,然后使用数据缓冲模块汇集批量的数据后通过SDRAM接口存入外挂的SDRAM芯片,最后使用PC接口将数据读入到计算机内进行后处理。

数据采集与缓冲

根据ITU601标准量化的数字电视信号包含一组8比特的亮度信号,一组8比特的色差信号和一组2比特的同步信号,还有一条时钟信号。同步信号包含场同步与行同步,分别指示场消隐期和行消隐期。信号采用简单的线性PCM编码方式。亮度信号的取样频率定为13.5MHz。在422格式中,每个色差信号取样数为亮度信号的一半,取样频率定为6.75 MHz。为了采集完整的电视信号需要每一个时钟采集亮度、色差与同步共18比特数据。

数据采集模块使用前端电视信号解码芯片的输出时钟作为采样时钟,对亮度、色差及行场同步信号进行采样并调整成与SDRAM总线相同的32比特数据。如果SDRAM的容量足够大,系统可以只是简单地将每次18比特数据填充至32比特以简化设计。如果SDRAM容量有限,可以将16次采集的288比特数据调整成932比特的数据以充分利用SDRAM存储空间。还可以去除电视行场同步期间的无效数据以节省SDRAM空间。采集模块在开始采集后等待一场电视信号开始后才开始采集,保证存入SDRAM的数据可以构成完整的电视图像,有效地利用SDRAM存储空间。当SDRAM空间被数据填满时,系统自动停止数据采集。这样采集的数据量大小完全由可配置的SDRAM容量大小决定。通过增加SDRAM可以方便地扩充系统容量。

数据缓冲模块实现跨时钟域的数据准备与数据传递工作。由于数据采集模块工作在13.5 MHz或者27 MHz的电视信号采样频率上,而SDRAM接口模块工作在高速时钟上。为了避免跨越时钟域可能导致的亚稳态问题,数据采集模块与SDRAM接口模块必须使用FIFO进行缓冲与数据传递。数据缓冲模块采用一个16个字,每个字长32比特的双时钟、双端口的FIFO作为存储单元。当开始采集数据时将FIFO复位,然后数据采集模块每采集一个32比特的数据就将其写入FIFO。当FIFO内的数据达到16个后通知SDRAM接口模块进行读写。由于采用了FIFO进行时钟域间的数据传递,输入模块的时钟与后端的工作时钟没有任何联系,便于灵活地配置采样时钟。当用于采集频率更高,数据量更大的场合时,应适当加大FIFO字深,以防溢出。

SDRAM接口设计

SDRAM接口模块是设计的核心。SDRAM容量大,但是命令多,操作复杂。SDRAM的命令由RAS_nCAS_nWE_n构成,分别表示行选择、列选择与读写控制。当每一次只写入一个字时,SDRAM必须使用至少3个命令,带宽利用率低于33%。为了充分利用SDRAM的特点,本文采用连续写入模式来减少SDRAM的命令开销,提高SDRAM带宽的利用率。连续写入16个字只需要18个时钟,带宽利用率提高到88.9% 。因为FPGAPC通信的带宽很低,因此每一次只需读出一个字就可以了。根据系统工作需要,SDRAM接口模块只提供必需的连续16个写、单独1个读的2种操作接口,简化了设计。 

SDRAM接口模块控制SDRAM的命令与时序。为了实现高效的SDRAM存取,提高SDRAM总线的利用率,SDRAM接口模块采用108MHz的高速时钟。当得到数据存取模块的读FIFO要求后,向SDRAM连续写入16个字,当得到PC接口模块的读SDRAM请求后读出1个字,其他时间保证SDRAM进行刷新工作,以免数据丢失。

由于SDRAM是易失性存储器,需要保证在60ms内对SDRAM内的数据进行刷新操作,否则SDRAM内的数据将会丢失。由于系统采用了高速SDRAM访问时钟,而且采用连续写入16个数据的模式,SDRAM总线的带宽利用率最高只有12.5%,当从SDRAM读出数据时的总线带宽利用率就更低了,大量时间SDRAM处于空闲状态。因此可以让SDRAM在空闲状态进行数据刷新工作,当有数据读写要求时退出刷新操作,进入读/写操作,其状态转移图如图1所示。一个完整的写入操作执行以下SDRAM命令序列:ACTIVENOPWRITE,连续15NOPPRECHARGEREFRESH。一个完整的读出操作执行以下SDRAM命令序列:ACTIVENOPREADPRECHARGEREFRESH

上电序列是SDRAM特有的操作。SDRAM在上电后进入不定态,为了让SDRAM进入确定的状态必须进行以下的上电序列操作:保持至少100s的延时,期间除了INHI比特和NOP命令外不能有其他命令;在一个NOP命令后施加PRECHARGE命令;接着施加2REFRESH命令;最后施加LMS命令设置SDRAM工作模式。本文采用如图2所示的上电序列。

数据传输与后处理

存储在SDRAM中的数据需要传输到计算机中进行下一步的数据提取等再处理工作。由于此项工作没有实时性的要求,所以采用简单的低速并口接口实现PCFPGA的通信。当PC发出一个读的逻辑地址时,接口模块将其低2位的地址保留,其余高位地址发送给SDRAM接口模块转换为SDRAM的块地址,行地址与列地址、并同时向SDRAM接口发出读命令。当读出32比特数据后,根据保留的低2位地址选择出一个8比特数据,然后传输给PC。由于可能存在同时读写SDRAM的请求,所以采用一个仲裁器对SDRAM的访问要求进行仲裁。优先满足SDRAM写入请求,在写入操作结束后再响应读出请求。

数据后处理在PC里通过软件进行。软件与硬件配合使用减少了修改硬件的风险,提高了系统的可维护性和可升级性。硬件系统采集到的是每一个采样点的数据,并不区分数据是否在消隐期等。通过后期软件处理将数字化的电视信号根据行场结构提取出具有720×576可见窗口的有效数据,并根据仿真要求安排亮度与色度信号的排列格式。当应用于不同场合进行数据采集时,只要修改数据后处理部分的软件和FPGA内的数据采集模块就可以实现系统的移植,而不需要改动硬件设计。

结语

本系统采用Stratix系列EP1S30F780C7型号FPGA8M×32bitSDRAM。采用verilog语言实现FPGA的编程。整个采集系统使用了2851个逻辑单元。

当符合ITU601标准的数字电视信号的时钟频率为13.5MHz,数据为18比特,其中8比特亮度信号,8比特色度信号,1比特行同步信号和1比特场同步信号。一场电视信号的数据量约是0.637MB。项目开发的算法分析需要采集连续24场的数据。采用8MBSDRAM就可以保证存储容量。该系统能够完整不失真地采集连续12场的数字电视信号。采集的电视信号用于芯片降噪、去隔行和画质增强等算法分析与仿真中。

当需要进一步扩大采集容量时,可以简单地通过扩展SDRAM容量来实现。本系统是面向数字电视采集应用开发的,如果前端增加DAC就可以实现对模拟信号的采集。由于主控部分在FPGA中实现,只需对系统的数据采集部分的位宽等进行相应的修改就可以适应不同的应用。如果使用USB2.01394等高速总线接口实现与PC机的数据传输,该系统还可以脱离SDRAM容量的限制,实现实时采集。

相关推荐

没有退路的FPGA与晶圆代工业者

FPGA  晶圆代工  2014-01-03

采用FPGA的可编程电阻的设计结构分析

FPGA  电阻  2013-09-24

从FPGA的制程竞赛看英特尔与Fabless的后续变化

FPGA  Fabless  2013-07-16

物联网融合自动化推动高效生产模式变革

物联网  FPGA  SoC  2013-07-09

14纳米FPGA展现突破性优势

14纳米  FPGA  2013-06-20

高清视频监控FPGA应用迎来小高峰

视频监控  FPGA  2013-06-20
在线研讨会
焦点