EDID读取学习

简介

Video BIOS可以被认为是一个具有独立硬件抽象层的操作系统。它不会阻止或监视操作系统、应用程序或设备驱动程序对硬件的直接访问。虽然不推荐,但一些DOS应用程序确实可以改变基本的硬件设置,而根本不需要通过视频BIOS。大多数现代应用程序和操作系统都避免直接使用硬件。他们可以使用传统的VGA入口点来实现基本功能,这是最低标准的,或者他们可以使用VESA入口点来访问扩展功能,而不需要设备特定驱动程序的支持。它们可以利用设备特定驱动程序的功能来访问硬件的所有特性。反过来,设备特定的驱动程序可以直接访问硬件,也可以访问视频BIOS提供的任何入口点。

一般来说,视频BIOS是作为英特尔图形控制器抽象层的软件,VBIOS的主要目标如下:

1)初始化硬件-Intel Graphics Accelerator。

2)设置支持的硬件状态并返回硬件状态信息。

3)公开VESA/VGA功能接口和Intel专有函数调用功能接口,使其他应用程序能够访问Graphics hardware。

4)修复硬件/软件接口问题。

Video BIOS可以看作是一个独立于操作系统的硬件抽象层。传统上,**视频BIOS位于物理内存位置C0000h。VBIOS通过响应Int 10h调用与外部组件(如OS、System BIOS和DOS应用程序)进行交互。**它不阻止或监视操作系统、应用程序或设备驱动程序对硬件的直接访问。大多数现代应用程序和操作系统避免直接连接硬件,而是使用视频BIOS来实现VGA, VESA或英特尔特定功能。然后,设备特定的驱动程序直接访问视频BIOS入口点或硬件。

DDC协议和EDID

DDC传输协议以及显示器EDID结构介绍_vga输出ddc功能-CSDN博客

DDC

Display Data Channel (显示数据通道)是显示器与电脑主机进行通信的一个总线标准。它的基本功能就是将显示器的电子档案资料信息,诸如可接收行场频范围、生产厂商、生产日期、产品序列号、产品型号、标准显示模式及其参数、所支持的DDC标准类别、EDID的版本信息等等,高版本的DDC标准总线还可以允许电脑主机直接调节显示器的基本参数,诸如亮度、对比度、行场幅度的大 小、行场中心位置、色温参数等等。

基于End-user 的即插即用功能的需求,VESA 定义了DDC 标准。包含

DDC1/DDC2B/DDC2B+ 等方式DDC1是主机与显示设备单向通讯,以V-Sync为Clock。显示器不停的向主机发送EDID资料。

DDC2B是主机与显示设备准双向通讯,基于I2C 通讯协议。只有主机向显示器发出需求信号,并得到显示器的响应后,显示器才送出EDID 资料。

目前DDC1 基本上已经不再使用,主要是采用DDC2B 方式。PC2001 规定不能再使用DDC1。

EDID

EDID是由VESA——视频电子标准协会定义的,并在1994年和DDC标准1.0版一起推出了1.0版本。在EDID开发之前,VGA接口的针脚4、11、12和15有时被用于定义显示器的性能。这些ID针脚带有高的或低的值用于定义不同的屏幕分辨率。VESA通过重新定义VGA接口的针脚9、12和15,以DDC——显示数据通道的形式作为一个系列母线,扩展了这一体系。这使更多的信息得以交换,因此显示器和信号源之间能够以EDID或其他的形式进行交流。原始的DDC协议定义了从显示器发送到视频信号源的128个字节的EDID格式的数据。 由于显示类型和功能的不断增加,128个字节变得捉襟见肘起来,EDID和DDC都进行了扩展,因此多重128字节的数据块可以进行交换。这就是在众多消费品上所用到的E-EDID。实际上,CEA——美国消费电子产品协会以及国内定义了自己的EDID扩展包来包含额外的视频格式并支持先进的多声道音频功能。 在2007年12月,VESA发布了DisplayID,作为第二代EDID。其目的是取代所有旧版本。DisplayID是一个长度可变的数据结构,最高可达256字节,向信号源传输显示器的相关信息。这意味着包括PC显示设备、消费级电视机以及像笔记本电脑上的液晶屏这样的嵌入式显示器已近不需要多重扩展模块。

EDID数据标准:EDID(Extended Display Identification Data Standard) 就是显示器通过DDC传输给电脑主机的标准数据信息,至今已发布到第三版本,即EDID Version 3,前面分别有EDID Version 1.0,Revision 0,EDID Version 1,Revision 1,EDID Version 2,Revision 0,EDID Version 2,Revision 1等版本。就数据信息量而分,EDID分为128 BYTE和256 BYTE。这种通讯是为了使显示器可以发送自身的性能特征——比如原始分辨率——到信号源设备,使这个设备生成适合于显示器要求的视频特性。用户不需要手动调节,就能最大限度地提升设备之间的兼容性,从而减少了因为不正确的设置和调整对显示图像和系统的整体可靠性所造成的影响。 一般来说,信号源设备可能是一台桌面计算机或笔记本电脑的显卡,但是现在又多了许多不同的设备,包括高清电视接收机和数字录像机、DVD和蓝光播放器,甚至还有游戏机,这就需要读取EDID并输出相应的视频。EDID最初是为了计算机模拟视频设备上的VGA接口而开发的,现在能够用于DVI、HDMI和DisplayPort。

EDID版本定义的结构

供应商/产品标识块——起始的18字节表明了显示器的制造商和产品信息,包括序列号和生产日期。

EDID结构版本以及修订号——随后的2字节用于识别EDID数据结构的版本号和修订号。显示器的基本参数/特性——接下来的5字节用于特性,比如显示器接收的是模拟还是数字信号、同步的类型、水平和垂直的最大尺寸、伽玛传输特性、电源管理功能、色彩空间、默认的视频定时。

色彩特性——随后的10字节定义了显示器所使用的RGB色彩空间转换技术。

确定的频率——随后的3字节定义了显示器支持的VESA确定的视频分辨率/刷新率。每比特代表一个确定的频率,就像640×480/60。如果有的话,那么这3个字节的最后部分定义了厂商的保留频率。

确定的标准频率——随后的16字节定义了显示器支持的8个额外的视频分辨率。这些分辨率必须遵循VESA定义的标准频率。

详细的频率描述——之后的72字节被分为4个18字节块,用于详细描述额外的视频分辨率,以支持自定义的视频刷新率/分辨率。第1块用于描述显示器的首选频率。频率数据的结构既可以是VESA的GTF——一般程序时间也可以是CVT——协同视频时间标准。

EDID的问题

显示设备可以有不同程度的EDID执行,在某些情况下,它们可能完全没有EDID信息。这些不一致可能导致运行问题,包括过扫描和分辨率问题,甚至可能使显示设备完全不能显示信号源的内容。以下是EDID通讯中一些潜在问题的实例,以及可能会导致的后果:1、问题:显示器上没有图像。

可能的原因:信号源设备,比如PC的显卡或是笔记本电脑无法读取显示器的EDID信息。因此,在某些情况下,PC就不会输出任何的视频信号。

2、问题:在选择一个新的信号源后显示器丢失了这个图像。可能的原因:这通常发生在VGA接口的设备上,因为不支持热插拔。如果是支持热插拔的DVI、HDMI或DisplayPort,EDID通讯问题是由于不同厂商设备之间的HPD信号问题。这经常成为一个需要专业知识的综合问题,因为转换数字视频信号的能力是必须的。3、问题:显示了图像,但信号源和显示器的分辨率不匹配。可能的原因:电脑无法读取EDID信息,所以它默认显示为640×480的标准分辨率。如果用户试图手动设置分辨率以便和显示器匹配,某些显卡驱动可能会强制执行较低的默认分辨率,造成桌面滚动/抖动,实际上视频分辨率并没有变化。电脑能够读取EDID信息,但是显卡把输出分辨率限制到XGA的1024×768,这是绝大多数显示器都能够支持的分辨率,确保能够有一个可用的图像并减少无图像显示的可能性。如果这和显示器的当前分辨率不匹配的话,字体就可能不规则地变大、变小或者模糊。

电脑连接到多个具有不同分辨率的显示器。因为它只能从一台显示器上读取EDID,因此输出与其他显示器就不匹配了,这就导致了得不到最佳图像质量,或者根本没有图像显示。在专业系统中,当需要把数字视频信号分配或路由到多个显示器时,这个问题是很常见的。

EDID/DDC协议

DDC使用了I2C总线的标准串行信号计划。因为I2C简单、针脚少、具有双向功能,所以它被广泛地应用于需要交换信息的电子设备和元件中。<font style="color:rgb(51, 51, 51);">EDID/DDC协议中有3条线:SDA——数据、SCL——时钟以及一条逻辑上的“高”直流电压。对于DDC来说,这个逻辑“高”电压被定义为+5伏。</font>EDID信息通常在视频设备启动的时候就进行了交换。DDC规范定义了一个+5伏的电源连接,以提供电源给显示器的EDID电路,**这样就算不打开显示器的电源也可以进行通讯。在启动时,视频源设备会通过DDC发送一个EDID请求。EDID/DDC规范支持热插拔,因此显示器和视频源设备重新连接的时候EDID信息也可以进行交换。热插拔检测不支持VGA,但支持包括DVI、HDMI以及DisplayPort在内的数字接口。**对于这些接口,显示设备可以通过HPD——热插拔检测针脚提供电压,同步到它所连接的视频源设备上去。如果这个针脚上没有电压那么就会显示为断开。视频源设备监控这个HPD针脚上的电压,一旦检测到电压那么它就会启动EDID请求。

DEBUG32基本命令

r
简单的输入-r时就是查看当前各项寄存器的值,并由当前的地址,存储的指令等等。
并且,我们可以用-r命令来对寄存器的值进行修改,如:-r cs 1000, r ip 0000。

a
a指令可以让我们依次对内存单元直接写入汇编语言,如:
a 1000:0
mov ax,0
mov ax,1

d

我们可以用-d命令来查看内存中的内容,和-r类似,我们可以简单地-d来查看当前地址下往下16x8个内存单元存储的内容,同时,我们还可以通过如-d 1000:0来查看指定地址(1000:0)下的内存单元的内容,或者是用如-d 1000:0 f来查看这个地址下指定长度( f )的内容。

u
和其它指令,类似,-u分为两种用法,-u可以查看当前地址(cs:ip)下16个内存单元所存储的汇编语言,而-u 1000:0可以查看指定地址下16个内存单元存储的汇编语言。

p
一般是调试程序的时候用到,可以让计算机直接执行循环到结束(可类比-g)用法是遇到循环的时候直接-p

t

让cpu执行当前地址(cs:ip)所存储的命令

g
一般是调试程序的时候用到,可以让计算机执行到指定地点,如-g 0012(0012是目的ip)

e

简单的-e 1000:00 01 02 03 04命令是可以依次从这个地址开始写入数据进内存单元(本行要一次完成,写完再摁enter之类的),或者是一个一个来,此时就是-e 1000:0之后直接摁空格,这时debug会显示当前内存的值如12.,其中12是内存单元的值,而.后的内容是你准备写入的,此时我们就写一个摁一次空格,而当我们不想输入这个单元时则可以空摁一次空格,需要退出-e时只需要摁一次enter。

q
退出debug。

Video BIOS读取EDIE

查看连接设备

Video BIOS一次只能访问一条管道。5F1Ch用于设置或获取管道访问权限。以下是视频BIOS中双显示支持的使用模型:

LFP:专门用于设备内置显示屏,使用LVDS或eDP内部接口。

EFP: 适用于外部平板显示器,比如笔记本电脑外接显示器,通常支持多种数字接口 。

TV: 适用于电视机连接,通常是通过S-Video、复合视频或分量视频接口。

CRT:传统阴极射线管显示器,适用VGA接口连接。

首先我们需要确定函数调用成功,反回状态AX查看是否执行成功,不同的EDID/DDC协议对应的返回值不同,需要查看具体的CPU spec,也就是AX的值为5F,再根据SPEC,只需要调用5F64函数以及配置指定参数即可根据查看连接的显示设备,根据下图中CX=487C知道CH的值为48,对应的显示设备为EFP和LFP。选择哪个连接,还需要结合硬件原理图看是否对接口做了转换.

读取EDID值

要想知道设备的EDID的值,根据spec中的函数4f15传入相关参数,ES为4f15函数执行存储EDID信息的地址,可以指定,也可以不指定,这里我们指定为4000,读取连接LFP的显示器EDID信息,执行结果中AX为函数执行状态,根据芯片手册,知道4F即函数执行成功,只需要映射对应内存地址中的信息即可得到EDID信息。

debug32使用d ES:DI即可映射对应128Byte字节的信息,得到EDID值。

WIN/Ubunt下获取EDID方法

sudo get-edid | hexdump -C

下载链接 Download M

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35953.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot的在线拍卖系统

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…

Android audio(8)-native音频服务的启动与协作(audiopolicyservice和audioflinger)

音频策略的构建 1、概述 2、AudiopolicyService 2.1 任务 2.2 启动流程 2.2.1 加载audio_policy.conf&#xff08;xml&#xff09;配置文件 2.2.2 初始化各种音频流对应的音量调节点 2.2.3 加载audio policy硬件抽象库 2.2.4设置输出设备 ps:audiopatch流程简介 2.2.5打开输出设…

Springdoc 全部注解一文解释清楚

文章目录 **1. 核心注解****Tag-Class类上** **2. 方法级别注解****Operation-方法描述****ApiResponse 和 ApiResponses-方法的返回结果** **3. 参数相关注解****Parameter-方法参数****Parameters方法参数&#xff08;单个&#xff09;** **4. 实体模型相关注解****Schema-描…

Git的基本指令

一、回滚 1.git init 在项目文件夹中打开bash生成一个.git的子目录&#xff0c;产生一个仓库 2.git status 查看当前目录下的所有文件的状态 3.git add . 将该目录下的所有文件提交到暂存区 4.git add 文件名 将该目录下的指定文件提交到暂存区 5.git commit -m 备注信…

通过qemu仿真树莓派系统调试IoT固件和程序

通过qemu仿真树莓派系统调试IoT固件和程序 本文将介绍如何使用 QEMU 模拟器在 x86 架构的主机上运行 Raspberry Pi OS&#xff08;树莓派操作系统&#xff09;。我们将从下载镜像、提取内核和设备树文件&#xff0c;到启动模拟环境&#xff0c;并进行一些常见的操作&#xff0…

DeepSeek大模型在政务服务领域的应用

DeepSeek大模型作为国产人工智能技术的代表&#xff0c;近年来在政务服务领域的应用呈现多点开花的态势。通过多地实践&#xff0c;该技术不仅显著提升了政务服务的效率与智能化水平&#xff0c;还推动了政府治理模式的创新。以下从技术应用场景、典型案例及发展趋势三个维度进…

【HarmonyOS Next之旅】DevEco Studio使用指南(三)

目录 1 -> 一体化工程迁移 1.1 -> 自动迁移 1.2 -> 手动迁移 1.2.1 -> API 10及以上历史工程迁移 1.2.2 -> API 9历史工程迁移 1 -> 一体化工程迁移 DevEco Studio从 NEXT Developer Beta1版本开始&#xff0c;提供开箱即用的开发体验&#xff0c;将SD…

FPGA中级项目4——DDS实现

FPGA中级项目4——DDS实现 DDS简介 DDS&#xff08;直接数字频率合成器&#xff0c;Direct Digital Frequency Synthesis&#xff09;是一种基于数字信号处理技术的频率合成方法&#xff0c;广泛应用于通信、雷达、仪器仪表等领域。在 FPGA中实现 DDS 具有灵活性高、集成度强、…

SAP的WPS导出找不到路径怎么办;上载报错怎么办

一.打开注册编辑器 二.输入以下地址 计算机\HKEY_CLASSES_ROOT\ExcelWorksheet\Protocol\StdFileEditing\Server 去除掉EXE后面的命令即可 二&#xff1a;WPS上载文件没反应怎么办 如何切换整合模式或多组件模式-WPS学堂 根据官方操作把整合模式改成多组件模式

STM32 DAC详解:从原理到实战输出正弦波

目录 一、DAC基础原理1.1 DAC的作用与特性1.2 DAC功能框图解析 二、DAC配置步骤2.1 硬件配置2.2 初始化结构体详解 三、DAC数据输出与波形生成3.1 数据格式与电压计算3.2 正弦波生成实战3.2.1 生成正弦波数组3.2.2 配置DMA传输3.2.3 定时器触发配置 四、常见问题与优化建议4.1 …

MVC_Publish-Subscriber 模式中的事件处理程序

MVC_Publish-Subscriber 模式中的事件处理程序 MVC 中的事件处理&#xff1a;发布者-订阅者模式 程序启动时&#xff0c;controlRecipes将被传入addHandlerRender; addHandlerRender会侦听事件&#xff08;addEventListener&#xff09;,并使用controlRecipes作为回调&#xf…

网络华为HCIA+HCIP 以太网链路聚合与交换机堆叠、集群

网络可靠性 网络的可靠性指当设备或者链路出现单点或者多点故障时保证网络服务不间断的能力。网络的可靠性可以从单板、设备、链路多个层面实现。 单板可靠性 以S12700E-8为例&#xff0c;设备提供8个线路板槽位、4个交换网板槽位、2个主控板槽位、6个电源模块槽位、4个风扇…

施耐德PLC仿真软件Modbus tcp通讯测试

安装仿真软件&#xff1a;EcoStruxure™ Control Expert - PLC 仿真器 下载地址&#xff1a;https://www.schneider-electric.cn/zh/download/document/EIO0000001719/ 配置CPU&#xff1a; 切换至仿真模式&#xff0c;系统托盘中出现仿真器图标 新建变量test&#xff0c;地址…

LabVIEW棉花穴播器排种自动监测系统

一、项目背景与行业痛点 1. 农业需求驱动 我国棉花主产区&#xff0c;种植面积常年超250万公顷&#xff0c;传统人工播种存在两大核心问题&#xff1a; 效率瓶颈&#xff1a;人均日播种面积不足0.5公顷&#xff0c;难以匹配规模化种植需求&#xff1b; 精度缺陷&#xff1a;人…

2024浙江大学计算机考研上机真题

2024浙江大学计算机考研上机真题 2024浙江大学计算机考研复试上机真题 2024浙江大学计算机考研机试真题 2024浙江大学计算机考研复试机试真题 历年浙江大学计算机复试上机真题 历年浙江大学计算机复试机试真题 2024浙江大学计算机复试上机真题 2024浙江大学计算机复试机试真题 …

GPU视频编解码:Jetson VPI+multimedia_api视频编解码入门(一)

目录 一.Pipline与工具栈 二.硬件设备概况 三.GPU视频编解码框架 四.VPI编译使用实例 五. jetson_multimedia_api编译使用实例 一.Pipline与工具栈 二.硬件设备概况 三.GPU视频编解码框架 jetson设备目前不支持VPF框架&#xff0c;关于VPF的使用我在下节PC段使用X86进行安…

设计模式-对象创建

对象创建 前言1. Factory Method1.1 模式介绍1.2 模式代码1.2.1 问题代码1.2.2 重构代码 1.3 模式类图1.4 要点总结 2. Abstract Factory2.1 模式介绍2.2 模式代码2.2.1 问题代码2.2.2 重构代码 2.3 模式类图2.4 要点总结 3. Prototype3.1 模式介绍3.2 模式代码3.3 模式类图3.4…

【大模型基础_毛玉仁】2.6 非 Transformer 架构

更多内容&#xff1a;XiaoJ的知识星球 目录 2.6 非 Transformer 架构2.6.1 状态空间模型 SSM1&#xff09;SSM&#xff08;State Space Model&#xff09;2&#xff09;RWKV&#xff08;Receptance Weighted Key Value&#xff09;3&#xff09;Mamba 2.6.2 训练时更新TTT(Test…

压测实战 | 微信小程序商城 “双 11” 的压测实践

背景 某全球知名珠宝品牌&#xff0c;始终以创新驱动零售变革。随着全渠道战略的深化&#xff0c;其小程序官方商城逐渐成为品牌私域流量的核心阵地&#xff0c;不仅承载了线上销售、会员运营等功能&#xff0c;同时还与其内部系统打通&#xff0c;如会员管理系统、人力资源系…

Webpack vs Rollup vs Parcel:构建工具深度对比

文章目录 1. 核心特性对比1.1 功能定位1.2 技术架构对比 2. 配置与使用2.1 Webpack 配置示例2.2 Rollup 配置示例2.3 Parcel 使用示例 3. 性能对比3.1 构建速度3.2 输出质量 4. 生态系统4.1 插件生态4.2 学习曲线 5. 适用场景分析5.1 Webpack 适用场景5.2 Rollup 适用场景5.3 P…