Monitor 显示器软件开发设计入门二

基础篇--显示驱动方案输出接口介绍

    写在前面:首先申明,这篇文章是写给那些初入显示器软件行业的入门者,或是对显示器没有基本知识的小白人员。如您是行业大咖大神,可以绕行,可看后期进阶文章。

   上篇介绍了输入接口及相关通道,这篇接着介绍显示方案输出接口的相关知识。这部分内容稍偏硬件,但是这部分所讲的是一个软件开发人员必备的知识,也是绕不过的一道坎。

  显示器方案芯片的输出接口在日常工作和生活中几乎很难看到(MST DP TX除外)。一般能看到的是显示屏(Panel),机壳和外露的接口。

  实际上,在机壳内部,Panel是通过线材(cable)与显示方案芯片(Scaler)的接口连接起来的。

  显示器的显示屏接口类型有很多,例如TTL,RSDS,MIPI,LVDS,eDP,V-BY-ONE……, 因各种类型的接口带宽(每秒传输的数据量)不一样,方案价格不一样,这就导致项目开案选scaler方案时要选择合适的方案搭配panel进行产品设计,以便设计出适合于应用场合且性价比高的产品。

  10.1寸及以下小尺寸多以TTL /MIPI接口为主,因屏幕尺寸小,一般不用于显示器产品;RSDS目前属于已淘汰的接口。目前显示器行业,显示驱动方案输出以eDP,V-BY-ONE和LVDS接口为主。作为显示器设计开发者,对这当前主流这几类接口类型,接口连接方式及软件配置必须要了解清楚。

eDP 接口

  eDP 是基于DP架构和协议的一种内部数字传输接口,是目前显示器屏幕的主流接口,也是所见过最秀气的接口(指接口尺寸小,厚度薄,pin间距小)。最重要的指标优势是带宽,eDP 1.4a 单通道HBR3 可达8.1Gbps,而LVDS 采用8对差分线也仅为7.56Gbps。很明显,eDP数据传输能力及成本明显占优。

eDP 接口

  eDP 显示屏接口有1lane/2lanes/4lanes/8lanes/16lanes之分,传输能力有1.6Gbps/2.7Gbps/5.4Gbps/8.1Gpbs之分。这些知识如果不清楚,可以问度娘。
  下图是某项目显示驱动芯片eDP 接口原理图。

eDP 接口原理图


  与软件相关的配置部分,软件编程需要注意:
(1)关于lane的数量,需要查看屏规格书来确认,例如,下面这款屏是用2lanes eDP 传输data。

2lanes eDP 传输data

 (2) 关于Lane的P/N极性和顺序,需要结合显示芯片pin定义,显示芯片接口到eDP 屏接口connector和eDP cable来综合确认。
           简单来说,就是要看显示器驱动芯片的eDP lane与panel 接口的lane的对应关系,包括顺序和极性,然后在代码里做设定(需要有一点硬件基础知识)。
(3) 关于Aux channel,需要确认显示驱动方案是否支持P/N 交换。
(4) 关于带宽的设定,需要查看panel 规格书,确认每对lane的带宽为多少,再结合代码里的定义,设定正确的带宽。
(5) 关于HPD 信号,对于显示驱动芯片来说,按协议要求,HPD是必须的。 eDP 屏接口的HPD信号是eDP屏充当sink角色发出来的,显示器方案芯片程序通过侦测这个pin的状态变化(通常为L->H,H大于2.4V)来通知source(显示器芯片)与sink(屏)在aux channel 沟通。
           但有时这个中断信号sink不会发出,因为屏的某种原因导致HPD 不会有状态变化或是High的电平不够,此时需要软件开发人员灵活变通,让程序在没有正确识别这个状态变化时也能往下跑,不至于卡在这里等屏厂解决问题(屏供应商通常也不会去解决)。

 V-BY-ONE 接口

  V-BY-ONE 是日本赛恩电子公司(THine Electornics)开发的适用于显示器的信号传输接口标准。

  V-BY-ONE接口最高传输速率是3.75Gbps/lane;通过8lans即可实现4K@60Hz信号传输,如果采用16lanes,可工作在4K@120Hz或8K@60Hz。

 V-BY-ONE 接口

  这里简单理解下4K @60Hz信号的带宽计算,不至于拿到一份屏规格书而显示器驱动方案带宽不支持还傻傻地在那里配置软件却怎么也点不亮屏。

  先看下公式:

  BW=Htotal*Vtotal*Freq*bit*3*10/8

  4K分辨率是3840*2160,计算数据量时Htotal =4400,Vtotal=2250,每个dot由R,G,B三个pixel组成(R、G、B),所以乘以3;刷新率是60Hz;比特按8bit计算;信道编码是8B/10B,代入数据后,总数据量=4400*2200*60*8*3*10/8=17820000000bit/s=17.82Gbps

  当采用8lanes的V-BY-ONE时,每lane的带宽=总数据量/lane数量=17.82/8=2.2275Gbps<3.75Gbps所以如果传输4K60的信号,8lanes 就够用。

  下图是某项目显示驱动芯片VBO 接口原理图。
    

VBO 接口原理图


   在代码的设定上,与eDP 一样,会有lane的数量,极性和HPD/LOCK等设定。
   不一样的地方是,eDP 可以通过mapping的方式来定义每对lane和每对lane的P/N使之与panel 的lane顺序和极性对齐,即使不是按一对一的顺序做的eDP cable,也可以通过代码设定达到一对一连接的目的。
   但VBO需要按组配置,lane的顺序要么是倒序,要么是顺序,且该组内的每对lane的P/N极性必须一致。

LVDS接口

  LVDS(Low Voltage Differential Signaling)最早是由美国国家半导体公司(National Semiconductor)提出的一种高速信号传输电平,是一种低振幅差分信号技术。它的幅度非常低(约350mV),通过一对差分线或平衡电缆传输数据。具有低噪声,低功耗的特点。

LVDS接口

  LVDS 接口是过去十多年中显示器里panel的主流接口。下图是某项目显示驱动芯片 LVDS接口原理图。

LVDS接口原理图

   LVDS 接口与代码相关的主要参数涉及到线序,极性,通道数量和色深这几部分。
   (1)关于线序,原理与前面讲的VBO一样,需要根据显示驱动芯片LVDS输出pin与panel接口之间的线序关系进行正确设定,否则不能正确显示。
            有些显示驱动方案有镜像设定功能,可以将0/1/2/Clock/3的顺序设定为3/clock/2/1/0的顺序,开发时需要根据实际接法对代码灵活设定,而不是要求硬件去修改cable的线序。
   (2)关于极性,因LVDS属于差分类型传输,P/N交换不影响传输正确性(相当于相位180度翻转), 故LVDS接口一般没有要求确认P/N极性设定。
   (3)通道数量,大部分LVDS接口都具备一组或两组传输数据通道(即ODD 和EVEN),这个规格在屏规格书里很容易看出来。因为很多显示器驱动方案支持2 通道LVDS 输出,这就要求显示器驱动方案的通道设定与屏的通道要对应,否则显示的画面是花的,颜色也不正常。有一定经验的软件开发人员也能通过显示的画面一眼判断odd与even 是否有swap。
  (4) 关于色深,不论eDP接口还是VBO接口或是LVDS接口的显示屏,都有色深规格定义。只不过,LVDS接口的显示屏,如果色深定义不对,可能会导致颜色异常,所以也要根据屏规格书在代码里正确设定color depth。

  总结:本章节简述了软件开发人员对显示器方案输出主流接口需要掌握的基本知识点,如有兴趣,可查询更多资料深入了解。下一章节将解读显示屏(Panel)规格书里与软件代码设定相关的内容。

点击此处阅读原文即可查看作者更多精彩内容哦!

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

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

相关文章

像素流送api ue多人访问需要什么显卡服务器

关于像素流送UE推流&#xff0c;在之前的文章里其实小芹和大家聊过很多&#xff0c;不过今天偶然搜索发现还是有很多小伙伴&#xff0c;在搜索像素流送相关的问题&#xff0c;搜索引擎给的提示有这些。当然这些都是比较短的词汇&#xff0c;可能每个人真正遇到的问题和想获取的…

【21-30期】Java技术深度剖析:从分库分表到微服务的核心问题解析

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;Java &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 文章题目&#xff1a;Java技术深度剖析&#xff1a;从分库分表到微服务的核心问题解析 摘要&#xff1a; 本…

Flutter 权限申请

这篇文章是基于permission_handler 10.2.0版本写的 前言 在App开发过程中我们经常要用到各种权限&#xff0c;我是用的是permission_handler包来实现权限控制的。 pub地址&#xff1a;https://pub.dev/packages/permission_handler permission_handler 权限列表 变量 Androi…

【Spring】Spring IOCDI:架构旋律中的“依赖交响”与“控制华章”

前言 &#x1f31f;&#x1f31f;本期讲解关于Spring IOC&DI的详细介绍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么…

【小白学机器学习34】基础统计2种方法:用numpy的方法np().mean()等进行统计,pd.DataFrame.groupby() 分组统计

目录 1 用 numpy 快速求数组的各种统计量&#xff1a;mean, var, std 1.1 数据准备 1.2 直接用np的公式求解 1.3 注意问题 1.4 用print() 输出内容&#xff0c;显示效果 2 为了验证公式的背后的理解&#xff0c;下面是详细的展开公式的求法 2.1 均值mean的详细 2.2 方差…

ubuntu20配置mysql注意事项

目录 一、mysql安装 二、初始化配置密码 三、配置文件的位置 四、常用的mysql命令 五、踩坑以及解决方法 一、mysql安装 1.更新apt源 sudo apt update 2.安装mysql服务 sudo apt-get install mysql-server 3.初始化配置 sudo mysql_secure_installation 4.配置项 VALI…

开展网络安全成熟度评估:业务分析师的工具和技术

想象一下,您坐在飞机驾驶舱内。起飞前,您需要确保所有系统(从发动机到导航工具)均正常运行。现在,将您的业务视为飞机,将网络安全视为飞行前必须检查的系统。就像飞行员依赖检查表一样,业务分析师使用网络安全成熟度评估来评估组织对网络威胁的准备程度。这些评估可帮助…

MySql(面试题理解B+树原理 实操加大白话)

数据的定位 通过磁道和扇区定位到数据的位置 扇区为512字节 黄色地方数据位置为2磁道3扇区 黑色地方数据位置为1磁道1扇区 通过磁道和扇区还有偏移量定位到数据的位置 比如这里有一张表 由id、name、no、address组成id为主键 列占有大小&#xff08;字节&#xff09; id int …

目标检测,图像分割,超分辨率重建

目标检测和图像分割 目标检测和图像分割是计算机视觉中的两个不同任务&#xff0c;它们的输出形式也有所不同。下面我将分别介绍这两个任务的输出。图像分割又可以分为&#xff1a;语义分割、实例分割、全景分割。 语义分割&#xff08;Semantic Segmentation&#xff09;&…

K8s内存溢出问题剖析:排查与解决方案

文章目录 一、背景二、排查方案&#xff1a;1. 可能是数据量超出了限制的大小&#xff0c;检查数据目录大小2. 查看是否是内存溢出2.1 排查数据量&#xff08;查看数据目录大小是否超过limit限制&#xff09;2.2 查看pod详情发现问题 三、解决过程 一、背景 做redis压测过程中…

python3 + selenium 中用PIL获取全屏幕截图

获取当前屏幕截图非常简单&#xff0c;需要import PIL.ImageGrab。调用grab函数即可得到Image对象&#xff0c;显示图片如图所示。 高版本的PIL中的grab函数还提供有一些参数。要查看当前PIL包的版本&#xff0c;可以import然后查看其__version__属性。 如果是较高版本的PIL…

请求(request)

目录 前言 request概述 request的使用 获取前端传递的数据 实例 请求转发 特点 语法 实例 实例1 实例2 【关联实例1】 域对象 组成 作用范围&#xff1a; 生命周期&#xff1a; 使用场景&#xff1a; 使用步骤 存储数据对象 获得数据对象 移除域中的键值…

离线安装 Docker-IO:详细步骤指南

离线安装 Docker-IO:详细步骤指南 一、准备工作1.1 下载 Docker 离线安装包1.2 准备安装环境1.3 配置防火墙和 SELinux(可选)二、上传和解压离线安装包2.1 上传安装包2.2 解压安装包三、安装 Docker-IO3.1 移动 Docker 文件到系统目录3.2 配置 Docker 服务3.3 赋予服务文件执…

python图像彩色数字化

效果展示&#xff1a; 目录结构&#xff1a; alphabets.py GENERAL {"simple": "%#*-:. ","complex": "$B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_~<>i!lI;:,\"^. " } # Full list could be found here…

宠物空气净化器推荐2024超详细测评 希喂VS霍尼韦尔谁能胜出

最近有粉丝一直在评论区和后台探讨宠物空气净化器是不是智商税的问题&#xff0c;有人认为宠物空气净化器肯定不是智商税&#xff0c;有些人认为将其购回家就是个没用的东西&#xff0c;还占地方&#xff0c;双方各有自己的观点。 其实宠物空气净化器和普通的空气净化器是有很大…

屏幕分辨率|尺寸|颜色深度指纹

一、前端通过window.screen接口获取屏幕分辨率 尺寸 颜色深度&#xff0c;横屏竖屏信息。 二、window.screen c接口实现&#xff1a; 1、third_party\blink\renderer\core\frame\screen.idl // https://drafts.csswg.org/cssom-view/#the-screen-interface[ExposedWindow ] …

3mf 格式详解,javascript加载导出3mf文件示例

3MF 格式详解 3MF&#xff08;3D Manufacturing Format&#xff09;是一种开放标准的文件格式&#xff0c;专门用于三维制造和打印。3MF 格式旨在解决 STL 格式的局限性&#xff0c;提供更丰富和灵活的数据表示。3MF 文件是一种 ZIP 文件&#xff0c;其中包含了描述三维模型的…

[OS] A4-前菜介绍

从你的描述来看&#xff0c;这段话是给你的一些 预备知识 和 mkfs工具的使用 提示&#xff0c;帮助你了解如何构建和管理文件系统&#xff0c;特别是关于 xv6 文件系统的一些基本操作。 我会通过比喻和通俗化的方式逐步解释&#xff1a; 预备知识&#xff1a;xv6 文件系统的基…

Android 14之HIDL转AIDL通信

Android 14之HIDL转AIDL通信 1、interface接口1.1 接口变更1.2 生成hidl2aidl工具1.3 执行hidl2aidl指令1.4 修改aidl的Android.bp文件1.5 创建路径1.6 拷贝生成的aidl到1和current1.7 更新与冻结版本1.8 编译模块接口 2、服务端代码适配hal代码修改2.1 修改Android.bp的hidl依…

数据结构代码合集

一、排序算法 1、插入排序 1.1 直接插入排序 void InsertSort(int A[],int n){int temp,i,j; for( i 1;i<n;i){ //外循环&#xff0c;每个元素都要进行排序 if(A[i-1]>A[i]){ //前面元素比后面元素大的话 temp A[i];for( j i-1; A[j]>temp && j>0…