Felix

技术源于积累,成功始于执着! 个人邮箱:justlxy@mail.dhu.edu.cn QQ:1576109464

MIPI I3C简介

2
阅读(2002) 评论(2)

前面的文章介绍过MIPI联盟发布的MIPI CSI/DSI/D-PHY等接口,这一篇文章来简单聊一聊I3C(同样由MIPI联盟制定,主要用于替代传统的USRT、I2C和SPI,并向下兼容I2C)。由于已经有网友写过相关的文章,并且写的很不错,所以就直接转载过来了。

原文地址:https://www.cnblogs.com/gcws/p/8995542.html

MIPI扫盲系列文章连载目录篇地址:http://blog.chinaaet.com/justlxy/p/5100052503


目前随着手机等移动设备包含的Sensor越来越多,传统应用在Sensor上的I2C/SPI接口的局限性也越来越明显,典型的缺陷如下:

     1、Sensor等设备的增加,对控制总线的速度和功耗提出了更加严苛的要求;

     2、虽然I2C是一种2线接口,但是往往此类Device需要额外增加一条中断INT信号线;

     处于解决上述问题的原因,推出了I3C的接口总线和协议,下面一起来看下I3C总线的特性。

一、I3C的应用场景 

1.png

从上图中我们可以看到:

      1、I3C总线可以应用在各种Sensor中;

      2、可以使用在任何传统的I2C/SPI/UART等接口的设备中。

二、什么是I3C

2.png

I3C吸纳了I2C和SPI的关键特性,并将其统一起来,同时在I2C的基础上,保留了2线的串行接口结构,这样工程师就可以在单个设备中连接大量的传感器。

       从上图中我们可以将特性具体一下:

       1、I3C总线可以支持Multi-Master即多主设备

       2、I3C总线与传统的I2C设备仍然是兼容的

       3、可以支持软中断

      4、相比较于I2C总线的功耗更低

      5、速度更快,可以支持到12.5MHZ

从下图中可以看到在传统的I2C接口设备中包含了太多的I/0口了(碎片式的接口),将之(I2C/SPI)替换成I3C之后可以节省很大部分的信号线(省去了中断信号的一根线EINT,若取代SPI,可以省的更多)的开销,在布局布线时也更方便.

3.png

按照目前MIPI联盟的规划,I3C总线在将来除了应用Sensor之外,还有如下的应用领域:Camera CCI接口、触摸设备和测试设备等。

4.png

三、I3C接口协议

5.png

从上图就可以很清楚的看到I3C总线的应用了,I3C总线中支持多主设备,同时兼容I2C。

其中支持设备的具体类型有:

1、I3C主设备

     -----SDR-only master

2、I3C secondary MASTER

     -----SDR-only secondary master(注意是Slave of Main Master,即相比较主设备而言仍然时从设备)

3、I3C 从设备

    -----SDR only slave

 4、I2C slave

6.png

1111.png

上图为I3C的串行clk和data传输的波形,注意下方的标注:SDA的接口为开漏结构(上拉),而SCL的接口为推挽结构!

四、I3C特性详细介绍

1、SDR动态地址分配

---I3C可以为所有的I3C从设备动态的分配7-bit Address(注:在I3C从设备中会有两个Standardized Characteristics Register和内部的48-bit的临时ID去协助此过程,具体咋协助俺还不知道)

---仍然支持I2C的静态地址

2、SDR的带内中断

---在“Bus Available(总线空闲)”的状态下,从设备可以发出“START"请求信号;

---当主设备接收到请求信号后,主设备发出时钟信号并将分配的地址驱动到总线上,然后从设备响应地址(为防止理解问题,英文描述如下)

---如果此时有多个从设备响应中断,那么分配的地址中最低的一个设备将会赢得仲裁

---数据载荷(即强制数据位)可以和带内中断一起使用(???未明白,后面填坑)

7.png

3、Error Detection  and Recovery Methodology(错误检测和恢复方法)

 ---主要针对master 和slave产生的错误(9种错误类型:奇偶性、循环冗余校验CRC5)

4、Common Command Codes(公共命令码)

5、对I2C总线的支持

---支持I2C的Fast Mode/Fast Mode+(Note:Fast Speed 1Mbit/s,High Speed 3.4Mbit/s)

---对于The Velocity of I3C clk 12.5MHZ需要50ns的Spike Filters(tsp)尖峰滤波器

---I3C不支持Clock Stretching(时钟拉伸,不了解的童鞋可以查查I2C的协议)

---不使用Open-Drain驱动器

---不支持10-bit的I2C扩展地址

10.png

6、I3C的HDR-DDR 模式

7、I3C的拓扑


补充说明:

关于I2C中的时钟拉伸,可以参考我之前的文章:http://blog.chinaaet.com/justlxy/p/5100051849

附件(MIPI I3C Spec V1.0):mipi_I3C-Basic_specification_v1-0.pdf


  1. @Felix   

    文中附件是MIPI I3C的Basic版本,该版本是MIPI I3C标准版本的一个子集,且不需要MIPI的会员License便可以使用。而MIPI I3C的标准版本需要MIPI的相关License,如果有哪位需要标准版的Spec的,可以邮件联系我索取。
    后续会开始写MIPI I3C详细的文章,预计时间为2019年春节假期期间。

    由于I3C暂时市场应用的很少,所以深入的学习计划被暂时搁置了,原计划的博文暂时就不更新了(之前挖的坑先不填了,哈哈哈)。

    下一个更新的博客系列应该是DisplayPort(DP)相关的内容。

  2. 文中附件是MIPI I3C的Basic版本,该版本是MIPI I3C标准版本的一个子集,且不需要MIPI的会员License便可以使用。而MIPI I3C的标准版本需要MIPI的相关License,如果有哪位需要标准版的Spec的,可以邮件联系我索取。
    后续会开始写MIPI I3C详细的文章,预计时间为2019年春节假期期间。