您的位置:

Mipi协议详解

一、Mipi简介

Mipi(Mobile Industry Processor Interface),移动产业处理器接口,是一种MIPI协议规范。MIPI的目的是在移动设备领域提供跨制造商的接口标准。它允许系统门户芯片和其他芯片,例如目标显示器,成为同一基础板的一部分并交换数据。Mipi协议涉及很多领域,例如摄像头、显示器、传感器、调光等等。

二、Mipi协议结构

MIPI协议具有多层结构,这种层次结构的每个层次都有特定的功能。它由底层到顶层的这样五层组成:

  • 物理层(physical layer):负责将信息从发送端转换成电信号,在接收端将电信号转换成信息,当然还必须确保发射端的电信号能够在接收端进行解码。它包括接插件、传输线、等。
  • 数据链路层(data link layer):处理数据的包,一旦物理层完成了一个数据包的传输,那么数据链路层就会负责创建一个数据帧,并且将该数据帧发送给网络层,同时,还会将接收到的数据包传递给物理层,以便数据包能够被还原成电信号。它包括了编码和解码部分。
  • 网络层(network layer):工作于数据链路层之上,处理不同的网络之间的传递,也就是说,它负责在源地址和目的地址之间进行路由选择。随后,网络层会通过传输控制模块,将数据分配到会话层、表示层等等。
  • 会话层(session layer):该层主要负责同步,这意味着,在会话层上发送的数据包必须保证传输的时序,否则就会导致数据冲突。该层可以完成“半关闭”、“全关闭”等操作。
  • 表示层(presentation layer):为用户提供格式独立的协议数据单元,以及如何解析和表示数据流的方法。为上层提供更多的抽象,担当类似压缩、解码、数据加密等任务。

三、MIPI-CSI2协议

MIPI-CSI2协议(MIPI Camera Serial Interface 2),是MIPI工作组定义的摄像头设备的串行接口协议。CSI2协议包含了三个通道:像素数据通道、控制通道和辅助数据通道。 CSI-2协议最大的优点是使得它只需要数据组,而不需要同步信息来从接口读数据。

// MIPI-CSI2协议接口示例代码
void mipi_csi2_config()
{
   uint8_t data =
        (0x6 << 0) |   // MIPI DPHY最高速率 720Mbps
        (0x0 << 4) |   // long packet 发送使能
        (0x0 << 7) |   // 物理通道数
        (0x2 << 8) |   // M-0状态的一个CLK周期插入的像素数
        (0x0 << 10) |  // 宽度限制使能
        (0x3 << 12) |  // 第一个数据包延迟
        (0x3 << 16) |  // 频道模式配置
        (0x0 << 19) |  // 上电state per lane设置
        (0x1 << 28);   // 高速模式
    write_reg(CSI2_CTRL_REG, data);
}

四、MIPI-DPHY协议

MIPI DPHY(MIPI领域专用物理层),是摄像头与芯片之间进行传输时用到的物理层协议,主要用于从摄像头发送数据到处理器。 DPHY是MIPI协议栈中最基础的协议之一,提供了基于物理层的接口规范,使得从摄像头到图像处理器的速度可以提高到几百Mbps或千Mbps级别。

// MIPI DPHY协议接口示例代码
void mipi_dphy_config()
{
    uint32_t data =
        (0x3 << 0) |   // DPHY离线状态最大等待持续时间
        (0x1 << 4) |   // 单个数据时钟之间的最小间隔时间(单位:ns)
        (0x1 << 8) |   // Lane使能
        (0x0 << 12) |  // Lane速度
        (0x1 << 16) |  // Line解析度
        (0x1 << 20) |  // Picture解析度
        (0x0 << 24) |  // LP时钟暂停模式,不使能
        (0x3 << 28);   // 发送模式,2lanes
    write_reg(DPHY_RX_CTRL_REG, data);
}

五、MIPI-DSI协议

MIPI-DSI协议(MIPI Display Serial Interface),是在MIPI Alliance组织中制定的用于移动设备显示器芯片和其他芯片之间高速串行数据传输的协议。用于连接处理器或GPU和显示屏,以实现视频和图形显示的传输。

// MIPI-DSI协议接口示例代码
void mipi_dsi_config()
{
    uint8_t data;
    // 具体配置参数根据不同情况进行调节
    write_reg(DSI_CMD, 0x2A);
    write_reg(DSI_DATA, 0x00);
    ...
}

六、Mipi协议在手机中的应用

Mipi协议在手机中广泛应用,最常见的是在摄像头和显示器驱动中。例如,当用户使用拍照功能时,摄像头会把信号传输给芯片,通过Mipi协议传输到处理器进行后续处理;当用户观看视频内容时,显示器从处理器中获取图像信号,并通过Mipi协议进行传输,在屏幕上显示出来。

七、总结

MIPI协议层次结构清晰,分别对于不同的领域进行了规定,使得其具有广泛的适用性。CSI2是摄像头传输处理器信号的最好方案,而DSI在移动设备领域中则是显示器信号的常用方案,而DPHY作为MIPI协议体系的最底层,其性能对于整个MIPI协议的稳定性具有十分关键的作用。