xa0xa0xa0xa0xa0xa0xa0 摘要:量化复杂视频信号链中微小工程变更的影响,常常是件吃力不讨好的工作。诸如循环冗余校验(CRC)之类的简单错误检测算法,尽管有多方面的局限性,但不失为一种有效的工具。本文以ADI公司功能全面的单芯片影音前端ADV7850为基础,详细介绍了一种有效视频应用的CRC测试方法。
1 数字视频系统
近年来,消费、专业和汽车应用中数字视频传输媒体大行其道,促使许多视频产品设计和制造商转移焦点。实现出色模拟性能的要求已经走到尽头,取而代之的是实现尽可能高的数字数据速率的要求。传输媒体包括DVI、HDMI、LVDS、MHL和APIX。
在这场追逐更高数据速率的竞赛中,的增长是主要驱动因素之一。近年来,HDMI规范进一步发展,最大支持视频分辨率的数据速率已达到2.25GHz到3GHz,在将来的规范升级中极有可能会进一步提高。
开发一个集成所有这些器件的可靠视频信号链以支持如此高数据速率的视频格式,正在成为视频产品设计和制造商的重大挑战。 为了成功支持此类视频格式,电缆质量、电源设计、信号完整性、PCB质量和芯片设置都必须处于绝对最佳水平。 但是,视频产品设计和制造商如何才能轻松评估各种调整对上述系统要素的影响呢?
2 循环冗余校验
循环冗余校验(CRC)是W. Wesley Patterson于1961年发明的一种冗余校验方法。它可以检测数字数据中的错误,主要用于数据传输中,例如32位CRC被用于以太网数据传输。 CRC的局限性包括:CRC只能检测数字数据中的错误,无法在检测到错误后予以纠正,只有更复杂的算法(如纠错码(ECC)或前向纠错(FEC)等)才具有纠错功能;CRC无法确定接收数据中的错误数目。
CRC实现方案有很多种,但基本前提是一样的:数据发送器先计算并追加校验位数(常称作“校验和”)到数据上,再发送数据。
误码率测试是一种引入注目的CRC测试替代方案,其主要优势在于它能协助量化数据受损的程度。 误码率测试要求将一个参考图案输入系统,然后将系统的输出与参考图案进行比较分析,差异的数量即表示发生误码的数量。 如果输出图案与参考图案完全一致,则无误码,系统工作在“最有效点”上。如果输出图案与参考图案不同,则差异的数量可在某种意义上指示数据受损的程度。
虽然误码率测试是一项非常强大的工具,但它需要输入已知图案并能对照已知图案分析输出,这也是它的一个主要缺点。 对参考图案的需求(以便能够量化数据受损程度),大大降低了其灵活性。 误码率测试只能应用于已知图案,CRC则可应用于任何静态数据图案,也就是说,它可以非常灵活地用在各种情况下: 从原型系统的开发和评估到产品线路测试结束,直至现场调试客户反映的问题。
3 ADV7850
ADV7850是ADI公司首款针对消费和专业影音市场而开发的完整影音前端器件。 该器件包含:一个4路输入HDMI接收器,支持高达4k x 2k @ 30 Hz的视频分辨率;一个视频和图形数字化仪,工作频率高达162MHz;一路高速串行视频输出;一个3D梳状视频解码器;以及一个音频编解码器。
除了用作功能全面的单芯片影音前端之外,ADV7850还集成了一个采用CRC的帧检查器。 它位于ADV7850输出端之前,接近ADV7850信号链的末端,可检查HDMI输入的完整视频路径。该特性不可用于模拟输入,因为以最高170MHz频率工作的模数转换器(ADC)会引入最低有效位(LSB)误差。
ADV7850中的帧检查器利用CRC-16-CCITT多项式(x16 + x12 + x5 + 1)来分析用户可配置数量的帧,通过一个I2C位2使能。一旦使能,帧检查器就会分析各视频通道(绿、红、蓝)上的每个数据像素(从480p的30万像素到4k x 2k的800万像素),从而计算每个帧(帧数由用户配置,最多255)的校验和。 要分析的帧数通过I2C控制寄存器进行配置。
帧检查器完成分析后,通过I2C报告每个通道(HDMI在红色、绿色和蓝色通道上传输数据)的一组结果。 如上所述,对于静态输入,对CRC执行多次迭代应当产生一致的结果。两个帧之间只要有一个像素不同(最多有1600万像素的数据),校验和结果就会不同。
无论该像素差异是由视频源上的噪声或传输介质间歇产生的噪声引起,还是由ADV7850的配置错误引起,它都会指出错误。
这样,系统设计师就能优化系统并重新测试。
帧检查器的功能当然非常好,但只有将其投入实际应用,才能体现其真正的价值。 ADV7850的帧检查器可以在视频产品的整个开发周期中使用,也可以在制造周期中使用。