IIC总线原理特性解析及通信要点

在这里插入图片描述

引言

IIC(Inter-Integrated Circuit,简称I²C)总线由NXP(原PHILIPS)公司开发的两线式串行总线。它用于连接微控制器及其外围设备,如传感器、存储器、显示器等。IIC总线具有易于实现、多主多从、占用引脚少等优点,被广泛应用于各种电子设备中。

IIC总线的特点

  1. 双线通信:IIC总线使用两根信号线,SCL(串行时钟线)和SDA(串行数据线),进行数据传输。
  2. 多主多从:IIC总线支持多个主设备和多个从设备,可以通过地址识别从设备。
  3. 同步通信:SCL信号由主设备生成,用于同步数据传输。
  4. 双向通信:SDA线是双向的,既可以由主设备发送数据,也可以由从设备发送数据。
  5. 速度可调:IIC总线支持标准模式(100kbps)、快速模式(400kbps)、高速模式(3.4Mbps)和超高速模式(5Mbps)。

IIC主要用于近距离、低速的芯片之间的通信。数据线SDA用于收发数据;时钟线SCL用于通信双方时钟的同步。

IIC总线的工作原理

IIC总线采用开放式集电极结构,通常需要上拉电阻将SCL和SDA线保持在高电平。以下是IIC总线的基本连接示意图:
在这里插入图片描述

IIC总线是一种多主机总线,连接在IIC总线上的器件分为主机和从机。主机有权发起和结束一次通信,而从机只能被主机呼叫;当总线上有多个主机同时启用总线时,IIC也具备冲突检测和仲裁的功能来防止错误产生;每个连接到IIC总线上的器件都有一个唯一的地址(7bit),且每个器件都可以作为主机也可以作为从机(同一时刻只能由一个主机),总线上的器件删除和增加不影响其他器件正常工作;IIC总线在通信时总线上发送数据的器件为发送器,接收数据的器件为接收器。

  1. 主机发送起始信号启用总线
  2. 主机发送一个字节数据指明从机地址(7bit)和后续字节的传送方向(1bit),如果后续字节(最后一位)是0,表示后续的数据是主机给从机发数据;如果(最后一位)是1,表示后续的数据是从机给主机发数据。
  3. 被寻址的从机发送应答信号回应主机。
  4. 发送器发送一个字节数据。
  5. 接收器发送应答信号回应发送器
  6. 重复步骤4、5.
  7. 通信完成后主机发送停止信号释放总线。

数据传输协议

IIC总线的数据传输过程包括以下几个步骤:

  1. 起始条件(START):当SDA线在SCL线为高电平时由高变低,表示通信的开始。
    从设备地址:主设备发送7位从设备地址,紧接着是1位读/写位(0表示写,1表示读)。
  2. 应答信号(ACK/NACK):每传输一个字节后,接收设备需要发送应答信号,低电平表示应答(ACK),高电平表示非应答(NACK)。
  3. 数据传输:主设备和从设备按字节传输数据,最先传输高位,传输每个字节后,接收设备都需要发送应答信号。
  4. 停止条件(STOP):当SDA线在SCL线为高电平时由低变高,表示通信的结束。

IIC总线寻址方式

IIC总线传送固定数据是广义的,既包含地址,又包括真正的数据。大多数IIC设备使用7位地址进行寻址,这意味着可以有128个(0x00至0x7F)唯一地址的从设备。实际可用的地址范围稍小一些,因为某些地址是保留的。

地址结构
7位地址的结构如下图所示:

A6  A5  A4  A3  A2  A1  A0
  • A6-A0:从设备的7位地址。
  • R/W位:在7位地址后面紧跟一个读/写位(R/W),0表示写,1表示读。

主机在发送起始信号后必须先发送一个字节的数据,该数据的高7位为从机地址,最低位表示后续字节的传送方向,“0”表示主机发送数据,"1"表示从机接收数据。总线上所有的从机接收到该字节数据后都将这7位地址与字节的地址进行比较,如果相同,则认为字节被主机寻址,然后在根据第8位将字节定位发送器或接收器。
在这里插入图片描述

IIC总线信号实现

SCL为高电平时,SDA由高到低表示起始信号;SCL为高电平时,SDA由低变高表示停止信号。起始信号和停止信号都是由主机发出,起始信号产生后总线处于占用状态,停止信号产生后总线处于空闲状态。
在这里插入图片描述
IIC总线通信时每个字节为8位长度,数据传送时,先传送最高位,后传送低位,发送器发送完一个字节数据后节后接收器必须发送1位应答位来回应发送器即一帧共有9位。

IIC总线在进行数据传送时,时钟线SCL为低电平期间,发送器向数据线上发送一位数据,在此期间数据线上的信号允许发送变化;时钟线SCL为高电平期间,接收器从数据线上读取一位数据,在此期间数据线上的信号不允许发生变化,必须保持稳定。
在这里插入图片描述

IIC总线时序

主机向从机发送数据
在这里插入图片描述
从机向主机发送数据
在这里插入图片描述
主机先向从机发送数据,然后从机在向主机发送数据
在这里插入图片描述
注意:阴影部分表示数据由主机向从机传送,无阴影部分则表示数据由从机向主机传送;A表示应答,A非表示非应答,S表示起始信号,P表示停止信号。


  • 24
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

墨辰JC

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值