- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
IIC协议超详细的解释
?一、引言
IIC(Inter-IntegratedCircuit)协议,即集成电路总线协议,是一种广泛应用于电子设备中的串行通信协议。它具有简单、高效、易于实现等优点,被大量用于连接各种低速外围设备,如EEPROM、传感器、时钟芯片等。本文将对IIC协议进行超详细的解释,帮助读者深入理解这一重要的通信协议。
二、IIC协议概述
(一)基本概念
IIC协议是一种双线串行通信协议,它使用两条线来传输数据:串行数据线(SDA)和串行时钟线(SCL)。所有连接到IIC总线的设备都共享这两条线。通过这两条线,主机可以与从机进行通信,实现数据的传输和交互。
(二)通信特点
1.半双工通信:在同一时刻,数据只能在一个方向上传输。主机可以向从机发送数据,也可以接收从机发送的数据,但不能同时进行发送和接收操作。
2.多主多从架构:IIC总线上可以连接多个主机和多个从机。任何一个主机都可以发起通信,与总线上的从机进行数据交换。这使得系统的扩展性非常好,可以方便地添加新的设备。
3.低速通信:适用于低速设备之间的通信,数据传输速率一般在100kbps以下,最高可达400kbps。虽然速度相对较低,但对于许多低速外围设备来说已经足够。
三、IIC协议的电气特性
(一)信号电平
1.逻辑0:SDA和SCL线上的逻辑0电平对应低电压,一般为0V到0.4V。
2.逻辑1:逻辑1电平对应高电压,一般为2V到5V。
(二)输入输出特性
1.开漏输出:主机和从机的SDA和SCL引脚通常采用开漏输出。开漏输出可以使多个设备的引脚线线与连接在一起,形成共享总线。当多个设备同时输出逻辑1时,由于是开漏输出,总线上的电平不会被拉高,而是保持为高阻态。只有当所有设备都输出逻辑0时,总线上的电平才会被拉低。
2.上拉电阻:为了保证总线上的电平在空闲时为逻辑1,需要在SDA和SCL线上连接一个上拉电阻。上拉电阻的阻值一般在10kΩ左右,具体数值可以根据实际情况进行调整。
四、IIC协议的通信过程
(一)起始信号和停止信号
1.起始信号:当主机想要启动一次IIC通信时,需要在SCL线为高电平期间,将SDA线从高电平拉低,产生一个起始信号(START)。起始信号的时序图如下:
-SCL高电平期间,SDA由高变低
-例如:SCL为高,SDA先为高,然后在某个时刻变为低电平,此时起始信号产生。
2.停止信号:当主机完成通信后,需要在SCL线为高电平期间,将SDA线从低电平拉高,产生一个停止信号(STOP)。停止信号的时序图如下:
-SCL高电平期间,SDA由低变高
-例如:SCL为高,SDA先为低,然后在某个时刻变为高电平,此时停止信号产生。
(二)数据传输
1.字节传输:IIC协议以字节为单位进行数据传输。每个字节由8位组成,先传输最高位(MSB),后传输最低位(LSB)。在传输每个字节时,主机都会在SCL线的每个时钟周期内发送一位数据到SDA线上,同时从机也会在SCL线的每个时钟周期内从SDA线上读取一位数据。
2.应答机制:为了确保数据传输的可靠性,IIC协议采用了应答机制。当主机发送完一个字节的数据后,会释放SDA线,让从机拉低SDA线作为应答信号(ACK)。如果从机正确接收了数据,就会在主机发送完第9个时钟周期时,将SDA线拉低,表示应答。如果从机没有正确接收数据或者不想接收数据,就会保持SDA线为高电平,表示非应答(NACK)。应答信号的时序图如下:
-主机发送完一个字节后,释放SDA线
-从机在第9个时钟周期内拉低SDA线表示ACK,保持高电平表示NACK
-例如:主机发送8位数据后,SCL第9个上升沿到来时,若从机拉低SDA则为ACK,若SDA保持高则为NACK。
(三)地址传输
1.从机地址:在进行数据传输之前,主机需要先发送从机地址,以确定要与哪个从机进行通信。从机地址由7位组成,第8位为读写位(R/W)。当R/W=0时,表示主机向从机写数据;当R/W=1时,表示主机从从机读数据。
2.地址传输过程:主机先发送7位从机地址,然后发送读写位。从机在接收到地址后,会与自己的地址进行比较。如果地址匹配,从机就会拉低SDA线作为应答信号,表示已经接收到地址。主机接收到应答信号后,就可以开始进行数据传输。
(四)数据传输示例
1.主机向从机写数据
-主机发送起始信号(START)
-主机发送从机地址(7位地
文档评论(0)