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)规格书里与软件代码设定相关的内容。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

.net XSSFWorkbook 读取/写入 指定单元格的内容

方法如下&#xff1a; using NPOI.SS.Formula.Functions;using NPOI.SS.UserModel;using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;using OfficeOpenXml.FormulaParsing.Excel.Functions.Numeric;/// <summary>/// 读取Excel指定单元格内容/// </summa…

力扣--LCR 152.验证二叉搜索树后序遍历

请实现一个函数来判断整数数组 postorder 是否为二叉搜索树的后序遍历结果。 提示&#xff1a; 数组长度 < 1000 postorder 中无重复数字代码 class Solution { public boolean verifyPostorder(int[] postorder) { if(postorder null){ return true; } return f(postor…

【electron-vite】搭建electron+vue3框架基础

一、拉取项目 electron-vite 中文文档地址&#xff1a; https://cn-evite.netlify.app/guide/ 官网网址&#xff1a;https://evite.netlify.app/ 版本 vue版本&#xff1a;vue3 构建工具&#xff1a;vite 框架类型&#xff1a;Electron JS语法&#xff1a;TypeScript &…

了解HTTPS以及CA在其中的作用

在这个信息爆炸的时代&#xff0c;每一次指尖轻触屏幕&#xff0c;都是一次数据的旅行。但您是否真正了解&#xff0c;这些数据在通往目的地的旅途中&#xff0c;是如何被保护的呢&#xff1f; HTTPS&#xff08;HyperText Transfer Protocol Secure&#xff09;是一种安全的网…

Spring Boot日志总结

文章目录 1.我们的日志2.日志的作用3.使用日志对象打印日志4.日志框架介绍5.深入理解门面模式(外观模式)6.日志格式的说明7.日志级别7.1日志级别分类7.2配置文件添加日志级别 8.日志持久化9.日志文件的拆分9.1官方文档9.2IDEA演示文件分割 10.日志格式的配置11.更简单的日志输入…

Transformer 模型:序列数据处理的自注意力神经网络架构

摘要&#xff1a; 本文全面深入地探讨 Transformer 模型&#xff0c;这一基于自注意力机制的神经网络结构在序列数据处理领域具有开创性意义。详细阐述其架构组成、自注意力机制原理、在自然语言处理等多方面的应用&#xff0c;并提供丰富的代码示例以助力读者深入理解其实现细…

docker 安装mysql8.4.0

1、拉取mysql8.4.0镜像 docker pullmysql:8.4.0-oraclelinux8查看镜像 docker images2、新建宿主机本地目录&#xff1a;用来挂载MySQL容器所产生的数据的目录 mkdir -p /home/admin/data/mysql /home/admin/logs/mysql /home/admin/conf/mysql3、在/home/admin/conf/mysql目…

Android Studio的AI工具插件使用介绍

Android Studio的AI工具插件使用介绍 一、前言 Android Studio 的 AI 工具插件具有诸多重要作用&#xff0c;以下是一些常见的方面&#xff1a; 代码生成与自动补全 代码优化与重构 代码解读 学习与知识获取 智能搜索与资源推荐实际使用中可以添加注释&#xff0c;解读某段代…

【Python网络爬虫笔记】2-HTTP协议中网络爬虫需要的请求头和响应头内容

1 HTTP 协议整理 HTTP&#xff08;Hyper Text Transfer Protocol&#xff09;即超文本传输协议&#xff0c;是用于从万维网&#xff08;WWW&#xff09;服务器传输超文本到本地浏览器的传送协议&#xff0c;直白点儿&#xff0c;就是浏览器和服务器之间的数据交互就是通过 HTT…

DroneCAN 最新开发进展,Andrew在Ardupilot开发者大会2024的演讲

本文是Andrew演讲的中文翻译&#xff0c;你可以直接观看视频了解演讲的全部内容&#xff0c;此演讲视频的中文版本已经发布在Ardupilot社区的Blog板块&#xff0c;你可以在 Arudpilot官网&#xff08;https://ardupilot.org) 获取该视频&#xff1a; 你也可以直接通过Bilibili链…

物料理解笔记·蓝白段子线·端子线座子焊接反了怎么处理!!!

目录 蓝白端子排线 端子线座子焊接错了怎么办 端子线如何拆线 编写不易&#xff0c;请勿搬运&#xff0c;仅供学习&#xff0c;感谢理解 蓝白端子排线 蓝白端子排线&#xff0c;这种端子线常用与编码电机的接线&#xff0c;或者在板子上通过提供段子线的接口&#xff0c;通…

BUUCTF—Reverse—GXYCTF2019-luck_guy(9)

下载附件&#xff0c;照例扔入Exeinfo PE查看信息 可执行文件&#xff0c;IDA 64位直接干 进main函数&#xff0c;F5反编译&#xff0c;看主要处理函数&#xff0c;跳转进去 查看&#xff0c;点进patch_me(v4)看看是怎么回事 这里已经相当清楚&#xff0c;逻辑就是如果你输入的…

jmeter学习(7)命令行控制

jmeter -n -t E:\IOT\test2.jmx -l E:\IOT\output\output.jtl -j E:\IOT\output\jmeter.log -e -o E:\IOT\output\report IOT下创建output 文件夹&#xff0c;jmx文件名避免中文&#xff0c;再次执行output.jtl不能有数据要删除

OpenCV 图像轮廓查找与绘制全攻略:从函数使用到实战应用详解

摘要&#xff1a;本文详细介绍了 OpenCV 中用于查找图像轮廓的 cv2.findContours() 函数以及绘制轮廓的 cv2.drawContours() 函数的使用方法。涵盖 cv2.findContours() 各参数&#xff08;如 mode 不同取值对应不同轮廓检索模式&#xff09;及返回值的详细解析&#xff0c;搭配…

智能探针技术:实现可视、可知、可诊的主动网络运维策略

网络维护的重要性 网络运维是确保网络系统稳定、高效、安全运行的关键活动。在当今这个高度依赖信息技术的时代&#xff0c;网络运维的重要性不仅体现在技术层面&#xff0c;更关乎到企业运营的方方面面。网络运维具有保障网络的稳定性、提升网络运维性能、降低企业运营成本等…

Elasticsearch集群如何实现高可用和一致性

Elasticsearch集群如何实现高可用和一致性 Elasticsearch (ES) 的高可用性是指集群在部分节点或分片出现故障时&#xff0c;仍能确保数据的持续可用和集群的稳定运行。ES 通过分片机制、主从结构、分配策略、故障恢复和分布式一致性等多种机制实现高可用。 1. 分片机制和副本…

实现Linux平台自定义协议族

一 简介 我们常常在Linux系统中编写socket接收TCP/UDP协议数据&#xff0c;大家有没有想过它怎么实现的&#xff0c;如果我们要实现socket接收自定义的协议数据又该怎么做呢&#xff1f;带着这个疑问&#xff0c;我们一起往下看吧~~ 二 Linux内核函数简介 在Linux系统中要想…

数组和链表OJ题

leetcode用编译器调试的技巧 数组和链表练习题 leetcode/reverse_Link/main.c Hera_Yc/bit_C_学习 - 码云 - 开源中国 1、移除元素 ​​​​​​27. 移除元素 - 力扣&#xff08;LeetCode&#xff09; int removeElement(int* nums, int numsSize, int val) {int src 0, …

VSCode 使用教程:项目使用配置、使用哪些插件、Live Server使用问题及解决方案(你想要的,都在这里)

VSCode的配置&#xff1a; Ⅰ、VSCode 可能需要的项目配置&#xff1a;1、项目颜色主题的切换&#xff1a;其一、点击设置 -> 选择主题 -> 选择颜色主题&#xff1a;其二、通过上下键操作&#xff0c;选择想要的主题&#xff1a; 2、项目文件图标主题的切换&#xff1a;其…