HDMI数据的接收发送实验(十四)

本章概括

本章旨在设计并实现HDMI接收端的关键数据处理模块,解决从高速串行数据流中恢复出并行像素数据及控制信号的问题。HDMI接口传输的TMDS数据为串行比特流,接收端需将其转换为10位并行数据,并从中识别出行场同步状态及有效数据区域。由于传输路径延迟、时钟抖动等因素,接收端必须完成数据与时钟的动态对齐,确保采样稳定性。在此基础上,本章将利用Xilinx FPGA内置的ISERDESE2原语实现1bit转10bit的串并转换,通过主从级联方式扩展转换宽度,并设计控制字符检测逻辑,利用HDMI协议中固定的控制字符序列(如354H、0ABH等)作为有效接收的标志,最终为后续像素解码与输出提供正确对齐的数据流。

二、实现的具体功能

2.1 基于ISERDESE2主从级联的10位数据转换

HDMI每个通道的TMDS数据为串行比特流,需要转换为10位并行数据(par_dat9:0)。单个ISERDESE2原语仅支持最高8位的串并转换,因此通过主从两个原语级联实现10位转换:

主ISERDESE2:负责转换低8位(par_dat7:0)。其Q1Q8输出依次对应par_dat[7]par_dat0

从ISERDESE2:负责转换高2位(par_dat9:8)。其Q3输出对应par_dat9,Q4输出对应par_dat8

级联方式:主模块的SHIFTOUT1(低位)和SHIFTOUT2(高位)连接到从模块的SHIFTIN1和SHIFTIN2,将未转换的高2位串行数据传递给从模块处理。具体连接如图1所示。

通过此级联结构,可将输入的1bit串行数据稳定转换为10位并行数据,供后续逻辑使用。

2.2 控制字符检测与接收同步标志生成

在HDMI数据传输过程中,因为HDMI通道中还会传输音频、控制字符等信号,后面传输的内容取决于控制信号,将HDMI发来的数据信号经过串转并之后,每个通道中2bit的控制信号会被编码成对应的4个不同10bit的控制字符(354H,0ABH,154H,2ABH),在发送的每一帧图像里,B通道中都存在这样一组连续的控制字符(354H,0ABH,354H)。

在时序规范中,每一帧图像传输前,都会有如下的时序,及:

de信号为低时,行同步为0,场同步为0时:控制字符为354H。

de信号为低时,行同步为1,场同步为0时:控制字符为0ABH。

de信号为低时,行同步为0,场同步为0时:控制字符为354H。

以上的控制字符为连续的,如图2所示:

当B通道中的pixel_10bit产生这样一组数据时,就证明了接收到了从HDMI线上传来的数据。要抓到这一控制信号,还需要考虑到由于HDMI线长度的影响,数据或时钟会存在延迟,为了把接收的数据对齐,我们用时钟的动态相移配置把数据和时钟调到稳定的状态,在数据与时钟对齐后,再进行串转并就会抓到这一组固定的3个控制字符,然后产生一个标志信号,代表信号接收正确,就可以通过解码计算出它的像素,也可以再把信号进行并转串输出到HDMI输出接口,给另外的显示器显示内容。

三、总结

本章围绕HDMI接收端的数据处理流程,完成了从串行TMDS数据到10位并行数据的转换,并实现了基于控制字符序列的同步检测与接收标志生成。通过ISERDESE2原语的主从级联设计,成功将1bit串行流扩展为10bit并行数据(par_dat9:0),其中主模块负责低8位、从模块负责高2位,并利用SHIFTOUT与SHIFTIN的级联链路保证了数据传输的完整性。在此基础上,针对HDMI协议中B通道特有的控制字符序列(354H → 0ABH → 354H),设计了检测逻辑,能够实时监控并识别该序列。为解决因线缆长度等因素引起的数据与时钟相位偏移,采用动态时钟相移配置进行稳定对齐,只有当连续捕获到正确的控制字符序列后,才置位接收有效标志信号,确保后续像素解码和输出显示的可靠性。本章实现的功能为HDMI接收链路提供了稳定、可同步的数据基础,并可直接用于环出显示或进一步图像处理。

下次我们来详细介绍时钟的动态相移配置。

本文章由威三学社威三学院出品

对课程感兴趣可以私信联系

相关推荐
坏孩子的诺亚方舟16 天前
FPGA系统架构设计实践15_高云Arora V系列时钟体系
fpga开发·系统架构
FPGA小徐16 天前
入门 CNN 结构全解析|从流程图理论到 FPGA Verilog 硬件实现(含习题带讲解)
fpga开发
FPGA小徐16 天前
FPGA 数字信号处理:并行 FIR 与串行滤波器设计原理、对比与完整 Verilog 实现
fpga开发
Saniffer_SH17 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
zlinear数据采集卡17 天前
双核架构深度解析:ARM+FPGA如何让数据采集卡实现500Ksps高性能?
arm开发·fpga开发·架构
9527华安17 天前
FPGA实现GTH Transceivers Wizard传输2路视频,基于aurora 8b10b编解码架构,提供4套工程源码和技术支持
fpga开发·gth·aurora 8b10b·transceivers
FPGA小徐18 天前
FPGA 数字信号处理(二):并行 FIR 滤波器的 Verilog 全流程设计与实现
fpga开发
国科安芯18 天前
基于AS32S601ZIT2型抗辐照MCU的商业航天卫星姿态确定与控制系统研究
单片机·嵌入式硬件·安全·fpga开发·架构·risc-v
ALINX技术博客18 天前
【黑金云课堂】FPGA技术教程FPGA基础:I2C 总线通信技术
fpga开发·i2c
Hello-FPGA18 天前
Xilinx KU040 FPGA Camera Link 图像采集
c++·fpga开发