精解IIC协议

IIC协议

IIC协议中设备地址模式有:7位地址模式、10位地址模式。

1、数据位有效性的规定

1)进行数据传送的时候,SCL必须为高电平,SDA上的数据必须保持稳定;只有在SCL为低电平期间,SDA上的状态才允许变化。

2)即数据在SCL的上升沿到来之前需做好准备,并在下降沿到来之前必须保持稳定。

2、空闲状态

1)规定:SDA和SCL同时处于高电平时,为总线的空闲状态。

3、起始信号与终止信号(都是由主机发送的)

在这里插入图片描述

起始信号:SCL为高电平期间,SDA由高电平变为低电平

终止信号:SCL为高电平期间,SDA由低电平变为高电平

4、应答信号

在这里插入图片描述

1) ACK(有效应答),当收到应答位为低电平时,表示接收方已经成功接收数据

2)NACK(非应答信号),当收到的应答位为高电平时,表示没有接收成功

3)有效的应答信号要求为:接收器在第9个时钟脉冲之前的低电平期间将数据线SDA拉低,并且确保在该时钟的高电平期间为稳定的低电平。

4)如果接收方为主机,当其收到最后一个字节时会发送一个NACK信号来通知发送方结束数据发送并释放SDA,以便主机发送停止信号P

5、数据传送格式

1)字节传输与应答:每一个字节必须保证是8bit长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随1bit的应答位(即每一帧数据一共有9bit)

img

2)在IIC总线上传送的每一位数据都有一个时钟脉冲相对应(或同步控制),即在SCL串行时钟的配合下,在SDA上逐位地串行传送每一位数据。即数据位的传输是边沿触发。

6、发送一个字节和接收一个字节时序

在这里插入图片描述
在这里插入图片描述

7、读写操作的三个方式(常用下面的第一种和第三种方式)

下面示意图中绿色竖线表示从机在SDA上读取数据或者放入数据;两个红色竖线之间表示一个时序单元,具体理解看下图的注释。
(1)指定地址写(指定设备、指定地址进行写操作,所以下面示例中得发送三个字节:设备地址、寄存器地址、写入的数据)
在这里插入图片描述
(2)当前地址读(指定设备,在当前地址指针指示的地址下读数据,这个当前地址取决于从机里面的地址指针,是从机山一次操作的最后一个寄存器的地址,所以这个时序不常用)
在这里插入图片描述
(3)指定地址读(指定设备、在指定地址上读取数据)
综合前两个例子得出,即复合格式(先指定地址写,但不写数据,然后调用当前地址读,即可得到指定地址读)因为清晰度问题,下面拆分分为两个图来看
在这里插入图片描述在这里插入图片描述

8、总线寻址(可以7位、8位和10位寻址)

(1)从机地址为7bit,D7~D1;而D0表示数据的传送方式:0表示主机写数据,1表示主机读数据。

(2)主机向从机写数据
在这里插入图片描述

主要有以下步骤:(这里理解对应前面第七大点中的第一小点)

1)由主机发送一个开始信号,
2)主机在数据线上广播从机地址
3)数据的传输方向(是读还是写)
4)“A”代表应答,表示主机找到了从机。
5)主机发送一个字节数据,从机接收到后,会返回给主机一个应答信号,直到主机发送完数据,或者从机返回一个NACK信号,表示从机不再接收主机发送的数据。主机发送一个stop信号。此次数据传输完成。

(3)主机读从机数据

在这里插入图片描述

步骤主要如下:(这个时序是进行读部分操作,一般来说读数据会有两个问题:一是向谁读,二是向一中的哪部分读;即下面读寄存器值的例子)这里理解对应前面第七大点中的第二小点

1)主机发送一个开始信号
2)主机在数据总线上广播地址
3)数据的传输方向(读1)
4)从机返回一个“A”代表应答,表示主机找到了从机。
5)从机返回读的数据
6)主机返回一个应答信号,表示成功接收从机发出的一个数据
7)当主机接收数据完毕,返回一个非应答信号“NACK”,从机释放数据总线,接着主机发送一个“P”信号,表示此次数据传输结束。

重要:(读从机寄存器里面的值)这里理解对应前面第七大点中的第三小点

在这里插入图片描述

1)主机首先产生START信号
2)然后紧跟着发送一个从机地址,注意此时该地址的第8位为0,表明是向从机写命令
3)主机等待从机的应答信号(ACK)
4)当主机收到应答信号时,发送要访问的地址(一般为从机寄存器的地址),继续等待从机的应答信号,
5)当主机收到应答信号后,主机要改变通信模式(主机将由发送变为接收,从机将由接收变为发送)所以主机重新发送一个开始start信号,然后紧跟着发送一个从机地址,注意此时该地址的第8位为1,表明将主机设置成接收模式开始读取数据,
6)主机等待从机的应答信号,当主机收到应答信号时,就可以接收1个字节的数据,当接收完成后,主机发送非应答信号,表示不在接收数据
7)主机进而产生停止信号,结束传送过程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值