I2C通信原理

1. 概述

读法:

常用:I方C
标准:I square C

I2C 总线是Philips(现NXP)公司推出的一种用于IC器件之间连接的2线制船型扩展总线。通过2条信号线(SDA:串行数据线;SCL:串行时钟线)连接到总线上的器件之间传送数据,所有连接在总线上的I2C器件都可以工作于发送方式或接收方式。

I2C总线的SDA和SCL是双向I/O线,必须通过上拉电阻接到正电源,当总线空闲时,2线都是“高”。所有连接在I2C总线上的器件引脚必须是开漏或集电极开路输出,即具有“线与”功能。
在这里插入图片描述

2. I2C总线的数据传送

2.1 数据位的有效性规定

I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。
在这里插入图片描述

2.2起始和终止信号

I2C总线规定,当SCL为高电平时,SDA的电平必须保持稳定不变的状态,只有当SCL处于低电平时,才可以改变SDA的电平值,但起始信号和停止信号是特例。因此,当SCL处于高电平时,SDA的任何跳变都会被识别成为一个起始信号或停止信号。
在这里插入图片描述

2.3 数据传送格式

2.3.1字节传送与应答

在I2C总线的数据传输过程中,发送到SDA信号线上的数据以字节为单位,每个字节必须为8位,而且是高位(MSB)在前,低位(LSB)在后,每次发送数据的字节数量不受限制。但在这个数据传输过程中需要着重强调的是,当发送方发送完每一字节后,都必须等待接收方返回一个应答响应信号。
在这里插入图片描述

2.3.2总线的寻址

  1. DA3~DA0:4位器件地址是I2C总线器件固有的地址编码,器件出厂时就已给定,用户不能自行设置。
  2. A2~ A0:3位引脚地址用于相同地址器件的识别。若I2C总线上挂有相同地址的器件,或同时挂有多片相同器件时,可用硬件连方式对3位引脚A2~A0接Vcc或接地,形成地址数据。
  3. R/W:数据传送方向。 R/W=1时,主机接收(读);R/W =0,主机发送(写)。
    主机发送地址时,总线上的每个从机都将这7位地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址,根据 位将自己确定为发送器或接收器。

在这里插入图片描述

2.3.3数据帧格式

a) 主机向从机写数据
在这里插入图片描述

  1. 主机产生起始信号S。
  2. 主机发送寻址字节SLAVE ADDRESS,其中的高7位表示数据传输目标的从机地址;最后1位是传输方向位,此时其值为0,表示数据传输方向从主机到从机。
  3. 当某个从机检测到主机在I2C总线上广播的地址与它的地址相同时,该从机就被选中,并返回一个应答信号A。没被选中的从机会忽略之后SDA上的数据。
  4. 当主机收到来自从机的应答信号后,开始发送数据DATA。主机每发送完一个字节,从机产生一个应答信号。如果在I2C的数据传输过程中,从机产生了非应答信号/A,则主机提前结束本次数据传输。
  5. 当主机的数据发送完毕后,主机产生一个停止信号结束数据传输,或者产生一个重复起始信号进人下一次数据传输。

b) 主机从从机读数据
在这里插入图片描述

  1. 主机产生起始信号S。
  2. 主机发送寻址字节SLAVE ADDRESS,其中的高7位表示数据传输目标的从机地址;最后1位是传输方向位,此时其值为1,表示数据传输方向由从机到主机。寻址字节SLAVE ADDRESS发送完毕后,主机释放SDA(拉高SDA)。
  3. 当某个从机检测到主机在I2C总线上广播的地址与它的地址相同时,该从机就被选中,并返回一个应答信号A。没被选中的从机会忽略之后SDA上的数据。
  4. 当主机收到应答信号后,从机开始发送数据DATA。从机每发送完一个字节,主机产生一个应答信号。当主机读取从机数据完毕或者主机想结束本次数据传输时,可以向从机返回一个非应答信号A,从机即自动停止数据传输。
  5. 当传输完毕后,主机产生一个停止信号结束数据传输,或者产生一个重复起始信号进入下一次数据传输。

c) 主机和从机双向数据传送

在这里插入图片描述

   在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两次读/写方向位正好反相。

3.传输速率

   I2C的标准传输速率为100Kbps,快速传输可达400Kbps。目前还增加了高速模式,最高传输速率可达3.4Mbps。

I2C(Inter-Integrated Circuit)和SPI(Serial Peripheral Interface)都是常用的串行通信接口,在微控制器和外围设备之间传输数据。 **I2C通信原理:** - **双向总线结构**:I2C使用两条信号线,一条是SCL(时钟线),用于同步数据传输;另一条是SDA(数据线),用于发送和接收数据。 - **主从模式**:通常有一个主设备控制通信,其他是从设备。主设备发送起始信号,从设备响应应答信号。 - **仲裁机制**:当多个从设备连接时,主设备通过SCL和SDA的组合信号来决定与哪个设备通信,非被选中的设备会自动进入低电平状态,等待下一次通信机会。 - **停止和重置**:通过SCL拉低并保持一定时间来结束一次传输,重新开始则需要主设备再次发出起始信号。 **SPI通信原理:** - **单线或多线模式**:SPI支持单线或多线模式,最常见的有四线(MISO、MOSI、SCK、CS)和三线(MOSI、SCK、CS)。 - **全双工**:每个连接的一对设备都可以同时发送和接收数据,通过CS信号线选择一个设备进行通信。 - **异步通信**:通过SCK(时钟线)同步数据传输,数据以时钟周期为单位发送。 - **波特率可配置**:可以通过改变SCK频率调整数据传输速率。 - **数据帧结构**:SPI传输是以字节为单位,每个数据包由起始位、数据位、停止位组成,并可能包含奇偶校验或帧间隔。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

感谢地心引力

有用的话请我喝杯咖啡吧????

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值