i2c总线的结构工作时序与模拟编程.docVIP

  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总线的结构、工作时序与模拟编程 I2C总线(Inter Integrated Circuit)是飞利浦公司于上个世纪 80 年代开发的一种“电路板 级”的总线结构。与其它串行接口相比,无论从硬件结构、组网方式、软件编程都有很大的 不同。在AT89C51 系统上使用汇编语言模拟I2C总线的各种信号及编程原理,为自主开发、 设计具有I2C总线接口的系统打下一个良好的基础,也为其它串口的模拟编程创造一个好的 思路和可行的方法。 I2C总线的主要特点 1. 二线制结构。即双向的串行数据线 SDA、串行同步时钟线 SCL。总线上的所有器件其同 名端都分别挂在 SDA、SCL 线上(见图 7.1); 2. I2C总线所有器件的SDA、SCL引脚的输出驱动都为漏极开路结构(见图 7.2),通过外接 上拉电阻将总线上所有节点的SDA、SCL信号电平实现“线与”的逻辑关系。这不仅可 以将多个节点器件按同名端引脚直接挂在SDA、SCL线上,还使I2C总线具备了“时钟同 步”、确保不同工作速度的器件同步工作; 3. 系统中的所有外围器件都具有一个 7 位的“从器件专用地址码”,其中高 4 位为器件类型 地址(由生产厂家制定),低 3 位为器件引脚定义地址(由使用者定义),主控器件通过 地址码建立多机通信的机制。因此I2C总线省去了外围器件的片选线,这样无论总线上挂 接多少器件,其系统仍然为简约的二线结构; 4. I2C总线上的所有器件都具有“自动应答”功能,保证了数据交换的正确性; 5. I2C总线系统具有“时钟同步”功能。利用SCL线的“线与”逻辑协调不同器件之间的速 度问题; 6. 在I2C总线系统中可以实现“多主机(主控器)”结构。依靠“总线仲裁”机制确保系统 中任何一个主控器都可以掌握总线的控制权。任何一个主控器之间没有优先级,没有中 心主机的特权。当多主机竞争总线时,依靠主控器对其SDA信号的“线与”逻辑,自动 实现“总线仲裁”功能; 7. I2C总线系统中的主控器必须是带CPU的逻辑模块;而被控器可以是无CPU的普通外围器 件,也可以是具有CPU的逻辑模块。主控器与被控器的区别在于SCL的发送权,即对总 线的控制权; 8. I2C总线不仅广泛应用于电路板级的“内部通信”场合,还可以通过I2C总线驱动器进行不 同系统间的通信; 9. I2C总线的工作速度分为 3 种版本:S(标准模式),速率为 100kb/s。主要用于简单的检 测与控制场合;F(快速模式),速率为 400kb/s;Hs(高速模式),速率为 3.4Mb/s。 I2C总线的系统和接口内部结构 2.1 I2C总线的系统结构 VCC SDA SCL 主控器 A  外围器件 1 外围器件 2  外围器件 3  主控器 B  外围器件 n 图 7.1 具有多主机的I2C总线的系统结构 2.2 I2C总线接口的内部结构 每一个I2C总线器件内部的SDA、SCL引脚电路结 构都是一样的,引脚的输出驱动与输入缓冲连在一  VCC 起。其中输出为漏极开路的场效应管、输入缓冲为一 只高输入阻抗的同相器。这种电路具有两个特点: ①由于 SDA、SCL 为漏极开路结构,借助于外部的上 拉电阻实现了信号的“线与”逻辑; ②引脚在输出信号的同时还将引脚上的电平进行检 测,检测是否与刚才输出一致。为 “时钟同步”和 SDA SCL 串行时钟 输出 串行时钟 输入  SCL  串行数据 输出 串行数据 输入  SDA “总线仲裁”提供硬件基础。 I2C总线的工作过程与原理 图 7.2 I2C总线接口内部结构 总线上的所有通信都是由主控器引发的。在一次通信中,主控器与被控器总是在扮演着 两种不同的角色。 3.1 主控制器向被控器发送数据 SDA SCL S D A S C L S D A S C L SDA SCL S D A S C L S D A S C L S D A S C L SDA SCL S D A S C L 操作过程如下: (1)主控器在检测到总线为“空闲状态”(即 SDA、SCL 线均为高电平)时,发送一个启 动信号“S”,开始一次通信的开始; (2)主控器接着发送一个命令字节。该字节由 7 位的外围器件地址和 1 位读写控制位 R/W 组成(此时 R/W=0); (3)相对应的被控器收到命令字节后向主控器回馈应答信号 ACK(ACK=0); (4)主控器收到被控器的应答信号后开始发送第一个字节的数据; (5)被控器收到数据后返回一个应答信号 ACK; (6)主控器收到应答信号后再发送下一个数据字节 … … (7)当主控器发送最后一个数据字节并收到被控器的 ACK 后,通过向被控

文档评论(0)

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

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

1亿VIP精品文档

相关文档