51单片机之IIC总线

IIC总线概念&通信协议

概念

  1. I2C(Inter-Integrated Circuit),通常简称为IIC,是一种用在集成电路(IC)之间的串行通信总线。
  2. I2C为同步串行通信,使用两根线路进行通信,分别是数据线(SDA)和时钟线(SCL)。
  3. SDA线用于数据传输,SCL线用于数据传输的同步。
  4. SCL的每个时钟周期,SDA传输一位数据。
  5. I2C规定,数据的接收方会在每个时钟周期的高电平期间读取数据,具体来讲就是在SCL处于高电平时,读取SDA上的数据。                                                                                         
  6. SDA必须在SCL低电平期准备好要发送的下一位数据,然后在SCL高电平期间保持稳定。

主从架构

I2C采用主从架构,一个主设备可连接多个从设备。主设备负责发起通信和控制总线,而从设备负责响应主设备的请求。

  1. I2C总线中的每个设备都有一个唯一的地址(用7位二进制数字表示),用于在总线上标识自己。
  2. SCL信号线上的时钟信号始终由主设备产生,而SDA信号线上的数据信号既可由主设备产生,也可由从设备产生。
  3. 当主设备向从设备发送数据时,SDA信号由主设备产生,从设备接收信号;当主设备从从设备读取数据时,SDA信号由从设备产生,主设备接收信号。

通信协议

  1. 空闲状态:I2C协议规定,当SDA和SCL均为高电平时,总线为空闲状态。
  2. 主设备和从设备间的每次通信,都需要以一个起始信号开始,以一个结束信号终止。
  3. 起始信号:当SCL处于高电平时,SDA由高变低。
  4. 结束信号:当SCL处于高电平时,SDA由低变高。
  5. 起始信号和结束信号,都只能由主设备产生。

  6. 确认信号:I2C协议规定,发送方每发送一个字节(8位)的数据,接收方都要向发送方回复一个1位的确认信号,0表示接收方已成功接收到该字节,发送方可继续发送下一字节,这个信号在I2C协议中称为ACK(Acknowledge);如果该信号为1,则表示接收方未能成功接收到该字节,或者不希望接收更多数据,该信号在I2C协议中称为NACK(Not Acknowledge)。

  7. 从机地址:一个I2C总线上可能有多个从设备,所以开始通信前,主设备需要先与目标设备取得联系,然后再进行数据传输。

  8. 读写标识:主机还需要向目标设备明确本次通信的操作是写数据还是读数据。

  9. 当主设备发送起始信号之后,会向所有设备发送一个字节的数据,这一个字节中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值