当前位置: 首页 > news >正文

HDMI简介

本篇主要介绍HDMI常见接口以及TMDS传输技术。

文章目录

    • 一、HDMI简介
    • 二、TMDS传输技术
      • 1.编码(encoder)
      • 2.并转串(serializer)——OSERDESE2原语
      • 3.单端转差分——OBUFDS源语
    • 三、常见的几种信号传输方式

一、HDMI简介

HDMI(High-Definition Multimedia Interface):高清多媒体接口
能够同时传输视频和音频,简化了设备的接口和连线;
提供了更高的数据传输带宽,可以传输无压缩的数字音频及高分辨率视频信号;
可以向下兼容DVI接口(数字视频接口)

常见接口:
在这里插入图片描述
其中Type A型接口最常见,下面对A型接口展开介绍
在这里插入图片描述
DVI 和 HDMI 接口协议在物理层使用 TMDS 标准传输音视频数据。

  • TMDS:最小化传输差分信号
  • 在DVI和HDMI视频接口中使用差分信号传输高速串行数据。
  • TMDS差分传输技术使用两个引脚来传输一路信号,利用这两个引脚间的电压差的正负极性和大小来决定传输数据的数值(0或1)

二、TMDS传输技术

TMDS传输技术包括三部分:
“编/解码”(encoder)“并/串转换”(serializer)、差分输出
在这里插入图片描述

1.编码(encoder)

在编码阶段:编码器将视频源中的像素数据、HDMI的音频附加数据,以及行同步和场同步信号分别编码成10位的字符流。
在这里插入图片描述

在这里插入图片描述
在视频数据传输期间:TMDS编码器将图像的RGB数据转换为10位TMDS码,并插入HSYNC和VSYNC信号的状态。
在控制模式期间:TMDS编码器传输特定的控制符号来表示HSYNC和VSYNC信号。这些符号被编码成10位TMDS码,并通过数据通道传输到接收端。
注:目前的HDMI显示项目中,仅对三个颜色通道进行编码即可
在这里插入图片描述

2.并转串(serializer)——OSERDESE2原语

注意:这里需要并转串的数据包括:rgb数据、时钟信号
在这里插入图片描述
其中10bit的时钟信号定义为:assign clk_10bit = 10’b1111100000

这里需要使用OSERDESE2源语,接口如下图所示:
在这里插入图片描述

一个oserdese2最大实现8:1的并串转换,那如何实现10:1的并串转换呢?
答:通过使用两个oserdese2,位扩展实现10:1的转换。
在这里插入图片描述
两个oserdese2的连接方式如上,一个(master)oserdese2,一个(slave)oserdese2。

源语使用方式如下:

OSERDESE2 #(.DATA_RATE_OQ   ("DDR"),       // 设置双倍数据速率.DATA_RATE_TQ   ("SDR"),       // DDR, BUF, SDR.DATA_WIDTH     (10),           // 输入的并行数据宽度为10bit.SERDES_MODE    ("MASTER"),    // 设置为Master,用于10bit宽度扩展.TBYTE_CTL      ("FALSE"),     // Enable tristate byte operation (FALSE, TRUE).TBYTE_SRC      ("FALSE"),     // Tristate byte source (FALSE, TRUE).TRISTATE_WIDTH (1)             // 3-state converter width (1,4)
)
OSERDESE2_Master (.CLK        (serial_clk_5x),    // 串行数据时钟,5倍时钟频率.CLKDIV     (paralell_clk),     // 并行数据时钟.RST        (reset),            // 1-bit input: Reset.OCE        (1'b1),             // 1-bit input: Output data clock enable.OQ         (serial_data_out),  // 串行输出数据.D1         (paralell_data[0]), // D1 - D8: 并行数据输入.D2         (paralell_data[1]),.D3         (paralell_data[2]),.D4         (paralell_data[3]),.D5         (paralell_data[4]),.D6         (paralell_data[5]),.D7         (paralell_data[6]),.D8         (paralell_data[7]),.SHIFTIN1   (cascade1),         // SHIFTIN1 用于位宽扩展.SHIFTIN2   (cascade2),         // SHIFTIN2.SHIFTOUT1  (),                 // SHIFTOUT1: 用于位宽扩展.SHIFTOUT2  (),                 // SHIFTOUT2.OFB        (),                 // 以下是未使用信号.T1         (1'b0),             .T2         (1'b0),.T3         (1'b0),.T4         (1'b0),.TBYTEIN    (1'b0),             .TCE        (1'b0),             .TBYTEOUT   (),                 .TFB        (),                 .TQ         ()                  
);//例化OSERDESE2原语,实现并串转换,Slave模式
OSERDESE2 #(.DATA_RATE_OQ   ("DDR"),       // 设置双倍数据速率.DATA_RATE_TQ   ("SDR"),       // DDR, BUF, SDR.DATA_WIDTH     (10),           // 输入的并行数据宽度为10bit.SERDES_MODE    ("SLAVE"),     // 设置为Slave,用于10bit宽度扩展.TBYTE_CTL      ("FALSE"),     // Enable tristate byte operation (FALSE, TRUE).TBYTE_SRC      ("FALSE"),     // Tristate byte source (FALSE, TRUE).TRISTATE_WIDTH (1)             // 3-state converter width (1,4)
)
OSERDESE2_Slave (.CLK        (serial_clk_5x),    // 串行数据时钟,5倍时钟频率.CLKDIV     (paralell_clk),     // 并行数据时钟.RST        (reset),            // 1-bit input: Reset.OCE        (1'b1),             // 1-bit input: Output data clock enable.OQ         (),                 // 串行输出数据.D1         (1'b0),             // D1 - D8: 并行数据输入.D2         (1'b0),.D3         (paralell_data[8]),.D4         (paralell_data[9]),.D5         (1'b0),.D6         (1'b0),.D7         (1'b0),.D8         (1'b0),.SHIFTIN1   (),                 // SHIFTIN1 用于位宽扩展.SHIFTIN2   (),                 // SHIFTIN2.SHIFTOUT1  (cascade1),         // SHIFTOUT1: 用于位宽扩展.SHIFTOUT2  (cascade2),         // SHIFTOUT2.OFB        (),                 // 以下是未使用信号.T1         (1'b0),             .T2         (1'b0),.T3         (1'b0),.T4         (1'b0),.TBYTEIN    (1'b0),             .TCE        (1'b0),             .TBYTEOUT   (),                 .TFB        (),                 .TQ         ()                  
);  

需要注意的是:该源语需要使用两个时钟信号
在这里插入图片描述
其中:Pixel clk为并行数据时钟,Pixel clk x5为串行数据时钟,是Pixel clk的5倍。

问:将10位的并行数据转换成串行数据,串行时钟为什么不是并行时钟的10倍而是五倍呢?
答:OSERDESE2通常工作在DDR模式下,在这种模式下,数据在时钟的上升沿和下降沿都被传输,因此串行数据时钟只需要并行数据时钟的5倍即可。

3.单端转差分——OBUFDS源语

在这里插入图片描述
原语使用方式如下:
在这里插入图片描述

三、常见的几种信号传输方式

在这里插入图片描述

http://www.lryc.cn/news/398355.html

相关文章:

  • 原作者带队,LSTM卷土重来之Vision-LSTM出世
  • Fiddler 抓包工具抓https
  • 详细谈谈负载均衡的startupProbe探针、livenessProbe探针、readnessProbe探针如何使用以及使用差异化
  • 守望数据边界:sklearn中的离群点检测技术
  • python工作中遇到的坑
  • 中职网络安全wire0077数据包分析
  • 引领未来:在【PyCharm】中利用【机器学习】与【支持向量机】实现高效【图像识别】
  • 240707-Sphinx配置Pydata-Sphinx-Theme
  • 华为如何做成数字化转型?
  • Python | Leetcode Python题解之第229题多数元素II
  • TCP/IP模型和OSI模型的区别(面试题)
  • UML建模工具Draw.io简介
  • qt udp 协议 详解
  • ubuntu 换源
  • 基于ssm的图书管理系统的设计与实现
  • python压缩PDF方案(Ghostscript+pdfc)
  • kotlin 基础
  • Spring中的适配器模式和策略模式
  • 书生浦语大模型实战营---Python task
  • Chrome 127内置AI大模型攻略
  • Yolo的离线运行
  • 【矿井知识】煤矿动火作业
  • 设计模式使用场景实现示例及优缺点(结构型模式——享元模式)
  • 开放式耳机哪款比较好?五款开放式耳机测评推荐
  • 【网络安全】实验三(基于Windows部署CA)
  • hive中reverse函数
  • SimpleTrack环境配置教程
  • frameworks 之Zygote
  • 基于考研题库小程序V2.0实现倒计时功能板块和超时判错功能
  • idm站点抓取可以用来做什么 idm站点抓取能抓取本地网页吗 idm站点抓取怎么用 网络下载加速器