HDMI模块代码简化

简化HDMI模块代码

  • 由于有模块被去除,因此代码有一些功能是无效的
  • 简化方案
    • 快速方法:找到去除模块相关的代码,然后将代码注释
    • 根本方案:逐一分析每个IP相关的寄存器和寄存器所对应的模块行为等,厘清代码的运行流程
    • 根据文档分析各个IP的输入输出,和内部的控制机制,寄存器的存取,相邻IP间的交互;然后按照PS端的代码进行印证交互是否符合预想

HDMI相关模块

EDID

  • Extended Display Identification Data(扩展显示标识数据),VGA、DVI的EDID由主块128字节组成,HDMI的EDID增加扩展块(128字节),扩展块的内容主要是和音频属性相关的,DVI和VGA没有音频,HDMI自带音频,扩展块数据规范按照CEA-861x标准定义,未来可能增加到512或256的整数倍。
  • 包含有关显示器及其性能的参数,包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串等等。还有显示器支持的显示时序
  • EDID信息是通过DDC传送的,DDC的全称是Display Data Channel(显示数据通道)
  • 详细时序描述块(DTD),Detailed Timing Descriptions

DDC2B

DDC2B是主机读取显示器扩展显示信息的双向资料交换通道,基于I2C 通讯协议

HDCP

  • https://baike.baidu.com/item/HDCP/2654587?fr=aladdin

I²C

  • ‘Inter-Integrated Circuit’
  • https://baike.baidu.com/item/I2C/15798883
  • 周边可以在系统仍然在运作的同时加入或移出总线
  • 更小的包装通常能够减少重量及电源的消耗
  • 两种通信协议非常适合近距离低速芯片间通信
  • I²C 是多主设备的总线,I²C没有物理的芯片选择信号线,没有仲裁逻辑电路,只使用两条信号线—— ‘serial data’ (SDA) 和 ‘serial clock’ (SCL)。
  • 物理实现上,I²C 总线由两根信号线和一根地线组成。两根信号线都是双向传输的,参考下图。I²C协议标准规定发起通信的设备称为主设备,主设备发起一次通信后,其它设备均为从设备。
  • I²C 数据传输速率有标准模式(100 kbps)、快速模式(400 kbps)和高速模式(3.4 Mbps)
  • I²C 通信过程大概如下。首先,主设备发一个START信号,这个信号就像对所有其它设备喊:请大家注意!然后其它设备开始监听总线以准备接收数据。接着,主设备发送一个7位设备地址加一位的读写操作的数据帧。当所设备接收数据后,比对地址自己是否目标设备。如果比对不符,设备进入等待状态,等待STOP信号的来临;如果比对相符,设备会发送一个应答信号——ACKNOWLEDGE作回应。
  • 当主设备收到应答后便开始传送或接收数据。数据帧大小为8位,尾随一位的应答信号。主设备发送数据,从设备应答;相反主设备接数据,主设备应答。当数据传送完毕,主设备发送一个STOP信号,向其它设备宣告释放总线,其它设备回到初始状态。
  • 基于I²C总线的物理结构,总线上的START和STOP信号必定是唯一的。另外,I²C总线标准规定SDA线的数据转换必须在SCL线的低电平期,在SCL线的高电平期,SDA线的上数据是稳定的

SPI

  • SPI是[单主设备( single-master )]通信协议,这意味着总线中的只有一支中心设备能发起通信。当SPI主设备想读/写[从设备]时,它首先拉低[从设备]对应的SS线(SS是低电平有效),接着开始发送工作脉冲到时钟线上,在相应的脉冲时间上,[主设备]把信号发到MOSI实现“写”,同时可对MISO采样而实现“读”
  • SPI有四种操作模式——模式0、模式1、模式2和模式3,它们的区别是定义了在时钟脉冲的哪条边沿转换(toggles)输出信号,哪条边沿采样输入信号,还有时钟脉冲的稳定电平值(就是时钟信号无效时是高还是低)。每种模式由一对参数刻画,它们称为时钟极(clock polarity)CPOL与时钟期(clock phase)CPHA。
  • [主从设备]必须使用相同的工作参数——SCLK、CPOL 和 CPHA,才能正常工作。如果有多个[从设备],并且它们使用了不同的工作参数,那么[主设备]必须在读写不同[从设备]间重新配置这些参数。
  • SPI不规定最大传输速率,没有地址方案;SPI也没规定通信应答机制,没有规定流控制规则。事实上,SPI[主设备]甚至并不知道指定的[从设备]是否存在。这些通信控制都得通过SPI协议以外自行实现。例如,要用SPI连接一支[命令-响应控制型]解码芯片,则必须在SPI的基础上实现更高级的通信协议。
  • SPI适合数据流应用,而I²C更适合“字节设备”的多主设备应用。

TMDS

  • https://www.cnblogs.com/eleclsc/p/10764692.html

PLL

  • https://baike.baidu.com/item/PLL/3852?fr=aladdin
  • 许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步。一般的晶振由于工艺与成本原因,做不到很高的频率,而在需要高频应用时,由相应的器件VCO,实现转成高频,但并不稳定,故利用锁相环路就可以实现稳定且高频的时钟信号。
  • QPLL和CPLL的区别,在于两者支持的线速率不同,对于CPLL来说,支持的线速率位1.6GHz到3.3GHZ之间,而对于QPLL来说,GTX支持的线速率分两档,Lower Baud支持5.93GHz~8.0GHz,Upper Baud支持9.8GHz12.5GHz,对于GTH则不分档位,支持的线速率为8.0GHz13.1GHz

芯片设计中的时钟与约束

  • https://blog.csdn.net/l471094842/article/details/103138172
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值