hdmi 订阅
高清多媒体接口(High Definition Multimedia Interface,HDMI [1]  )是一种全数字化视频和声音发送接口,可以发送未压缩的音频及视频信号。HDMI可用于机顶盒、DVD播放机、个人计算机、电视、游戏主机、综合扩大机、数字音响与电视机等设备。HDMI可以同时发送音频和视频信号,由于音频和视频信号采用同一条线材,大大简化系统线路的安装难度。 展开全文
高清多媒体接口(High Definition Multimedia Interface,HDMI [1]  )是一种全数字化视频和声音发送接口,可以发送未压缩的音频及视频信号。HDMI可用于机顶盒、DVD播放机、个人计算机、电视、游戏主机、综合扩大机、数字音响与电视机等设备。HDMI可以同时发送音频和视频信号,由于音频和视频信号采用同一条线材,大大简化系统线路的安装难度。
信息
平    台
PC,电视,DVD,手机
设计年代
2002年12月
设计者
HDMI组织
中文名
高清多媒体接口
外文名
High Definition Multimedia Interface,HDMI
特    点
视频和声音一线输出
HDMI简述
HDMI是被设计来取代较旧的模拟信号影音发送接口如SCART或RCA等端子的。它支持各类电视与计算机视频格式,包括SDTV、HDTV视频画面,再加上多声道数字音频。HDMI与去掉音频传输功能的UDI都继承DVI的核心技术“传输最小化差分信号”TMDS,从本质上来说仍然是DVI的扩展。DVI、HDMI、UDI的视频内容都以即时、专线方式进行传输,这可以保证视频流量大时不会发生堵塞的现象。每个像素数据量为24位。信号的时序与VGA极为类似。画面是以逐行的方式被发送,并在每一行与每祯画面发送完毕后加入一个特定的空白时间(类似模拟扫描线),并没有将数据“Micro-Packet Architecture(微数据包架构)”化,也不会只更新前后两帧画面改变的部分。每张画面在该更新时都会被完整的重新发送。规格初制订时其最大像素传输率为165Mpx/sec,足以支持1080p画质每秒60张画面,或者UXGA分辨率(1600x1200);后来在HDMI 1.3规格中扩增为340Mpx/秒,以匹配未来可能的需求。 [2-3]  而DisplayPort一开始则面向液晶显示器开发,采用“Micro-Packet Architecture(微数据包架构)”传输架构,视频内容以数据包方式传送,这一点同DVI、HDMI等视频传输技术有着明显区别。也就是说,HDMI的出现取代模拟信号视频,而DisplayPort的出现则取代的是DVI和VGA接口。HDMI也支持非压缩的8声道数字音频发送(采样率192kHz,数据长度24bits/sample),以及任何压缩音频流如Dolby Digital或DTS,亦支持SACD所使用的8声道的1bit DSD信号。在HDMI 1.3规格中,又追加超高数据量的非压缩音频流如Dolby TrueHD与DTS-HD的支持。 [3]  标准的Type A HDMI接头有19个脚位,另有一种支持更高分辨率的Type B接头被定义出来,但仍无任何厂商使用Type B接头。Type B接头有29个脚位,容许其发送扩展的视频沟道以应付未来的高画质需求,如WQSXGA(3200x2048)。Type A HDMI可向后兼容于现今多数显示器与显卡所使用的Single-linkDVI-D或DVI-I接口(但不支持DVI-A),这表示采用DVI-D接口的信号来源可以透过转换线驱动HDMI显示屏,但是此种转换方案并不支持音频发送与遥控机能。此外如无HDCP认证的DVI显示屏也将不能收看从HDMI所输出带有HDCP加密保护的视频数据(所有HDMI显示屏皆支持HDCP,但大多数DVI接口的显示器不支持HDCP),Type B HDMI接头也将向后兼容于Dual-link DVI接口。HDMI组织的发起者包括各大消费电子产品制造商,如日立制作所、松下电器、Quasar、飞利浦、索尼、汤姆生RCA、东芝、Silicon Image。数字内容保护公司(Digital Content Protection, LLC)提供HDMI接口相关的防拷保护技术。此外,HDMI也受到各主要电影制作公司如20世纪福斯、华纳兄弟、迪士尼,包括三星电子在内的各大消费电子产品制造商,以及多家有线电视系统业者的支持。
收起全文
精华内容
下载资源
问答
  • HDMI

    2019-09-12 08:42:10
    HDMI有4组差分线(传输数据)、一组IIC、一个hotplug、一个CEC HDMI的基本传输原理 HDMI(High-Definition Multimedia Interface)又被称为高清晰度多媒体接口,是首个支持在单线缆上传输,不经过压缩的全数字高...

    HDMI有4组差分线(传输数据)、一组IIC、一个hotplug、一个CEC

     

    HDMI的基本传输原理   HDMI(High-Definition Multimedia Interface)又被称为高清晰度多媒体接口,是首个支持在单线缆上传输,不经过压缩的全数字高清晰度、多声道音频和智能格式与控制命令数据的数字接口。HDMI接口由Silicon Image美国晶像公司倡导,联合索尼、日立、松下、飞利浦、汤姆逊、东芝等八家著名的消费类电子制造商联合成立的工作组共同开发的。HDMI最早的接口规范HDMI1.0于2002年12月公布,目前的最高版本是于今年6月发布的HDMI1.3规范。   HDMI源于DVI接口技术,它们主要是以美国晶像公司的TMDS信号传输技术为核心,这也就是为何HDMI接口和DVI接口能够通过转接头相互转换的原因。美国晶像公司是HDMI八个发起者中唯一的集成电路设计制造公司,是高速串行数据传输技术领域的领导厂商,因为下面要提到的TMDS信号传输技术就是它们开发出来的,所以这里稍微提及一下。   TMDS(Transition Minimized Differential Signaling)也被称为最小化传输差分信号,是指通过异或及异或非等逻辑算法将原始信号数据转换成10位,前8为数据由原始信号经运算后获得,第9位指示运算的方式,第10位用来对应直流平衡(DC-balanced,就是指在编码过程中保证信道中直流偏移为零,电平转化实现不同逻辑接口间的匹配),转换后的数据以差分传动方式传送。这种算法使得被传输信号过渡过程的上冲和下冲减小,传输的数据趋于直流平衡,使信号对传输线的电磁干扰减少,提高信号传输的速度和可靠性。   一般情况下,HDMI连接由一对信号源和接受器组成,有时候一个系统中也可以包含多个HDMI输入或者输出设备。每个HDMI信号输入接口都可以依据标准接收连接器的信息,同样信号输出接口也会携带所有的信号信息。HDMI数据线和接收器包括三个不同的TMDS数据信息通道和一个时钟通道,这些通道支持视频、音频数据和附加信息,视频、音频数据和附加信息通过三个通道传送到接收器上,而视频的像素时钟则通过TMDS时钟通道传送,接收器接受这个频率参数之后,再还原另外三个数据信息通道传递过来的信息。 视频和音频信号传输   HDMI输入的源编码格式包括视频像素数据、控制数据和数据包。其中数据包中包含有音频数据和辅助信息数据,同时HDMI为了获得声音数据和控制数据的高可靠性,数据包中还包括一个BCH错误纠正码。HDMI的数据信息的处理可以有多种不同的方式,但最终都是在每一个TMDS通道中包含2位的控制数据、8位的视频数据和4位的数据包。HDMI的数据传输过程可以分成三个部分:视频数据传输期、岛屿数据传输期和控制数据传输期。  视频数据传输期,HDMI数据线上传送视频像素信号,视频信号经过编码,生成3路(即3个TMDS数据信息通道,每路8位)共24位的视频数据流,输入到HDMI发射器中。24位像素的视频信号通过TMDS通道传输,将每通道8位的信号编码转换为10位,在每个10位像素时钟周期传送一个最小化的信号序列,视频信号被调制为TMDS数据信号传送出去,最后到接受器中接收。   岛屿数据传输期,TMDS通道上将出现音频数据和辅助数据,这些数据每4位被一组,构成一个上面提到的4位数据包,数据包和视频数据一样,被调制为10位一组的的TMDS信号后发出。视频数据传输期和岛屿数据传输期均开始于一个Guard Band保护频带,Guard Band由2个特殊的字符组成,这样设计的目的在于在明确限定控制数据传输期之后的跳转是视频数据传输期。 控制数据传输期,在上面任意两个数据传输周期之间,每一个TMDS通道包含2位的控制数据,这一共6位的控制数据分别为HSYNC(行同步)、VSYNC(场同步)、CTL0、CTL1、CTL2和CTL3。每个TMDS通道包含2位的控制数据,采用从2位到10位的的编码方法,在每个控制周期最后的阶段,CTL0、CTL1、CTL2和CTL3组成的文件头,说明下一个周期是视频数据传输期还是岛屿数据传输期。   岛屿数据和控制数据的传输是在视频数据传输的消隐期,这意味着在传输音频数据和其他辅助数据的时候,并不会占据视频数据传输的带宽,并且也不要一个单独的通道来传输音频数据和其他辅助数据,这也就是为什么一根HDMI数据线可以同时传输视频信号和音频信号的原因。 HDMI的高音视频带宽   HDMI的数据信息的处理可以有多种不同的方式,也就是说HMDI支持多种方式的视频编码,通过对3个TMDS数据信息通道的合理分配,既可以传输RGB数字色度分量的4:4:4信号,也可以传输YCbCr数字色差分量的4:2:2信号,最高可满足24位视频信号的传输需要。   HDMI每个TMDS通道视频像素流的速率一般在25MHz~165MHz之间,HDMI1.3规范已经将这一上限提升到了225MHz,当视频格式的速率低于25MHz时,将使用像素重复法来传输,即视频流中的像素被重复使用。以每个TMDS通道最高165MHz的频率计算,3个TMDS通道传输R/G/B或者Y/Cb/Cr格式编码的24位像素视频数据,最高带宽可以达到4.95Gbps,实际视频信号传输带宽接近4Gbps,而现在最高规格的高清视频格式1080p所需的带宽仅仅为2.2Gbps,因此HDMI拥有的充足带宽不仅可以满足现在高清视频的需要,在今后相当长一段时间内都可以提供对更高清晰度视频格式的支持。   除了高的视频信号带宽之外,HDMI还在协议中加入了对音频信号传输的支持,形成了业界首个单线缆多媒体接口协议。HDMI的音频信号不占用额外的通道,而是采用和其他辅助信息一起组成数据包,利用3个TMDS通道在视频信号传输的消隐期,以岛屿数据的形式传送。即使在传输1080p(60Hz)的视频信号的时候,还可以提供最高8路,每路采样频率192kHz的高质量音频信号,相比之下,CD音频制式44.1kHz的两声道信号,以及最新的DVD-Audio音频格式96kHz的6声道信号,就相形见绌了。

    转载于:https://my.oschina.net/905377346/blog/846328

    展开全文
  • hdmi

    2014-12-02 12:02:50
    HDMI 带宽 1.0 版本就设定为最高 4.96Gbps  晶振频率:最初制定时范围从 25MHz-165MHz 之间  一个 TMDS 通道每秒最多能传输 165MHz× 10bit=1.65Gbit  3 个 TMDS通道一秒就可以传输 1.65× 3=4.95Gbit  再加上...
    打开hdmi的调试信息
    ①在内核中打开宏CONFIG_OMAP2_DSS_DEBUG_SUPPORT
    ②将dss_debug的初值赋值为   1
    误区:我开始的时候在#include dss.h 前边将上#define DEBUG 以为就能打印~ ~



    HDMI 带宽
    1.0 版本就设定为最高 4.96Gbps
          晶振频率:最初制定时范围从 25MHz-165MHz 之间
          一个 TMDS 通道每秒最多能传输 165MHz× 10bit=1.65Gbit
          3 个 TMDS通道一秒就可以传输 1.65× 3=4.95Gbit
          再加上控制数据,用标准方法表示就是 4.96Gbps 的带宽




    HDMI接口具有热插拔功能,发送设备检测到 HPD 信号为低时, 去读取 EDID 的数据,来确认接收装置是否出现变化,
    EDID数据决定了接收端显示设备的属性


    omap平台dss中个人觉得两个比较核心的函数
    omap_dss_register_device();
    omap_dss_register_driver();

    module_init(omap_dss_init)调用以下过程    //linux/drivers/video/omap2/dss/core.c
    omap_dss_register_drivers
            static int (*dss_output_drv_reg_funcs[])(void) __initdata = {
                    hdmi_init_platform_driver
                             omapdss_hdmihw_probe
                                    hdmi_panel_init();
                                           omap_dss_register_driver
                                    hdmi_probe_pdata
                                           r = omap_dss_register_device(dssdev, &pdev->dev, i);






    hdmi.c中有三个数组,可能hdmi接口的屏幕还有分类的情况 ,后边再补充
    static const struct hdmi_config cea_timings[] = {
    static const struct hdmi_config vesa_timings[] = {
    static const struct hdmi_config s3d_timings[] = {


    hdmi_power_on
           gpio_set_value(hdmi.ls_oe_gpio, 1);  
                      //全文件搜ls_oe_gpio  
                        可以在Board-omap4panda.c (kernel-tilt\arch\arm\mach-omap2):.ls_oe_gpio = HDMI_GPIO_LS_OE,
                        然后可以在board-omap4panda.c中找到HDMI_GPIO_LS_OE的使能脚定义




    //board-omap4panda.c
    #define HDMI_GPIO_CT_CP_HPD 60 /* HPD mode enable/disable */
    #define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */
    #define HDMI_GPIO_HPD  63 /* Hotplug detect */
    作为HDMI的中断
    hdmi_init_display ()              //drivers/video/omap2/dss/hdmi.c
    struct gpio gpios[] = {
    /* CT_CP_HPD_GPIO must be always ON for HPD detection to work */
    { hdmi.ct_cp_hpd_gpio, GPIOF_OUT_INIT_HIGH, "hdmi_ct_cp_hpd" },
    { hdmi.ls_oe_gpio, GPIOF_OUT_INIT_LOW, "hdmi_ls_oe" },
    { hdmi.hpd_gpio, GPIOF_DIR_IN, "hdmi_hpd" },
    };



    在调试oled的时候发现以下打印
    正常显示内核打印:omapdss CORE: bus_match. dev display0/chipsee_dpi_panel, drv hdmi_panel
    异常显示内核打印:omapdss CORE: bus_match. dev display2/chipsee_dpi_panel, drv hdmi_panel
    在内核代码中搜索bus_match关键字  发现 
    omap_dss_register_device    ->   dev_set_name(&dssdev->dev, "display%d", disp_num);
    在board-omap4panda.c的static struct omap_dss_device *omap4_panda_dss_devices[] 数组中调整成员的顺序就可以改变名字内核中的打印display*


    //成功显示的内核打印    omapdss DISPC: hsync 31406Hz, vsync 59Hz----------------------在不能显示的里边没有响应的一行
    在内核中搜索hsync 后再搜Hz,      找到以下匹配的一行:
    ./drivers/video/omap2/dss/dispc.c:      DSSDBG("hsync %luHz, vsync %luHz\n", ht, vt);
    if (dispc_mgr_is_lcd(channel)) {。。。。。 DSSDBG("hsync %luHz, vsync %luHz\n", ht, vt);。。。。。}
    所以想到channel不对
    再检查内核中相关channel的打印
    正常显示的内核打印:[    4.938232] omapdss DISPC: channel 2 xres 720 yres 480
    非正常显示内核打印:[    8.755889] omapdss DISPC: channel 1 xres 1024 yres 768
    channel的类型为enum omap_channel {
    OMAP_DSS_CHANNEL_LCD = 0,
    OMAP_DSS_CHANNEL_DIGIT = 1,      //非正常打印
    OMAP_DSS_CHANNEL_LCD2 = 2,      //可以正常打印的通道
    };
    具体的含义对应图:OMAP4460_TRM_vK.pdf   (p2180)Figure 10-37. DISPC Architecture Overview













    展开全文
  • 本人根据最新pynq板子搭建HDMI in 和 HDMI out 工程已经跑通
  • fpga_hdmi FPGA HDMI驱动
  • HDMI接口封装常见的HDMI接口封装,mini HDMI接口封装,Altium Designer PCB 3D library
  • hdmi Verilog

    2018-12-20 19:28:06
    hdmi 的verilog 代码!
  • HDMI技术分析

    2020-10-23 08:13:45
    HDMI,高清晰度多媒体接口(英文:High Definition Multimedia Interface)是一种全数位化影像和声音传送接口,可以传送无压缩的音频信号及视频信号。HDMI可用于机顶盒、DVD播放机、个人电脑、电视游乐器、综合扩大...
  • iphone hdmi

    2012-12-27 10:38:39
    iphone hdmi
  • HDMI带宽

    2012-12-03 10:27:17
    HDMI带宽
  • HDMI 1.4和HDMI 2.0区别

    千次阅读 2019-07-11 14:34:22
    对于HDMI1.4和HDMI2.0的关系,在这里我们有两个内容要弄清楚: 第一,HDMI2.0标准向下兼容,这样就意味着所有旧的智能网络机顶盒或者是硬盘播放器能够与新款4K电视兼容。 第二,HDMI2.0电缆形状与HDMI1.4电缆完全...

    对于HDMI1.4和HDMI2.0的关系,在这里我们有两个内容要弄清楚:

    第一,HDMI2.0标准向下兼容,这样就意味着所有旧的智能网络机顶盒或者是硬盘播放器能够与新款4K电视兼容。

    第二,HDMI2.0电缆形状与HDMI1.4电缆完全没有区别,这样就意味着你购入了一台支持HDMI2.0的设备,HDMI1.4线缆也能够使用(但是有些功能不能传输)。此外,HDMI2.0在传输影音上传输声道更多以及对超高清蓝光标准的支持,将比1.4版带来更高享受。

     

    hdmi2.0和hdmi1.4区别

    1. hdmi 2.0并没有定义新的数据线和接头、接口,因此能保持对hdmi 1.x的完美向下兼容,现有的二类数据线可直接使用。

    2. hdmi 2.0版标准规范已经制定完成并发布,大大增强了对4K超高清传输的支持,并在多个视频、音频技术上进行了改进。早先的HDMI1.4,在10.2Gbps的带宽下,最高就只能支持到YUV420颜色格式的4K@60Hz,分辨率虽高,但画质因为图像色彩压缩过高会有损失。

    3. hdmi 1.4已经可以支持4K了,但是受制于带宽,最高只能达到3840&TImes;2160分辨率和30FPS帧率,hdmi 2.0则将带宽扩充到了18Gbps,可以支持3840&TImes;2160分辨率和50FPS、60FPS帧率。同时在音频方面支持最多32个声道,以及最高1536kHz采样率。

    4. 其它主要改进:可在同一屏幕上向多个用户同步传输双视频流。可向最多四位用户同步传输多个音频流。

    5. 总的来说:HDMI 2.0并没有定义新的数据线和接头、接口,因此能保持对HDMI 1.4的完美向下兼容,现有的二类数据线可直接使用。

    展开全文
  • HDMI详解

    万次阅读 多人点赞 2018-08-19 20:49:36
    最近要用ZYNQ开发版的HDMI做显示,看着硬件管脚和例程只能发呆,于是决心去弄清楚HDMI的工作原理,查找了很多资料,都是碎片化的,不易懂。于是我加以整理,再以初学者(没有接触过任何视频传输接口)的角度在这篇...

    资料来源:https://www.cnblogs.com/TaigaCon/p/3840653.html

    最近要用ZYNQ开发版的HDMI做显示,看着硬件管脚和例程只能发呆,于是决心去弄清楚HDMI的工作原理,查找了很多资料,都是碎片化的,不易懂。于是我加以整理,再以初学者(没有接触过任何视频传输接口)的角度在这篇博客里阐述。

           对于初学者先了解VGA,再来看HDMI会更容易理解,有关VGA原理在我的上一篇博客中有详细说明。

    HDMI,全称为(High Definition Multimedia Interface)高清多媒体接口,主要用于传输高清音视频信号。

    HDMI引脚:

    HDMIA,B,C,D,E五种引脚类型,目前市面中比较常见的就是Type A

    其中

    • 1-9 都是TMDS数据传输实际上用到的引脚,分为0,1,2三组
    • 10-12 为TMDS时钟信号,如当前Video Timing为480p@60Hz(Htotal:800,Vtotal:525),则TMDS clock = 800x525x60 = 25.2MHz。TMDS clock就像是对像素的打包,一个clock分别在三个Channel传输一个像素的R、G、B(8bit)信号。
    • 13 为CEC(consumer electronic control)类似一种扩展的HDMI功能,供厂家自己定制HDMI消息,(比如说你有一台sony的DVD与TV,两者用HDMI线接上,如果你用TV的遥控器可以控制DVD,另DVD执行某种功能,那么该功能的命令信号就是通过TV与DVD间的CEC引脚传输的)
    • 14 为保留引脚,未使用(或者也可以为CEC提供多一个引脚)
    • 15-16 为I2C引脚,用于DDC(Display Data Channel,主要用于EDID与HDCP的传输)传输。在HDMI的流程中,DDC通信几乎是最先做的(前有Hotplug),因为HDMI的主从两个设备需要通过DDC来获得他们对方设备的EDID,从而得到各种信息,并且通过比较timming以确定以后送出来的timming为最合适的
    • 17 为接地引脚
    • 18 为5v的AC引脚
    • 19 为Hotplug(热拔插)引脚(用于监测HDMI设备有没有存在,如果存在(Hotplug为high)那么可以通过DDC去读EDID),HDMI有规定在HDMI 5vAC断电时source device可以读reciever device的EDID,也就是需要Hotplug为High。其中有两种Hotplug相关的情况会导致HDMI被识别为DVI:
      • Hotplug为High,不过EDID并没有准备好,那么信号源设备会由于无法读到EDID而认为接收设备为DVI,这样会导致HDMI有图像无声的问题。
      • Hotplug为Low,也会导致信号源无法读到EDID而认为接收设备为DVI,从而导致HDMI有图无声
      • 在TV这种有多个HDMI通道的情况下,有时会在多个HDMI通道进行切换,切换后HDMI通道应当先初始化,即先把Hotplug拉低,通知HDMI source device之前所用的EDID已经改变,需要重新读取,那么source device在Hotplug被拉高的时候会去读取新的EDID,但是拉低这个过程至少需要100ms,否则source device有可能不会去读取新的EDID,从而输出DVI信号

     

    传输流程

    HDMI TMDS传输的数据类型有三种(加上HsyncVsync就算4种):

    1. Preamble(控制信息),主要用于控制接下来传输的数据是Data Island或者Video Data
    2. Data Island(数据包),各种类型的包信息,包括音频数据包,图像信息包等
    3. Video Data (视频信息),视频像素数据,HDMI可以传输RGB与YUV两种格式的像素数据
    4. 还有Hsync与Vsync

    HDMI的数据传输有TMDS0TMDS1TMDS2三个通道,每个通道的传输流程都是一样的:

      

    如果是8bit的数据进入TMDS编码器,得到抗干扰性强的10bit TMDS信号,然后再进行串行化输出;在接收端收到串行的HDMI信号后,进行信号复原,得到10bitTMDS信号,最后用TMDS解码器解码得到原来的8bit数据。

    TMDS部分

           一般来说,HDMI传输癿编码格式中要包括视频数据、控制数据和数据包(数据包中包括音频数据和附加信息数据,例如纠错码等)。TMDS每个通道在传输时要包含一个2bit的控制数据、8bit的视频数据戒者4bit的数据包即可。在HDMI信息传输过程中,可以分为三个阶段:视频数据传输周期、控制数据传输周期和数据岛传输周期,分别对应上述的三种数据类型。 下面介绍TMDS中采用的技术:

    1.传输最小化

    以单个通道的8位数据为例,8位数据经过编码和直流平衡得到10位最小化数据,这仿佛增加了冗余位,对传输链路的带宽要求更高,但事实上,通过这种算法得到的10位数据在更长的同轴电缆中传输的可靠性增强了。下图是一个例子,说明对一个8位癿并行RED数据编码、并/串转换。

           第一步:将8位并行RED数据传送到TMDS发送端。

           第二步:并/串转换.

           第三步:进行最小化传输处理,加上第9位,即编码过程。第9位数据称为编 码位。

    2.直流平衡

           直流平衡(DC-balanced)就是指在编码过程中保证信道中直流偏移为零。方法是在原本的9位数据的后面加上第10位数据,返样,传输的数据趋于直流平衡,使信号对传输线的电磁干扰减少,提高信号传输的可靠性。

    3.差分信号

           TMDS差分传输技术是一种刟用2个引脚间电压差来传送信号癿技术。传输数据的数值(“0”或者“1”)由两脚间电压正负极性和大小决定。即,采用2根线来传输信号,一根线上传输原来的信号,另一根线上传输与原来信号相反的信号。这样接收端就可以通过让一根线上的信号减去另一根线上的信号的方式来屏蔽电磁干扰,从而得到正确的信号。 如下图所示:

    总体传输流程如下:

      

    1. 如果传输的是Video Data,并且格式为RGB,那么会占用三个通道的所有24bit输入,Channel0[7:0]用于传输B,Channel1[7:0]用于传输G,Channel2[7:0]用于传输R。
    2. 如果传输的是Data Island,则占用三个通道共10bit输入,Channel0[3:2]用于传输Data Island Header(包头),Channel1[0:3]与Channel2[0:3]用于传输Data Island Content(包内数据)。
    3. 如果传输的是Preamble,则占用1,2两个通道共4bit输入,Channel1[1:0]与Channel2[1:0]分别为CTL0,CTL1,CTL2,CTL3,用于判断接下来输入的是Video Data或者Data Island

    对于HsyncVSync,会占用Channel0通道的两个bit输入,Channel0[0]HsyncChannel0[1]Vsync

     

    传输周期

    HDMITMDS数据传输可以分为三个传输周期:

    1. Control Period期间会传输Hsync,Vsync,并且在该时期的最后阶段会传输Preamble
    2. Data Island Period期间会传输Data Island(数据包),也会有Hsync与Vsync
    3. Video Data Period期间会传输Video Data(视频像素数据)

    某帧的总体周期如下:

    三个传输周期的过渡如下:

    1. 左边是Control Period,传输有Hsync,Vsync与Preamble
    2. 中间是Data Island Period,传输有Hsync,Vsync,以及两个Packet Header与Packet(每32个clock 一个packet);另外Data Island的两端会用Guard Band保护并隔开Data Island的数据,因为这个阶段传输的数据大多是非常重要的,比如其中就有图像分辨率,决定后面的Video Data数据的显示方式
    3. 右边是Video Data Island,传输视频像素数据,在该时期的开头也有Guard Band

     

    Data Island Packet结构

     

    所有Data Island Packet都以32个时钟脉冲为一个周期,也就是说每32 clk传输一个包。

    以上图为例,

    1. 包头部是BCH block 4,由Channel0[2]传输,32clk表示有32bit,则为4byte,前三个byte为包头,最后一byte为校验码
    2. 包体为BCH block 0,1,2,3,分别由Channel1,Channel2共8根线传输,共有24byte与6byte的校验码
    3. Parity Bits校验码是用于检验HDMI Cable传输过程中是否发生了错误,如果该Packet在HDMI接收端校验错误,如果只有一个bit的错误,那么可以修正,超过1bit的错误会被判别为无效Packet(由于HDMI是一直在发送数据因此无法重发错误Packet?)

    所以说,在接收端,在解完包之后,需要取出各个BCH blockParity bit,进行Calibration(校验)

    Packet类型各种各样,详细请看HDMI Spec

     

    Audio Clock

    Audio的采样率有44100,48000192000等,是各种各样,在HDMI传输时,AudioPCM级(无压缩)传输,把PCM数据打散到各个包内,为了得到每个音频帧的数据,也需要知道Audio的采样率。HDMI中规定Audio的传输方式:

    Audio采样率fs重建依靠的主要参数为:

    1. TMDS Clock
    2. CTS
    3. N

    在发送设备这端,已知参数有采样率fs,视频时钟Video Clock(TMDS clock),以及预先设定好的参数N,求CTS:

    CTS=Nf TMDS 128×f x   CTS=NfTMDS128×fx CTS = \frac{N *f_{TMDS}}{128\times{f_x}}

    在接收设备这端,TMDS clock通过硬件设备可以得到,N,与CTS通过Audio Packet传输过来,求fs:

    128f s =N×f TMDS CTS  128fs=N×fTMDSCTS 128*f_s = \frac{N\times{f_{TMDS}}}{CTS}

    在接收端为了保持fs的稳定与精确,需要进行锁相,即用VCOVoltage-controlled oscillator压控振荡器,通过电压控制产生的频率)产生合适的频率,然后用PFDPhase Frequency Detector)来锁频

     

    1. 首先,由于VCO有个最佳的工作区域如(200MHz~500MHz),那么为了保证VCO在最佳工作频率内,我们可以从后倒推回来,先对输出的fa128做乘法得到

    f vco =f a128 ×S×S 2  fvco=fa128×S×S2 f_{vco} = {f_{a128}}\times{S}\times{S_2}

    由于f a128  fa128 f_{a128} 只有那么几种(44.1k48k等),所以比较容易得到S S S S 2  S2 S_2

    1. 然后,为了更快进行频率匹配,需要对近来的频率f x  fx(就是晶振时钟f crystal  fcrystal)或者f v  fv(pixel clock)做除法,也对f vco  fvco做除法,令两个趋向相等。对于细微的区别可以用D Code 进行修正

    f vco M =f x K  fvcoM=fxK \frac{f_{vco}}{M} = \frac{f_x}{K}

    1. 最后做PFD锁相
    2. 第2,3步的反馈操作循环地进行,最后可以得出比较稳定的f vco  fvco
    3. 最终得到

    f a128 =f vco S×S 2   fa128=fvcoS×S2 f_{a128} = \frac{f_{vco}}{{S}\times{S_2}}

     

    HotPlug

    HotPlug即热拔插,当接上接口时就可以判定设备是否存在,以进行后续工作。

    HDMI source deviceHDMI HPD)会监测sink deviceHotplug端口,如果HotplugHigh,则证明设备可以工作,然后去读取DCC,如果为low,则证明设备已断开。

    HDMI sink device应该通过把Hotplug拉低,来通知source device EDID已经被改变,那么source deviceHotplug被拉高后,就会重新来读取新的EDID,拉低这段时间应该多于100ms

    HDMI规定,HDMI 5v引脚通电时,可以通过DCC去读取EDID,即需要保证Hotplughigh,有些Hotplug是直接接到5V上的(如下)。

    Hotplug接法:(HDMI HPD(Hotplug detect ?)检测sinkHotplug端)

    上面用5V引脚进行供电,并接上Hotplug,这样做就能保证每次source device接上sink device时,都可以去读取到EDID。但是这样做有一个缺点,当5V电源断开时,会有5v的电压回灌给HDMI HPDHotplug5V电压会冲击Hotplug,一旦Hotplug引脚无法承受5V电压的回灌,会被打穿。

    下面有个较好的Hotplug接法:

     

    上面用的是额外的GPIO引脚加上三极管控制HDMI HPD0还是1,如果HDMI0_HPD_CTL输出0,那么三极管断开,HDMI0_HPD侦测到High,如果HDMI0_HPD_CTL输出1,那么三极管打通,HDMI0_HPD侦测到low

     

    HDMI Sink

    例如像TV这种就是HDMI的接收端,那么HDMI接收端需要做些什么东西。

    HDMI可以接收到的有三个通道的TMDS DataTMDS Clock,可以设置Hotplug,还有DCC传输用的I2C引脚。上面已经讲了TMDS Data,与设置Hotplug,接下来分析TMDS Clock

    TMDS Clock 就是Pixel Clock,即一个像素点所用的时钟频率。TMDS Clock通过clk 引脚传输到接收端,但是接收端并不清楚发送端发过来的TMDS Clock 频率为多少,因此需要通过PhyPHY是模拟数字转换部分,不同于ADCPHY是不知道采样频率的,需要自己锁频、锁相,侦测确切的输入频率)来进行锁相得到。但是由于HDMI频宽太宽(480P@60Hz25.2MHz1080P@60Hz162MHz,甚至还有高达340MHz的),一般VCO(压控振荡器,通过电压控制产生的频率)无法覆盖这么大的范围,因此需要分频带来设置Phy

    先侦测输入频率落在哪个频带,然后根据不同频带做不同设置。

    TV产生的晶振来数count,数得count后就知道TDMS Clock

    f crystal =count×f TMDS  fcrystal=count×fTMDS f_{crystal} = {count}\times{f_{TMDS}} ??

    或者用1024TMDS Clock来数晶振个数

    1024×f TMDS =count×f crystal  1024×fTMDS=count×fcrystal {1024}\times{f_{TMDS}} = {count}\times{f_{crystal}} ??

     

    由于视频信号从RGB8bit通过TMDS编码后变成了10bit,然后又串行化,所以实际用于接收TMDS Data所用的时钟应该为:

    f ReceiveClock =10×f TMDS  fReceiveClock=10×fTMDS f_{ReceiveClock} = {10}\times{f_{TMDS}}

    另外ReceiveClock也可以不用直接采用上面的乘法,而是采用TMDSClock为参考、硬件锁相的方法来得到。

    得到ReceiveClock后就可以去设置频率PLL,然后对三个通道进行采样得到TMDS Data

     

    Timming Detect

    Sink端还有需要进行Timming Detect,因为如果设备可以支持(如chroma),HDMI可以自由更换Timming,而当Timming更换了之后,Sink需要重新设定Phy。因此,通过侦测频率的改变来检测是否更换了Timing是必要的。一般会有一个中断服务(或循环)线程来侦测频率的改变,一旦频率改变后,该进程会通知重新设定Phy,保证HDMI的正确运行 

    HDMI版权内容保护之HDCP

    HDCP通过DDC传输

    HDCP主要用于版权视频的保护,举例来说,如果有一台蓝光DVD播放机可以播放blueray DVD,并且该DVD已经获得HDCP授权,你现在想把该DVD影像输出到某台TV,但是该TV没有获得HDCP授权,那么该TV可能就没法播放影像,或者播放质量下降,如出现雪花,图像从1080p变为480p,或者没有声音,都有可能。

    HDCP是靠两个设备的交互进行HDCP授权认证的,认证流程如下

     

    1. Transmitter会发送一个key An(64bit)与Aksv(key selection vector 40bit)给Receiver
    2. Receiver接收到An后,也会发送一个Bkvs以及REPEATER(表明B设备是否为Repeater设备)给Transmitter
    3. Transmitter开始HDCP认证码算法:

    要理解算法,首先我们需要知道ksv是用来干嘛的

      1. 在每个HDMI设备内部,都会保存40组64bit的key,key[40]
      2. 40bit的kvs,每一个bit都是一个索引,当kvs的某一位n为1时,会把key[n]取出来,
      3. 把所有的key[n]相加,得到km,
    1. Receiver也会做HDCP认证码算法这个步骤得到km'
    2. Transmitter与Receiver都会用km\km'去做hdcpBlkCipher,得到一个值R0与R0'
    3. 100ms后Receiver把R0'发送到Transmitter与R0做比较,相等则认为认证完毕。当然km = km'才能保证R0 = R0'。
    4. 此后的每一帧,Transmitter与Receiver都会运行一次hdcpBlockCipher,不过参数为上次生成的Ks与M,生成的新参数为Ks,M,T

    1. 在第128帧的时候,另R = T
    2. 在间隔第一次通信的2s后,再次进行认证
    3. 后续都采用7,8,9这三个步骤进行迭代认证

    此外HDMI1.1后还支持一个更快速与频繁的认证方式,就是上方设备通信图的下半部分

    1. 在每第16的倍数帧,用T与当前帧的Channel0的0像素做异或得到Pj
    2. Channel0的0像素到达Sink后,也与Sink的T‘做异或得到P'j
    3. Sink把P'j发送到Source,与Pj做比较,相同则通过认证

    了解HDCP对于处理HDMI的异常现象很有帮助,比如说如果时而出现雪花,有可能是信号不好导致Channel00像素出错,从而第二阶段的认证有时会不成功...

     

    HDMI Sink总流程

     

    1. 提取与分割10bit的TMDS串行数据
    2. 10bit的数据,通过不同线路进来的,判断是那种类型的:DE,Data Island,RGB,Hs,Vs,Ctrl
    3. TMDS解码
    4. HDCP解码,同时Hs,Vs,DE做delay
    5. RGB与DE,Hs,Vs...
    6. BCH解码得到Packet,错误验证
    7. Packet含义解析
    8. 如果是信息,则存到内存
    9. 如果是Audio Data,生成采样频率
    10. Audio输出
    展开全文
  • 该芯片可为主机端的1.8/3.3伏(1.62~3.63伏)和HDMI接口的5伏电压之间提供双向电平转换,用于DDC(显示器数据通道)、CEC(消费电子控制)和HPD(热插拔检测)。所有这些连接线以及HDMI 5V电源线均配备了别的静电...
  • <div><p>The HDMI Keys don't work except KEY_HDMI which just cycle through the active HDMI Inputs.</p><p>该提问来源于开源项目:jaruba/ha-samsungtv-tizen</p></div>
  • 高分辨率多媒体接口(HDMI)在今年六月发布了最新的1.3版本。为满足更高带宽与深色(deep color)的要求,Pericom半导体公司近日推出其一系列高带宽差分HDMI开关解决方案,据称可提供高达5.4Gbps的带宽与16位色深的高...
  • HDMI状态

    2020-02-17 12:20:03
    811 hdmi 声音是通过操作 proc/msp/sound0 这个文件节点来进行声音的静音与音量大小 811 hdmi通过操作 proc/msp/hdmi0 这个文件节点来调节显示的,从中我们可以获取hdmi 的软硬件状态,TMDS(最小化传输差分信号传输...
  • HDMI.txt

    2020-05-27 19:14:13
    HDMI传输原理和DVI相同,由Silicon Image公司发明的TMDS(Time Minimized Differential Signal)最小化传输差分信号传输技术。TMDS是一种微分信号机制,采用的是差分传动方式。这不仅是DVI技术的基础,也是HDMI技术的...
  • 该电路板是基于HDMI2C1-14HD(主板和子板)的HDMI接口转接板设计。它可以方便地访问所有HDMI控制级信号和主板电源(DDC总线的+5 V,CEC总线的+3.3 V以及ASIC HDMI的VDD)。主板可以作为即插即用板用于独立配置,以...
  • 瑞萨科技(Renesas)宣布,推出符合HDMI V1.3高速数字接口标准的R8J66030FT HDMI接收器,该器件适用于平板电视。  R8J66030FT是一种高性能的HDMI接收器,也是业界个提供符合HDMI V1.3标准的输入端口和CEC控制功能...
  • hdmi hotplug

    2019-08-06 15:36:09
    hdmi插入,信号源app hdmi连接logo显示 hdmi拔掉,信号源app hdmi连接logo不显示 代码流程分析。 一, hdmi在插入时,5v检测会探测到是哪个hdmi插入的。 我猜测tv_input.amlogic.so会一直read这个状态。 tv_...
  • HDMI2USB-jahanzeb-firmware, 用于 HDMI2USB hdmi/dvi捕获项目的原始手工编码固件 使用 HDMI2USB-misoc-firmware这里固件的已经过时,现在只读。 这里固件已经被 HDMI2USB-misoc-firmware 替换。 由于历史原因,这里...
  • MS7210是一款HDMI 发送芯片,兼容HDMI1.4b及HDMI14b下的视频3d传输格式,分辨率最高支持4k30hz,最高采样率达到300MHZ,支持YUV和RGB之间的色彩空间转换,数字接口支持YUV以及RGB格式输入。 输入:RGB565/RGB666/RGB...
  • HDMI模组检测

    2018-08-07 09:34:49
    通过学习HDMI模组检测介绍、下载、安装、使用方法,可以了解更多的HDMI检测的知识

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,250
精华内容 4,500
热门标签
关键字:

hdmi