通信协议之I2C

4.1 简介

I2C Bus(IlC,Inter-Integrated Circuit Bus)是由 Philips公司(现被NXP收购)推出的一种在电子通信控制领域常用的通信协议。它由时钟线(SCL)和数据线(SDA)两根线构成通信线路,利用上拉电阻将它们拉成高电平(表示总线空闲),其典型的电压准位为+3.3V或+5v,具有电路简单、连接线少、控制简单、通信速率高等优点。
I2C总线是一种主从结构(Master/Slave)总线,I2C总线上的每一个设备都可以作为主设备或者从设备,但一个总线上一般只有一个主设备,可以带多个从设备。其中主设备用来产生允许传输的时钟信号,并初始化总线的数据传输,所以主设备通常是CPU;而从设备只能被动响应主设备发起的通信请求,所以各种I2C接口芯片将作为从设备使用。

4.2 从设备地址

因为一个I2C总线上可以有多个从设备,这样主设备需要通过地址来确定与哪个器件进行通信。l2C总线上每个从设备都有一个唯一的 7bit 地址物理识别,这个地址固化在芯片内部,并可以从芯片datasheet上找到。因为I2C地址全0为广播地址,所以I2C总线理论上最多能带2^7-1=127个从设备。
有些时候一个总线上可能需要挂多个同一芯片,这样有些芯片还需要引出一个或几个引脚,由开发板设计电路来决定其具体地址,从而让不同芯片具有不同的 7bit 物理地址。如下左图的SHT30温湿度传感器,如果ADDR连VSS 则其7bit地址为Ox44,而如果ADDR连VDD则其7bit地址为Ox45。

4.3 通信时序

介绍
在I2C总线上传送的每一位数据都由一个同步时钟脉冲相对应,即在SCL串行时钟的配合下,数据在SDA上从高位向低位(MSB)依次串行传送每一位的数据。下面是l2C通信的时序图:
在这里插入图片描述

起始位和停止位

I2C总线在空闲时SDA和SCL都处于高电平状态(由上拉电阻拉成高电平),当主设备要开始一次I2C通信时就发送一个START(S)信号,这个起始位就可以告诉所有I2C 从机,“我”要开始进行l2C通信了;当要结束一次l2C通信时,则发送一个STOP§信号结束本次通信。
在这里插入图片描述
I2C协议起始位: 当SCL保持高电平时,SDA出现一个下降沿,产生一个起始位;
I2C协议停止位: 当SCL保持高电平时,SDA出现一个上升沿,产生一个停止位;

读写地址

主机在发送START信号之后,第2个时序应该立刻给出要通信的目标从机物理地址。此外,I2C总线是一种能够实现半双工通信的同步串行通信协议,站在主设备的角度来看应该具有读/写从设备的功能。
这时候I2C的读写地址除了7bit 物理地址以外,还有1bit用来标识读/写方向位。这样I2C的从设备读写地址通常是一个字节,其中高7bit 是上面描述的物理地址,最低位用来表示读写方向(0为写操作,1为读操作)。

应答信号

主机往I2C总线上传输器件地址,所有的从机接收到这个地址后与自己的地址相比较若相同则发出一个应答ACK信号,主机收到这个应答信号后通讯连接建立成功,若未收到应答信号则表示寻址失败。

此外,主/从机在之后的数据通信中,数据接收方(可能是主机也可能是从机)收到传输的一个字节数据后,需要给出响应,此时处在第九个时钟,发送端释放SDA线控制权,将SDA电平拉高,由接收方控制。

若希望继续,则给出“应答(ACK,Acknowledge)”信号,即 SDA为低电平;
若不希望继续,则给出“非应答(NACK,Not Acknowledge)”信号,即 SDA为高电平;

数据位收发

主机在收到从机的应答信号之后,开始给从机发送数据。SDA数据线上的每个字节必须是8位,每次传输的字节数量没有限制,每个字节发送完成之后,从机必须跟一个应答信号。
I2C总线通信时数据位传输采用MSB(最高位优先)方式发送,其中高电平表示数据位1,低电平表示数据位0。当传输的数据位需要改变时(如上一个位发送的是1,下一个位要发送0),必须发生在SCL为低电平期间。另外在传输过程中,SDA上的数据位在SCL高电平期间必须保持稳定不变。
在这里插入图片描述

总线速率

I2C总线是一种同步、半双工、采用电平信号收发的串行总线,其速率支持:
标准模式(Standard-mode) : 速率高达100kbit/s
快速模式(Fast-mode) : 速率高达400kbit/s
快速模式+(Fast-mode Plus) : 速率高达1Mbit/s。
高速模式(High-speed mode) : 速率高达3.4Mbit/s
超快速模式(Ultra Fast-mode) : 速率高达5Mbit/s(单向传输时支持)

4.4 主机发送数据流程

  1. 主机在检测到总线为空闲时,发送一个启动信号"S",开始一次通信的开始;
  2. 主机接着发送一个从设备地址,它由 7bit 物理地址和 1bit 读写控制位R/W组成(此时R/W=0);
  3. 相对应的从机收到命令字节后向主机回馈应答信号ACK (ACK=O);
  4. 主机收到从机的应答信号后开始发送第一个字节的数据;
  5. 从机收到数据后返回一个应答信号ACK;
    6.主机收到应答信号后再发送下一个数据字节;
    7.主机发完最后一个字节并收到ACK后,向从机发送一个停止信号Р结束本次通信并释放总线;
    8.从机收到Р信号后也退出与主机之间的通信;
    在这里插入图片描述

4.4 主机接收数据流程

  1. 主机发送启动信号后,接着发送地址字节(其中R/W=1);
  2. 对应的从机收到地址字节后,返回一个应答信号并向主机发送数据;
  3. 主机收到数据后向从机反馈一个应答信号ACK;
  4. 从机收到应答信号后再向主机发送下一个数据;
  5. 当主机完成接收数据后,向从机发送一个NAK,从机收到非应答信号后便停止发送;
  6. 主机发送非应答信号后,再发送一个停止信号,释放总线结束通信;
    在这里插入图片描述
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
包内有I2C的读写规范及读写例程 1 序言........................................................................................................................ 3 1.1 版本1.0-1992 .................................................................................................................... 3 1.2 版本2.0-1998 .................................................................................................................... 3 1.3 版本2.1-2000 .................................................................................................................... 3 1.4 购买Philips 的I2C 总线元件.............................................................................................. 3 2 I2C 总线使设计人员和厂商都得益.......................................................................... 3 2.1 设计人员的得益................................................................................................................. 4 2.2 厂商的得益......................................................................................................................... 5 3 介绍I2C 总线规范................................................................................................... 6 4 I2C 总线的概念....................................................................................................... 6 5 总体特征................................................................................................................. 7 6 位传输..................................................................................................................... 7 6.1 数据的有效性..................................................................................................................... 7 6.2 起始和停止条件................................................................................................................. 8 7 传输数据................................................................................................................. 9 7.1 字节格式............................................................................................................................ 9 7.2 响应.................................................................................................................................. 9 8 仲裁和时钟发生.................................................................................................... 10 8.1 同步................................................................................................................................ 10 8.2 仲裁................................................................................................................................ 10 8.3 用时钟同步机制作为握手..................................................................................................11 9 7 位的地址格式..................................................................................................... 12 10 7 位寻址.............................................................................................................. 13 10.1 第一个字节的位定义...................................................................................................... 13 10.1.1 广播呼叫地址....................................................................................................... 14 10.1.2 起始字节.............................................................................................................. 15 10.1.3 CBUS 的兼容性................................................................................................... 16 11 标准模式I2C 总线规范的扩展............................................................................. 16 12 快速模式............................................................................................................. 17 13 Hs 模式............................................................................................................... 17 13.1 高速传输........................................................................................................................ 17 13.2 Hs 模式的串行数据传输格式.......................................................................................... 19 13.3 从F/S 模式切换到Hs 模式以及返回.............................................................................. 20 13.4 低速模式中的快速模式器件............................................................................................ 21 13.5 串行总线系统的混合速度模式........................................................................................ 21 13.5.1 在混合速度总线系统中的F/S 模式传输............................................................... 22 13.5.2 在混合速度总线系统中的Hs 模式传输................................................................. 22 13.5.3 混合速度总线系统中电桥的时序要求................................................................... 24 14 10 位寻址............................................................................................................ 24 14.1 头两个字节位的定义...................................................................................................... 24 14.2 10 位寻址的格式............................................................................................................ 24 14.3 广播呼叫地址和10 位寻址的起始字节........................................................................... 26 15 I/O 级和总线线路的电气规范和时序................................................................... 26 15.1 标准和快速模式器件...................................................................................................... 26 15.2 Hs 模式器件................................................................................................................... 28 16 I2C 总线器件到总线线路的电气连接................................................................... 30 16.1 标准模式I2C 总线器件电阻Rp 和RS 的最大和最小值.................................................... 31 17 应用信息............................................................................................................. 33 17.1 快速模式I2C 总线器件的斜率控制输出级....................................................................... 33 17.2 快速模式I2C 总线器件的开关上拉电路.......................................................................... 34 17.3 总线线路的配线方式...................................................................................................... 34 17.4 快速模式I2C 总线器件电阻Rp 和RS 的最大和最小值.................................................... 35 17.5 Hs 模式I2C 总线器件的电阻Rp 和RS 的最大和最小值................................................... 35 18 F/S 模式I2C 总线系统的双向电平转换器........................................................... 35 18.1 连接逻辑电平不同的器件............................................................................................... 36 18.1.1 电平转换器的操作................................................................................................ 36 19 Philips 提供的开发工具...................................................................................... 37 20 支持的文献......................................................................................................... 37
I2C通信协议是一种串行总线协议,它允许多个设备在同一条总线上进行通信。在I2C总线上,每个设备都有一个唯一的地址,可以通过这个地址与其他设备进行通信。下面是I2C通信协议的详细讲解: 1. 总线结构 I2C总线结构包括两根信号线:SCL和SDA。SCL是时钟线,由主设备负责产生;SDA是数据线,用于传输数据。 2. 通信方式 I2C通信协议主要分为两种方式:传输数据和发送命令。在传输数据时,从设备首先向主设备发送一个应答信号(ACK),主设备接收到应答信号后,才会继续发送数据。在发送命令时,主设备向从设备发送命令并等待从设备的应答信号。 3. 传输数据 在I2C总线上传输数据时,每个字节都由8位二进制数字组成。在传输一个字节之前,主设备必须向从设备发送一个起始信号(Start Bit),表示一个新的传输过程开始了。然后主设备会先发送从设备的地址(包括读/写位),然后等待从设备的应答信号。如果从设备存在,并且它的地址与主设备发送的地址匹配,那么它会发送一个应答信号。接下来主设备会开始发送数据,每发送一个字节就等待从设备的应答信号。当主设备发送完最后一个字节后,它会发送一个停止信号(Stop Bit),表示这次传输已经结束了。 4. 发送命令 在I2C总线上发送命令时,主设备首先向从设备发送命令,并等待从设备的应答信号。如果从设备存在,并且它的地址与主设备发送的地址匹配,那么它会发送一个应答信号。接下来主设备可以向从设备发送一个或多个字节的数据,然后等待从设备的应答信号。当主设备完成数据传输后,它会向从设备发送停止信号。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值