DIY编程器网

标题: 利用CME-M5实现1080P高清字符叠加的设计要点分析 [打印本页]

作者: admin    时间: 2015-4-29 08:04
标题: 利用CME-M5实现1080P高清字符叠加的设计要点分析
随着信息化技术的提高,人们对于视觉欣赏的要求越来越高。“视觉冲击力”成为人们评判显示性能的一个标准。视觉冲击力不仅要求画面尺寸超大,最主要的还要要求画面显示清晰,包括图片与文字。为了满足这种诉求,本文以京微雅格CME-M5(金山)为例,为您分析如何在HDMI高清信号中叠加字符,并且最终实现高清输出的过程。
           
          如下图所示,不难看出, 就是把一路HDMI高清信号通过HDMI转RGB芯片送到CME-M5后,与外部的字符芯片进行高清叠加后,再通过RGB转HDMI送出来。
           
       

         

          抛开其它的功能,从最最简单By-Pass开始验证, 就是说, 150MHz的24bit RGB进,不作任何处理,直接把150MHz的24 bit RGB送出,如果By-Pass都搞不定,其它功能再调试也是枉然。By-Pass的关键代码如下:
           
       

         

          以列灰阶的验证,是最容易看出问题的。简单补充一下,什么叫灰阶?
           
       

       

         

          灰阶代表了由最暗到最亮之间不同亮度的层次级别。这中间层级越多,所能够呈现的画面效果也就越细腻。以8bit panel为例,能表现2的8次方,等于256个亮度层次,我们就称之为256灰阶。
         
        对应于数字逻辑来说, 就是R/G/B从0~255渐变的过程,分成256等份,递增为1, 叫256灰阶;分成8等份,递增值为32,叫8灰阶。
        假设计是256级的黑白灰屏, R-G-B三色同时由FF变为00,即24根数据线同时电平翻转,这对FPGA芯片的供电、速度要求是最高的, 所以专用测试验证来看,灰阶基本上可以验证视频传输的质量是否稳定可靠, 其它的拿图片混过关的实际上都不算数的。
           
          那好吧, 我们就以256灰阶作为参考图例验证。
           
          按照一般CPLD EPM240的设计, 直通的效果是完美,不用怀疑,已经过广泛的使用。正常的效果如下,没亮线,没噪点。
           
       

         

          而在通过M5-ByPass的显示效果如下所示(几张示例图片),几种颜色的灰阶都出现亮线。
           
       

         

          根据以上可得, 像CPLD那种By-Pass的方式是行不通的。 引起灰阶亮线问题,一般有两个:
        (1)一个是驱动电流不足;
        (2)另一个是IO或时钟速度跟不上,数据没有对齐;
           
          先从第一个解决方案着手,在primace7.2下把默认的HS,VS输出4mA(default)改为8mA,对翻转速度比较快的PCLK改为16mA。而输入全部加拉弱上拉,改了以后仅对黄色灰阶有改善(看不出亮线),其它的并没有改进行。
           
       

         

          进行第二个方案,解决数据对齐的问题。 加入FastIO设置,效果也没有明显示的改善。
           
       

         

          最终考虑,还是用同步时钟把RGB-HS-VS打一拍同步进来试试看, 代码也非常简单,如下所示。
           
       

         

          出来的效果是让人满意的。之前的所有彩色灰阶,显示正常,如下所示。
           
       

         

          准备收工举杯庆祝的时候,发现最后一关仍然没过,那就是该死的256黑白灰阶,还剩下一条亮线了,按照一般应用,都是图片叠加文字,是能混过去的。因为到了这一步好像没什么可以调整了,设计太简单了,也曾想过,那就这样吧,M5的性能也就只能到这里。
           
       

         

          亮线的问题除了跟数据有关,也跟时钟有关,PCLK的电流设置到16mA,带来增加驱动能力的好处,同时也会增大电平翻转的过冲。如下图所示,绿色的方波是我们想要的最佳波形,红色波形却是实际的情况,拿张M5的电路,示波器测试一下即可验证。
           
       

         

          如果能把过冲收拾掉同时能保持16mA的电流,这个信号就是完美的。我们希望是这样,现在还剩下一个看似不重要的参数仍然可以调整,叫做Slew-Rate。看上去都是默认最快的Fastest(default),都已经最快,还是什么可调节呢,我们不是要求最快的吗?
           
       

        由于英文不太好,百度搜索了一下Slew-Rate的意思。
         
        slew rate 就是电压转换速率(Slew Rate),简写为SR,简称压摆率。其定义是在1微秒或者1纳秒等时间里电压升高的幅度,直观上讲就是方波电压由波谷升到波峰所需时间。
        如下图所示。
           
       

         

          也就是说slew-rate是能够影响PCLK方波输出的爬升的时间,slew-rate越快,翻转速度越快,过冲越大,反之爬升的时间越慢,过冲就越少。这跟运算放大器通过调节电容控制转换时间是一致的,slew-rate的调节跟调整电容器是类似的,有电容就有可能吃掉过冲干扰。
           
          分析完毕,在primace的软件设置如下。
           
       

         

          运行结果比想象中的要好,如下所示, 灰阶的亮线也是不见了,非常干净。可以收工,往下一步走了。
           
       

       

         

          对于应用来看, Fastest的Slew-Rate未必如其名,速度是最快的,它可以导致其它问题的产生,适当微调各类参数,有时也会有意想不到的好结果。 当然也证明了CME-M5的IO是有能力实现150MHz的高清视频传输。
           
          此文仅作抛砖引玉,实际问题还得实际分析,如果能对大家有一定借鉴,那将是莫大的荣幸。
作者: 李小路    时间: 2020-10-2 15:58
谢谢分享!




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2