zl程序教程

您现在的位置是:首页 >  其他

当前栏目

优秀的 Verilog/FPGA开源项目介绍(九)- DP(增改版)

2023-04-18 12:27:41 时间

优秀的 Verilog/FPGA开源项目介绍(九)- DP(增改版)

在相量子的建议下修改了一下文章及更改了部分内容,同时增加了新的分享内容。

DP即DisplayPort,是一种高清数字显示接口标准,可以连接电脑和显示器,也可以连接连接电脑和家庭影院。2006年5月视频电子标准协会(VESA)推出了1.0版本。

DP各个接口(来源:知乎)

官网

❝https://vesa.org/❞

VESA 是一家由董事会领导的国际非营利性公司,该公司代表了全球超过 285 家具有投票权的公司成员。

VESA 支持并为 PC、工作站和消费电子行业制定行业范围的接口标准。

VESA 提供了一个论坛来开发、促进和支持显示行业的开放标准。

❝https://www.displayport.org/❞

DP协议简析

在《【科普】HDMI vs DisplayPort vs DVI傻傻分不清楚》中我们简单介绍了DP接口协议,得到以下几点:

1、DP是在HDMI及DVI基础上提出的;

2、DP是基于微报文形式进行数据传输;

3、DP借鉴了以太网、PCIe、USB协议。

从以上几点可以简单推导一下DP协议的特点:

1、DP是一个协议,肯定也是会参考OSI参考模型的,即会采用分层结构,最低层肯定是物理层;

DP标准的文章标题

协议(标准)、总线、接口区别

2、DP的EDID、DDC通道(这里猜测是错误的,后续会纠正)也是必不可少的;

3、DP接口借鉴以太网、PCIe、USB协议,所以时钟信号是可有可无的。

综上,我们在从宏观上看下DP标准:

上图就是分层结构框图,可以看出有两层分层结构:1、Link层;2、PHY(物理层)层。同时,无时钟网络,增加了AUX数据链路(HDMI还有随路时钟,而DP没有采用了,因此物理上多一路数据通道。另外DP多了一路AUX配置通道。)

HDMI TYPE A接口定义

DP接口定义

PS:虽然上述接口都是比较常见的接口,但是标准里并没有强制规定接口类型,例如现在的TYPE-C接口(雷电协议)走的就是DP协议。

连接时序

整个过程和HDMI类似:1、先是检查HPD信号;2、读取EDID(通过AUX通道,不是DDC);3、Link Training(DPCD)(确认链路的参数,如lane的数目、链接速率、电压摆幅、预加重、均衡,还有时钟恢复);

DHCP过程(图片来源:知乎https://zhuanlan.zhihu.com/p/150644951?ivk_sa=1024320u)

4、HDCP-如果传输的内容是受保护的,即需要通过HDCP协议进行沟通;

HDCP过程(图片来源:知乎https://zhuanlan.zhihu.com/p/150644951?ivk_sa=1024320u)

PS:HDMI的时序基本也是这样的,在调试过程中,如果无法显示或者输出,参考上诉流程,确定每个物理信号是否正常。

参考文章

❝https://www.eet-china.com/news/202102250353.html❞

❝https://blog.csdn.net/CSDN1013/article/details/106992157?spm=1001.2101.3001.6650.2&utm_medium=distribute.wap_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-2.wap_blog_relevant_default&depth_1-utm_source=distribute.wap_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-2.wap_blog_relevant_default❞

❝https://blog.csdn.net/qq_22326895/article/details/106127537?spm=1001.2101.3001.6650.2&utm_medium=distribute.wap_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.wap_blog_relevant_default&depth_1-utm_source=distribute.wap_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.wap_blog_relevant_default❞

上面的文章可以参考,作为入门科普是比较好的文章。

VHDL FPGA_DisplayPort

❝https://github.com/hamsternz/FPGA_DisplayPort❞

验证板卡

Digilent Nexys 视频开发板上的 Xilinx Artix-7 FPGA

Nomato Labs Opsis 板上的 Spartan 6 LX45T

状态

在一个、两个或四个 2.70Gb/s 通道上实现 800x600 显示(取决于实际电路板的设计)。它还可以通过双通道接口显示 3840x2160@30Hz YCC 422。还有一个测试源可以显示超过 800x600 的颜色条。

为 Artix-7 和 Spartan-6 LXT FPGA 提供低级收发器模块。这些将需要修改以与特定 FPGA 板的布局一起使用。

优化资源使用- 完成- 通过仅使用一个加扰器 LFSR 并为所有通道使用它来优化资源使用 -完成

项目参考

下面是针对这个项目一些前辈写的文章(相量子提供)

❝https://blog.csdn.net/weixin_36590806/category_10892678.html❞

❝https://blog.csdn.net/m0400220334?t=1❞

VERILOG FPGA_DisplayPort

❝https://github.com/hamsternz/DisplayPort_Verilog❞

上一个项目的Verilog版本,进度上稍微有点不同

上两个项目的部分代码解析(非官方)

❝https://blog.csdn.net/m0400220334?t=1❞

ultra96v2/KV260 imx219_to_displayport

ultra96板卡

KV260板卡

项目地址:

❝https://github.com/gtaylormb/ultra96v2_imx219_to_displayport❞

❝https://github.com/ATaylorCEngFIET/Ultra96V2_DisplayPort/tree/master/display_port❞

❝https://github.com/ATaylorCEngFIET/Ultra96V2_DisplayPort/tree/master/display_port❞

这两个板卡的DP接口都是接在PS端的,所以本项目对于想用FPGA实现的朋友没有什么参考价值,适合只是想体验一下DP接口的朋友。

Genesys_ZU_MIPI_PCAM

❝https://github.com/ATaylorCEngFIET/Genesys_ZU_MIPI_PCAM❞

Genesys_ZU板卡

和上面项目一样。

总结

DP接口的项目很少,主要是有种“吃力不讨好”的感觉,很复杂的协议用FPGA实现没什么太大的意义(目前来看),不仅需要占用GTX的资源,而且目前没有很多的应用场景。将来从3D等领域来看还是很值得推广的,目前官方也有自己的IP。但是目前这种IP就类似SDI这种接口,不适合大众的使用场景,目前还是有很多BUG(使用人少)。

官方GTX接口的DP模板

DP IP

所以这一篇文章只是简单介绍一下两个DP的开源项目,适合学习一下接口协议,最后就分享一下DP 1.4的协议(增加了很多由相量子提供的资料),有兴趣可以去学习。