2018-04-10

2019-02-20  本文已影响0人  酝锦

                                                       一、I2C协议要点

1、接口方式简单,两条线(SCL和SDA)可以挂多个器件,而且任何一个器件都可以作为主机,同一时刻只能有一个主机。

2、属于同步通信,SCL时钟线负责收发双方的时钟节拍,SDA数据线负责传输数据,收发双方都以SCL时钟节拍为基准进行数据交换。

3、多应用与板内通信。

4、开漏引脚并联结构,必须外部添加上拉电阻。

5、通信数据流:

起始信号(Start):SCL为高电平期间SDA由高电平向低电平转换产生的下降沿

数据传输:高位在前,低位在后;

                  当SCL为低电平的时候,SDA允许变化,SCL为高电平时,SDA绝对不允许变化;

                  8位数据位后跟一位应答位(ACK);

停止信号(Stop):SCL为高电平期间SDA由低电平向高电平转换产生的上升沿

6、寻址:

主机首先发送一个从机地址,这个地址共7位,第8位是数据方向位,“0”表示发送数据(写),“1”表示请求数据(读);

    对应地址从机如果存在,回应一个ACK(拉低SDA即输出0),如果不存在,无应答

                                              二、EEPROM读写数据流程

写数据:

    一、发送首字节,即器件地址,选择“写”操作;

    二、发送数据存储首地址;

    三、发送要存储的收据,每个字节发送完成,EEPROM都会回应一个应答位,如果没有应答位,说明写入不成功;每写入成功一个字节EEPROM存储空间的地址自动加一。

读数据:

    一、发送首字节,即器件地址,选择“写”操作;

    二、发送要读取数据的地址;

    三、重新发送器件地址,选择“读”操作;

    前三步操作主机发送数据,从机(EEPROM)会在每个字节结束发送应答位

    四、从机(EEPROM)向主机发送所请求的数据,主机接受完一个字节,应答ACK(0)则继续读取下一字节,地址自动加一,应答NAK(1)结束读取

上一篇 下一篇

猜你喜欢

热点阅读