I2C协议

目录

I2C协议是什么:

I2C特点:

I2C通信时序:

I2C通信时序图: 

空闲状态:

读写地址:

应答信号:

数据的有效性:

数据的传输:

主机发送数据流:

主机接受数据流:

 I2C模式:


I2C协议是什么:

  I2C总线是由philips公司推出的一种在电子通信控制领域常用的通信协议。由时钟线和数据现两根线构成通信线路,利用上拉电阻将他们拉成高电平(表示总线空闲),具有电路简单,连线少,控制简单,通信速率高的优点。

  I2C总线是一种主从结构总线,I2C总线上每个设备都可以作为主设备或从设备,但一个总线上一般只有一个主设备 ,可以带多个从设备。其中主设备一般用来产生时钟信号,并初始化总线的数据输出,因此主设备一般是CPU,而从设备只能被动响应主设备发起的通信请求,所以各种I2C接口芯片将作为从设备设用。

  I2C可以有多个从设备,主设备需要通过地址来确定与哪个期间进行通信。I2C总线上每个设备都有一个唯一的7bit地址物理识别,这个地址固化在芯片内部,并可以在芯片的datasheet上找到。因为I2C地址全零为广播地址,因此I2C总线理论上可以带2^7-1=127个从设备。

I2C特点:

①有一根时钟线,所以是步通信

②只有一根数据总线,所以是串行传输数据

③这根总线双向传输,但是要分时,所以是半双工通

I2C通信时序:

I2C通信时序图: 

 包含空闲状态、起始信号、停止信号、应答信号、数据的有效性、数据传输

空闲状态:

I2C总线的数据线(SDA)和时钟线(SCL)两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高

起始信号:当时钟线(SCL)为高期间,数据线(SDA)由高到低的跳变

停止信号:当时钟线(SCL)为高期间,数据线(SDA)由低到高的跳变

读写地址:

主机在发送起始信号之后的下一个时序要立刻给出7bit目标从机物理地址和1bit的读/写方向位(0为写操作,1为读操作)

应答信号:

发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。 应答信号为低电平时,规定为有效应答位(ACK简称应答位),表示接收器已经成功地接收了该字节;应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。

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

数据的有效性:

I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定。只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。即:数据在时钟线(SCL)的上升沿到来之前就需准备好。并在下降沿到来之前必须稳定。

数据的传输:

I2C通信时数据传输采用MSB(最高位优先)方式发送,其中高电平表示数据位1,低电平表示数据为0,当传输位需要改变时(如上一位发送的是0,下一位要发送1),必须发送在时钟线(SCL)位低电平期间,另外传输过程中数据线(SDA)上的数据位在时钟线(SCL)高电平期间必须保持不变,避免出现起始信号或终止信号的情况。

主机发送数据流:

总的来说IIC的通讯时序可以描述成:首先主机发送起始信号,时钟线保持高电平,数据线信号由高电平变为低电平,然后发送一个从设备地址,包括7bit的物理地址和1bit的读写地址(R/W=0),从设备匹配到该地址后,发送一个应答信号,主机收到应答信号后发送一个字节数据,循环发送一字节数据,直到主机向从机发送一个停止信号p,从机退出与主机的通信,当时钟线为高期间,数据线由低到高的跳变,释放总线结束通信。

主机接受数据流:

总的来说IIC的通讯时序可以描述成:首先主机发送起始信号,时钟线保持高电平,数据线信号由高电平变为低电平,然后发送一个从设备地址,包括7bit的物理地址和1bit的读写地址(R/W=1),从设备匹配到该地址后,发送一个应答信号并向主机发送数据,主机收到收到数据后向从机发送一个应答信号ACK,从机收到应答信号发送下一个字节的数据,循环这个过程,直到主机向从机发送一个停NACK,从机停止发送,最后主机发送停止信号,当时钟线为高期间,数据线由低到高的跳变,释放总线结束通信。

 I2C模式:

I2C总线是一种同步,半双工,采用电平信号收发的串行总线,其速率支持:

标准模式:速率高达100kbit/s

快速模式:速率高达400kbit/s

快速模式+:速率高达1Mbit/s

高速模式:速率高达3.4Mbit/s

超快速模式:速率高达5Mbit/s(单向传输时支持)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值