理论教育 I2C协议简介-零点起步—PIC单片机常用模块与典型实例

I2C协议简介-零点起步—PIC单片机常用模块与典型实例

时间:2023-10-19 理论教育 版权反馈
【摘要】:图11-2是一个标准的I2C协议发送数据帧。I2C协议规定数据传输必须带响应信号。图11-7 I2C协议的接收数据帧格式图11-7中信号的功能与图11-2相同,但有两点需要注意:●DATA来源于从机。图11-8 I2C协议的复合数据帧格式6.重启信号图11-8中出现了一个新的信号Sr,此信号称为重启信号,也称为重复起始信号,由主机产生,通常用Sr或SR表示。以上介绍的是I2C协议中的常用数据帧格式和各种信号的功能,一个符合I2C协议的器件应该能产生或接收这些数据帧。

I2C协议简介-零点起步—PIC单片机常用模块与典型实例

I2C协议的数据手册很复杂,不利于初学者入门学习,本节从应用角度出发,通过直接介绍I2C协议的通信数据帧来引导读者快速入门并掌握。

I2C通过SDA和SCL两根信号线实现主从设备间的同步串行通信。图11-2是一个标准的I2C协议发送数据帧。从左到右依次说明各个信号的作用。

1.起始信号(START)

图11-2中的S是主机发送的起始信号(STAR Tcondition)。I2C协议规定每次数据通信必须由主机发送起始信号后才开始,从机收到起始信号后才准备接收其后的数据。起始信号的波形如图11-3所示。

978-7-111-33274-9-Chapter11-2.jpg

图11-2 I2C协议的发送数据帧格式

978-7-111-33274-9-Chapter11-3.jpg

图11-3 I2C协议起始信号的波形图

2.从机地址和读/写信号(SLAVE ADDRESS和978-7-111-33274-9-Chapter11-4.jpg

I2C协议规定起始信号后必须跟从机地址和读/写控制位。图11-2中“SLAVE ADDRESS”是从机地址,978-7-111-33274-9-Chapter11-5.jpg是读/写控制信号,对于7位地址模式而言,两者恰好组成一个字节的数据。写数据操作由主机发送给从机,其波形如图11-4所示。

978-7-111-33274-9-Chapter11-6.jpg

图11-4 I2C发送7位地址和读/写信号的波形图

其中,发送的一个字节中高7位为从机的地址,只有地址与此相同的从机才会继续接收后继数据。最低位用来控制读/写操作,用978-7-111-33274-9-Chapter11-7.jpg表示。

978-7-111-33274-9-Chapter11-8.jpg为0表示写操作,即接下来要向从机写数据。

978-7-111-33274-9-Chapter11-9.jpg为1表示读操作,即接下来要从从机读数据。

3.应答信号(A)

图11-2中在发送了一个地址字节数据后紧跟了1位应答信号,通常用A或者ACK表示。I2C协议规定数据传输必须带响应信号。响应时钟脉冲由主机产生。在响应的时钟脉冲期间,发送器释放SDA线(SDA线会被上拉电阻置为高电平)。接收器必须将SDA线拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平。一般情况下,从机将SDA信号拉低用于通知主机数据正常。注意:I2C协议大多数情况下要求每收发一个字节都要有应答信号,若主机没有检测到应答信号,主机应该发送一个启动信号或停止信号,否则会造成数据通信错误。

4.数据字节(DATA)

主机在发送地址后得到正确的应答信号,才可以发送数据字节。图11-2中的DATA代表数据字节。I2C协议规定每次发送的数据必须是8位数据,但在一帧中可以连续发送多次数据字节。每个数据字节后都要求有正确的应答信号(最后一个发送的数据字节除外)。发送一个数据字节的波形如图11-5所示。(www.daowen.com)

5.停止信号(P)

I2C协议规定一个数据帧结束条件是当SCL是高电平时SDA线由低电平向高电平切换(见图11-6),称之为停止信号(STO Pcondition),经常用P或者STOP表示。图11-2中的P表示停止信号。

978-7-111-33274-9-Chapter11-10.jpg

图11-5 I2C协议发送数据字节的波形图

978-7-111-33274-9-Chapter11-11.jpg

图11-6 I2C协议停止信号的波形图

在I2C中,除了标准的数据发送帧外,图11-7所示的数据接收帧格式和图11-8所示的复合帧格式也经常被使用。

978-7-111-33274-9-Chapter11-12.jpg

图11-7 I2C协议的接收数据帧格式

图11-7中信号的功能与图11-2相同,但有两点需要注意:

●DATA来源于从机。

●在停止位P之前的应答信号978-7-111-33274-9-Chapter11-13.jpg来源于主机并且用高电平表示正确应答,用于通知从机读取结束。

978-7-111-33274-9-Chapter11-14.jpg

图11-8 I2C协议的复合数据帧格式

6.重启信号(Sr)

图11-8中出现了一个新的信号Sr,此信号称为重启信号(repeated START condition),也称为重复起始信号,由主机产生,通常用Sr或SR表示。其产生波形与起始信号S相同,功能也与起始信号S相同,即在重启信号Sr后发送的内容是地址数据和读/写信号。重启信号Sr通常用于在一个数据帧中数据传输方向需要更改的时刻。

以上介绍的是I2C协议中的常用数据帧格式和各种信号的功能,一个符合I2C协议的器件应该能产生或接收这些数据帧。下面以PIC单片机的I2C接口为例介绍I2C的使用方法。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈