i2c协议以及其相关bug分析的总结.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
i2c协议以及其相关bug分析总结   第一章I2C通讯协议基本内容   I2C通讯协议简介   由PHILIPS开发的一个简单的双向两线总线,实现有效的IC控制,这个总线就称为InterIC或I2C总线。现在I2C总线实际上已经成为一个国际标准,I2C总线规范的版本也从1992年的VERSION经过1998年的VERSION发展到XX年的VERSION。在加强功能的同时也在满足现在对总线速度更高,电源电压更低的要求。   I2C总线具有以下特性:   1)只要求两条总线线路:一条串行数据线;一条串行时钟线。   2)每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机从机关系软件设定地址;主机可以作为主机发送器或主机接收器。   3)它是一个真正的多主机总线。如果两个或更多主机同时初始化数据传输,可以通过冲突检测和仲裁防止数据被破坏。   4)串行的8位双向数据传输位速率在标准模式下可达100kbit/s。快速模式下可达400kbit/s高速模式下可达/s。   I2C总线支持任何IC生产过程,两线――串行数据和串行时钟线在连接到总线的器件间传递信息。每个器件都有一个唯一的地址编码,而且都可以作为一个发送器或接收器。很明显地,存储器则既可以作接收器又可以作发送器。除了发送器和接收器外,器件在执行数据传输时也可以被看作是主机或从机。主机在发送数据前负责对总线的初始化并产生允许传输的时钟信号。此时,任何被寻址的器件都被认为是从机   表1-1   这里我们举个例子说明I2C总线的主机从机和接收器发送器的关系,但是这种   关系并不是持久的,只是由当时的数据的传输方向决定,如下所示:   1假设微控制器A要发送信息到微控制器B   .微控制器A寻址微控制器B   .微控制器A发送数据到微控制器B.微控制器A终止传输   2如果微控制器A想从微控制器B接收信息   .微控制器A寻址微控制器B   .微控制器A从微控制器B接收数据.微控制器A终止传输   I2C工作原理   I2C的起始和停止条件   在I2C总线中唯一出现的是被定义为起始S和停止P条件见图1-1的情况其中一种情况是在SCL线是高电平时,SDA线从高电平向低电平切换。这个情况表示起始条件;当SCL是高电平时,SDA线由低电平向高电平切换。表示停止条件   起始和停止条件一般由主机产生。总线在起始条件后被认为处于忙的状态。在停止条件的某段时间后,总线被认为再次处于空闲状态。   如果产生重复起始Sr条件而不产生停止条件,总线会一直处于忙的状态此时的起始条件S和重复起始Sr条件在功能上是一样的。见图10所以以下符号S既表示起始条件又表示重复起始条件   .   图1-1起始和停止条件   在起始信号开始以后主机就可发送数据,传输在I2C总线上数据必须在时钟高电平周期的保持稳定,数据线的高或低电平状态只有在SCL线的时钟信号是低电平时才能改变   图1-2   传输数据   字节格式发送到SDA线上的每个字节必须为8位,其中的第8位是数据方向位其余的7位为地址位。每次传输可以发送的字节数量不受限制。但是每个字节后必须跟一个响应位。   如果从机要完成一些实时功能后才能接收或发送下一个完整的数据字节,可以迫使时钟线SCL保持低电平迫使主机进入等待状态,当从机准备好接收下一个数据字节并释放时钟线SCL后,主机将继续进行数据传输。   响应数据传输必须带响应。相关的响应时钟脉冲由主机产生,在响应的时钟脉冲期间发送器释放SDA线。   在响应的时钟脉冲期间接收器必须将SDA线拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平。   一般地,被寻址的接收器在接收到的每个一个字节都必须产生一个响应。   当从机不能响应从机地址时从机必须使数据线保持高电平,主机然后产生一个停止条件终止传输或者产生重复起始条件开始新的传输。如果从机-接收器响应了从机地址但是在传输了一段时间后不能接收更多数据字节时,主机必须再一次终止传输。这种情况用从机在第一个字节后没有产生响应来表示从机使数据线保持高电平,主机产生一个停止或重复起始条件,如果传输中有主机-接收器它必须通过在从机不产生时钟的最后一个字节不产生一个响应向从机-发送器通知数据结束。从机-发送器必须释放数据线,允许主机产生一个停止或重复起始条件。   图1-3I2C总线响应   图1-4I2C总线数据传输   7位地址格式   在起始条件后发送了一个从机地址,这个地址共有7位,紧接着的第8位是数据方向位:0表示发送1表示请求数据。数据传输一般由主机产生的停止位终止但是如果主机仍希望在总线上通讯它可以产生重复起始条件和寻址另一个从机,而不是首先产生一个停止条件。在这种传输中可能有不同的读写格式结合   可能的数据传输格式有:   1

文档评论(0)

gz2018gz + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档