51单片机-IIC

发布时间:2011-3-22 11:35    发布者:techshare
关键词: 51单片机 , IIC
IIC(Inter-Intergrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线。用于连接微控制器及其外围设备。IIC只需两根线SDA(数据线),SCL(时钟)。IIC支持多主控,当然,在任何时间点上只能有一个主控,而SPI是一主多从。IIC各种被控制电路均并联在这条总线上,每个模块和电路都有唯一的地址。SPI是通过CS进行片选,有多少个SPI就要占用多少口。IIC总线在传输数据过程中有3个信号,它们分别是:开始信号,结束信号和应答信号。  

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();
}


李万鹏
本文地址:https://www.eechina.com/thread-59313-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
williamkmcn 发表于 2011-7-7 17:07:30
好东西值得收藏
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表