0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HDMI的协议以及驱动编码实现案例

454398 来源:AI加速微信公众号 作者:AI加速微信公众号 2020-11-04 12:51 次阅读

引言

做图像处理没有显示怎么能行,所以用两章来介绍HDMI的协议以及编码实现。HDMI的编码,仿真和调试会花费较长时间,特别是第一次在windows环境下部署UVM环境,对于刚刚入门UVM的我来说,这块也花费了很长时间。截止目前设计和仿真的代码都已经做完。所以这章主要介绍HDMI的协议以及设计的架构,之后再用一章来介绍HDMI的实现和驱动编写。

HDMI协议简介

HDMI包含物理层和链路层结构,物理层定义了信号的物理接口,以及物理层物理层编码方式。链路层定义了帧格式,包含了图像,声音,和控制信息

1)物理层信号

TMDS Data:采用差分传输,共有三路。

TMDS Data shield:

TMDS clock:A类型的时钟频率小于55MHz,即最大传输165M pixels/sec。

TMDS clock shield:

SCL:串口通信时钟。

SDA:串口通信数据通路。

CEC:用户可以通过CEC协议对设备进行控制。

Hot Plug Detect:对供电电源进行检测信号,提示电源超过或者不足。

图1.1 物理层信号定义

图1.1 物理层信号定义

2)链路层结构

链路层主要包含如下信息:

图1.2 链路层包含信息

图1.2 链路层包含信息

整个传输的帧时序结构如图1.3:其中HSYNC、VSYNC是图像同步信号,都为高电平,表示是有效图像数据。Preamble用于区分数据类型,具体如图1.4。video数据以2bit的leading gurad band开头,之后是连续的一行图像数据。Data island用于传输声音信息,一些音视频描述信息等。Data island被放置于非有效video图像区域。这部分不是必须的,我们进行图像处理仅仅用于显示处理,所以不进行data island字段设计。这部分介绍略过。

图1.3 帧时序结构

内容

图1.4 preamble结构

图1.4 preamble结构

3)物理层编码

控制信号包括HSYNC、VSYNC以及CTL0……2。其具体映射到物理传输线上为:

Case(D1, D0):

0, 0: q = 10b1101010100;

0, 1: q = 10b0010101011;

1, 0: q = 10b0101010100;

1, 1: q = 10b1010101011;

Endcase

Video数据8bit被编码为10bit,这样可以降低TMDS物理路径上电位转变次数。算法如下:


图1.5 video data物理层编码

图1.5 video data物理层编码

HDMI设计架构
HDMI设计中不包含data island的结构解析,因为仅仅用于显示。整体结构如图2.1。包含两大部分:

1)hdmi_link

用于从ddr中获得图像数据,并封装成链路层格式。其中cfg是通过arm端实现寄存器配置,包括图像的起始地址,大小,图像长宽,blank的大小等。Ctrl是实现对HDMI的整体控制,包括使能HDMI发送,处理hotplug以及产生HDMI传输中断等。Img_reader通过axi总线从DDR中获得图像数据,pack是完成链路层格式的打包,并发送到物理层。

2)hdmi_phy

这层主要是将链路层帧结构进行物理编码,并转换为串行数据发送出去。Encoder就是对帧结构进行编码,每8bit转换为10bit数据。Serial中用到了芯片的SERDERS,将并行10bit数据转化为高速串行数据。

3)PLL

产生两种时钟信号:一种用于链路层数据打包和读取等,而tmds_clk是高速串行时钟。用于提供给物理接口。

图2.1 HDMI设计结构

图2.1 HDMI设计结构

验证架构

这部分用UVM来实现的,利用了UVM的基本架构。大致如图3.1。

1)img_seq,img_drv

产生图像并通过axi发送给DUT,同时将数据发送给img_monitor用于产生对比数据。

2)sw config

模拟软件行为,配置寄存器数据。

3)img_monitor

获取原始img数据产生对比文件,然后拉取DUT中link层和phy层数据,进行对比。输出对比结果。

图3.1 UVM验证架构

图3.1 UVM验证架构

总结
简单介绍了HDMI协议,并设计了HDMI显示架构。完成了设计和仿真代码。下一章将会介绍仿真和调试过程。

编辑:hfy


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HDMI
    +关注

    关注

    32

    文章

    1469

    浏览量

    149480
  • 图像处理
    +关注

    关注

    26

    文章

    1207

    浏览量

    55679
收藏 人收藏

    评论

    相关推荐

    Profinet协议转换为CanOpen协议来连接CanOpen伺服驱动器的应用

    局域网(CAN)网络的通信协议,被广泛应用于汽车和其他嵌入式系统中。对于将Profinet协议转换为CanOpen协议以链接台达B3系列伺服驱动器的应用,以下是一些运用的基本步骤:系列
    发表于 01-10 10:29

    ec11编码器 有什么驱动芯片吗

    EC11编码器是一种常用的编码器,通常用于工业自动化、机器人、数控机床等领域。为了驱动EC11编码器的正常工作,需要使用相应的驱动芯片。下面
    的头像 发表于 12-13 10:43 506次阅读

    普通HDMI线和光纤HDMI线区别在哪里

    HDMI线和光纤HDMI线的外观和传输速率也有较大的差异。普通HDMI线通常较粗、较重、较硬,而光纤HDMI线则超细、重量轻、柔软。在传输速率方面,光纤
    的头像 发表于 11-20 10:14 791次阅读

    编码器是如何实现定位功能的呢?

    严格来讲,编码器只会告诉你改如何定位,要如何执行,是需要靠数控系统(或者PLC或运动控制器之类控制器)控制伺服或者步进电机来实现定位的,编码器好比人的眼睛,知道电机轴或者负载处于当前某个位置,工业
    的头像 发表于 11-13 08:07 889次阅读
    <b class='flag-5'>编码</b>器是如何<b class='flag-5'>实现</b>定位功能的呢?

    CS5801国产HDMI转EDP屏驱动解决方案最新设计电路

    CS5801最新设计电路,CS5801国产HDMI转EDP芯片方案电路,HDMI转EDP点屏转换方案,HDMI转DP屏驱动解决方案
    发表于 09-19 17:30 2次下载

    实现DeviceNET通讯协议

    在DeviceNET通讯协议中,编码器起到了非常重要的作用。    那么在实际应用中,我们如何选择合适的编码器呢?首先需要考虑的是测量范围和精度。不同类型的编码器具有不同的测量范围和精
    的头像 发表于 08-18 13:59 843次阅读
    <b class='flag-5'>实现</b>DeviceNET通讯<b class='flag-5'>协议</b>

    CANopen协议编码

    CANopen编码器是一种常见的工业自动化设备,广泛应用于工业控制领域。它采用CANopen通信协议,可实现编码器与各种控制器的快速连接,从而实现
    的头像 发表于 08-09 15:29 894次阅读
    CANopen<b class='flag-5'>协议</b><b class='flag-5'>编码</b>器

    HDMI1.3 over IP网线延长器

    此方案是一款MJPEG编解码方式的延长器,编码端(TX)将HDMI音视频信号编码成网络信号进行远距离传输,解码端(RX)将收到的网络信号解码后通过HDMI输出,同时支持IR和KM传输
    的头像 发表于 07-20 17:40 380次阅读
    <b class='flag-5'>HDMI</b>1.3 over IP网线延长器

    就业班学员学习笔记分享:FPGA之HDMI、以太网篇

    发送和接收设备的同步。 HDMI协议与DVI协议在很多方面都是相同的,包括物理连接(TMDS)、有效视频编码算法以及控制字符的定义等。但是相
    发表于 06-12 18:30

    老曹说工控|PROFINET协议如何实现报警以及从站诊断的?

    PROFINET协议通过特定的机制实现了报警和从站诊断功能,具体包括报警机制、诊断数据对象、诊断报文、GSDML文件等
    的头像 发表于 05-30 10:36 778次阅读
    老曹说工控|PROFINET<b class='flag-5'>协议</b>如何<b class='flag-5'>实现</b>报警<b class='flag-5'>以及</b>从站诊断的?

    HDMI:加扰如何实现更高的数据速率

    加扰是HDMI 2.0中引入的最重要的功能之一。它用于减少电磁干扰(EMI)和射频干扰(RFI)。在这篇博客中,我们将介绍HDMI 2.0中引入的加扰功能。
    的头像 发表于 05-26 11:04 2536次阅读
    <b class='flag-5'>HDMI</b>:加扰如何<b class='flag-5'>实现</b>更高的数据速率

    LCC260 HDMI全高清H264硬编码UVC音视频采集卡

    LCC260是灵卡图像推出的⼀款⾼清HDMI⾳频采集与H264编码⼀体化采集卡。LCC260的HDMI⽀持V1.4a版本格式标准,最⾼⽀持1920x1080p@60fps的视频输⼊。LCC260
    发表于 05-25 10:05 1次下载

    基于FPGA的BISS-C协议编码器的解码实现

    有没有大佬弄过 基于FPGA的BISS-C协议编码器解码,想问一下该怎么搞,有偿,或者有没有现成的产品可以帮忙解码?
    发表于 05-23 17:17

    OpenHarmony支持HDMI接口声卡适配说明

    和platform。要实现HDMI声卡的支持,就需要将这几个模块的驱动注册到ADM框架中。 本文基于3月1日的OpenHarmony master分支进行介绍。基于yangfan平台介绍,如适配其他
    发表于 05-23 14:04

    如何在hdmi显示器上设置亮度?

    有一个用imx8mq板在hdmi显示器上设置亮度的情况。hdmi显示器可以支持通过DDC/CI协议调节亮度,该协议已经在windows应用程序中实现
    发表于 04-04 06:18