IIC协议详解

本文详细介绍了IIC(Inter-Integrated Circuit)总线协议,包括其硬件构成、协议特点、数据传输过程中的开始信号、结束信号、应答信号以及数据有效性的规则。IIC总线采用两线式串行通信,支持100Kbps到400Kbps的传输速率,具有简单的物理连接和半双工通信特性。在数据传输中,IIC协议详细规定了写数据和读数据的过程,确保了主从设备间高效、准确的数据交换。

1 IIC简介

  IIC(Inter-Integrated Circuit)总线是一种由 NXP(原 PHILIPS)公司开发的两线式串行总线, 用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合 使用,传输距离短,任意时刻只能有一个主机等特性。
   在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送,高速 IIC 总线一般可达 400kbps 以上。
  PS: 这里要注意 IIC 是为了与低速设备通信而发明的,所以 IIC 的传输速率比不上 SPI。
图1
             图1 IIC总线物理拓扑图

2 IIC物理层

2.1 IIC硬件

  IIC有两条总线,一条双向的串行数据线SDA,一条串行时钟线SCL。
  SDA(Serial data):串行数据线,用来传送数据;
  SCL(Serial clock line):时钟线,用来控制数据发送的时序。
  所有接到IIC总线上的设备的SDA线都接到总线的SDA上,各设备的时钟线SCL都接到总线的SCL上。IIC总线上的每一个设备都有一个唯一的地址,以确保不同设备之间的访问互不干扰。

2.2 IIC协议特点

  • IIC主设备(master):主要产生时钟,产生起始和结束信号;
  • IIC从设备(slave):可编程的IIC地址检测,停止位检测等;
  • 支持不同的通信速率(100KHz~400KHz);
  • SCL和SDA都需要接上拉电阻 (大小由速度和容性负载决定一般在3.3K-10K之间) 保证数据的稳定性,减少干扰;
  • IIC是半双工,而不是全双工,同一时间只可以单向通信。

物理层小结
  I2C 总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,SCL和SDA被上拉电阻Rp拉高,使SDA和SCL线都保持高电平。
  I2C通信方式为半双工,只有一根SDA线,同一时间只可以单向通信,SPI和uart通信为全双工。

3 IIC协议层

  • 开始信号(Start): SCL为高电平时,SDA由高电平向低电平跳变,标志着开始传输数据;

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值