TMDS协议

news/2024/7/24 9:40:22 标签: 算法, c
cle class="baidu_pl">
cle_content" class="article_content clearfix">
content_views" class="htmledit_views">  

1 概述

1.1    连接结构

center">c="http://hi.csdn.net/attachment/201111/9/0_1320858089TMdu.gif" />

center">图1 TMDS连接结构

数据流中包含了像素和控制数据࿰c;发送器在任何给定的输入时钟周期࿰c;到底是编码像素数据还是控制数据取决于数据使能信号DE࿰c;DE有效时࿰c;指示像素数据要被发送࿰c;注意࿰c;当发送像素数据的时候࿰c;忽略控制数据࿰c;反之࿰c;发送控制数据的时候࿰c;忽略像素数据。在接收端࿰c;恢复的像素(控制)数据仅在DE有效(无效)时才传输。

我们把DE有效期间࿰c;成为像素数据有效期间࿰c;就是说这段时间发送的是有效像素数据。DE无效期间࿰c;成为发送空间隙期间࿰c;这段时间发送的数据不包括有效像素数据࿰c;仅仅是控制信号。

发送端有3个一模一样的编码器࿰c;每个编码器的输入是2个控制信号和8bit的像素数据。依照DE的状态࿰c;编码器将按照两个控制信号的状态或8bit像素数据产生10bit的TMDS字符。每个解码器输出是一个连续的串行TMDS字符流。

1.2    时钟

TMDS时钟通道的时钟频率就是字符速率࿰c;接收器利用这个时钟࿰c;产生用于串行流接收的位采样时钟࿰c;由于要求能容忍信号畸变࿰c;所以期望每个数据通道的位采样时钟的相位能够单独调整。

1.3    同步

TMDS接收器必须能在串行数据流中确定字符边界。一旦所有的数据通道字符边界被建立࿰c;我们就说࿰c;此时接收器与数据流同步并可以从数据通道中接收TMDS字符加以译码。TMDS数据流提供周期性的提示用于解码同步。

用来作为像素数据的TMDS字符包含5个或更少的跳变࿰c;而用来作为控制数据的TMDS字符包含7个或更多的跳变。在空期间传送的多跳变内容形成解码端的字符边界的基础࿰c;这些字符在串行数据流中个体不是独一无二࿰c;但它们足够相似࿰c;使得࿰c;在发送空间隙期间࿰c;解码器它们可以唯一地检测出它们连续的存在。

1.4    编码

TMDS数据通道传送的是一个连续的10bit TMDS字符流࿰c;在空期间࿰c;传送4个有显著特征的字符࿰c;它们直接对应编码器的2个控制信号的4个可能的状态。在数据有效期间࿰c;10bit的字符包含8bit的像素数据࿰c;编码的字符提供近似的DC平衡࿰c;并最少化数据流的跳变次数࿰c;对有效像素数据的编码处理可以认为有两个阶段:第一个阶段是依据输入的8bit像素数据产生跳变最少的9bit代码字;第二阶段是产生一个10bit的代码字࿰c;最终的TMDS字符࿰c;将维持发送字符总体的DC平衡。

编码器在第一个阶段产生的9bit代码字由“8bit” + “1bit”组成࿰c;“8bit”反映输入的8bit数据位的跳变࿰c;“1bit”表示用来描述跳变的两个方法中哪一个被使用࿰c;无论哪种方法࿰c;输出的最低位都会与输入的最低位相匹配。用一个建立的初值࿰c;输出字的余下7bit的产生是按照顺序将输入的每一位与前一导出的位进行XOR或NOR(XNOR)。使用XOR还是XNOR要看哪个方法使得编码结果包含最少的跳变࿰c;代码字的第9位用来表示导出输出代码是使用XOR还是XNOR࿰c;这9bit代码字的解码方法很简单࿰c;就是相邻位的XOR或XNOR操作。从解码输入到解码器输出最低位不改变。

在有效数据期间࿰c;编码器执行使传输的数据流维持近似的DC平衡处理࿰c;这是通过选择性地反转第一阶段产生的9bit代码中的8bit数据位来实现的࿰c;第10bit被加到代码字上࿰c;表示是否进行了反转处理࿰c;编码器是基于跟踪发送流中1和0个数的不一致以及当前代码字1和0的数目来确定什么时候反转下一个TMDS字符。如果太多的1被发送࿰c;且输入包含的1多于0࿰c;则代码字反转࿰c;这个发送端的动态编码决定在接收端可以很简单地解码出来࿰c;方法是以TMDS字符的第10bit决定是否对输入代码进行反转。

1.5    双连接结构

TMDS连接结构的数据通道数目的选择主要基于下面两点考虑:一是视频数据要求的带宽࿰c;二是对每个像素的R、G、B分量࿰c;每个分量对应于一个通道࿰c;从而使得逻辑简单。在这里双TMDS链路等同于使用6个数据通道共享一个时钟通道࿰c;这样使得接口带宽加倍。对于这个配置࿰c;第一个数据链路传输奇数像素点࿰c;而第二个数据链路传输偶数像素点。每一行的第一个像素是奇数像素࿰c;即为像素1。

2 编码

2.1 通道映射

单链路TMDS发送器由三个相同的编码器组成࿰c;如图2࿰c;2个控制信号和8bit像素数据映射到每个编码器࿰c;双链路发送器增加了三个数据通道࿰c;如图3࿰c;双链路配置在第一个链路上发送每行的奇像素࿰c;在第二个链路上发送每行的偶像素࿰c;每一行的第一个像素是奇数像素࿰c;即为像素1。

center">c="http://hi.csdn.net/attachment/201111/9/0_1320858126PfhB.gif" />

center">图2 单链路TMDS通道映射

除了行同步HS和场同步VS外࿰c;其它控制信号的作用并没有定义࿰c;在发送器的输入端࿰c;控制信号CTL1、CLT2、CTL3必须保持逻辑低电平࿰c;推荐CTL0也保持逻辑低电平࿰c;由于历史原因࿰c;某些发送器芯片可以通过CTL0传递一个控制信号࿰c;如果这么做࿰c;仅需要满足一个条件:这个信号发生在单像素输入时钟的奇边缘或偶边缘。当链路有效的时候࿰c;在奇偶之间一定不要来回切换。

center">c="http://hi.csdn.net/attachment/201111/9/0_13208581472Dm8.gif" />

center">图3 双链路TMDS通道映射

2.2 编码class="tags" href="/tags/SuanFa.html" title=算法>算法

TMDS编码class="tags" href="/tags/SuanFa.html" title=算法>算法࿰c;如图5所示࿰c;在空间隙࿰c;编码器产生4个独一无二的字符࿰c;以及在有效的数据期间࿰c;产生460个独一无二的10bit字符中的一个࿰c;在链路上࿰c;除此以外的其它10bit字符是保留的࿰c;编码器不会产生这些字符。

cellspacing="0" cellpadding="0">

D, C0, C1, DE

编码器输入数据集。D是8bit像素数据࿰c;C1和C0是通道的控制数据࿰c;DE是数据使能。

Cnt

这是个寄存器࿰c;用来跟踪数据流的不一致࿰c;正值表示发送的1的个数超过的数目࿰c;负数表示发送的0的个数超过的数目。表达式cnt{t-1}表示相对于输入数据前一个集的前一个不一致值。表达式cnt{t}表示相对于输入数据当前集的新的不一致设置。

q_out

这些10bit数是编码器产生的。

N1{x}

这个操作符返回参数x中的1的个数

N0{x}

这个操作符返回参数x中的0的个数

 

center">c="http://hi.csdn.net/attachment/201111/9/0_1320858168cOXC.gif" />

center">图5 TMDS编码class="tags" href="/tags/SuanFa.html" title=算法>算法

2.3 串行化

由编码器形成的TMDS字符流转换为串行数据࿰c;用于在TMDS数据通道上发送࿰c;低位在前先发送。

3 解码

3.1 时钟恢复

TMDS接收器必须有能力相位锁定与发送时钟࿰c;发送时钟的时钟频率范围是25MHz到接收器的最大允许频率࿰c;对输入时钟的相位锁定必须发生在从输入时钟满足规定起100ms之前。

3.2 数据同步

接收器要求在任何大于128字符长度的空间隙期间࿰c;建立与数据流的同步。

在同步检测之前࿰c;和在丢失同步期间࿰c;接收器不应该更新接收到的数据流信号。

3.3 解码class="tags" href="/tags/SuanFa.html" title=算法>算法

center">c="http://hi.csdn.net/attachment/201111/9/0_1320858189ghle.gif" />

center">图6 TMDS解码class="tags" href="/tags/SuanFa.html" title=算法>算法

3.4 通道映射

如图2和图3

3.5 错误处理

TMDS链路不要求错误处理能力。

4 链路定时要求

center">c="http://hi.csdn.net/attachment/201111/9/0_132085822109RQ.gif" />

center">图7 TMDS链路定时

cellspacing="0" cellpadding="0">

符号

描述

单位

tB

最小空间隙࿰c;为了在接收端确保字符边界的恢复࿰c;要求有这个最短的空间隙࿰c;空间隙至少每50mS(20Hz)出现一次。

128

Tpixel

tE

最大编码/并转串电路管线延迟

64

Tpixel

tR

最大恢复/串转并电路管线延迟࿰c;恢复定时包括通道间的抖动࿰c;从在数据通道间最早的DE跳变开始测量࿰c;

64

Tpixel

 

cle>

http://www.niftyadmin.cn/n/904615.html

相关文章

Subprocess.Popen() 使用问题解决方案

from subprocess import Popen,PIPE 1.光标处于闪烁等待状态,不能实时输出测试cmd界面. [原因]:使用communicate()函数,需要等脚本执行完才返回。 def communicate(self, inputNone): """Interact with process: Send data to…

DM8168评估板上供电电源的设计

在DM8168评估板山上通过J1插座输入单一的12VDC,这是板上所有电源的源,由这12VDC产生如下电源: l EVM_12V:12V,输入,来自外部电源插座 l EVM_5V0:5.0V,输出,来自U16&a…

深度学习的研究方向和发展趋势

一. 人工智能应用领域1. 计算机视觉生物特征识别:人脸识别、步态识别、行人ReID、瞳孔识别;图像处理:分类标注、以图搜图、场景分割、车辆车牌、OCR、AR;视频分析:安防监控、智慧城市;2. 自然语言处理语音识…

Java多线程简介

Java多线程概览 java的多线程是个比较高级的主题。正在学习python的多线程,同步复习以下java多线程的基础知识吧。 介绍一些概念,细节另外再慢慢探究吧。 Java多线程机制 Java语言内置对多线程的支持,在大数据、分布式、高并发类的主题上应用…

基于视频的目标检测

一. 提出背景目标检测在图像处理领域有着非常大的占比,过去两年,深度学习在Detection的持续发力,为这个领域带来了变革式的发展:一方面,从 RCNN 到 Fast RCNN,再到 Faster RCNN,不断刷新 mAP&am…

DM8168的复位

7.2.1 系统级复位资源 DM8168有7种类型的系统级复位,表7-3列出了所有的复位类型:复位的发起者和每个复位的效果。 表7-3系统级复位类型 类型 发起者 复位除了仿真模块以外的所有模块 复位仿真模块 锁定BOOT脚 产生/RSTOUT信号 上电复位&#xff…

Faster R-CNN改进篇(二): RFCN ● RON

改进1:RFCN论文:R-FCN: Object Detection via Region-based Fully Convolutional Networks 【点击下载】MXNet代码:【Github】 一. 背景介绍RCNN 在目标检测上取得了很大的成功,比如 SPPnet、Fast R-CNN、Faster R-CNN 等&…

DM8168评估板上的复位及时钟电路的设计

复位电路 DM8168的复位管脚有:/RESET(PIN:G33),/POR(PIN:F37),/TRST(PIN:K36),/RSTOUT(PIN:G37&a…