I2C学习

串行半双工,每个IIC器件都有一个地址, i2C总线在IC之间进行双向数据传送,典型速度100Kbit/S,快速模式达400Kbit/S,后来增加了高速模式达3.4Mbit/S。

它只有两根双向信号线。一根是数据线SDA(serial data I/O),另一根是时钟线SCL(serial clock)。 

1 数据位的有效性规定:

SCL为高电平期间,数据线上的数据必须保持稳定,只有SCL信号为低电平期间,SDA状态才允许变化。如图所示 

10位I2C总线可以挂接更多的10位I2C设备.    

2.I2C的起始和终止信号

SCL线为高电平期间,SDA线由电平向电平的变化表示起始信号; 
SCL线为高电平期间,SDA线由电平向电平的变化表示终止信号; 

3.I2C字节的传送与应答

数据传送时高位在前,低位在后,每次传送的字节数目没有限制。传输操作启动后主控制器件传输的第一字节是地址,其中前面7位指出与哪一个器件进行通信,第8位指出数据传输的方向(发送还是接收)。

为了完成一字节的传送,接收方应该发送一个确认信号ACK给发送方,ACK信号出现在SCK线的第9个时钟脉冲上,有效应答ACK在SDA上呈现低电平,如图。

主控制器件在接收了来自从器件的字节后,如果不准备终止数据传输,他将会发送1个ACK信号给从器件。从器件在其接收到来自主控制器件的字节时,总是发送1个ACK信号给主控制器件,如果从器件还没有准备好再次接收,它可以保持SCK位低电平(总线处于等待状态),直到它准备好为止。

这里写图片描述

时序的要求

  • 当 SCL 在低电平的时候, SDA 允许变化,也就是说,发送方必须先保持 SCL 是低电平,才可以改变数据线 SDA,输出要发送的当前数据的一位;
  • 当 SCL 在高电平的时候, SDA 绝对不可以变化,因为这个时候,接收方要来读取当前 SDA 的电平信号是 0 还是 1,因此要保证 SDA 的稳定,

4.应答位的作用

主机在发送数据时,每次发送一字节数据,都需要读取从机应答位,当从机空闲可以接收该字节数据时,从机会发出应答(一帧数据的第9位为“0

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值