第三步:进行最小化传输处理,加上第 9 位,即编码过程。第 9 位数据称为编码位。
2.直流平衡
直流平衡(DC-balanced)就是指在编码过程中保证信道中直流偏移为零。方法是在原来的 9 位数据癿后面加上第 10 位数据,返样,传输的数据趋于直流平衡,使信号对传输线的电磁干扰减少,提高信号传输的可靠性。
3.差分信号
TMDS差分传动技术是一种利用2个引脚间电压差来传送信号的技术。传输数据的数值(“0”或者“1”)由两脚间电压正负极性和大小决定。即,采用 2 根线来传输信号,一根线上传输原来的信号,另一根线上传输与原来信号相反的信号。这样接收端就可以通过让一根线上的信号减去另一根线上的信号的方式来屏蔽电磁干扰,从而得到正确的信号。

另外,还有一个显示数据通道(DDC),是用于读取表示接收端显示器的清晰度等显示能力的扩展显示标识数据(EDID)的信号线。搭载 HDCP(High-bandwidth Digital ContentProtection,高带宽数字内容保护技术)的发送、接收设备之间也利用 DDC 线进行密码键的认证。

接下来是电路设计部分,HDMI驱动部分追寻原始出处应该是迪芝伦官方,该部分代码用VHDL语言描述,为了方便移植,我将该部分代码封装成自定义IP Core,由上文可知,我们需要产生RGB888三路数据,输入给该模块,然后经过解码、串/并转换,差分输出。还需要两个时钟输入,一个是当前显示分辨率的像素时钟,一个是当前显示分辨率的像素时钟的五倍。1 2同轴电缆还有一个行同步信号和场同步信号,这两个信号的产生方法和VGA是一样的,简单来说就是先产生VGA的信号,行同步信号、场同步信号RGB888的数据输入给HDMI驱动模块就可以显示了,我们要修改显示的数据,还是只需要修改VGA时序即可。

该工程经过测试,可以实现720p(1280x720)的分辨率显示,1080p(1920×1080)的分辨率没有测试出来,原因我觉得可能是官方的zybo的晶振是125Mhz的,这个时钟很尴尬,直接用Clockingwizard锁不出来HDMI所需要的精确时钟,如下图。我试过先分频出100Mhz,然后在调用一个IPCore分频和倍频,但是综合总会报错。

而且根据迪芝伦的官方手册上描述,有这样一段,Resolutionupto 720p(1280x720) have been teste。我的英文不是很好,那既然这样说了,没准它还真达不到1080p,好吧不管了,就暂且认为他最高只能达到720p吧。

打开工程后,需要重新添加HDMI自定义IP的路径,就在工程中,rgb2dvi_v1_2文件夹中。

然后在IPCatalog中搜索hdmi_disp就可以得到对应的IPCore了。

双击打开这四个需要定义的参数,已经定义好在IP中了,直接点击OK——Generate生成

直接可以在如下图所示中找到例化文件,直接实例化即可。

关于引脚约束,需要说的是,引脚约束必须为TMDS_33电平标准

最后附上一张720p彩条测试图。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-86569-2.html
企业要生存
2号