基于Zynq的HDMI视频解码方式和相关IP核介绍

在图像处理应用开发中,捕获或显示图像的最简单方法之一是使用HDMI(高清晰度多媒体接口)。HDMI是一种可以传输高清数字视频和音频数据的专有标准,被许多显示器和相机支持并广泛采用。这个特点使得HDMI成为Zynq图像处理应用的理想接口标准。

在这篇文章中,我们将向大家介绍如何在不同目标开发板上使用基于Zynq的HDMI传输。

图:Arty Z7 HDMI输入输出案例

图:Arty Z7 HDMI输入输出案例

基于Zynq开发板对HDMI视频解码包含两种方式:

  • 外部解码(PS端)然后通过I2C总线传到PL端
  • 内部解码(PL端)内部直接解码
  • 图:支持HDMI的Zynq开发板

    图:支持HDMI的Zynq开发板

    如果开发板使用外部编解码器,则可以使用ADI公司的ADV7511和ADV7611实现发送和接收。外部HDMI编解码器直接与HDMI连接器连接,并生成包含图像、音频数据的TMDS信号(最小化传输差分信号)。

    I2C总线,像素数据总线,时序同步信号和像素时钟组成了编解码器和Zynq PL(可编程逻辑)之间的接口。我们将像素数据,同步信号和时钟直接传送到PL端。使用Zynq PS(处理系统)端的I2C控制器来控制I2C接口,并通过EMIO将Zynq SoC的I2C IO信号传输到PL IO。

    为了简化编码解码器和PL之间的集成复杂度,这里介绍两个AVNET所开发的IP核,可通过Avnet GitHub下载( github.com/Avnet/hdl/tree/master/IP )。在图像处理链中,可以把它们放在处理链的最前端和最后端来连接外部的编解码器。

    另一种方法是使用位于Zynq PL端的内部编解码器。在这种情况下,HDMI TMDS信号直接传输到PL IO,而编解码器用可编程逻辑实现。为了不从头编写这样复杂的编解码器,可以直接使用 DIGILENT 所提供的两个编解码器IP核(可点击: http://www.digilent.com.cn/community/573.html 附件下载)。在设计中使用这些内核意味着约束文件中的TMDS信号的IO标准被设置为TMDS_33 IO。

    注:此IO标准仅适用于高范围(HR)IO组。

    图:本文提到的HDMI IP核

    图:本文提到的HDMI IP核

    事实上,并非所有Zynq开发板都可以接收和传输HDMI信号。例如,ZedBoard只提供HDMI输出。如果必须使用此类开发板接收HDMI信号,我们则可以通过FMC接口配合FMC-HDMI子板来进行操作。

    Digilent FMC-HDMI子板提供两路HDMI输入,可以使用外部和内部编解码器接收HDMI数据。在两路输入中,第一路使用ADV7611,第二路均衡HDMI信号,并直接传输到Zynq PL中解码。这就使得我们能够示范当使用外部编解码器进行图像传输时,如何将内部和外部编解码器植入ZedBoard。然而,这里首先我们需要用电烙铁在J18上焊接一条跳线,这样我们才能够根据FMC-HDMI子板的要求将ZedBoard上的VADJ设置为3v3。

    图:Zedboard + FMC-HDMI子板

    图:Zedboard + FMC-HDMI子板

    最后,友情提示:尽管我们在这里主要讨论了Zynq SoC,但上述方法也同样适用于集成了Display Port( www.displayport.org )功能的Zynq UltraScale+ MPSoC哦~

    原文链接: http://www.digilent.com.cn/community/573.html