(第二章)HDMI基本工作原理
2.1 HDMI物理特性
2.1.1连接器和线缆概述
一个设备对外的HDMI连接可以通过以下五种连接器中的一种:A型,B型,C型,D型和E型。这个连接器可以直接和设备相连,也可以通过和设备一起发布的线缆适配器相连。
B型连接器稍微大些,A和C型信号相同,适合移动设备,D型相对C型更加小巧。E型为汽车应用而设计。
2.1.2 连接器管脚定义[4]
表2.1 A型管脚定义
表2.2 B型管脚定义
表2.3 C型管脚定义
表2.4 D型管脚定义
2.2 HDMI传输机制
2.2.1 TMDS差分传输原理
HDMI标准沿用了DVI采用的TMDS最小变换差分信号传输技术。TMDS最小变换差分信号传输技术主要包括三大部分,TMDS差分传输技术是TMDS技术中的一部分,另外传输最小化和直流平衡会在视频编码部分讲到。
TMDS是一种利用2个引脚间的电压差来传送信号的技术,传输的数字信号(0或者1)由两脚间的电压正负极性和大小决定,也就是说当发送端要发送“1”的时候,将TMDS DATAX+(X代表不同的TMDS通道)引脚设为高电平,TMDS DATAX-引脚设为低电平,如果发送“0”时,将TMDS DATAX+引脚设为低电平,TMDS DATAX-引脚设为高电平,接收端利用TMDS DATAX+ 与TMDS DATAX-的电压差来确定发送端发送的逻辑是“1”还是“0”
图2.1 TMDS差分传输概念图
TMDS技术之所以采取差分传输的方法,在于差分传输相对于单线传输有很大的好处:
抗干扰能力强。因为采用单线传输信号时,当传输过程遇到电磁干扰时,可能辨别不出逻辑信号时“1”还是“0”,差分传输方式的受到干扰时,两条信号几乎受到同等程度的干扰,接收端就可以通过让一根线上的信号减去另一根线上的信号的方式来屏蔽电磁干扰,从而得到正确的信号。
图2.2差分传输
2.2.2 HDMI传输总览
HDMI采用TMDS传输通道,包含3路TMDS数据通道和1路TMDS时钟通道,每个通道都有正负两条信号,用于差分传输。音频,视频和控制信号都是在三个TMDS数据信道中相互交错传输,分别对应数据岛周期,视频周期,控制周期。TMDS时钟,即视频像素速率传输时钟,在TMDS时钟信道中传输,它被接收端当做三个TMDS信道的参考频率,用于对三个TMDS数据的复原。
图2.3 HDMI系统框架
在视频周期,视频信号的RGB三个分量,每个原始分量8bit,TMDS将其编码成10bit的DC-balance(直流平衡)数据,一个TMDS时钟周期内10bit DC-balance数据串行的在信道上传输。HDMI1.0规定TMDS时钟为25MHz-165MHz之间,所以理论上HDMI每秒可以传输的数据量为:165MHz X 10bit = 1.65Gbit,三个信道可以传输1.65Gbit X 3 = 4.95Gbit,如果用像素点表示,可以传输1.65G个像素点(一个像素点由RGB三个分量构成)。
在数据岛周期,TMDS传输音频和辅助信号,HDMI采用数据包的格式来传输数据岛信号,为保证音频信号的不失真,音频和辅助数据需要BCH纠错码进行编码(该编码方式后续会讲解)。数据岛周期的原始数据是4bit,通过纠错编码(TERC4)编码成10bit数据在TMDS通道上进行传输。
控制信号总共有六种符号,包括HSYNC、VSYNC、CTL0、CTL1、CTL2、CTL3,每个原始符号占用1bit,用于控制行同步和场同步以及指示下一周期是视频周期还是数据岛周期。
不同的TMDS周期传输不同的数据,每两个有效数据周期(数据岛周期、视频周期)之间必须有一个控制周期。不同周期的数据都通过三个TMDS通道进行传输。
对于视频周期,三原色B分量8bit数据放在TMDS通道0上,即channel0,G分量放在channel1上,R分量放在channel2上。
对于数据岛周期,由于数据岛周期是以包数据的格式传输的,数据岛包由包头和包体构成,包头用于指定包体的类型,包体是具体数据岛周期中的音频信号,分为四个子包,每个子包56位,加上BCH校验码,总共64位。在数据岛周期中,TMDS通道0的位0位1传输HSYNC和VSYNC形式的编码,TMDS通道0的位2传输包头信息,TMDS通道1和通道2的0-3bit用来传输包体的四个子包数据。
对于控制周期,HSYNC和VSYNC在channel0上传输,CTL0和CTL1在channel1上传输,CTL2和CTL3在channel2上传输。不同传输周期的数据分配如下图:
图2.4 HDMI数据分配
2.2.3 HDMI辅助功能
2.2.3.1 DDC通道
DDC(Display Data Channel)通道,实质上是IIC通道,发送设备通过它可以与显示终端通信,通过对接收设备内部 EDID 数据的访问,发送设备可以获得接受器终端的相关参数信息,如显示设备所支持的图像分辨率,支持的声音格式,声音通道,及3D等等。其目的是告诉外接设备我所支持的特性,让外接设备输出一个我所支持的timing(如640x480@60HZ),否则外接设备输出的timing并不支持的话那就没有图像、声音的显示了。
对于EDID,在EDID规范里有详细讲解,这里简要介绍EDID的主要参数。
EDID包含两个部分,基本的EDID只有128个字节,还有128字节的扩展EDID,扩展部分不是必须有的。通常电视都有扩展EDID。EDID主体部分:[5]
表2.5 EDID主体
2.2.3.2 CEC通道
HDMI CEC功能,大致都是借着CEC信号让用户可以控制HDMI接口上所连接的装置。如单键播放(One Touch Play),系统待机(System Standby)。即是如果用户将影碟放进蓝光播放器时,电视会由于CEC信号的通知而自动开机,然后视频通道亦会自动切换到播放器连接的通道上。而当用户关掉电视时,CEC信号亦会通知HDMI相连接的装置一同进入待机。由于这样,所以就可以完全变成单一遥控器控制所有HDMI连接的装置。CEC在HDMI接口中是可以选配的。
2.2.3.3 HDCP协议
HDCP(High-bandwidth Digital Content Protection)在 HDMI 发送器和接收器之间提供版权保护,系统需要在发送器和接收器两边都有 HDCP 的硬件来实现保护功能。
发送端在数据传送之前需对数据进行 HDCP 的加密,接收端则需要一组密钥来开锁解密。目前 HDCP 功能大多已经集成在 HDMI 芯片中。
发送端音视频采集电路得到的音视频信号在放到TMDS调制器进行编码之前需要进行HDCP加密处理,如下图所示,发送端和接收端都将24bit视频信号与HDCP加密器产生的24bit随机数进行异或运算,只是发送端是加密处理,而接收端是解密处理,假如原始图像为A,发送端和接收端的随机数为B,则解密得到的信号为(A XOR B)XOR B = A,则完成解密,这里的问题是如何保持发送端和接收端的随机数B一样呢?首先发送端产生一个随机数An,另外,每一个支持HDCP的设备都有一个唯一的密钥集,其中有一个40bit的密钥选择向量Ksv,假设发送端和接收端的Ksv分别为AKsv和BKsv,发送端在加密前先读取接收端的BKsv,再将An和AKsv发送给接收端,这样双方有了一组共同的输入数据:An、AKsv、BKsv,HDCP加密器就可产生相同的24bit随机数。
图2.5 HDCP加密
2.2.3.4 HPD
HPD技术用于热插拔检测,即主机通过热插拔引脚检测是否有接收设备接入HDMI接口。在HDMI标准A型接口中,19pin作为热插拔引脚。HPD信号的具体实现过程要靠19pin和18pin脚协同工作。
如下图所示,当主机通过HDMI接口与显示器相连接时,主机通过HDMI的第18脚(PWR_CON_PIN18)将+5V电压加到显示器的DDC存储器(EDID数据存储器)向DDC存储器供电,确保即使显示器不开机,计算机主机也能通过HDMI接口读取EDID数据。
主机开机后产生5V_SYS并通过第18脚向显示器供电,此时显示器接收到5V电压后通过内部电路使HDMI接口第19脚HPD转变为高电平,并驱动Q1使CE导通,致使HDMI_HPD也转变为高电平,主机(显卡控制器)检测到HPD为高电平时,判断显示器通过HDMI与主机连接,并通过HDMI接口的第15、16脚DDC通道(IIC)读取显示器中的EDID数据,并使主机显卡中的TMDS信号发送电路开始工作。当显示器与主机之间的HDMI连接断开时,主机一侧的HPD信号为低电平,主机显卡中的TMDS信号发送电路停止工作。
图2.5 HDMI主机和接收端电路连接
当计算机主机上的显卡检测到HPD引脚电压大于2V时,判断为显示器通过HDMI接口与主机连接,当检测到HPD引脚电压小于0.8V时,则判断为显示器与主机之间的HDMI连接已经断开。
2.3 HDMI工作周期
在上一小节中我们已经认清了HDMI三个周期的不同作用,在这一节中,将对三个周期进行详细的论述。
2.3.1 控制周期
控制周期信号用于控制行同步和场同步以及指明下一周期是视频周期还是数据岛周期。行同步场同步用HSYNC、VSYNC来控制,CTL0、CTL1、CTL2、CTL3作为前导信号用于指明下一数据周期。以下是两种合法的前导信号
表2.6 前导信号
每个 TMDS 通道都有两个控制信号,他们在控制周期被编码成 10 位。每个TMDS周期每个通道传输这10位数据。
表2.7 TMDS上的控制信号
三个通道都按照如下固定方式进行编码并在对应通道上传输10位数据。
表2.8 控制信号编码方式
2.3.2 视频数据周期
视频周期用于传输视频信号,原始的RGB三原色每个分量8位数据,经过TMDS最小转换编码后成为10位数据,在对应的信道上在一个TMDS周期中传输。视频周期的前导信号时0b1000,前导之后是视频首保护带,称之为“Guard Band”,保护带由两位特殊的字符构成。保护带也要经过TMDS编码成为10位数据,才能在HDMI上传输。设计保护带的目的在于提供从控制周期到视频周期一个有效判断。
保护带的编码方式根据不同信道而定。
表2.8 视频周期首保护带
以下是视频周期数据格式:
2.3.3 数据岛周期
数据岛周期用于传输音频采样数据和辅助数据的信息包。数据岛包由包头和主体构成,包头占3个字节,用于指明主体的数据类型和参数信息。主体分为四个子包,每个子包56位,加上用于纠错的8位BCH ECC 奇偶校验码,总共64位。同视频周期一样,数据岛周期开始于首保护带,不同的是数据岛周期还有尾保护带。
对于数据岛周期中的首保护和尾保护,通道0的数据被编码成0xC、0xD、0xE和0xF中的一个,具体根据通道0的HSYNC和VSYNC而定。
表2.8 数据岛保护带
(第二章)HDMI基本工作原理相关推荐
- Mysql学习-第二章(CBO工作原理)
MySQL 优化器是 CBO,即一种基于成本的优化器. 在关系型数据库中,B+ 树索引只是存储的一种数据结构,具体怎么使用,还要依赖数据库的优化器,优化器决定了具体某一索引的选择,也就是常说的执行计划 ...
- 第五章 路由器的工作原理及其配置
第五章 路由器的工作原理及其配置 5.1 广域网服务 WAN连接的目的是在两个远离的网络之间尽可能高效率传递数据.连接的效率越高,到最终用户的连接就越透明.WAN连接通常比L A N连接要慢.例如,一 ...
- 在计算机系统中有两种不同的图像编码方式,第二章计算机系统与计算原理.ppt...
第二章计算机系统与计算原理 大学计算机基础 * 信息表示与处理 ----西文字符 ASCII 码是美国信息交换标准代码(American Standard Code for Information I ...
- 【转】深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第二节 栈基本工作原理
栈基本工作原理 导航 深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈 深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第 ...
- 《Android开发艺术探索》读书笔记 (4) 第4章 View的工作原理
本节和<Android群英传>中的第3章Android控件架构与自定义控件详解有关系,建议先阅读该章的总结 第4章 View的工作原理 4.1 初始ViewRoot和DecorView ( ...
- 微型计算机发展方向网络化,第二章 会计电算化工作环境
第二章会计电算化工作环境 第一节计算机基本知识 本节要点 ◆计算机的发展历史 ◆计算机的特点 ◆计算机的分类 ◆计算机的应用领域 ◆计算机中的数据和编码 主要内容 计算机又叫电脑,英文名称是Compu ...
- HD-SDI转HDMI转换器工作原理及功能介绍
高清HD-SDI转HDMI转换器是一款专用于单路高清数字分量串行接口(HD-SDI和3G-SDI)信号转换为HDMI信号的设备.该设备集成SDI接收器及HDMI调制器,可方便的将HD-SDI信号转为H ...
- 第5章 8051单片机工作原理
通过前面4位计算机的结构.指令和程序,我们对计算机这一事物有了比较深入的理解,但这个4位机结构简单.指令集不丰富.运算速度慢.不支持高级语言编程,基本没有多少实际应用价值,仅能用来理解计算机工作原理. ...
- 【hadoop权威指南第四版】第六章MR的工作原理【笔记+代码】
6.1 运行MR作业 工作原理 四大模块: 客户端,提交MR作业. jobtracker,协调作业的运行.jobtracker 是一个java应用程序,主类是Jobtracker. tasktrack ...
- 第3章 直流电机的工作原理及特性 学习笔记(一)
本周主要学习了直流电机的基本结构及工作原理,需要复习到的知识主要有电磁感应定律和电磁力定律,即安培定律.法拉第定律.洛伦兹定律. 一.基本结构 根据工作原理,直流电机的组成可分为定子.转子和换向器三部 ...
最新文章
- Python 三十大实践、建议和技巧(附代码链接)
- python_ re模块学习
- MATLAB实战系列(七)头脑风暴优化(BSO)算法求解旅行商问题(TSP)
- python树莓派串口通信实例_Python实现树莓派USB串口通讯及云端对接
- attribute java c_属性别名(Attribute Aliasing)
- 数字IC设计经典书籍
- mysql部署jar_mysql+jar踩坑记录
- SpringBoot+Shiro学习(四):Realm授权
- 前端学习(1561):ng-class颜色切换
- oracle中游标的使用
- libzdb 连接mysql,数据库连接池库libzdb使用教程
- Undefined function 'conv2' for input arguments of type 'double' and attributes 'full 3d complex'.
- 【GDB调试学习笔记】调试逻辑错误
- 一行代码实现微信电脑多开
- 【PICkit3】PICkit3 Programmer烧写教程
- E.03.24 Colin Huang steps down as Pinduoduo chair
- 搬了新家,转让一批书。
- CSS实现鼠标放上图片放大
- 浏览器下载软件时,默认是用迅雷下载,如何取消?
- 如何翻译Word文档
热门文章
- 编译error: no acceptable C compiler found in $PATH
- HNOI 2018 游记
- 产业园区面临“同质化”发展困境,该如何构建“差异化路径”?
- matlab imresize算法详解,为何 MATLAB imresize 函数和 OpenCV resize 函数结果不同
- 局域网内简易网站的发布
- 【日语】【歌词】「ヤキモチ」--高橋優
- Msfvenom编码免杀技术实现免杀实战
- 「解读」华为云桌面说“流畅”的时候,究竟在说什么?
- java课程报告答辩_Java课程设计答辩之感想
- Android - Audio - Qcom平台 - hac器件bring up