zoukankan      html  css  js  c++  java
  • CSI-MIPI学习笔记

    一、mipi LCD 的CLK时钟频率与显示分辨率及帧率的关系

    公式:
    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数固定的情况下,提高传输的时钟频率,则单位时间内也可以传输更多的显示数据。进而我们可以考虑是提高帧率还是提高分辨率,或两者做出平衡。

    但我们不能任意无限制的提高mipi的传输时钟频率及lane数目,因为mipi通讯协议对此进行了限制,一组CLOCK最高只能支持4组lane,一组lane的传输速度最高只能支持到1 Gbps。也就是说一组CLOCK最高只能支持到4Gbps速度传输。

    此时就引出了一个新问题:4Gbps速度传输,是满足不了现在市场上推出的4K电视的带宽要求的,怎么办?答案是使用8组lane,使用两组clock来传输。

    下面我们以展讯7731平台下EK79023这款LCD 驱动IC的配置参数进行实例说明:

    static struct timing_rgb lcd_ek79023_mipi_timing = {
             .hfp = 100,  /* unit: pixel */
             .hbp = 60,
             .hsync = 24,
             .vfp = 22, /*unit:line*/
             .vbp = 10,
             .vsync = 2,
    };
    
    static struct info_mipi lcd_ek79023_mipi_info = {
             .work_mode  = SPRDFB_MIPI_MODE_VIDEO,
             .video_bus_width =24, /*18,16*/
             .lan_number =         2,
             .phy_feq=660*1000,
             .h_sync_pol =SPRDFB_POLARITY_POS,
             .v_sync_pol = SPRDFB_POLARITY_POS,
             .de_pol =SPRDFB_POLARITY_POS,
             .te_pol =SPRDFB_POLARITY_POS,
             .color_mode_pol =SPRDFB_POLARITY_NEG,
             .shut_down_pol =SPRDFB_POLARITY_NEG,
             .timing =&lcd_ek79023_mipi_timing,
             .ops = NULL,
    };
    
    struct panel_spec lcd_ek79023_mipi_spec = {
             .width = 600,
             .height = 1024,
             .fps =57,//62,//67,//52,//57,//60,
             .type =LCD_MODE_DSI,
             .direction =LCD_DIRECT_NORMAL,
             .info = {
                       .mipi =&lcd_ek79023_mipi_info
             },
             .ops =&lcd_ek79023_mipi_operations,
    };

    从中可知,该LCD的分辨率为600 x 1024,帧率为57 HZ。
    一帧图像的数据量为:FRAME_BIT=(600+24+100+60) x (1024+2+22+10) x(24)=19907328 bit
    一秒钟的数据量为:19907328 x 57 = 1134.717696 Mbps
    所需的mipi时钟频率为:1134717696/2(lane)/2= 283.679424 Mhz
    一组lane的传输速度是:283.679424 x 2= 576.358848 Mbps

     二、MIPI应用接口MIPI CSI/DSI简介

    MIPI(mobile industry processor interface)是2003年由ARM,Nokia,ST,TI等公司成立的一个联盟(www.mipi.org),目的是把手机内
    部的接口如摄像头、显示屏接口、射频/基带接口等标准化,从而减少手机设计的复杂程度,增加设计灵活性。
    MIPI联盟下面有不同的WorkGroup,分别定义了一系列的手机内部接口标准,比如摄像头接口CSI、显示接口DSI、射频接口DigRF、麦克风/喇
    叭接口SLIMbus等。
    统一接口标准的好处是手机厂商根据需要可以从市面上灵活选择不同的芯片和模组,更改设计和功能时更加快捷方便。

    目前已经比较成熟的MIPI应用有摄像头的CSI接口、显示屏的DSI接口以及基带和射频间的DigRF接口。UFS、LLI等规范正在逐步制定和完善过
    程中。

    物理层支持HS(High Speed)LP(Low Power)两种工作模式。HS模式下采用低压差分信号,功耗较大,但是可以传输很高的数据速率(数据速率为80M~1Gbps);
    LP模式下采用单端信号,数据速率很低(<10Mbps),但是相应的功耗也很低。两种模式的结合保证了MIPI总线在需要传输大量数据(如图像) 时可以高速传输,
    而在不需要大数据量传输时又能够减少功耗。

    CSI接口:
    CSI-2是一个单或双向差分串行界面,包含时钟和数据信号。
    CSI-2的层次结构:CSI-2由应用层、协议层、物理层组成。
    协议层包含三层:象素/字节打包/解包层,LLP(Low Level Protocol)层,LANE管理层;

    所有的CSI-2接收器和发射器必须支持连续的时钟,可以选择支持不连续时钟;连续时钟模式时,数据包之间时钟线保持HS模式,非连续时钟模式时,数据包之间
    时钟线保持LP11状态。

    参考1:https://www.cnblogs.com/cartsp/p/6434371.html

    参考2:http://blog.csdn.net/xzongyuan/article/details/32130049?locationNum=13

  • 相关阅读:
    方法引用(method reference)
    函数式接口
    Lambda 表达式
    LinkedList 源码分析
    ArrayList 源码分析
    Junit 学习笔记
    Idea 使用 Junit4 进行单元测试
    Java 定时器
    【干货】Mysql的"事件探查器"-之Mysql-Proxy代理实战一(安装部署与实战sql拦截与性能监控)
    python-flask框架web服务接口开发实例
  • 原文地址:https://www.cnblogs.com/hellokitty2/p/7912734.html
Copyright © 2011-2022 走看看