I2C总线
I2C总线连线图
I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。
目录
1.数据的有效性
2.起始和停止条件
1.字节格式
2.应答响应
1.7位寻址
2.10位寻址
1.快速模式
2.高速模式
1.数据的有效性
2.起始和停止条件
1.字节格式
2.应答响应
1.7位寻址
2.10位寻址
1.快速模式
2.高速模式
展开
编辑本段I2C总线特征
1、只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;
2、每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;
3、它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;
4、串行的8位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s;
5、连接到相同总线的IC数量只受到总线的最大电容400pF限制。
编辑本段I2C总线术语
发送器:发送数据到总线的器件;
接收器:从总线接收数据的器件;
主机:初始化发送产生时钟信号和终止发送的器件;
从机:被主机寻址的器件;
多主机:同时有多于一个主机尝试控制总线但不破坏传输;
仲裁:是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使传输不被破坏
的过程;
同步:两个或多个器件同步时钟信号的过程 。
编辑本段I2C总线位传输
由于连接到I2C总线的器件有不同种类的工艺(CMOS、NMOS、PMOS、双极性),逻辑0(低)和逻辑1(高)的电平不是固定的,它由电源VCC的相关电平决定,每传输一个数据位就产生一个时钟脉冲。
在传输数据的时候,SDA线必须在时钟的高电平周期保持稳定,SDA的高或低电平状态只
I2C位传输数据有效性
有在SCL线的时钟信号是低电平时才能改变 。
SCL线是高电平时,SDA线从高电平向低电平切换,这个情况表示起始条件;
SCL线是高电平时,SDA线由低电平向高电平切换,这个情况表示停止条件。
起始和停止条件一般由主机产生,总线在起始条件后被认为处于忙的状态
起始和停止条件
,在停止条件的某段时间后总线被认为再次处于空闲状态。
如果产生重复起始条件而不产生停止条件,总线会一直处于忙的状态,此时的起始条件(S)和重复起始条件(Sr) 在功能上是一样的。
编辑本段I2C总线数据传输
发送到SDA线上的每个字节必须为8位,每次传输可以发送的字节数量不受限制。每个字节后必须跟一个响应位。首先传输的是数据的最高位(MSB),如果从机要完成一些其他功能后(例如一个内部中断服务程序)才能接收或发送下一个完整的数据字节,可以使时钟线SCL保持低电平,迫使主机进入等待状态,当从机准备好接收下一个数据字节并释放时钟线SCL后数据传输继续。
数据传输必须带响应,相关的响应时钟脉冲由主机产生。在响应的时钟脉冲期间发送器释放SDA线(高)。
在响应的时钟脉冲期间,接收器必须将SDA线拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平。
通常被寻址的接收器在接收到的每个字节后,除了用CBUS地址开头的数
I2C总线数据传输和应答
据,必须产生一个响应。当从机不能响应从机地址时(例如它正在执行一些实时函数不能接收或发送),从机必须使数据线保持高电平,主机然后产生一个停止条件终止传输或者产生重复起始条件开始新的传输。
如果从机接收器响应了从机地址,但是在传输了一段时间后不能接收更多数据字节,主机必须再一次终止传输。这个情况用从机在第一个字节后没有产生响应来表示。从机使数据线保持高电平,主机产生一个停止或重复起始条件。
如果传输中有主机接收器,它必须通过在从机不产生时钟的最后一个字节不产生一个响应,向从机发送器通知数据结束。从机发送器必须释放数据线,允许主机产生一个停止或重复起始条件。
编辑本段寻址方式
第一个字节的头7位组成了从机地址,最低位(LSB)是第8位,它决定了传输的
普通的和带重复开始条件的7位地址格式
方向。第一个字节的最低位是“0”,表示主机会写信息到被选中的从机;“1”表示主机会向从机读信息,当发送了一个地址后,系统中的每个器件都在起始条件后将头7位与它自己的地址比较,如果一样,器件会判定它被主机寻址,至于是从机接收器还是从机发送器,都由R/W位决定的哦。
10位寻址和7位寻址兼容,而且可以结合使用。
10位寻址采用了保留的1111XXX作为起始条件(S),或重复起始条件(Sr)的后第一个字节的头7位。
10位寻址不会影响已有的7位寻址,有7位和10位地址的器件可以连接
I2C总线10位地址格式
到相同的I2C总线。它们都能用于标准模式(F/S)和高速模式(Hs)系统。
保留地址位1111XXX有8个组合,但是只有4个组合11110XX用于10位寻址,剩下的4个组合11111XX保留给后续增强的I2C总线。
10位从机地址是由在起始条件(S) 或重复起始条件(Sr)后的头两个字节组成。
第一个字节的头7位是11110XX的组合,其中最后两位(XX) 是10位地址的两个最高位(MSB)。
第一个字节的第8位是R/W位,决定了传输的方向,第一个字节的最低位是“0”表示主机将写信息到选中的从机,“1 ”表示主机将向从机读信息。
如果R/W位是“0 ”,则第二个字节是10位从机地址剩下的8位;如果R/W位是“1”则下一个字节是从机发送给主机的数据。
编辑本段快速和高速模式
快速模式器件可以在400kbit/s下接收和发送。最小要求是:它们可以和400kbit/s传输同步,可以延长SCL信号的低电平周期来减慢传输。快速模式器件都向下兼容,可以和标准模式器件在0~100kbit/s的I2C总线系统通讯。但是,由于标准模式器件不向上兼容,所以不能在快速模式I2C总线系统中工作。快速模式I2C总线规范与标准模式相比有以下额外的特征:
1、最大位速率增加到400kbit/s;
2、调整了串行数据(SDA) 和串行时钟(SCL)信号的时序;
3、快速模式器件的输入有抑制毛刺的功能,SDA和SCL输入有施密特触发器;
4、快速模式器件的输出缓冲器对SDA和SCL信号的下降沿有斜率控制功能;
5、如果快速模式器件的电源电压被关断,SDA和SCL的I/O管脚必须悬空,不能阻塞总线;
6、连接到总线的外部上拉器件必须调整以适应快速模式I2C总线更短的最大允许上升时间。对于负载最大是200pF的总线,每条总线的上拉器件可以是一个电阻,对于负载在200pF~400pF之间的总线,上拉器件可以是一个电流源(最大值3mA)或者是一个开关电阻电路。
高速模式(Hs模式)器件对I2C总线的传输速度有具大的突破。Hs模式器件可以在高达3.4Mbit/s的位速率下传输信息,而且保持完全向下兼容快速模式或标准模式(F/S模式)器件,它们可以在一个速度混合的总线系统中双向通讯。
Hs模式传输除了不执行仲裁和时钟同步外,与F/S模式系统有相同的串行总线协议和数据格式。
高速模式下I2C总线规范如下:
1、Hs模式主机器件有一个SDAH信号的开漏输出缓冲器和一个在SCLH输出的开漏极下拉和电流源上拉电路。这个电流源电路缩短了SCLH信号的上升时间,任何时侯在Hs模式,只有一个主机的电流源有效;
2、在多主机系统的Hs模式中,不执行仲裁和时钟同步,以加速位处理能力。仲裁过程一般在前面用F/S模式传输主机码后结束;
3、Hs模式主机器件以高电平和低电平是1:2的比率产生一个串行时钟信号。解除了建立和保持时间的时序要求;
4、可以选择Hs模式器件有内建的电桥。在Hs模式传输中,Hs模式器件的高速数据(SDAH)和高速串行时钟(SCLH)线通过这个电桥与F/S模式器件的SDA和SCL线分隔开来。减轻了SDAH和SCLH线的电容负载,使上升和下降时间更快;
5、Hs模式从机器件与F/S从机器件的唯一差别是它们工作的速度。Hs模式从机在SCLH和SDAH输出有开漏输出的缓冲器。SCLH管脚可选的下拉晶体管可以用于拉长SCLH信号的低电平,但只允许在Hs模式传输的响应位后进行;
6、Hs模式器件的输出可以抑制毛刺,而且SDAH和SCLH输出有一个施密特触发器;
7、Hs模式器件的输出缓冲器对SDAH和SCLH信号的下降沿有斜率控制功能。[1]
编辑本段I2C常用念法
I2C(Inter-Integrated Circuit)是内部整合电路的称呼,是一种串行通讯总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边装置而发展。I2C的正确读法为"I-squared-C",而"I-two-C"则是另一种错误但被广泛使用的读法,在中国则多以"I方C"称之。