HDMI/DVI

2023-05-16

一.基础知识

1.历史

  早期在FPGA芯片上实现HDMI控制显示是使用HDMI发送芯片,eg:ADV7513,sil9022,CH7301等。用之前VGA控制中输出的RGB信号,行场同步信号和使能信号输入到HDMI芯片中处理再输出。

  为了节省I/O引脚资源,直接在FPGA上设计HDMI时序并直接连接HDMMI接口。

2.接口比较

①HDMI/DVI

  HDMI可以传输音频信号。

  HDMI兼容DVI,可通过转换接口将信号接到DVI接口。

②HDMI/VGA

  VGA收发都需要数模转换器,传输信号:数字信号 -> 模拟信号 -> 模拟信号 -> 数字信号。

  HDMI只需数据收发器,传输信号:数字信号 ->数字信号 ->数字信号 ->数字信号 

  HDMI采用差分传输,抗干扰能力强,而VGA经历数模转换,当数据变化太快时(颜色变化较大的边界),会出现拖影现象:后一个像素的图像数据可能无法真正显示其想显示的颜色,而是介于 需要显示的颜色和前一个像素的颜色之间的一种颜色。此外会因为抗干扰能力弱,出现杂点。

3.显示原理

  HDMI/DVI的编码解码流程如下:我们需要设计的是编码和串行发送,由显示器来解码提取信息。

  

  输入接口层:RGB[23:0],行场同步信号数字接口。(即类似于VGA的输出信号)。

  TMDS发送器:对输入的信号进行TMDS编码。经过高速串口输出(4个串口通道)

  TMDS接收器:接收,解串,解码,得到RGB行场同步数字信号。  

  输出接口层:RGB行场同步信号数字信号输出到显示器。

  VGA:采用逐行显示(也可以说是逐点显示),随着时钟周期输出每一个像素点的[23:0]RBG值和行场同步信号。

  HDMI/DVI:在VGA的基础上采用了TMDS编码方式(减少电磁干扰,增强DC平衡),用差分信号输出。具体操作为:对VGA控制器输出的RGB[23:0]和行场同步信号,分成RGB三个通道和一个同步时钟CLK通道进行TMDS编码器进行编码,然后经过串行发送器把编码值转化为串行数据,分成4个通道输出(也就是8条差分线)。

  HDMI/DVI设计:①d_e为高电平时,对RGB数据进行编码,低电平时对同步信号编码。②从VGA控制器输出来看,每个时钟周期会输出一个RGB像素值,而我们的目的是在一个周期内既传输RGB又传输同步信号,所以得在一个周期内让d_e半个周期为1(传输RGB),半个周期为0(传输同步信号),(跟时钟一样),所以VGA的时钟频率应该是HDMI/DVI的二分之一。

3.1框图

3.2.TMDS编码(过渡调制差分信号):一种编码方案

目的:实现最小化传输

Ⅰ.最小化传输

定义:通过对输入的一组数据处理,得到一组跳变次数最少的数据(跳变指:相邻数据为01或10)。

意义:消除电磁干扰(使得HDMI/DVI抗干扰能力强)。(信号跳变会产生磁场,对信号线有电磁干扰)。

实现:TMDS编码。

Ⅱ.直流平衡(DC)

定义:信号在传输中0和1的数据个数相同。

意义:避免收发方有直流电,防止电压不稳引起的问题。

实现:利用上一组数据编码后的极性来指导本组数据的编码,控制0和1数据的平衡。(极性指示0/1数量)

未解的疑惑: de=0时才传输同步信号,那么就得用两个周期来传输一个周期就要传完的数据? 先不管(暂时的想法是:时钟可以控制的嘛,DE也是由VGA控制产生,2倍时钟关系即可解决)

3.3串行差分信号发送

   编码后的信号,要经过串行发送器处理,把并行数据转换为串行数据,并设计两路差分信号发送,增强抗干扰能力。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HDMI/DVI 的相关文章

  • 树莓派 4B 配置两个 HDMI 显示不同分辨率

    在树莓派 4 之前 xff0c 都是一个 HDMI 接口 xff0c 所以没有这个问题 而树莓派 4B 有 2 个 HDMI 接口 xff0c 可以输出双 4K 在树莓派根目录下有一个文件 config txt 我们需要修改里面的参数 下面
  • Hi3559AV100 HDMI转MIPI-CSI LT6911UXC转换芯片调试

    Hi3559AV100项目 xff0c 需要接HDMI 4K摄像头 xff0c 需要把HDMI转成MIPI CSI信号接入CPU xff0c 从而实现信号的转换和实现 我们拿到的海思开发板是HI3559A4SDMEB VER A xff0c
  • HDMI转CSI转换板给你做出来了

    小编前段时间一直在做无人机图像的项目 因为项目要求飞机飞行速度较快 小编就像找一款是全局快门 防抖 自动对焦 焦距定焦镜头的一款相机和镜头 首先想到的就是gopro 体积不大 价格也还行 小编之前出去玩一直用对成像效果也是很满意 于是小编就
  • Xilinx ZYNQ 7000 HDMI

    High Definition Multimedia Interface HDMI 参考xilinx application note XAPP460 HDMI来自High Definition Multimedia Interface 高
  • odroid x2安装ubuntu系统,HDMI显示,说说折腾事儿。

    安装的是Lubuntu14 04 xff0c odroid官网有下载 xff0c 烧写软件用官网下载的win32disk imager for odroid 不要用通用的win32disk image 可能不行 write烧写完毕之后记得v
  • 解决odroid-XU3的HDMI输出问题

    odroid XU3的板子直接通过microHDMI口连接显示器 xff0c 并没有显示 解决方法是修改 media boot boot ini文件 xff0c 取消屏蔽与HDMI设置相关语句 重启之后 xff0c 解决问题 由于不同的显示
  • FPGA基于XDMA实现PCIE X8的HDMI视频采集 提供工程源码和QT上位机程序和技术支持

    目录 1 前言2 我已有的PCIE方案3 PCIE理论4 总体设计思路和方案5 vivado工程详解6 驱动安装7 QT上位机软件8 上板调试验证9 福利 xff1a 工程代码的获取 1 前言 PCIE xff08 PCI Express
  • HDMI/DVI____TMDS编码

    一 编码步骤 xff1a 基本方法 xff1a 取第一位数据为初值 xff0c 接下来输入的每一位与前一导出的位 xff08 根据判断条件 xff09 进行异或XOR或者同或XNOR xff08 最小化传输 xff0c 减少0 1翻转 xf
  • HDMI学习笔记

    文章目录 一 HDMI 基本介绍 二 TMDS基本介绍 三 传输流程 四 传输周期 五 Data Island Packet结构 六 Audio Clock 七 HotPlug 八 HDMI Sink 九 HDMI版权内容保护之HDCP 十
  • RGMII(介质独立接口) PCB布线设计

    RGMII 介质独立接口 PCB布线设计 本文主要讲解的是RGMII PCB的设计 包括特性和运用的总结 希望大家看了以后能轻松的应对各种RGMII方案的PCB设计 网络设备一定离不开MAC和PHY 有MAC和PHY的地方就有相应的接口 无
  • HDMI和DP线的等级和速度

    转自 4K 144Hz到底需要多少带宽
  • HDMI接口之HPD(热拔插)

    HDMI Pin 19 DVI Pin16 的功能是热插拔检测 HPD 这个信号将作为HDMI 源端 Source 是否发起EDID读 是否开始发送TMDS信号的依据 HPD是从HDMI显示器端 Sink 生成并输出送往HDMI 源端 So
  • HDMI中的视频时序分析

    一 前言 建立层次观念 说到时序 我们首先想到的例子是IIC SPI 串口等接口的例子 以我们之前的理解 时序就是传输线上电平随时间变化的顺序 但是但是但是 在HDMI这里 我们应该建立一个新的观念 即时序不一定对应到物理层 即传输线上 这
  • 如何在不root的情况下禁用Android设备的hdmi端口?

    我想知道是否有一种方法可以在不root的情况下禁用android设备的hdmi端口 从 Android 4 2 SDK 级别 17 开始 DisplayManager API http developer android com refer
  • HDMI之数据岛

    概述 发送端在发送视频信号之前 将多媒体信息通过数据岛传输给接收端 接收端通过数据岛信息获取当前分辨率 VIC 编码信息 RGB YCR等 色彩空间 位深等等 然后对应将视频信息解码 与此同时 多余的带宽用于传输音频信息等 本文通过具体的包
  • Linux 上的 HDMI 端口开发

    如何才能从应用程序中专门驱动 HDMI 输出 而不允许操作系统自动将其配置为显示输出 例如 使用标准 DVI VGA 作为主显示器 但使用设备文件将 Mplayer 视频输出发送到 HDMI 通过谷歌很难回答这个问题 几乎每个结果都与通过
  • Android 强制 HDMI 音频

    当我的 ADT 1 连接到电视时 无法通过 HDMI 播放声音 在该特定电视上 我必须在 Raspberry PI 上强制使用 HDMI 音频 因此我也尝试在 ADT 1 上强制使用它 我尝试制作一个具有许可的应用程序
  • 双屏 HDMI 输出编程

    在我的搜索中 我发现 Android SDK 目前不支持控制 HDMI 端口活动和处理 HDMI 输出 尽管像摩托罗拉这样的某些设备制造商 不知道是否还有其他制造商也这样做 提供了 API 以实现更好的控制 下面是其中两个的链接 其中双屏链
  • Android - 发送 HDMI CEC 命令到电视 - minix - libCEC

    我正在开发 Minix NEO X8 H Android 媒体中心 4 4 2 我需要向电视发送 HDMI CEC 命令 当我的应用程序收到呼叫时 我想自动将电视源更改为 Minix hdmi来源 实际上 Minix 提供了一些启用 HDM
  • Android - 禁用 HDMI

    我的一个 Android 项目需要时不时地在 2 个 HDMI 输入之间切换 可能是一分钟一次 一根 HDMI 输入来自 Android 设备的 HDMI 输出 一根来自外部不可控源 我发现了一个 HDMI 开关 当信号可用时 它可以自动在

随机推荐

  • Jetson Nano的GPIO口学习

    1 配置GPIO库 https github com NVIDIA jetson gpio 1 安装pip工具 sudo apt get update sudo apt get install python3 pip sudo apt ge
  • 22.11.22 TCP与UDP 客户端与服务器 协议搭建

    ubuntu 64 ubuntu yuyu yu 11 cat Tcp Cli c 客户端 include lt stdio h gt include lt sys types h gt include lt sys socket h gt
  • cmake交叉编译配置

    cmake交叉编译配置 很多时候 xff0c 我们在开发的时候是面对嵌入式平台 xff0c 因此由于资源的限制需要用到相关的交叉编译 即在你host宿主机上要生成target目标机的程序 里面牵扯到相关头文件的切换和编译器的选择以及环境变量
  • OS——gcc、g++、gdb、vim、vs code的基本使用

    文章目录 g 43 43 的使用gdb的使用vim的使用vscode的使用vs code的安装vs code中C 43 43 的编译运行配置 如果想要学习如何在CentOS 7中安装配置gcc g 43 43 gdb zhs和oh my z
  • make和cmake

    编程人员已经使用CMake和Make很长一段时间了 当你加入一家大公司或者开始在一个具有大量代码的工程上开展工作时 xff0c 你需要注意所有的构建 你需要看到处跳转的 CMakeLists txt 文件 你应该会在终端使用 cmake 和
  • ubuntu自带python与anaconda python环境的切换

    ubuntu的python可分为三大类 xff1a 1 ubuntu自带的python环境 一般安装在 usr bin 中python2和python3可以共存 2 anaconda自带的base环境 3 在anaconda中创建的虚拟py
  • 详细介绍如何在ubuntu20.04中安装ROS系统,以及安装过程中出现的常见错误的解决方法,填坑!!!

    本篇文章写于2020 10 xff0c 经过很多小伙伴的验证 xff0c 文章所介绍的步骤是可以正常完成安装的 xff0c 现在是2021 10 xff0c 经过近期的探索 xff0c 我将安装步骤进行了进一步的优化 xff0c 使安装变得
  • VScode进行python开发出现 No module named “XXX“的解决方法

    VScode进行python开发出现 No module named 34 XXX 34 的解决方法 最近从pycharm转向vscode的时候 xff0c 遇到了如下问题 span class token keyword import s
  • CM3寄存器简介

    Cortex M3基础 寄存器组 通用目的寄存器组R0 R7 也被称为低组寄存器 xff0c 所有指令都能访问字长32位 通用目的寄存器组R8 R12 高组寄存器 32位寄存器 复位后的初始值不可预料 堆栈指针R13 CM3中共有两个堆栈指
  • 基于亚博K210开发板的学习之旅(一)

    本文参考亚博智能官方K210开源课程 五月份购买了亚博的K210开发板 xff0c 但由于课程压力就搁置了 xff0c 最近暑假得空又恰逢电赛清单里有这个 芯片 xff0c 就抽空学习一下 xff0c 特写下这些 xff0c 以作记录 按照
  • STM32标准库通用软件模拟IIC

    STM32标准库通用软件模拟IIC 继上次通用可移植的矩阵键盘之后 xff0c 便继续寻找着下一个能够拿来只需改改引脚就可以使用的通用方案 恰好最近在研究PCA9685 xff0c 这是一片能够产生最多十六路PWM信号的芯片 xff0c 通
  • STM32F103控制PCA9685产生16路PWM波控制SG90舵机

    STM32控制PCA9685产生16路PWM波控制SG90舵机 如果你能点开这篇文章 xff0c 说明你已经知道PCA9685是多么强大 xff0c NXP公司原本做这片芯片是为了提供给LED使用 xff0c 在其官方文档里也能看到所有PW
  • 从源代码来看HAL库函数(一) HAL基础函数

    从源代码来看HAL库函数 xff08 一 xff09 HAL基础函数 全局变量 IO uint32 t uwtick 这个变量充当了一个运行时长计数的作用 xff0c 每发生一次SysTick中断就会加一 xff0c 直至溢出 xff0c
  • 使用TCP+串口与板子进行网络通信

    最近做了一个嵌入式的project xff0c 大概要求就是做一个client端 xff0c 一个sensor端 xff0c 两者通过TCP UDP进行通信 xff0c 然后在client端输入不同的命令sensor需做出不同的处理 xff
  • 毕业论文格式(图片题注引用,表格,公式格式)

    本科毕业论文差不多写完了 xff0c 记录一下一些格式 xff0c 以后写作可能会用到 xff0c 就可以翻起来看看 首先 xff0c 如果可以找到一篇格式符合要求的word文档的话 xff0c 最简单的方法就是在这个文档的基础上进行内容的
  • 图像处理——相位恢复(GS,TIE,改进型角谱迭代法)(已更新代码)

    利用GS xff0c TIE xff0c 改进型角谱迭代算法进行相位恢复 角谱传播理论 角谱传播理论可以翻阅傅里叶光学的书 xff0c 就能找到定量分析的计算公式 xff0c 可以分析某个平面的角谱垂直传播到另外一个平面的角谱 xff0c
  • 串口应用:遵循uart协议,发送多个字节的数据(状态机)

    上一节中 xff0c 我们遵循uart协议 xff0c 它发送一次只能发送6 7 8位数据 xff0c 我们不能随意更改位数 xff08 虽然在代码上可行 xff09 xff0c 不然就不遵循uart协议了 xff0c 会造成接收端无法接收
  • 数码管动态显示Verilog实现(参考小梅哥教程)(视觉暂留)

    一个数码管有八个引脚 xff0c 控制八段二极管的亮灭 xff0c 用以显示需要的数字 当有N个数码管时 xff0c 一个一个控制的话需要N x 8 个引脚 xff0c 消耗资源较多 因此可以利用动态显示的方案通过人眼的视觉暂留特性达到静态
  • 彻底理解DDS(信号发生器)的fpga实现(verilog设计代码)

    DDS xff08 Direct Digital Synthesis xff09 是一种把一系列数字信号通过D A转换器转换成模拟信号的数字合成技术 它有查表法和计算法两种基本合成方法 在这里主要记录DDS查表法的fpga实现 查表法 xf
  • HDMI/DVI

    一 基础知识 1 历史 早期在FPGA芯片上实现HDMI控制显示是使用HDMI发送芯片 xff0c eg xff1a ADV7513 sil9022 xff0c CH7301等 用之前VGA控制中输出的RGB信号 行场同步信号和使能信号输入