fpga hdmi接收和发送部分调试(2)

来源:互联网 发布:linux运维是什么意思 编辑:程序博客网 时间:2024/06/06 00:30

接着上一部分开始写,一下都是自己在实际调试过程中遇到的问题或者是想法

先科普点hdmi基础知识,hdmi一般会有4对差分线,其中3对传输数据,1对为随路时钟,scdc接口,hdcp接口,其中比较重要的是scdc接口,不但需要读取sink端的edid信息,再hdmi 2.0时还需要通过scdc接口配置sink端 control register,因为在初始状态下,sink端默认为hdmi1.4 ,hdcp目前大部分情况一般不会用到,主要是起到授权播放,涉及到版权问题

hdmi采用tmds编码方式,心里大概有个印象就可以,hdmi在数据传送时可以分为三类,图像数据,数据岛和控制数据,图像数据为纯图像数据,数据岛传输音频数据和辅助数据,控制数据传输同步信息,设计到的编码有8bit->10bit,2bit->10bit

想要了解的更细致些可以参考hdmi相关协议文档。

大概把整个流程画了下, 其中重配部分比较费事,由于整个hdmi走的是gxb bank没有外部的phy芯片,mac也是A家相应IP,重点需要把ip核相关datasheet仔细阅读好,比较省事的方式是可以在生成ip的时,手动勾选example,这样先把他的例子跑通,最后调试起来会事半功倍。

这部分调试就是啃hdmi协议文档可以分别看hdmi1.4和2.0,再看HDMI A家IP手册