基于FPGA实现的计算机与HDTV显示器测试信号发生器
扫描二维码
随时随地手机看文章
摘要:为产生满足14种计算机并兼容4种高清晰度电视(HDTV)视频标准的13种测试图案信号,研究开发了计算机与高清晰度电视显示器测试信号发生器.采用现场可编程门阵列(FPGA)完成测试图案数据存储、各种视频标准时序产生及系统控制信号产生等核心功能.利用FPGA的现场可编程功能,采用多个EPROM存储FPGA配置.采用频率发生器技术为多种视频标准提供时钟信号.实践表明,以上方法可行,且成本降低,尺寸从15cm×21.5cm减小到11cm×14cm.
随着高清晰度电视(HDTV)显示器与计算机显示器生产规模的日益扩大,如何准确有效地测试它们的性能质量就显得十分重要.笔者研制的HDTV显示器测试信号发生器,已在国内某企业的高清晰度电视显示器生产中投入使用.
该仪器使用现场可编程门阵列(FPGA)产生地址和控制信号访问测试图案数据存储阵列.组成数据存储阵列的14片芯片(8片74LS244芯片、3片74LS374芯片、3片EPROM)在电路板上占据了很大的空间,因此为了释放电路板空间,节约成本及提高系统可靠性,笔者采用FPGA内部实现数据存储的方案,研制了第二代HDTV显示器测试信号发生器.
在实践中,用户希望扩展该仪器的功能,使之增加能够产生各种满足计算机显示器视频标准的测试信号的能力,即除了遵循HDTV标准中的3种必须的显示格式(SMPTE274M-1080i60Hz,SMPTE293M-480P,SMPTE296M-720P)和1种中国高清晰度数字电视1080i50Hz的显示标准格式[6]外,还必须遵循VGA、SVGA、XGA、SXGA和UXGA等14种计算机显示器的显示格式.这在技术上带来了两个问题:一是如果仍采取以前的方案,使用1片FPGA完成全部18种视频时序的产生、测试图案数据存储及控制信号产生,则该FPGA的规模会变得很大,这样,FPGA要么价格十分昂贵,要么目前还找不到;二是以前为产生4种HDTV时序,只需向FPGA提供两种时钟(74.25MHz和27MHz),为此使用了两个晶振.现在为产生新的14种时序,必须再提供14种不同频率的时钟(详见下文),使用单个晶振分别产生的方案显然已经不合理了.为此,利用FPGA的现场可编程功能,在仍使用原FPGA的同时,为其配备多个EPROM存储FPGA配置,在切换图像格式组时,分别用不同EPROM对FPGA进行配置,在不增加FPGA规模的情况下实现18种视频格式的产生,并采用频率合成器技术为FPGA提供各种时钟信号.实践证明,以上措施是正确可行.
1 系统的功能框图及介绍
图1 系统结构框图
图1 是系统结构框图.FPGA的输入有选择信号、像素时钟和配置信号.选择信号包括对图像格式和测试图案的选择,它们来自系统的控制面板.各种像素时钟来自频率合成器模块.频率合成器模块由FPGA输出的像素时钟选择信号控制,为FPGA选择适当的像素时钟频率.EPROM模块由4个EPROM(EPC1)组成,每个EPROM中放有一组视频标准的配置信息,EPROM的选择信号由控制面板产生.EPROM输出的配置信号在系统上电或图像格式组切换时完成对FPGA的配置.
型号为FLEX10K50的FPGA芯片是本系统的核心部分.它根据输入的控制信号,输出满足格式要求的数字YCbCr信号、同步/消隐控制信号、行场同步信号以及像素时钟的选择信号.THS8134的作用是把FPGA输出的数字YCbCr信号转换为模拟YPbPr信号,再根据控制信号/SYNC、SYNC-T和/BLANK产生同步/消隐信号并把它叠加到模拟YPbPr信号上.THS8134的输出,一组直接从YPbPr接口输出,一组通过矩阵变换和同步切除,转换为可供VGA接口输出的RGB信号.
2 频率合成模块和各种VGA格式
频率合成模块的功能是在FPGA的控制下,根据选择信号产生相应的像素时钟信号.选用MC12429作为时钟产生芯片.MC12429是1个通用合成时钟源,其内部的压控振荡器(VCO)可在200~400MHz范围内操作.该芯片的差分PECL输出根据不同的设置可以是VCO频率的1、2、4或8分频.输出频率可通过并行接口或串行接口来配置,笔者选用并行配置.并行接口根据MC12429的输入脚M[8..0]、N[1...0]的值配置内部计数器,产生所需要的时钟.其输出时钟的计算式为:
FOUT=(Fxtal/16)M/N
式中:M的推荐取值范围是200~400;N取00代表1,取01代表2,取10代表4,取11代表8;Fxtal在本系统中选用16MHz的晶体.MC10ELT21是一个差分PECL电平到TTL电平的转换器,其特点是具有3.5ns的典型传输延迟,差分PECL输入,SOIC封装,24mATTL输出,+5V供电.
需要说明的是,MC12429与MC10ELT21组成的频率合成系统无法产生25.175MHz(VGA60Hz)的时钟频率,因而还需要外加一个25.175MHz的晶体振荡器为VGA60显示格式提供时钟.此外,THS8134的最大输入频率是80MHz,所以对像素时钟大于80MHz的显示格式(XGA85Hz、SXGA60Hz和UXGA602Hz),采取FPGA片外分频的方法,即让时钟合成模块输出像素时钟的2分频,从而使THS8134的输入时钟都小于80MHz.这样做的代价是,系统水平方向以2个像素为单位进行处理.该模块如图2所示.表1给出了本仪器可以测试的格式及相关参数.
图2 频率产生框图
表1 频率合成模块所能提供的像素时钟及相关参数
3 FPGA程序设计
本仪器性能上的改进主要是通过对FPGA重新编程实现的.在设计过程中使用了MAX+PLUSⅡ软件以及AHDL语言.
1)时钟模块
根据选择信号输出相应的像素时钟选择信号,并对输入时钟进行分频.由于本仪器所需要的像素时钟大多超过了FPGA可稳定工作的范围,所以必须对输入的时钟进行分频.如果对时钟进行N分频,那么FPGA水平方向便以N个像素为单位进行处理,其代价是测试图像的垂直条纹变粗(为以前的N倍),因此要适当选择分频倍数,使显示效果达到芯片所允许的最佳状态.时钟模块还要输出一路未分频的时钟信号,用于D/A变换.
2)像素计数模块
该模块是整个FPGA工作的基础.根据当前格式下每行的像素数,对像素时钟进行计数.计数器完成1行的计数后清零并产生完成1行的标志信号.
3)行计数模块
计数器根据当前格式下每场/帧的行数,对像素计数模块产生的标志信号进行计数,再根据像素计数器和行计数器的值,在相应的像素位置产生VGA输出所需要的同步信号.完成1场/帧的计数后,计数器清零并产生完成一场/帧的标志信号.
4)行控制模块
输出行标志信号,使FPGA适应不同格式的图像输出,不同格式是指消隐与有效输出之间比例关系的不同.该模块利用行计数的结果对行进行分类,并将行类型码传给同步/消隐控制信号产生模块.
5)同步/消隐控制信号产生模块
根据像素计数器的计数和行控制模块输出的行标志信号,产生THS8134要用到的同步/消隐控制信号/SYNC、SYNC-T和/BLANK.
6)测试图案产生模块
该模块根据像素计数器和行计数器的计数情况,按照格式选择信号和测试图案选择信号,输出相应的YCbCr数字电平值.模块输出的图像数据分为黑白数字电平值以及彩色、灰度可变信号电平值.黑白信号的数字电平值比较简单,只有黑、白、灰3种,且相对固定.而彩色信号包括白、黄、青、绿、品、红、蓝、黑8种电平,灰度可变信号的亮度电平值是在16~235之间变化.在该模块的设计中,使用了锁存器,目的是避免测试图像在电平变化处出现毛刺.图3是FPGA的程序框图.表2是改进后系统的部分参数.
图3 FPGA程序框图
表2 改进后的系统
4 结语
通过采取增加EPROM对FPGA现场配置和设置频率合成模块产生十余种像素时钟及对FPGA的重新编程,使仪器增加了对计算机显示器进行测试的功能,大大扩展了仪器的应用范围.本仪器在每种显示格式下均可输出13种测试图案,分别为全白场、全黑场、条形图、可变窗、五窗口、格形图、线加窗、PLUGE、2τ脉冲、五阶梯、棋盘格、五阶梯加可变窗和彩条.