分类:
2014-12-20 21:51:11
原文地址:IIC总线协议 作者:ranxiaokang
I
IIC总线协议最重要的是起始信号,终止信号和应答信号。起始信号和终止信号由主机产生,应答信号是每次传输完成一个字节数据后必须有的,用于确认传输是否完成,主机向设备发一个字节数据后需要设备作应答,确认设备是否收到数据,主机收一个字节数据后需要向设备发一个应答信号,告诉设备数据是否收到。
(1) 起始信号:在时钟线保持高电平期间,数据线出现由高电平向低电平变化时启动I
(2) 终止信号:在时钟线保持高电平期间,数据线出现由低电平向高电平变化时停止I
(3) 应答信号:应答信号在第9个时钟位上出现,接收器输出低电平为应答信号(A),输出高电平则为非应答信号(/A)。
IIC数据传输:SCL为高电平时将SDA上数据发走,所以SDA上数据必须在SCL为高电平期间保持稳定,IIC总线首先传输的是数据最高位,最后是最低位。
设备地址:在起始信号后,需要向设备发送一个字节的设备地址,其中高七位为设备的地址,表示同哪个设备进行通信,最低位为数据传输方向,1表示读(接收),0表示写(发送)。
1.发送(写)一个字节数据流程
a.起始信号
b.发送一个设备地址,这里为0,表示发送(写)),设备应答
c.发送设备的写的基地址,设备应答
d.发送数据到设备基地址,设备应答
e.停止信号
2.接收(读)一个字节数据流程
a.起始信号
b.发送一个设备地址,这里为0,表示发送(写)),设备应答
c.发送从设备要读数据的基地址,设备应答
d.起始信号
e.发送一个设备地址,这里为1,表示接收(读)),设备应答
f.从设备基地址处接收到一个字节的数据,主机应答
g.停止信号
从设备地址读或写一个字节数据后,设备读写地址会自动加1
3.连续发送(写)多个字节数据
a.起始信号
b.发送一个设备地址,这里为0,表示发送(写)),设备应答
c.发送设备的写的基地址,设备应答
d.发送数据到设备基地址,设备应答
e.发送数据到设备(基地址+1),设备应答
f.发送数据到设备(基地址+2),设备应答
g.发送数据到设备(基地址+n),设备应答
h.停止信号
4.连续接收(读)多个字节数据
a.起始信号
b.发送一个设备地址,这里为0,表示发送(写)),设备应答
c.发送从设备要读数据的基地址,设备应答
d.起始信号
e.发送一个设备地址,这里为1,表示接收(读)),设备应答
f.从设备基地址处接收到一个字节的数据,主机应答
g.从设备(基地址处+1)接收到一个字节的数据,主机应答
h.从设备(基地址处+2)接收到一个字节的数据,主机应答
i.从设备(基地址处+n)接收到一个字节的数据,主机应答
j.停止信号