一、 概况
本章节讲述HDMI接口的芯片介绍,以及HDMI接口的热插拔工作原理。
二、 EagleGT开发板的HDMI输入接口详情
如图,开发板上的JH2端口端口是HDMI输入端口。外部的视频图像可以通过该端口传输到FPGA开发板上,进而实现各种数字图像处理操作。
图1
该输入端口输入的信号经过AD8195芯片连接到FPGA芯片上。AD8195是ADI生产的一款HDMI/DVI缓存芯片。具有1个输入,一个输出HDMI/DVI端口,4对4TMDS通道,用于视频的三对数据差分对信号和一对时钟差分对信号的传输。支持250Mbps到2.25Gbps数据速率,支持25MHz到225MHz像素时钟。具有预加重使能输出。双向缓冲DDC线路(SDA和SCL)。带集成上拉电阻(27kΩ)的双向缓冲CEC线。由5V HDMI输入连接器独立供电。该芯片可用作高级电视机前面板缓冲器。
图2
信号输入输出端口定义如下表:
信号名 | 方向(相对于FPGA) | 描述 | 引脚 |
HMDL_RX_CLK_P | Input | 差分时钟信号+ | E19 |
HMDL_RX_CLK_N | Input | 差分时钟信号- | D19 |
HMDL_RX0_P | Input | 差分数据0+ | F13 |
HMDL_RX0_N | Input | 差分数据0- | F14 |
HMDL_RX1_P | Input | 差分数据1+ | F16 |
HMDL_RX1_N | Input | 差分数据1- | E17 |
HMDL_RX2_P | Input | 差分数据2+ | C14 |
HMDL_RX2_N | Input | 差分数据2- | C15 |
HMDL_RX_SCL | input | DDC时钟信号 | B20 |
HMDL_RX_SDA | Inout | DDC数据信号 | A20 |
HMDL_RX_CEC | Input | HDMI的扩展功能端口 | A18 |
HMDL_RX_PHA | Input | HDMI热插拔检测信号 | A19 |
HMDL_RX_TXEN | Output | AD8195芯片数据输出使能信号 | A13 |
HMDL_RX_PEEN | Output | AD8195芯片预加重使能信号 | A16 |
标准的hdmi接口模块如下图所示:
图3
DDC(Display Data Channel)通道用于HDMI发送和接收端之间交换一些配置信息。发送端通过DDC通道,读取接收端保存在EEPROM中的EDID数据,获取接收端 的信息,确认接收端终端显示的设置和功能,决定跟接收端之间以什么格式传输音视频数据。
CEC(Consumer Electronics Control)通道是可选通道。通过CEC通道,可以实现一些音视频设备间的高级控制功能,比如支持视频源和数字电视间的双向通信,实现单键按下同时开机、自动上电、自动信号路由、远程控制等功能。
HDMI输入端口中DDC(Display Data Channel)的数据(CON_RX_SDA)和时钟(CON_RX_SCL)端口连接到EEPROM芯片上,通过IIC协议来读取储存在芯片里的显示器信息(EDID编码信息,如分辨率、扫描频率等)。CON_RX_SDA和CON_RX_SCL端口通过电阻上拉到5.0V。该芯片不仅可以通过HDMI的DDC通道来读写信息,同时由于CON_RX_SDA和CON_RX_SCL端口也连接到AD8195芯片的双向缓冲DDC线路(SDA和SCL)端口,故也可以通过FPGA端的HMDL_RX_SDA和HMDL_RX_SCL端口来对该EEPROM进行读写操作。
在实际应用中,首先通过FPGA端的HMDL_RX_SDA和HMDL_RX_SCL信号来对该EEPROM芯片写入预设的EDID参数。然后在图像数据输入后,HDMI主机读取储存在EEPROM里面的EDID参数,来确定FPGA从机可以接受的视频信息(如分辨率、扫描频率等),进而将图像数据传输到FPGA端。
图4
图5
HMDL_RX_TXEN信号连接到AD8195的TX_EN端口,TX_EN用于控制AD8195的输出使能,当TX_EN=0时,AD8195的输出禁用,当TX_EN=1时,AD8195的输出启用。
图6
图7
HMDL_RX_HPA是HDMI的热插拔检测信号使能端口。5V0_RX是HDMI由HDMI提供,当HDMI接口插入JP2端口后,且HMDL_RX_HPA=1时,RX_HPD输出高电平,同时led灯V5点亮。RX_HPD信号接到HDMI端口的19号引脚,该引脚的功能是热插拔检测(Hot Plug Detect,HPD)。
三、 热插拔工作原理
1、当计算机通过HDMI接口与显示器相连接时,主机通过HDMI的第18脚(PWR_CON_PIN18)将+5V电压加到显示器的DDC存储器(EDID数据存储器)向DDC存储器供电,确保即使显示器不开机,计算机主机也能通过HDMI接口读取EDID数据。
2、当显示器检测到稳定的5V电压信号后,会把HPD信号拉高(HPD也是由主机的18脚的5V信号产生的,也就是说在显示器断电的情况下HPD信号也会拉高)。
3、主机(显卡控制器)检测到HPD为高电平时,判断显示器通过HDMI与主机连接,并通过HDMI接口的第15、16脚 DDC通道(I2C)读取显示器中的EDID数据,
4、通过读取EDID,如果检测到显示器的工作模式范围与显卡相适应,则使主机显卡中的TMDS信号发送电路开始工作。
5、计算机主机对HPD信号的要求 :
当计算机主机上的显卡检测到DVI接口HPD引脚电压大于2V时,判断为显示器通过DVI接口与主机连接:当检测到HPD引脚电压小于0.8V时,则判断为显示器与主机之间的DVI连接已经断开
6、如果EDID内容发生改变,HDMI规范要求接收设备/中继设备复位HPD信号至少100us,以便源设备重新读取EDID信息。(这在处理中要注意)。
HPD信号由HDMI接收端提供,HDMI输出端读取并检测。
图8
在eaglegt开发板上,热插拔信号的生成如上图所示,HMDL_RX_PHA是由fpga端控制的,RX_HPD连接到hdmi接收端的19端口(热插拔检测端口)。5VD_RX是由hdmi发送端通过hdmi线缆提供的。
当HMDL_RX_PHA=1,并且hdmi线缆连接到开发板上的hdmi接收端时,由于使用的FDV301N是NMOS,当vgs=1时,nmos导通,当vgs=0时,nmos不导通,故此时QH4导通,QH3不导通,RX_HPD输出为高电平,QH2导通,QH2的3号端口为低电平,故led灯V5亮。
在实际的工程中,开始上电时,我们可以先将HMDL_RX_PHA置低,再延时1秒后将HMDL_RX_PHA再置高,同时在波形采集中以HDMI_RX_SCL的下降沿为触发条件,采集hdmi发送端的DDC通道的波形。
四、 总结
本章节对HDMI数据的接收端口,以及AD8195芯片进行了详细的说明。接下来我们会使用DDC通道来对HDMI发送和接收端之间交换一些配置信息。发送端通过DDC通道,读取接收端保存在EEPROM中的EDID数据,获取接收端的信息,确认接收端终端显示的设置和功能,决定跟接收端之间以什么格式传输音视频数据。
本文章由威三学院出品
对课程感兴趣可以联系我们

京公网安备11022902000513号
