51单片机-IIC
IIC总线的硬件结构图:

IIC支持多主和主从工作方式,通常为主从工作方式。在主从工作方式中,系统中只有一个主器件(单片机),其它器件都是具有IIC总线的外围从器件。在主从工作方式中,主器件启动数据的发送(发出启动信号),产生时钟信号,发出停止信号。 开始信号:SCL为高电平,SDA由高电平向低电平跳变,开始传送数据 结束信号:SCL为高电平,SDA由低电平向高电平跳变,结束传送数据 应答信号:接受数据的IC在接受到8bit数据后,向发送数据的IC发送特定的低电平脉冲,表示已经接收到数据。CPU向受控单元发送一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况做出是否继续传送数据的判断。若未收到应答信号,由判断为受控单元出现故障。
这些信号中开始信号是必须的,结束信号和应答信号都可以不要。
IIC总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟信号为低电平期间,数据线上的高电平或低电平状态才允许变化。

IIC总线协议规定,每传送一个字节数据后,都要有一个应答信号,以确定数据传送是否被对方收到。应答信号由接受设备产生,在SCL信号为高电平期间,接受设备将SDA拉为低电平,表示数据传输正确,产生应答。

IIC总线的时序图:

许多单片机并不具有IIC总线接口,如51单片机。
单片机模拟IIC总线通信:
启动代码: void start(){
SDA = 1;
delay();
SCL = 1;
delay();
SDA = 0;
delay();
}
停止代码:
void stop(){
SDA = 0;
delay();
SCL = 1;
delay();
SDA = 1;
delay();
}
评论