《15寸移动式心电监测仪》制作纪实 :zynq 7000系列 HDMI多输出同显

本文主要是介绍《15寸移动式心电监测仪》制作纪实 :zynq 7000系列 HDMI多输出同显,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《15寸移动式心电监测仪》制作纪实 :zynq 7000系列 HDMI多输出同显

  • 何为HDMI多输出同显
  • 如何实现
    • HDMI知识
    • vivado部分
    • 硬件部分

何为HDMI多输出同显

HDMI多输出同显就是说,会从板子上输出两路或者多路HDMI信号,但这几路HDMI显示的是完全一致内容,画面是复制的。就像这样:
(这个是跑HDMI测试的PS图片显示程序)在这里插入图片描述
(这个是上了Linux之后的样子)
在这里插入图片描述
在这里,我们用这种方法向仪器外提供一个HDMI输出接口,将仪表画面同时投送到大屏幕上。

如何实现

HDMI知识

拿一个HDMI接口开讲:
在这里插入图片描述
1-12PIN:TMDS数据
发送音频、视频及各种辅助数据
信号编码方式:遵循DVI1.0规格。Single-link (Type A HDMI) 或 dual-link (Type B HDMI)
视频像素带宽:从25 MHz到340 MHz(Type A, HDMI 1.3)或至680MHz (Type B)。带宽低于25MHz的视频信号如NTSC480i将以倍频方式输出。每个像素的容许数据量从24位至48位。支持每秒120张画面1080p分辨率画面发送以及WQSXGA分辨率
像素编码方式:RGB4:4:4, YCbCr 4:4:4(8-16 bits per component); YCbCr 4:2:2(12 bits per component); YCbCr 4:2:0(HDMI 2.0)
音频采样率:32kHz, 44.1kHz, 48kHz, 88.2kHz, 96kHz, 176.4kHz, 192kHz, 1536kHz(HDMI 2.0)。
音频声道数量:最大8声道。HDMI 2.0支持32声道。
音频流规格:IEC61937兼容流,包括高流量无损信号如Dolby TrueHD、DTS-HD Master Audio。

13PIN:CEC沟道
CEC全文为Consumer Electronics Control
必须预留线路,但可以不必实现
用来发送工业规格的AV Link协议信号,以便支持单一遥控器操作多台AV机器
为单芯线双向串列总线
在HDMI 1.0协议中制订,在1.2a版中更新 [1]
一些制造商可能使用HDMI CEC,但是可能使用不同的名称来代表CEC功能

15,16PIN:DDC沟道
DDC全文为Display Data Channel
发送端与接收端可利用DDC沟道得知彼此的发送与接收能力,但HDMI仅需单向获知接收端(显示器)的能力。
使用100kHz时钟频率的I²C信号,信号电平为5V
发送数据结构为VESAEnhanced EDID(V1.3)。

17,18PIN:5V电源(源端提供给接受端)

19PIN:热插拔检测

vivado部分

1.添加新的HDMI输出IP核
不用自己写verilog,我们调用IP核即可。
在这里插入图片描述
这里以双路为例,原来的是一路,那我们加一路。
在这里插入图片描述
2.把总线展开,并联连线:
在这里插入图片描述
3.新建一个xdc文件,仿照板载HDMI进行约束:
在这里插入图片描述
每一个TMDS差分对有三行,HDMI有四个,只需要指定positive端即可,n端会自己对应上。

hdmi_oen为普通的LVCOMS33引脚。
在这里插入图片描述
约束之后一定Ctrl+S一下,然后点一下Reload,让vivado读取约束文件,同步到I/O port 中,然后去I/O port 里面检查一下是不是对应上了。
这里推荐大家按照我的方法直接修改XDC,然后同步,因为我发现在I/Oport中直接分配,无法正确分配TMDS差分对,也并不报错。

硬件部分

参照ALINX 板子HDMI输出部分,受限于手头的材料与快速测试的要求,我对其做了精简与改动,并不推荐大家也这么干,尽管是可以用,但是信号完整性较差,也不太符合规范。
在这里插入图片描述

1.我们要从EXT IO中拖四组差分对出来,ALINX的EXT IO并不是直接与FPGA相连,而是过了一个33欧姆的排阻,但这里我没有管它。
对于HDMI来讲它是不应该有的
在这里插入图片描述

2.HDMI四对差分线需要上拉电阻,因手头缺少50欧姆电阻,改成100欧姆。上拉电源为3.3V时画面时好时坏,后上拉至5V画面正常。为了测试,临时使用。
实际应为50欧姆,并上拉到3.3V,大家不要学我,要按照电路图标准走

在这里插入图片描述
3.外部HDMI接口中I2C的处理:直接不接。
这里说一下可以临时这样做的原因:因为HDMI仅需单向获知接收端(显示器)的能力,这就意味这如果发送端保证使用的是显示器能够接受的分辨率,就可以与之不通信。
(源端使用的是1024*768,我手上的显示器支持)

4.外部HDMI接口中5V的处理:直接接5V。

5.然后开始接线,接好了线把线束捆好,否则会有些干扰(这里还是精简了,应该使用差分屏蔽电缆)
在这里插入图片描述

总结一下:尽管不符合规范,但驱动HDMI最少10根线(四组差分对+5V+GND)就可以了,这个可以在测试的时候临时使用。

这样做以后就可以看到HDMI多输出同显的效果啦~
在这里插入图片描述

这篇关于《15寸移动式心电监测仪》制作纪实 :zynq 7000系列 HDMI多输出同显的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/356036

相关文章

java -jar example.jar 产生的日志输出到指定文件的方法

《java-jarexample.jar产生的日志输出到指定文件的方法》这篇文章给大家介绍java-jarexample.jar产生的日志输出到指定文件的方法,本文给大家介绍的非常详细,对大家的... 目录怎么让 Java -jar example.jar 产生的日志输出到指定文件一、方法1:使用重定向1、

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

使用Java将实体类转换为JSON并输出到控制台的完整过程

《使用Java将实体类转换为JSON并输出到控制台的完整过程》在软件开发的过程中,Java是一种广泛使用的编程语言,而在众多应用中,数据的传输和存储经常需要使用JSON格式,用Java将实体类转换为J... 在软件开发的过程中,Java是一种广泛使用的编程语言,而在众多应用中,数据的传输和存储经常需要使用j

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

python多种数据类型输出为Excel文件

《python多种数据类型输出为Excel文件》本文主要介绍了将Python中的列表、元组、字典和集合等数据类型输出到Excel文件中,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一.列表List二.字典dict三.集合set四.元组tuplepython中的列表、元组、字典

Spring AI集成DeepSeek实现流式输出的操作方法

《SpringAI集成DeepSeek实现流式输出的操作方法》本文介绍了如何在SpringBoot中使用Sse(Server-SentEvents)技术实现流式输出,后端使用SpringMVC中的S... 目录一、后端代码二、前端代码三、运行项目小天有话说题外话参考资料前面一篇文章我们实现了《Spring

Rust格式化输出方式总结

《Rust格式化输出方式总结》Rust提供了强大的格式化输出功能,通过std::fmt模块和相关的宏来实现,主要的输出宏包括println!和format!,它们支持多种格式化占位符,如{}、{:?}... 目录Rust格式化输出方式基本的格式化输出格式化占位符Format 特性总结Rust格式化输出方式