收藏 分销(赏)

MIPIDSI协议介绍.doc

上传人:w****g 文档编号:4089202 上传时间:2024-07-29 格式:DOC 页数:15 大小:1.40MB 下载积分:8 金币
下载 相关 举报
MIPIDSI协议介绍.doc_第1页
第1页 / 共15页
MIPIDSI协议介绍.doc_第2页
第2页 / 共15页


点击查看更多>>
资源描述
一、MIPI MIPI(移动行业处理器接口)是Mobile Industry Processor Interface的缩写。MIPI(移动行业处理器接口)是MIPI联盟发起的为移动应用处理器制定的开放标准。 已经完成和正在计划中的规范如下: 二、MIPI联盟的MIPI DSI规范 1、名词解释 • DCS (DisplayCommandSet):DCS是一个标准化的命令集,用于命令模式的显示模组。 • DSI, CSI (DisplaySerialInterface, CameraSerialInterface • DSI 定义了一个位于处理器和显示模组之间的高速串行接口。 • CSI 定义了一个位于处理器和摄像模组之间的高速串行接口。 • D-PHY:提供DSI和CSI的物理层定义 2、DSI分层结构 DSI分四层,对应D-PHY、DSI、DCS规范、分层结构图如下: • PHY 定义了传输媒介,输入/输出电路和和时钟和信号机制。 • Lane Management层:发送和收集数据流到每条lane。 • Low Level Protocol层:定义了如何组帧和解析以及错误检测等。 • Application层:描述高层编码和解析数据流。 3、Command和Video模式 • DSI兼容的外设支持Command或Video操作模式,用哪个模式由外设的构架决定 • Command模式是指采用发送命令和数据到具有显示缓存的控制器。主机通过命令间接的控制外设。Command模式采用双向接口 • Video模式是指从主机传输到外设采用时实象素流。这种模式只能以高速传输。为减少复杂性和节约成本,只采用Video模式的系统可能只有一个单向数据路径 三、D-PHY介绍 1、 D-PHY 描述了一同步、高速、低功耗、低代价的PHY。 • 一个 PHY配置包括 • 一个时钟lane • 一个或多个数据lane • 两个Lane的 PHY配置如下图 • 三个主要的lane的类型 • 单向时钟Lane • 单向数据Lane • 双向数据Lane • D-PHY的传输模式 • 低功耗(Low-Power)信号模式(用于控制):10MHz (max) • 高速(High-Speed)信号模式(用于高速数据传输):80Mbps ~ 1Gbps/Lane • D-PHY低层协议规定最小数据单位是一个字节 • 发送数据时必须低位在前,高位在后. • D-PHY适用于移动应用 • DSI:显示串行接口 • 一个时钟lane,一个或多个数据lane • CSI:摄像串行接口 2、Lane模块 • PHY由D-PHY(Lane模块)组成 • D-PHY可能包含: • 低功耗发送器(LP-TX) • 低功耗接收器(LP-RX) • 高速发送器(HS-TX) • 高速接收器(HS-RX) • 低功耗竞争检测器(LP-CD) • 三个主要lane类型 • 单向时钟Lane • Master:HS-TX, LP-TX • Slave:HS-RX, LP-RX • 单向数据Lane • Master:HS-TX, LP-TX • Slave:HS-RX, LP-RX • 双向数据Lane • Master, Slave:HS-TX, LP-TX, HS-RX, LP-RX, LP-CD 3、Lane状态和电压 • Lane状态 • LP-00, LP-01, LP-10, LP-11 (单端) • HS-0, HS-1 (差分) • Lane电压(典型) • LP:0-1.2V • HS:100-300mV (200mV) 4、操作模式 • 数据Lane的三种操作模式 • Escape mode, High-Speed(Burst) mode, Control mode •从控制模式的停止状态开始的可能事件有: • Escape mode request (LP-11→LP-10→LP-00→LP-01→LP-00) • High-Speed mode request (LP-11→LP-01→LP-00) • Turnaround request (LP-11→LP-10→LP-00→LP-10→LP-00) • Escape mode是数据Lane在LP状态下的一种特殊操作 •在这种模式下,可以进入一些额外的功能:LPDT, ULPS, Trigger •数据Lane进入Escape mode模式通过LP-11→LP-10→LP-00→LP-01→LP-00 •一旦进入Escape mode模式,发送端必须发送1个8-bit的命令来响应请求的动作 • Escape mode 使用Spaced-One-Hot Encoding •超低功耗状态(Ultra-Low Power State) •这个状态下,lines处于空状态 (LP-00) • 时钟Lane的超低功耗状态 •时钟Lane通过LP-11→LP-10→LP-00进入ULPS状态 •通过LP-10 → TWAKEUP →LP-11退出这种状态,最小TWAKEUP时间为1ms • 高速数据传输 •发送高速串行数据的行为称为高速数据传输或触发(burst) •全部Lanes门同步开始,结束的时间可能不同。 •时钟应该处于高速模式 • 各模操作式下的传输过程 •进入Escape模式的过程 :LP-11→LP-10→LP-00→LP-01→LP-00→Entry Code → LPD (10MHz) •退出Escape模式的过程:LP-10→LP-11 •进入高速模式的过程:LP-11→LP-01→LP-00→SoT(00011101) → HSD (80Mbps ~ 1Gbps) •退出高速模式的过程:EoT→LP-11 •控制模式 - BTA 传输过程:LP-11→LP-10→LP-00→LP-10→LP-00 •控制模式 - BTA 接收过程:LP-00→LP-10→LP-11 • 状态转换关系图 四、DSI介绍 1、DSI是一种Lane可扩展的接口,1个时钟Lane/1-4个数据Lane • DSI兼容的外设支持1个或2个基本的操作模式: • Command Mode(类似于MPU接口) • Video Mode(类似于RGB接口)- 必须用高速模式传输数据,支持3种格式的数据传输 § • Non-Burst 同步脉冲模式 § • Non-Burst 同步事件模式 § • Burst模式 • 传输模式: • 高速信号模式(High-Speed signaling mode) • 低功耗信号模式(Low-Power signaling mode) - 只使用数据lane 0(时钟是由DP,DN异或而来)。 • 帧类型 • 短帧:4 bytes (固定) • 长帧:6~65541 bytes (可变) • 两个数据Lane高速传输示 2、短帧结构 • 帧头部(4个字节) • 数据标识(DI) 1个字节 • 帧数据- 2个字节 (长度固定为2个字节) • 错误检测(ECC) 1个字节 • 帧大小 • 长度固定为4个字节 3、长帧结构 • 帧头部(4个字节) • 数据标识(DI) 1个字节 • 数据计数- 2个字节 (数据填充的个数) • 错误检测(ECC) 1个字节 •数据填充(0~65535 字节) • 长度=WC*字节 • 帧尾:校验和(2个字节) • 帧大小: • 4 + (0~65535) + 2 = 6 ~ 65541 字节 4、帧数据类型 五、MIPI DSI信号测量实例 1、MIPI DSI在Low Power模式下的信号测量图 2、MIPI的D-PHY和DSI的传输方式和操作模式 • D-PHY和DSI的传输模式 • 低功耗(Low-Power)信号模式(用于控制):10MHz (max) • 高速(High-Speed)信号模式(用于高速数据传输):80Mbps ~ 1Gbps/Lane • D-PHY的操作模式 • Escape mode, High-Speed(Burst) mode, Control mode • DSI的操作模式 • Command Mode(类似于MPU接口) • Video Mode(类似于RGB接口)- 必须用高速模式传输数据 3、小结论 • 传输模式和操作模式是不同的概念 • Video Mode操作模式下必须使用High-Speed的传输模式 • Command Mode操作模式并没有规定使用High-Speed或Low Power的传输模式,或者说 • 即使外部LCD模组为Video Mode,但通常在LCD模组初始化时还是使用Command Mode模式来读写寄存器,因为在低速下数据不容易出错并且容易测量。 • Video Mode当然也可以用High-Speed的方式来发送指令,Command Mode操作模式也可以使用High-Speed,只是没有必要这么做。 以下是最近几个月在调试 MIPI DSI / CSI 的一些经验总结,因为协议有专门的文档,所以这里就记录一些常用知识点: 一、D-PHY 1、传输模式 LP(Low-Power) 模式:用于传输控制信号,最高速率 10 MHz HS(High-Speed)模式:用于高速传输数据,速率范围 [80 Mbps, 1Gbps] per Lane 传输的最小单元为 1 个字节,采用小端的方式及 LSB first,MSB last。 2、Lane States * LP mode 有 4 种状态: LP00、LP01(0)、LP10(1)、LP11 (Dp、Dn) * HS mode 有 2 种状态: HS-0、HS-1 HS 发送器发送的数据 LP 接收器看到的都是 LP00, 3、Lane Levels * LP: 0 ~ 1.2V * HS: 100 ~ 300mV,HS common level = 200mV,swing = 200 mv 4、操作模式 在数据线上有 3 种可能的操作模式:Escape mode, High-Speed (Burst) mode and Control mode,下面是从停止状态进入相应模式需要的时序: * Escape mode 进入时序:LP11→LP10→LP00→LP01→LP00,退出时序:LP10→LP11 当进入 Escape mode 需要发送 8-bit entry command 表明请求的动作,比如要进行低速数据传输则需要发送 cmd: 0x87,进入超低功耗模式则发送 cmd: 0x78。在 DSI 中 LP 通讯只用 Data Lane 0。 * High-Speed mode 进入时序:LP11→LP01→LP00→SoT(0001_1101),退出时序:EoT→LP11,时序图如下: * Turnaround 进入时序:LP11→LP10→LP00→LP10→LP00,退出时序:LP00→LP10→LP11 这是开启 BTA 的时序,一般用于从 slave 返回数据如 ACK: 0x84。 5、时序要求 在调试 DSI 或者 CSI 的时候, HS mode 下的几个时序非常重要:T_LPX,T_HS-SETTLE ≈ T_HS-PREPARE + T_HS-ZERO,T_HS-TRAIL,一般遵循的原则为:Host 端的 T_HS-SETTLE > Slave 端的 T_HS-SETTLE。 二、DSI 1、线路构成 在 DSI 中需要 1 根时钟线以及 1 ~ 4 根数据线。 2、两种接口的 LCD * Command mode(对应 MPU 接口) * Video mode(对应 RGB 接口) 该模式下视频数据只能通过 HS mode 传输。 3、数据包类型 短包:4 bytes,由 3 部分组成: * Data Identifier (DI) * 1byte: Contains the Virtual Channel[7:6] and Data Type[5:0]. * Packet Data * 2byte:Length is fixed at two bytes * Error Correction Code (ECC) * 1byte:allows single-bit errors to be corrected and 2-bit errors to be detected. 长包:6 ~ 65541 bytes,同样由 3 部分组成: * Packet Header(4 bytes) - 包头 Data Identifier (DI) * 1byte:Contains the Virtual Channel[7:6] and Data Type[5:0]. Word Count (WC) * 2byte:defines the number of bytes in the Data Payload. Error Correction Code (ECC) * 1byte:allows single-bit errors to be corrected and 2-bit errors to be detected. * Data Payload(0~65535 bytes) - 有效数据 Length = WC × bytes * Packet Footer(2 bytes):Checksum - 包尾 If the payload has length 0, then the Checksum calculation results in FFFFh If the Checksum isn’t calculated, the Checksum value is 0000h 4、从控制器到外设发送的包类型 如果希望从外设读取数据或者状态,则在处理器发送完读取命令后还需要发送 BTA 命令,非读取命令在外设接收成功后会返回 trigger message 0x84。 5、从外设到处理器数据包类型 返回的数据一般分为 4 个类型: * Tearing Effect (TE):trigger message (BAh) * Acknowledge:trigger message (84h) * Acknowledge and Error Report:short packet (Data Type is 02h) * Response to Read Request:short packet or long packet Generic Read Response、DCS Read Response(1byte, 2byte, multi byte) 读取数据返回值解析示例如下: [cpp] view plaincopy 1. - Acknowledge and Error report (if error occurs) 2. Byte 0 is 0x87 (escape mode low power data transmission header) 3. Byte 1 is 0x02 (Data type, 8.10 of “MIPI Alliance Specification for DSI”) 4. Byte 3,2 are error report bits[15:0] (8.9.5 of “MIPI Alliance Specification for DSI”) 5. Byte 4 is the ECC, calculated from byte 1,2,3 6. 7. - Generic Short READ response 8. Byte 0 is 0x87 (escape mode low power data transmission header) 9. Byte 1 is 0x11 or 0x12 (8.10 of “MIPI Alliance Specification for DSI”) 10. Byte 2,3 are the read data. If only 1 byte is returned, byte 3 will be 0x00 11. Byte 4 is the ECC, calculated from byte 1,2,3 12. 13. - Long READ packet response 14. Byte 0 is 0x87 (escape mode low power data transmission header) 15. Byte 1 is 0x1A (8.10 of “MIPI Alliance Specification for DSI”) 16. Byte 3,2 are the word count N (N=0 to 65535) 17. Byte 4 is the ECC, calculated from byte 1,2,3 18. Byte 5 to byte 5+N-1 are the N-byte read data 19. Byte 5+N+1, byte 5+N are the checksum, calculated on byte 5 to byte 5+N-1. If 20. checksum is not calculated by peripheral, this field is 0x0000. 6、Video 模式的 3 种数据格式 * Non-Burst Mode with Sync Pulses * Non-Burst Mode with Sync Events * Burst Mode * 调试记录 LCD半边闪屏问题,原厂给的信息:分析了系統板送出的 video mode timing,資訊摘要如下 HSCLK: 160MHz Per lane bit-rate: 320Mbps (UI=3.125ns) HS SoT HS-prepare + HS-zero 約 155ns 由上述的 timing 懷疑與現象是因為 IC HS data settle timing 搭配不當所導致 看来是我们输出的mipi信号 HS-prepare + HS-zero 比 LCD 默认设置短引起的。还有随机整屏闪动的问题通过调节 VFP 和 VBP 的值调到了理想状态。另外 LCD 的 VCC 在使用 mos 管控制后休眠后会有 2.0V 的悬浮电压,通过 RC 电路将电压放掉,将 C78 换成了 10K 电阻。 LCD电路上有几个比较重要的电压: AVDD、VCC、VGH、VGL、HAVDD、VCOM(由AVDD通过电阻分压得到) * 唤醒慢的问题 在最初调试的几款 LCD 里面初始化 cmd 都比较少,后来在调试一款 IPS 屏的时候发现唤醒需要 3 秒左右,这款 LCD 初始化 cmd 有100多条,之前在调试一款 LCD 的时候每条 cmd 发送之后需要 delay 10ms 再发下一条 cmd,所以在这款 LCD 这里不能有 delay,并且经过调试在确保发送成功的情况下将 LP 的传输速度提高了 3 倍(这里需要读取每条 cmd 的返回值 0x84 确认命令是否发送成功),优化后唤醒时间不到 1 秒。 * LCD 参数理解更正 才发现之前一直对 LCD 的几个参数 HFP、HBP、VFP、VBP 理解有错误,正确的应该是以同步信号(HSYNC、VSYNC)为基准,在同步信号之前的称为 Front,在同步信号之后的称为 Back,而不是之前理解的以有效像素为基准。 * LCD 显示呈锯齿状问题 这两天(12.11)还调试了一款 540 x 960 分辨率的 mipi LCD,在开始的时候一直点不亮,和供应商确认了好久无意间才发现是他们给的初始化代码是错的,使用正确的初始化代码就能点亮了,不过显示出来的图像却是呈锯齿状的,即没有对齐。之前在别的平台也遇到过类似问题,也就是分辨率不是 16 的整数倍,LCD controller 在取数据的时候会对不齐。边研究 Datasheet 边和 ASIC 同事讨论,后来确定了一个方案:即在 DSI、LCD 寄存器里面设置分辨率为 540 x 960 以让 LCD 正确识别信号,但 framebuffer 需要设置为 544 x 960 以对齐,并且设置 Source pitch 寄存器为 544,这样显示就正常了,相当于 framebuffer 里每一行的最后 4 个 pixel 会被 LCD controller 丢掉。 今天(12.12)在和 ASIC 同事的讨论下更正了之前的理解:LCD controller 在计算取数据的时候,地址是根据(x,y)坐标来算的,差不多是address = y * pitch + x + base,pitch 就是一行 pixel 在内存里的大小,这个至少是要对齐到 8byte, 因为 bus 宽度是 8byte,如 Data sheet 中的描述 ”Source pitch for RGB channel, QWORD aligned if linear mode“。之前计算 pitch 值的公式为:xres / 8 * bits_per_pixel / 8,如果 xres = 540,bits_per_pixel = 32,计算的结果因为取整的原因为 0x10c,实际上正确的值应该是 0x10e,所以需要将公式改为:xres * (bits_per_pixel / 8) / 8,即在每个像素占 4byte 的情况下只要 xres 为偶数就可以满足对齐的要求,而不用改为 544。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服