概要
I2C读写操作都起始于 START信号,START信号是当时钟信号是高电平时,数据信号由高到低的转换。
终止于STOP信号,STOP信号是当时钟信号是高电平时,数据信号由低到高的转换。
START信号
STOP信号
ACK信号指示一次成功的数据传输。发送方传输完8个bit数据后释放数据信号线,在第九个时钟周期,接收方拉低数据信号线 应答成功接收8bit数据。
ACK信号
发送方发送START信号后,接着发送device address byte,这个字节的高7bit代表设备地址,最低bit LSB代表读写标志R/W。R/W等于0表示写,等于1表示读。随后接收方在数据信号线上输出低ACK信号代表收到正确的设备地址,输出高ACK信号代表收到错误的设备地址。
写操作时序
写操作包括START信号、device address byte、寄存器地址字节、一个或多个数据字节和一个STOP信号。
读操作时序
读操作包括START信号、带有写标志的device address byte、寄存器地址字节、第二个START信号、带有读标志的device address byte,随后master是否数据信号线,slave发送ACK信号后,继续发送一个或多个字节,master发送ack信号作为应答。当master接收完数据后发送STOP信号结束读操作。