I2C通信协议

IIC通信协议
1、IIC总线有2条信号线,SCL(时钟线)和SDA(数据线)
2、总线空闲时为高电平
3、在标准的IIC普通模式下,数据的传输速率为100kbit/s,高速模式下可以达到400kbit/s
4、IIC所接的外围器件的数量 由IIC地址决定(如果是8位地址,减去1位读写位,是7位地址,2^7=128,但是地址0x00不用,那就是127个地址, 所以理论上可以挂127个从器件)和电容负载决定的,电容量不能超过400pF
5、 IIC 总线信号:共有三种信号,即开始信号(S)、结束信号(P)和应答信号

开始信号:在SCL 串行时钟线为高电平期间,SDA 线由高电平向低电平的变化表示起始信号,只有在起始信号以后,其他命令才有效。

结束信号:在SCL 串行时钟线为高电平期间,SDA 线由低电平向高电平的变化表示终止信号,随着终止信号的出现,所有外部操作就结束。
应答信号:低电平时,规定为有效应答位(ACK);高电平时,规定为非应答位(NACK)。
SCL在高电平期间,SDA被从器件拉为低电平表示应答。
IIC主设备在写完一个字节数据(8位)后,从器件应该将SDA线拉低,主设备收到这个应答信号时才能继续发送下一个字节的数据;主设备在读从设备的数据时,如果不想从设备继续发送数据,可以发一个非应答信号,从设备就会停止数据发送。

6、IIC数据传输:

(1)IIC信号在数据传输过程中,当SCL=1高电平时,数据线SDA必须保持稳定状态,不允许有电平跳变,只有在时钟线上的信号为低电平期间(SCL=0),数据线上的高电平或低电平状态才允许变化。

简而言之,SCL=1时, 数据线SDA的任何电平变换会看做是总线的起始信号或者停止信号,只有SCL=0时,才允许SDA数据进行电平转换
.
(2)输出到SDA线上的每个字节必须是8位,数据传送时,高位(MSB)在前,低位(LSB)在后,每次发送的字节数量不受限制,但是每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。当一个字节按数据位从高位到低位的顺序传输完后,紧接着从设备将拉低SDA=0,回传给主设备一个应答位ACK, 此时才认为一个字节真正的被传输完成 ;如果一段时间内没有收到从机的应答信号(SDA=1),则认为该数据接收不成功

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yyyang88

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

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

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

打赏作者

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

抵扣说明:

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

余额充值