基于FPGA实现HDMI数据传输

FPGA实现HDMI接口 HDMI( High-Definition Multimedia Interface),即高清多媒体接口。它能够,简化了设备的接口和连线;同时提供了更高的数据传输带宽, 可以传输无压缩的数字音频及高分辨率视频信号。HDMI 接口在物理层使用 TMDS 标准传输音视频数据。 阅读详情


前言

随着网络带宽、存储器容量、处理器解码能力的不断发展,与我们日息相关的图像显示领域也出现了非常大的进步,在数据传输方面也从早期的VGA模拟信号传输方式发展到DVI接口、HDMI接口传输,市面上普遍的显示设备都带有hdmi接口,所以学习HDMI接口是必要的。

一、HDMI接口含义 与TMDS介绍

高清晰度多媒体接口(High Definition Multimedia Interface)是一种全数位化影像和声音传送接口,可以传送无压缩的音频信号及视频信号。HDMI接口可以提供高达5Gbps的数据传输带宽,可以传送无压缩的音频信号及高分辨率视频信号。同时无需在信号传送前进行数/模或者模/数转换,可以保证最高质量的影音信号传送,查看HDMI规范,发现其数据链路层都是使用TMDS(最小化传输差分信号)编码方式。在数据传输过程中,包括了输入接口层、TMDS发送器、TMDS接收器和输出接口层。
在这里插入图片描述
1.输入接口层
输入接口层的信号格式为典型的RGB行场同步数字接口,该 接口包括数据使能信号DE(Data Enable)、24 位像素数据(Pixel Data)、6位的控制数据(包括HSYNC、VSYNC和空信号)和同步时钟信号。

2.TMDS发送器
TMDS 发送器完成对输入接口层的数据和控制信号按照TMDS编码方式进行编码,再将编码的数据通过高速串行接口输出,最终将输入接口层的信号编码进4个TMDS链路层中。

3.TMDS接收器
与TMDS 发送器相反,TMDS接收器的功能是将TMDS链路上的高速串行数据接收,解串,TMDS解码,得到与输入接口层相同的控制信号和数据。

4.输出接口层
输出接口层将TMDS接收器解码得到的数据流和控制信号传递给最终的数据消费者,例如RGB接口的液晶显示面板。

二、 TMDS 流程解释与实现原理

1.流程解释
TMDS编码包含两个大的内容,传输控制信号的控制段和用来传输图像像素数据的数据段。一个完整的图像传输TMDS模块包含三个相同的编码和发送模块。每个发送模块包含8位的像素数据,对应24位像素数据中单个颜色的8位数据。2个控制信号,这两个控制信号可以分别接行同步(HSYNC)、场同步(VSYNC)信号,也可以空置接0。另外还有一个数据有效信号DE,该信号用来区分控制数据和像素数据。当DE信号为高电平的时候,表明当前数据有效,编码器对8位的Data数据进行编码。当DE信号为低电平的时候,则对2位的控制信号进行编码。

在这里插入图片描述
串行发送器使用的时钟信号频率为编码器的5倍,,这是因为串行发送器在发送数据时候是采用双数据速率的方式传输数据的,一个时钟周期可以传输2位信号,所以只需要5倍的编码器的时钟即可完成10位数据的及时传输。下图为使用TMDS方式传输视频数据的示意图,可以看到,从编码(Encoder)的角度,TMDS 发送器将图像数据和控制信号分成了3组,每组使用一个编码器加串行发送器。每个编码器对8位的图像数据和2位的控制信号组成。另外还对串行发送时钟进行了输出,作为3 个数据/控制通道的同步时钟。

在这里插入图片描述
第一组中,将像素数据中的蓝色(BLUE)分量和控制信号中的行同步(HSYNC)、场同步(VSYNC)划分成了一组,经过编码器和串行调制器后输出,名为Channel 0。
第二组中,将像素数据中的绿色(GREEN)分量和两个空的控制信号CTL0、CTL1划分成了一组,经过编码器和串行调制器后输出,名为Channel 1。在这一组中,CTL0和CTL1接入的是空信号。
第三组中,将像素数据中的红色(RED)分量和两个空的控制信号CTL2、CTL3划分成了一组,经过编码器和串行调制器后输出,名为Channel 2。在这一组中,CTL2和CTL3接入的是空信号。
至此,关于TMDS对数据的划分方式就非常的清晰了。设计的重点就是编码器和串行化数据发送器的设计。

2.实现原理

经过最小化传输方式实现的TMDS,其用来作为像素数据的TMDS字符包含5个或更少的跳变,而用来作为控制数据的TMDS字符包含7个或更多的跳变。在空期间传送的多跳变内容形成解码端的字符边界的基础,这些字符在串行数据流中个体不是独一无二,但它们足
够相似,使得在发送空间隙期间,解码器它们可以唯一地检测出它们连续的存在。
TMDS 数据通道传送的是一个连续的10bit TMDS字符流,在空期间,传送4个有显著特征的字符,它们直接对应编码器的2个控制信号的4个可能的状态。在数据有效期间,10bit的字符包含8bit的像素数据,编码的字符提供近似的DC平衡,并最少化数据流的跳变次数,对有效像素数据的编码处理可以认为有两个阶段:第一个阶段是依据输入的 8bit 像素数据产生跳变最少的9bit代码字;第二阶段是产生一个10bit的代码字,最终的TMDS字符,将维持发送字符总体的DC平衡。
编码器在第一个阶段产生的9bit代码字由“8bit” + “1bit”组成,“8bit”反映输入的8bit 数据位的跳变,“1bit”表示用来描述跳变的两个方法中哪一个被使用,无论哪种方法,输出的最低位都会与输入的最低位相匹配。用一个建立的初值,输出字的余下7bit的产生是按照顺序将输入的每一位与前一导出的位进行XOR或NOR(XNOR)。使用XOR还是XNOR要看哪个方法使得编码结果包含最少的跳变,代码字的第 9 位用来表示导出输出代码是使用XOR还是XNOR,这 9bit代码字的解码方法很简单,就是相邻位的XOR或XNOR操作。从
解码输入到解码器输出最低位不改变。
在有效数据期间,编码器执行使传输的数据流维持近似的DC平衡处理,这是通过选择性地反转第一阶段产生的9bit代码中的8bit数据位来实现的,第10bit被加到代码字上,表示是否进行了反转处理,编码器是基于跟踪发送流中1和0个数的不一致以及当前代码字1和0的数目来确定什么时候反转下一个TMDS字符。如果太多的1被发送,且输入包含的1多于0,则代码字反转,这个发送端的动态编码决定在接收端可以很简单地解码出来,方法是以TMDS字符的第10bit决定是否对输入代码进行反转。

三、 TMDS 代码编写步骤

1.算法流程

  • 先统计输入的数据中有多少个1
  • 根据输入数据中1的个数和输入数据的最低位的值,来确定编码方向
  • 根据编码方向,对输入数据进行编码,方向为1,则采用异或编码方式,方向为0,则采用同或编码方式,并将编码方向值作为编码后数据的第9位。
    2.直流平衡编码
    直流平衡编码中,主要是根据前一个编码过程统计的整个数据流中的1和0的差值,来指导本次编码过程的差值,确保在整个数据流的传输过程中,传输的1和0 的总个数是相差不大的。这样能够保证整个传输链路的直流平衡。
    所谓直流平衡,就是指信号在传输中0和1的数据个数相同,则发送方和接收方直接的就不会有直流电流的传递,在通信系统
FPGA—HDMI 显示器驱动设计与验证(附代码) HDMI显示原理、TMDS最小差分传输技术、编码技术、原语 阅读详情

相关推荐

FPGA学习日记(七)HDMI图像数据传输

一、实现目标 将输入的RGB888格式的数据转换成四个串行输出的RGB信号及像素时钟信号。 二、数据流传输 HDMI常采用TMDS传输(上升沿复位)方式: (1)通过三个通道分别可传入8位的rgb视频信号,2位的控制信号,4位的音频信号或其他数据信号,其中行场同步信号在blue的控制信号中传输; (2)在encode编码器这端,将输入的8位视频信号通过TMDS算法转换为10位的视频信号输出到并串转换模块; (3)在并串转换模块中将输入的10位数据转为串行数发送到接受设备。 三、数据流传输实

weixin_45299680的博客 5113

基于FPGA的ov5640摄像头简易图像采集装置详解

本文介绍一种基于FPGA的,通过流模式DDR实现OV5640摄像头数据采集并显示的方法。

qq_42230252的博客 1万+

从零开始玩转盘古100K开发板:手把手教你实现HDMI图像处理项目

本文提供了一份基于紫光同创盘古100K开发板(核心为PG2L100H FPGA)的HDMI图像处理项目实战指南。内容涵盖从硬件连接、开发环境搭建,到HDMI信号解码、Sobel边缘检测等图像处理流水线构建,再到系统集成调试与性能优化的完整流程,手把手教你实现从输入到输出的完整FPGA图像处理系统。

weixin_29310605的博客 613

学习笔记分享:FPGA之HDMI、以太网篇

高清多媒体接口(High Definition Multimedia Interface)是一种全数字化视频和声音发送接口,可以发送未压缩的音频及视频信号。HDMI可用于机顶盒、DVD播放机、个人计算机、电视、游戏主机、综合扩大机、数字音响与电视机等设备。HDMI可以同时发送音频和视频信号,由于音频和视频信号采用同一条线材,大大简化系统线路的安装难度。

1423

HDMI接口信号流向及原理图分析

此外该接口是双向接口,作为输出接口时,热插拔应该是外部从机输入提供给FPGA作为判断使用的,作为输入接口时,FPGA热插拔引脚输出连接状态,会存在一个方向切换以及状态检测和发送的作用。隔离是保证HDMI接口的电压不会影响开发板的电源,比如没有这个隔离电路,那么HDMI接口的3.3V电压直连到开发板的3.3V电源,如果在板子上电之前将外部的HDMI线连接到FPGA开发板上,外部仪器给HDMI接口供电,会导致电压倒灌到开发板内部,导致一些3.3V连接的LED之类的器件工作,但开发板此时还没供电,就会很奇怪。

qq_43416206的博客 322

HDMI显示器驱动设计与验证

HDMI显示器驱动设计与验证 HDMI组成 HMDI数据传输图 TMDS信号连接图

小柚子的博客 336

【教程4>第11章>第20节】硬件调试通过HDMI接口在显示器上图像显示直方图——开发板准备和HDMI配置

本文介绍了HDMI视频输出接口在FPGA上的实现方法。主要内容包括:1)HDMI接口通过4路LVDS差分信号传输(3路数据+1路时钟),采用交流耦合模式确保信号稳定性;2)详细解析了多种分辨率的时序参数(如1280x720、1920x1080等),包括水平/垂直同步信号、消隐区间等关键参数;3)给出了基于Spartan7 FPGA的HDMI编码器实现方案,包含8b/10b编码、时钟5倍频处理和差分信号输出等核心模块。该方案可支持从480x272到1080P等多种分辨率显示,为FPGA视频处理提供了完整的接口

FPGA/MATLAB学习教程/源码/项目合作开发 745

Delta机器人:运动学正反解分析

Delta机器人:运动学正反解分析 一、Delta机构简介 Delta机构是并联机构中的一种典型机构,起原始结构如图1所示。Delta机构由R.Clavel 博士在 1985年发明,是现在并联机器人中使用最多的一种,具备了并联机构所特有的优点,负载能力强、效率高、末端执行器精度高、运动惯性小,可以高速稳定运动等。因此在机器人领域获得了越来越广泛的应用。以实现高速、精准、高效的运动。           &n

花洛兮灬 3万+

[AbutionGraph] 报表制作-使用Grafana动态可视化知识图谱指标

使用开源报表可视化工具Grafana实时监控时序知识图谱数据仓库AbutionGraph中的数据,实时性报表查询, 满足单次百万千万级的数据查询,毫秒级查询延迟,亚秒级对千亿数据量汇总统计,每日过亿报表查询/多维分析/日志分析等数据指标...

图特摩斯科技-博客 4267

C#与Lua交互原理

以前每一次研究一些新知识并且有所收获的时候,都想写一篇博客来分享这种自己的收获。 一直没有写主要是因为自己水平太菜了,怕写出来贻笑大方,最近想通了,想写就写下来,就算对别人毫无用处,还可以自己没事翻翻,省得自己都忘了。当然如果能对你有一丝丝的帮助,那真是再好不过了 。本文将针对C#与Lua的调用原理阐述一些个人的心得 。 Lua开发环境搭建 有关于VS &amp...

Hui Ye的博客 1万+

Microchip Studio 7.0 从下载到项目调试:AVR开发者的完整入门指南(附常见问题解决)

本文为AVR开发者提供了Microchip Studio 7.0从下载安装到项目调试的完整入门指南。详细介绍了如何获取安装包、创建第一个AVR工程项目,并配置编译与调试环境。同时,文章重点解决了开发过程中常见的编译错误和仿真问题,帮助开发者快速上手并高效使用这一官方集成开发环境。

joy55的博客 328

从零开始学习AI人工智能本体论:概念与实战

本文旨在为初学者提供一个全面而易于理解的人工智能本体论入门指南。我们将覆盖从基本概念到实际应用的全过程,帮助读者理解本体论在AI系统中的核心作用。核心概念与联系:介绍本体论的基本概念和原理核心算法与操作步骤:详细讲解本体构建和推理方法项目实战:通过实际案例展示本体论的应用实际应用场景:探讨本体论在不同领域的应用未来发展趋势:展望本体论在AI领域的前景本体论(Ontology): 在AI中,指对特定领域概念及其关系的明确形式化描述。

AI智能探索者的博客 860

Winform从入门到精通(1)——Label(史上最全)

本篇文章是对专栏《winform控件从入门到精通》的详细介绍

qq_34059233的博客 4万+

YOLOv11改进有效涨点专栏目录 | 含卷积、主干、注意力机制、Neck、检测头、损失函数、二次创新C2PSA/C3k2等各种网络结构改进

Hello,各位读者们好.本文为最新YOLOv11有效涨点专栏目录,YOLOv11以及发布了一个月左右,这个过程中我也是给大家整理了许多的机制,其中包含了C3k2、主干(均支持根据yolov11训练的版本进行二次缩放,全系列都能轻量化)、检测头、注意力机制、Neck多种结构上创新,也有损失函数和一些细节点上的创新。

Snu77的博客 8万+

医疗AI多智能体资源调度:用Python构建高性能MCU资源池

本文介绍了医疗AI服务平台中多智能体资源争用问题的解决方案。作者设计了一个基于MCU(多点控制单元)理念的中央资源调度器,通过三层架构(资源抽象层、调度策略层、执行控制层)实现对GPU、API、数据库等医疗资源的统一管理。系统采用增强版信号量机制处理可计数并发资源,优化令牌桶算法管理速率资源,并支持急诊优先、配额限制、审计合规等医疗场景特殊需求。核心代码提供了带优先级抢占的并发控制和医疗专用令牌桶实现,可有效解决多智能体资源争用导致的优先级混乱、资源利用不均等问题。

AllenLV的博客 3183

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: 基于matlab和FPGA实现FIR滤波器
下一篇: 基于verilog实现AXI4协议接口读写功能
junpingc
博客等级 码龄4年 57粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值