目前随着手机等移动设备包含的sensor越来越多,传统应用在sensor上的I2C/SPI接口的局限性也越来越明显,典型的缺陷如下:
1、sensor等设备的增加,对控制总线的速度和功耗提出了更加严苛的要求;
2、虽然I2C是一中2线接口,但是往往此类device需要额外增加一条中断INT信号线;
处于解决上述问题的原因,推出了I3C的接口总线和协议,下面一起来看下I3C总线的特性。
一、I3C的应用场景
从上图中我们可以看到:
1、I3C总线可以应用在各种sensor中;
2、可以使用在任何传统的I2C/SPI/UART等接口的设备中。
二、什么是I3C
I3C吸纳了I2C和SPI的关键特性,并将其统一起来,同时在I2C的基础上,保留了2线的串行接口结构,这样工程师就可以在单个设备中连接大量的传感器。
从上图中我们可以将特性具体一下:
1、I3C总线可以支持multi-master即多主设备
2、I3C总线与传统的I2C设备仍然是兼容的
3、可以支持软中断
4、相比较于I2C总线的功耗更低
5、速度更快,可以支持到12.5MHZ
从下图中可以看到在传统的I2C接口设备中包含了太多的I/0口了,将之(I2C/SPI)替换成I3C之后可以节省很大部分的信号线的开销,在布局布线时也更方便.
按照目前MIPI联盟的规划,I3C总线在将来除了应用sensor之外,还有如下的应用领域:camera、TP等
三、I3C接口协议
从上图就可以很清楚的看到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
上图为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"请求信号;
---当主设备接收到请求信号后,主设备发出时钟信号并将分配的地址驱动到总线上,然后从设备响应地址(为防止理解问题,英文描述如下)
---如果此时有多个从设备响应中断,那么分配的地址中最低的一个设备将会赢得仲裁
---数据载荷(即强制数据位)可以和带内中断一起使用(???未明白,后面填坑)
3、error detection and recovery methodology(错误检测和恢复方法)
---主要针对master 和slave产生的错误(9种错误类型:奇偶性、循环冗余校验CRC5)
4、common command codes(公共命令码)
原文地址:https://www.cnblogs.com/gcws/p/8995542.html