MIPI协议概述
- MIPI(Mobile Industry Processor Interface): 是MIPI联盟发起为移动应用处理器制定的开放标准.
- MIPI接口协议层主要包括CSI和DSI两种,其中CSI主要用于图像输出,如图像传感器等; DSI主要用于图像输入,如屏幕显示器等.
- 对于camera而言,主要应用CSI,以及CSI对应的PHY层的C-PHY和D-PHY.
如上图所示:MIPI协议主要包含三层,从下往上分别为:物理层、协议层、应用层。
C-PHY
- C-PHY的物理层每个trio有A、B、C 三根线,六种状态
- LP mode(低功耗模式)用于控制; HS mode(高速模式)用于数据传输.
硬件架构
- LP-TX 和HP-TX是成对出现的,LP-RX和HP-RX是成对出现的
- HS-TX和HS-RX不会同时打开,关闭的时候,处于高阻抗状态
- LP-RX如果供电了,会时刻监视Line levels; LP-TX只有在低功耗模式下才会使能。LP-TX,HP-TX,HS-RX在一个lane上不能同时出现。
- 外挂高频时钟
- PPI(parallel peripheral interface)接口包含字格式,时钟信号,控制信号等;
传输机制
PHY Layer:定义电气参数,传输介质、怎么判断0/1-----后边再讲
Pixels/Byte packing/unpacking: packs pixels from the Application layer into bytes LLP: SoT和EoT之间bit-level和byte-level的同步,最小单位是字节,还定义大小端,按照packet组织. 添加 header and error-checking information
Lane Manageent: byte >> lane, Lane-scalable 应用层,这一层就是更高层的编解码了,我们不关心,spec就是从定义pixel怎么转换到bytes,开始
Lane state & wire state
HS transmission flow
HS Mode 是7UI的倍数,16bytes
t3 prepare LP disable,HS enable,
t3 prepare begin, receiver会在t3 prepare后的tSettle 时间内检测prepare begin,因为HS是状态转换的。
t3 prepare begin 的3的长度是可以编程的,这部分时间是用来提供足量的clock给receiver的做初始化用的。
这段中的数字也是可以编程的,这段时间可以看一下receiver 的 spec.
t3 sync是用来同步的。也会被解析,表明packet开始的时间 t3-post是一堆连续的4,receiver接到7个连续的4之后,会停止接收,一般发多余7个,给receiver清除pipeline的时间。
t3 post也是可以调整的,这个有时间要求,之前出过干扰问题,看三星邮件,可能是状态切换引起谐波?要求大于几个UI,就是状态转换的时间7-224UI。
时序要求一般是7UI的整倍数,UI的单位是
Sync Word [3444443]
状态丢失,导致解析错误 检测连续的5个{4}和后边的一个{3},不检测第一个{3}
从SyncWord后边接收的第一个word开始,重新对齐
Sync Word Type
1、还支持其他类型的sync word type
2、3444443是默认的sync word,在preamble后边自动添加的,
3、其他sync word type是需要发送端和接受端支持,其他type由发送端自己插入sync word,并且是subrequest才可以
初始化
上电后,slave 会在当master phy 驱动LP-111大于 tINT的后,进行初始化,第一个长于tINT叫初始化周期,master 会被系统或者协议层初始化,master在完成初始化前要确保 line上不会出现大于tINT的stop state,多个lane的时候,会同时初始化。 tINT具体多长时间,要看接收端和发送端。mipi定义了最小的时间,master和slave的初始化时间差值不能小于100us
校准
在高速率的时候,在接收端校准延时器件很有必要,这个校准补偿了由于工艺,电压,温度产生的影响(3.0Gsps必须支持)。
发送机通过发送一个唯一的,可能延长长度的,由单个转换符号组成的数据突发前向导码来让接受机校准;
校准前导码开始于1,不是3,用于和正常前导码区分;
校准前导码可能选择性的包含一个交替序列字段;
HS State Machine
//未完待续...