IIC简介

IIC是很常用的一种总线协议,IIC是NXP公司设计的,IIC使用两条线在主控制器和从机之间进行数据通信。一条是SCL(串行时间线),另一条是SDA(串行数据线),这两条数据线需要上拉电阻,总线空闲的时候SCL和SDA处于高电平。
IIC总线标准模式下速度可以达到100Kb/s,快速模式下可以达到400Kb/s。IIC总线工作是按一定的协议来运行的。

IIC是支持多从机的,也就是一个IIC控制器下可以挂多个IIC从设备,这些不同的IIC从设备有不同的器件地址,这样IIC主控制器就可以通过IIC设备的器件地址访问指定的IIC设备了,一个IIC总线连接多个IIC设备如下图:
在这里插入图片描述上图中SDA和SCL这两根线必须要接一个上接电阻,一般是4.7K。其余的IIC从器件都挂接到SDA和SCL这两根线上,这样就可以通过SDA和SCL这两根线来访问多个IIC设备。

相关术语:
1,起始位
顾名思义,也就是IIC通信起始标志,通过这个起始位就可以告诉IIC从机,“我”要开始进行IIC通信了。在SCL为高电平时,SDA出现下降沿就表示为起始位,如下图:
在这里插入图片描述

2,停止位
停止位就是停止IIC通信的标志位,和起始位的功能相反。在SCL为高电平的时候,SDA出现上升沿就表示停止位,如下图:
在这里插入图片描述

3,数据传输
IIC总线在数据传输的时候要保证在SCL高电平期间,SDA上的数据稳定,因此SDA上的数据变化只能在SCL低电平期间发生,如下图:
在这里插入图片描述

4,应答信号
当IIC主机发送完8位数据以后会将SDA设置为输入状态,等待IIC从机应答,也就是等到IIC从机告诉主机它接收到数据了。应答信号是由从机发出的,主机需要提供应答信号所需的时钟,主机发送完8位数据以后紧跟着的一个时钟信号就是应答信号使用的。从机通过将SDA拉低来表示发出应答信号,表示通信成功,否则表示通信失败。

5,IIC写时序
主机通过IIC总线与从机之间进行通信不外乎两个操作:写和读。IIC总线总字节写时序如下图:
在这里插入图片描述
具体步骤:
1)、开始信号。
2)、发送IIC设备地址,每个IIC器件都有一个设备地址,通过发送具体的设备地址来决定访问哪个IIC器件。这是一个8位的数据,其中高7位是设置地址,最后1位是读写位,为1的话表示这是一个读操作,为0的话表示这是一个写操作。
3)、IIC器件地址后面跟着一个读写位,为0表示写操作,为1表示读操作。
4)、从机发送的ACK应答信号。
5)、重新发送开始信号。
6)、发送要写入数据的寄存器地址。
7)、从机发送的ACK应答信号。
8)、发送要写入寄存器的数据。
9)、从机发送的ACK应答信号。
10)、停止信号。

6,IIC读时序
IIC总线单字节读时序如下图:
在这里插入图片描述
IIC单字节读时序比写时序要复杂一点,读时序分为4大步,第一步是发送设备地址,第二步是发送要读取的寄存器地址,第三步重新发送设备地址,最后一步就是IIC从器件输出要读取的寄存器值。具体步骤如下:
1)、主机发送起始信号。
2)、主机发送要读取的IIC从设备地址。
3)、读写控制位,因为是向IIC从设备发送数据,因此是写信号。
4)、从机发送的ACK应答信号。
5)、重新发送START信号。
6)、主机发送要读取的寄存器地址。
7)、从机发送的ACK应答信号。
8)、重新发送START信号。
9)、重新发送要读取的IIC从设备地址。
10)、读写控制位,这里是读信号,表示接下来是从IIC从设备里面读取数据。
11)、从机发送的ACK应答信号。
12)、从IIC器件里面读取到的数据。
13)、主机发出NO ACK信号,表示读取完成,不需要从机再发送ACK信号了。
14)、主机发出STOP信号,停止IIC通信。

7,IIC多字节读写时序
有时候需要读写多个字节,多字节读写时序和单字节的基本一致,只是在读写数据的时候可以连续发送多个自己的数据,其他的控制时序都和单字节是一样的。

I协议是指Inter-Integrated Circuit协议,用于在集成电路之间进行通信。而EEPROM是指Electrically Erasable Programmable Read-Only Memory,即电可擦除可编程只读存储器。通过IIC协议,可以实现与EEPROM的通信,并对其进行读写操作。EEPROM通常用于存放用户配置信息数据。 使用IIC协议与EEPROM通信的过程中,可以实现page写、current read、random read、sequential read等命令。其中,page写是将数据写入EEPROM的一页,current read是连续读取数据,random read是随机读取特定地址的数据,sequential read是按顺序读取数据。通过这些命令,可以实现对EEPROM的灵活读写操作。 使用IIC协议与EEPROM通信的实例中,通常会将掉电保存的数据存储到EEPROM中,以保证数据的持久性。这样,在重新上电后,可以从EEPROM中读取之前保存的数据。这对于一些需要长期保存数据的应用场景非常有用。 总之,使用IIC协议与EEPROM通信,可以实现对EEPROM的读写操作,对于存放用户配置信息数据等应用场景非常适用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [通信协议之IIC协议(eeprom)_通俗易懂篇!](https://blog.csdn.net/fpga_Spig/article/details/118143650)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [IIC协议EEPROM实验.7z](https://download.csdn.net/download/weixin_43491077/16732506)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [IIC通讯协议与EEPROM简介](https://blog.csdn.net/qq_41290252/article/details/120053636)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值