I2C总线
1、I2C )飞利浦公司推出的串行总线,由数据线和时钟线组成,空闲的2条线路均为高电平,可以挂多个接收机,通过总线仲裁获得对总线的控制权。
2、I2C总线数据传输
)在数据传输时,在时钟信号为高电平期间,数据线上的数据必须稳定,只有时钟线
在信号为低电平时,数据上的高电平或低电平的状态允许变化。
)2)开始信号和结束信号:
1 )开始信号)下降沿)在SCL线为高电平期间,SDA线以从高电平向低电平变化来表示开始信号;
2 )终端信号)上升),并且当SCL线处于高电平时,SDA线由从低到高的变化指示终端信号。
)3)开始信号开始占用总线,在结束信号之后释放总线; 接收机接收到1字节后,降低SCL
表示暂停接收,提升SCL继续接收。
3、数据传输格式
(1)字节传输和应答)以每字节8bit长(MSB ),在1bit应答后) ACK:SDA上下浮动,
ack(sda高) ),应答位由接收方给出。
)2)数据帧格式
1 )启动信号后,必须传输从站的地址(7比特)。 第8bit表示传输方向,0表示t,1表示r。
2 )三种发送格式:
a .主机向从机发送数据,主机发送启动信号后,产生地址和方向t,从机作出ACK响应,然后通过这种方式继续直到主机发送停止信号(p )。
b .主机接收从数据,主机发送启动信号后,发送地址和方向r,从机回复ACK,主机开启接收。 每当接收到一个字节时,主机响应ACK,最后一个字节的主机不发送ACK,最后发送p。
c .中途改变传输方向。 主机发送开始信号,发送地址和方向t。 从ACK相应地,主机继续发送数据。 从ACK相应地,中途主机改变方向。 没有必要发送p。 主机重新发送开始信号,发送地址和方向r。 从ACK作出响应,主机开启接收。 每次接收结束时,主ACK都应答,最后一字节主不发送ACK。 最后发送
4、总线地址:地址字节bit7~bit1为从地址,bit0为方向位(T:0,R:1 ); 从站地址由固定和可编程两部分构成,接入总线接收机的数量由可编程部分决定。
5、软件仿真I2C时钟线时序要求
(1)起始信号:高4.7us,下降沿4us;
)2)结束信号)上升沿4us,高电平4.7us;
)3)数据读出时,时钟的高电平保持在4us。