panel的从显示类型上分,主要可分为LCD和LED两种。

前者是由背光模块加上对液晶的控制来显示图像,最大的特点是背光不会闪烁,相对而言对眼睛更好。

后者是相对比较新的技术,“像素”颗粒可以各自独立地进行发光,从而省去了LCD的背光模块,可以做的更轻薄且不再需要很大的边框防止漏光,故也是超窄边框的首选。LED的动态比更好,理论上的显示效果也会强于LED,但像素颗粒中的蓝色发光材料衰减快,所以LED屏的调节难度会远高于LED,且无论怎样爱惜,从其点亮开始,使用寿命就已开始了倒计时。若长时间显示同样的图像,可能出现“烧屏”现象,将图像深深烙印在背景图像中。

从接口方式上讲:从最早的LCD接口(每bit数据一根data线,传入数据为raw data),到后来的HDMI和MIPI接口多种多样。

但无论使用何种接口,panel需要的关键参数及相应配置方式都是相通的。

先看一张图:

Kernel 源码中Documentation/fb/framebuffer.txt 目录有描述panel中framebuffer的抽象图示:

各参数的意义为:

- pixclock: pixel clock in ps (pico seconds)
- left_margin: time from sync to picture
- right_margin: time from picture to sync
- upper_margin: time from sync to picture
- lower_margin: time from picture to sync
- hsync_len: length of horizontal sync
- vsync_len: length of vertical sync

从上图linux系统进行的frame抽象,比较容易对比出porting panel过程中需要用到的及spec中比较重要的配置参数:

参数 Spec中常用术语 意义 备注
refresh Frame Rate / FPS 每秒刷新的帧率 常被设为60
xres x resolution 行像素值  
yres y resolution 列像素值  
pixclock pixel clock 像素 clock 单位可为HZ或时间
left_margin HBP (Horizontal Back Porch) 从Hsync信号enable起,到行有效像素数据输出时,中间需要插入的时钟周期数  
right_margin HFP (Horizontal Front Porch ) 从行有效数据输出完毕,到Hsync信号再次disable间,中途需要插入的时钟周期数  
upper_margin VFP (Vertical Front Porch) 从Vsync信号enable起(垂直同步信号开始)到有效的帧数据首行间的无效行数  
lower_margin VBP (Vertical Back Porch) 本帧数据输出结束到下一帧Vsync信号enable(垂直同步信号)前的无效行数  
hsync_len Hsync Width Hsync信号从非使能状态到enable状态间需要保持非使能状态电平的clock数 个人这么理解
vsync_len Vsync Width Vsync信号从非使能状态到enable状态间需要保持非使能状态电平的clock数 个人也是这么理解

PS:对于MIPI pane,还需要有panel的接口lane参数,其指的就是panel接的lane个数。

为了更好的理解上表的参数,引用另一篇<博客>中很清楚的图片(抱歉未找到其转载的博客源):

引用:

下面以天马的3.5寸TFT液晶屏 TM035KDH03为例进行讲解。

参数计算:

可以看到LCD时钟是28M,所以pixclock=1000000/28

行同步脉冲宽度是一个时钟周期,所以,hsync_len=1

场同步脉冲的宽度是一个行周期,所以vsync_len = 1

上图是一帧图像的显示时序图。的上图显示,up_margin = 13-1=12,, yres= 240,

整个场周期为263,所以lower_margin= 263-13-240 = 10

同时看到,列同步信号高电平有效,行同步信号也是高电平有效。

上图是一行的时序图。

可以看到,left_margin = 69, xres = 320, right_margin = 408 -320 - 70 = 18

数据在上升沿有效,输出使能是高电平有效。

这样一来,各个参数就很清楚了。

划重点:场信号的频率等于frame rate,行信号的频率等于出现的信号行数(这里的行数包含有效行数和VFP VBP及Vsync wide)

问题又来了,MIPI panel打的MIPI信号与上面所讲的这些参数是如何联系上的呢?

下面是panel ic内部的部分接口图,由图可见,mipi协议传来的mipi信息会通过内部芯片转换为内部可识别的vsnc hsync等信号。

所以我们需要将panel需要的HFP/HBP/FPS等参数,通过mipi控制器正常传输到芯片端,芯片就会处理这些参数。

从<转载来源>里可以看到:

我们先来看一个公式:Mipiclock = [ (width+hsync+hfp+hbp) x (height+vsync+vfp+vbp) ] x(bus_width) x fps/ (lane_num)/2

即mipi 屏的传输时钟频率(CLKN,CLKP)等于(屏幕分辨率宽width+hsync+hfp+hbp)x ( 屏幕分辨率高height+vsync+vfp+vbp) x(RGB显示数据宽度) x 帧率/ (lane_num)/2

简单解释下:

一帧画面需要的数据量为(单位bit):FRAME_BIT = (屏幕有效显示宽度+hsync+hfp+hbp) x ( 屏幕有效显示高度+vsync+vfp+vbp) x(RGB显示数据宽度24)

一秒钟内需要传输的数据量为(单位bps):FRAME_BIT  x  fps(帧率)。

那为何要除以lane_num----因为mipi通讯协议中,一个CLOCK几个lane是可以同时传输数据的。

为何又要除以2----因为根据mipi通讯协议,CLK_N、CLK_P这两根时钟线的上升沿/下降沿可以获取到数据。

因此我们可以得出如下结论:

1.在相同的时钟频率下,lane数越多,则单位时间内可以传输的数据越多。若显示帧率固定不变,则可以支持的更大的分辨率;而分辨率固定不变的情况下,则我们可以考虑支持更高的帧率显示。

2.在lane数固定的情况下,提高传输的时钟频率,则单位时间内也可以传输更多的显示数据。进而我们可以考虑是提高帧率还是提高分辨率,或两者做出平衡。

由此可大致了解相关原理。

Panel重要参数解析相关推荐

  1. Go 学习笔记(45)— Go 标准库之 flag(命令行参数解析)

    1. 参数解析说明 import "flag" flag 包实现了命令行参数的解析.每个参数认为一条记录,根据实际进行定义,到一个 set 集合.每条都有各自的状态参数. 使用 f ...

  2. google gflags的参数解析,便捷实用

    命令行参数解析,一直是我们后段开发人员需要经常使用的一个功能,用来从终端解析接口的输入 ,并做出对应的处理.这里为使用C++/python的开发人员推荐一个便捷的命令行解析接口集 gflags. 我们 ...

  3. 【Qt】通过QtCreator源码学习Qt(六):命令行参数解析实现

    参考下大神的命令行参数解析是如何是实现的 //使用const char []代替宏定义字符串,我以前都是用const QString,想想好傻 const char SETTINGS_OPTION[] ...

  4. url参数解析 url解析 ?解析成对象

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 正文: 代码: // url参数解析 function getUrlkey(url) {var params ...

  5. JS 把url的参数解析成对象

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 正文: 实现思路:请看log和打印结果 // url参数解析 function getUrlkey(url) ...

  6. python命令行参数解析OptionParser类用法实例

    python命令行参数解析OptionParser类用法实例 本文实例讲述了python命令行参数解析OptionParser类的用法,分享给大家供大家参考. 具体代码如下:     from opt ...

  7. 介绍Shell脚本的参数解析工具

    Argbash是一个代码生成器,它为你的脚本生成一个量身定制的解析库.与其他bash模块的通用代码不同,它生成你的脚本所需的最少代码. Argbash是一个代码生成器,它为你的脚本生成一个量身定制的解 ...

  8. 3gpp文件头文件解析_居于LLVM 的命令行参数解析

    在写命令行程序的时候经常需要解析各种命令行参数.打印help信息等,觉得非常的麻烦.今天介绍一种超级棒的命令参数解析的方法:居于LLVM 的命令行参数解析,有了它妈妈再也不用担心我不会解析命令行参数^ ...

  9. Python命令行参数解析模块------argparse

      首先,argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数,当你的代码需要频繁地修改参数的时候,使用这个工具可以将参数和代码分离开来,让你的代码更简洁,适用范围更广 ...

  10. 编程模板-R语言脚本写作:最简单的统计与绘图,包安装、命令行参数解析、文件读取、表格和矢量图输出

    写在前面 个人认为:是否能熟悉使用Shell(项目流程搭建)+R(数据统计与可视化)+Perl/Python等(胶水语言,数据格式转换,软件间衔接)三门语言是一位合格生物信息工程师的标准. 之前分享过 ...

最新文章

  1. Removed k rows containing missing values
  2. Solidworks如何创建投影曲线
  3. Elasticsearch1.x 基于lc-pinyin和ik分词实现 中文、拼音、同义词搜索
  4. Centos7修改Docker默认存储位置
  5. mysql数据库使用命令导入sql文件
  6. 由Dvbbs PHP 0day引发的争论
  7. 【C++基础学习】关于C++静态成员函数和变量
  8. 程序员书单_数据库篇
  9. Merkle Tree与区块链
  10. C# 实现程序只启动一次(多次运行激活第一个实例,使其获得焦点,并在最前端显示)...
  11. Appfuse实践(一)——配置安装 转自http://www.donews.net/skyhero/archive/2004/12/17/205662.aspx...
  12. 华为悦盒EC6108V9教程
  13. [软件推荐]一款win7 x86 x64都能用的免费内存虚拟盘的小工具——ImDisk
  14. 如何清除计算机的u盘使用记录,如何消除电脑上U盘使用记录
  15. java socket发送json_Java中使用Socket发送Java对象实例
  16. FusionComputer密码修改
  17. 十大模拟炒黄金白银的软件
  18. 东芝硬盘数据丢失怎么恢复
  19. jxl实现写入excel模板及导出(带图片)
  20. 神经网络模型画图工具,神经网络模型图怎么画

热门文章

  1. python列表获取最后一个元素的方法_在Python中获取列表的最后一个元素
  2. ps中的颜色替换,通道的认识,颜色通道,复合通道,单色通道,通道抠图,滤镜,镜头校正滤镜,液化
  3. 【理科】2020年高考数学(第十二章复数、算法、推理与证明)考点与题型全归纳
  4. 单链表的逆置(递归和非递归)
  5. 【机器学习】完整的机器学习项目演练:第三部分
  6. 超声波测深仪工作原理
  7. tom邮箱 服务器类型,Tom邮箱 - 帮助中心
  8. ios-获取相册相机图片
  9. 51单片机最小系统电路图
  10. 会议摘要怎么写?这篇论文手把手教你