凡亿教育-小米
凡事用心,一起进步
打开APP
公司名片
凡亿专栏 | HDMI点屏很简单?嵌入式老鸟笑而不语
HDMI点屏很简单?嵌入式老鸟笑而不语

大家好,我是王工。

作为嵌入式工程师,我们每天都在和各种接口、协议打交道。这个领域涉及的知识点和细节实在太多,以至于大多数时候我们只能依赖参考设计快速实现功能,赶着样机交付。如果没有遇到问题,自然皆大欢喜,甚至会让人产生"这个接口很简单"的错觉。

ba4ec05cee6736f29c5a67c5a84867.jpg图源 | 时光之光

就像最近一个同事说的:"HDMI接口点屏很简单啊!"但当被问到细节时——比如最基本的HDMI握手过程——他却答不上来。这种情况很常见:因为没遇到过问题,所以也就没有深究过底层原理。

今天,我们就来探讨一下HDMI接口的一些基础知识及握手过程。它能更好的帮助我们在调试时更快定位问题,也能让我们对这个看似"简单"的接口有更全面的认识。毕竟,在嵌入式开发中,越是觉得"简单"的地方,往往隐藏着最多的坑。


011

HDMI基础

基础知识中,我这里只强调几个要点,有助于我们对于产品的设计。


通过百度百科,可以简单的了解到HDMI接口的定义:

ab4493e40d54079f3d710074944cf8.jpg图源 | 百度百科

通过这个定义,我们只需要记住以下几个特点:

  • HDMI 是数字信号

  • HDMI可以传送未压缩的视频信号

  • HDMI可以传送未压缩的音频信号

  • 支持热拔插功能


HDMI接口目前主要有4个版本:1.4、2.0、2.1和最新的2.2。版本越高,带宽越高,就可以支持更高的分辨率和刷新率‌,同时HDMI接口具有向下兼容的特性。

HDMI的接口类型包括013ee89d8ba1a6e950236571a8329f.jpg图源 | 知乎

  • Type A(标准):19针,最常见(电视、电脑等)。

  • Type B(Dual-link):29针,不常见,数据传输能力强(专业显示器、摄像机等)。

  • Type C(Mini):便携设备(如相机、平板)。

  • Type D(Micro):超小型设备(部分手机)。

  • Type E(车载):带锁定机制,抗震动。

可根据具体的应用场景来选型合适的接口。


021

HDMI接口引脚定义

咱们常用的HDMI接口一般有19个引脚,Type B HDMI比较特殊,有29个引脚(实际应用中王工也没有见过)。

以下是HDMI A接口咱们常用的原理图,19个针脚的具体定义就不一一列举了:2ed6e61764858f92cb4647f245bb4e.jpg图源 |日常原理图

HDMI接口的引脚定义,咱们把它主要分为以下四类‌:

‌①数据信号引脚‌

1-9引脚用于数据传输,分为0、1、2三组,负责传输视频信号‌。

每一组包含一对正、负差分信号和地,如:

TMDS DATA0 /TMDS DATA0-/GND


‌②时钟信号引脚‌

10-12三个引脚用于传输TMDS时钟信号,用于同步视频和音频数据‌。

只有一组包含一对正、负差分信号和地,如:

TMDS DATA CLOCK /TMDS DATA CLOCK-/GND


‌③控制信号引脚‌

  • ‌CEC引脚‌:13引脚用于控制功能,如通过电视遥控器控制DVD播放。

‌I2C引脚‌:15-16引脚用于DDC通信,主要用于EDID和HDCP的传输‌。

  • ‌Hotplug引脚‌:19引脚用于监测HDMI设备是否存在,实现热插拔功能‌。


  1. ④电源和接地引脚‌

‌5V电源引脚‌:18引脚提供5V电源‌。‌接地引脚‌:17引脚用于接地‌。
关于这个原理图,大家可以看到HDMI接口的5V供电回路中串联了一个二极管,这一点咱们着重强调一下:d302b16200498bca41a372841aa600.jpg这个二极管主要目的是为了防止电流倒灌。在HDMI连接中,我们一般只允许电流从 source 端流向 sink 端,而不能反向流动。如果连接到HDMI的设备( sink 端)尝试供电给发送设备( source 端),串联的二极管可以防止逆向流动的电流损坏发送设备的电路。

此外,这种设计还有一个目的,用于保持HDMI接口电源电压的稳定。如果 sink 端设备尝试提供一个不同的电压,串联的二极管可以防止这个非标准电压影响到 source 端的敏感电路。

这样,无论是电源供应问题还是连接错误,都可以通过二极管来保护设备不受损害。另外尽量选用漏电流较小的肖特基二极管。


031

HDMI握手过程

HDMI握手是指Source端(信号源)和Sink端(显示设备)建立连接的过程,其目的是确保主机输出的画面能够正常显示在屏幕上。

通过工作中的实际经验和一些比较好的参考资料,王工把HDMI的握手过程分为一下几点:

①HPD热拔插检测

当HDMI线缆物理连接时,Sink端的HPD引脚(Pin19)会拉高电压(通常至 5V),通知Source端设备已连接。


这是HDMI正常通信的第一个步骤,当物理线缆建立物理连接后,如果你有两个屏,一直点亮的那个屏可以看到检测过程中有一个明显缩放的画面。



②EDID读取很多人第一次接触HDMI可能不知道EDID是什么,它是显示器一种标准,通过DDC传输,可以提供显示器的详细信息,包括:制造商,尺寸,分辨率支持、色彩格式,基本参数......可能你还是不太清楚,你只需要知道,它的作用是为了能让主机更好的识别显示器属性,以显示出跟显示器适配的画面。这个读取过程主要是通过15-16的I2C引脚,一般在HDMI接口处我们也会预留一个EEPROM,方便信息的存储。
③TMDS链路训练首先要知道TMDS链路训练的目的,主要是协商物理层参数,确保信号传输稳定性。这个过程比较复杂,包括时钟信号的同步,校准,均衡调整,通道对齐,这里就不细说了,感兴趣的同学可以看看如下两篇文章:https://blog.csdn.net/qq_40483920/article/details/108164292https://m.elecfans.com/article/1976734.html



④视频/音频传输

完成上述步骤后,Source端按EDID协商的参数,通过TMDS通道发送视频数据和音频数据。



了解了HDMI的握手过程,有助于我们解决平时在产品开发中遇到的一些黑屏,无信号,分辨率显示异常或者无音频等问题。


bd5e74b62dfe798c84d9181bfb98fb.jpg


本文介绍了HDMI接口的基础知识,但实际应用中的注意事项远不止于此。例如,Layout设计、EMC设计、连接线选型等,都会直接影响项目的顺利推进。稍有不慎,就可能导致信号完整性下降、兼容性问题甚至项目延期。


如果大家对HDMI相关的深入内容(如高速信号设计、EMC对策或线缆选型技巧)感兴趣,欢迎在评论区留言或提问。后续我们可以根据大家的反馈,展开更详细的专题讨论!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论