IIC通信协议总结

IIC简介:

IIC 翻译为Inter-Integrated Circuit(集成电路总线),是由PHILIPS公司开发的两线式串行通信总线。
特点:

  • I2C使用两条线在主控制器和从机之间进行数据通讯。一条是 SCL(串行时钟线),另外一条是SDA(串行数据线),这两条数据线需要接上拉电阻,总线空闲的时候 SCL 和 SDA 处于高电平。
  • 一个IIC控制器下可以挂多个I2C从设备,每个从设备有不同的器件地址,IIC主机可以通过不同的地址和从设备通信。
  • IIC是半双工,而不是全双工 ,同一时间只可以单向通信

速度:

  • I2C 总线标准模式下速度可以达到 100Kb/S,快速模式下可以达到 400Kb/S。

硬件连接:

  • SCL和SDA都需要接上拉电阻 (大小由速度和容性负载决定一般在3.3K-10K之间) 保证数据的稳定性,减少干扰。
    在这里插入图片描述

IIC协议详解:

1、起始位
IIC起始位通信起始标志,通过这个起始位可以告诉从机,我要开始了。SCL高电平期间,SDA出现下降沿。
在这里插入图片描述
2、停止位
停止位就是IIC停止通信的标志,和起始位功能相反。通过结束位可以告诉从机我要结束了。SCL高电平期间,SDA出现上升沿。

在这里插入图片描述
3、应答信号
当IIC发送完8位数据以后,会将SDA设置为输入状态,等待IIC从机应答,也就是等到IIC从机告诉主机我收到数据了。应答信号是由从机发出的,主机需要提供应答信号所需要的时钟,主机发送完8位数据以后紧跟着的一个时钟信号就是给应答信号使用的。从机通过拉低SDA表示发出应答信号,表示通信成功,否则表示通信失败。

4、数据传输
IIC总线在数据传输的时候要保证SCL高电平期间,SDA上数据稳定,因此SDA上的数据变化只能在SCL低电平期间发生。PS(高电平期间如果变化岂不是和起始结束位无法分开)

在这里插入图片描述
5、读时序
主机要向从机写数据时:
在这里插入图片描述

1、发送起始信号START。
2、发送从 设备地址(7位)+写位(1位),0代表主机发送数数据写,1代表主机接收数据读。
3、等待从设备ACK。
4、重新发送起始信号START
5、主设备发送要读取的寄存器地址。
6、等待从设备ACK
7、重新发送起始信号START
8、重新发送IIC从设备的地址(7位)+读位(1位),接下来要从IIC设备中读取取数据
9、等待从设备发送ACK应答信号。
10、从从设备中读取到数据。
11、主设备发送NACK,表示读取完成。
12、主机发送 STOP信号,停止IIC通信。

6、写时序
在这里插入图片描述1、发送起始信号START。
2、发送从 设备地址(7位)+写位(1位),0代表主机发送数数据写,1代表主机接收数据读。
3、等待从设备ACK。
4、重新发送起始信号START
4、主设备发送要写入的寄存器地址。
5、等待从设备ACK
6、写入寄存器的数据。
7、等待从设备ACK
8、发送STOP信号,结束IIC通信。

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值