1 / 148

第 6 章 总线接口技术

第 6 章 总线接口技术. 6.4 I 2 C 总线 6.5 现场总线. 6.4 I 2 C 总线. 6.4.1 I 2 C 总线概述 6.4.2 I 2 C 总线的数据传送 6.4.3 寻址 6.4.4 仲裁和时钟同步化 6.4.5 I 2 C 总线的电气特性 6.4.6 I 2 C 时序 规范 6.4.7 直接采用 I 2 C 接口芯片的应用 6.4.8 I 2 C 总线模拟实用程序. 6.4 I C 总线. 2. I 2 C 总线 PHILIPS 公司推出的串行总线。 高性能串行总线

keiko-gill
Download Presentation

第 6 章 总线接口技术

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第6章总线接口技术 • 6.4 I2C总线 • 6.5现场总线

  2. 6.4 I2C总线 • 6.4.1 I2C总线概述 • 6.4.2I2C总线的数据传送 • 6.4.3 寻址 • 6.4.4 仲裁和时钟同步化 • 6.4.5I2C总线的电气特性 • 6.4.6 I2C时序规范 • 6.4.7 直接采用I2C接口芯片的应用 • 6.4.8I2C总线模拟实用程序

  3. 6.4 I C总线 2 • I2 C总线 PHILIPS公司推出的串行总线。 • 高性能串行总线 具备总线裁决、高低速设备同步等功能。 • 可用于多主机系统。 要求系统中所用单片机及外围芯片内部都要有 I2 C 总线接口。 • 应用较多。 微机控制技术

  4. 具有 I2C 总线接口的单片机 具有 I2C 总线接口的产品: PHILIPS公司 80C51系列单片机 (8XC552、8XC652等)。 Motorola公司 M68HC05系列单片机。 三星公司、三菱公司也都有含 I2 C 总线接口的 单片机系列。 2 2 微机控制技术

  5. 6.4.1 I C 总线概述 2 • I 2 C串行总线只有两根信号线 双向的数据线 SDA,时钟线 SCL。 • 所有连接到 I2C 总线上的设备的串行数据都接到总线的 SDA 线上,而各设备的时钟均接到总线的SCL上。 如 图6.31所示。 2 微机控制技术

  6. 图6.27 I C总线结构 (P167) 2 如 图6.31 微机控制技术

  7. 6.4.1 I C总线概述 2 • I 2 C总线是一个多主机总线, 总线运行(数据的传送)由主机控制:。 发出启动信号、时钟信号,发停止信号。 • 通常主机由微处理器组成。 • 被主机寻访的设备叫从机 可以是微处理器, 也可以是其他的器件,如存储器、LED、LCD驱动器、 A/D、D/A转换器等。 • 每个接到 I2C 总线上的设备都有一个惟一的地址, 供主机寻访。 2 微机控制技术

  8. 在多主机系统中,可能同时有几个主机企图启动总线传送数据。为了避免这种情况引起的冲突,保证数据的可靠传送,任一时刻总线只能由某一台主机控制。为此,该总线需要通过总线裁决过程,决定哪一台主机控制总线。在多主机系统中,可能同时有几个主机企图启动总线传送数据。为了避免这种情况引起的冲突,保证数据的可靠传送,任一时刻总线只能由某一台主机控制。为此,该总线需要通过总线裁决过程,决定哪一台主机控制总线。 微机控制技术

  9. 6.4.1 I C总线概述 2 • I2C 总线的 SDA 和 SCL都是双向I/O总线,通过上拉电阻接 正电源,如图6.32所示。 • 每一个I2 C总线接口电路都有如图中虚线所示的接口电路。 • 总线空闲时,两根总线均为高电平。 • 连到总线上的器件的输出极必须是漏极开路(或集电极开路)。 • 任一设备输出的低电平,都将使总线的信号变低,也就是说各设备的 SDA是 “与” 的关系,SCL也是“与”的关系。 • 标准模式下,数据传输速率为 100Kbps, 在高速模式下可达 400Kbps。 微机控制技术

  10. 图6.28 I C总线各设备的连接 2 微机控制技术

  11. 6.4.2 I C总线的数据传送 2 I2C 总线上主-从机之间一次传送的数据称为一帧,由启动信号、若干个数据字节和应答位以及停止信号组成。数据传送的基本单元是一位数据。 1、一位数据的传送 I2C总线规定: SCL 上一个时钟周期只能传送一位数, 且要求 SDA上的信号电平在 SCL 的高电平期间必须稳定(除启动和停止信号外), 数据线上的信号变化只允许在 SCL 的低电平期间产生, 如 图6.33 所示。 微机控制技术

  12. 图6.33 I C总线上一位数据的传送 2 微机控制技术

  13. 6.4.2 I C总线的数据传送 2 2. 启动和停止信号 I2C总线协议规定:在 I2C总线传送过程中, • 当 SCL 线为高电平时, 向 SDA线上送一个由高到低的电平,表示启动信号; • 当 SCL 线为低电平时, 向 SDA 线上送一个由低到高的电平,为停止信号。 如图 6.34 所示。 微机控制技术

  14. 图6.34 启动和停止信号 微机控制技术

  15. 6.4.2 I C总线的数据传送 2 ① 如果接到总线上的设备具备I2C 的接口硬件, 就可以很容易地检测到启动和停止信号。 ② 若微处理器没有 I2 C 接口电路, 就必须在每个时钟周期内至少采样两次SDA 线, 才能检测到启动和停止信号。 说明 2 微机控制技术

  16. 6.4.2 I C总线的数据传送 2 3.数字字节的传送 (1)送到 SDA 线上的每个字节必须为 8 位长度, 每个字节后边必须跟一个应答位。 每次传送的字节数不受限制。 (2)数据传送时,先传送最高位,如图6.35所示。 • 如接收设备不能接收下一个字节, 可以把 SCL线拉成低电平,迫使主机处于等待状态。 • 当从机准备好接收下一个字节时再释放时钟线 SCL, 使数据传送继续进行。 微机控制技术

  17. 图6.35 I C总线上的数据传送 p169 2 微机控制技术

  18. 6.4.2 I C总线的数据传送 2 4. 应答 • I2C总线协议规定, • 每个字节传送完后,要有一个应答位。 • 应答位的时钟脉冲也主机产生。 • 发送设备在应答时钟脉冲高电平期间释放 SDA 线(高电平),转由接收器控制。 • 接收设备在这个时钟内必须将 SDA 线拉为低电平,以便产生有效的应答信号,如图6.36所示。 微机控制技术

  19. 图6.36 I C总线上的应答位 2 高电平(结束) 交接收机控制 低电平(ASK) 微机控制技术

  20. 6.4.2 I C总线的数据传送 2 ① 若一个从机暂不能接收(或不能产生应答)时, 从机必须使 SDA 保持高电平。此时主机产生一个结束 信号,使传送异常结束。 ② 如果从机对地址作了应答,后来在传送中不能接收 更多的数据字节,主机也必须异常结束传送。 ③ 若主机接收,则对最后一个字节不予应答,以向从 机指出数据传送的结束,从发送器释放 SDA 线,代 替主机产生一个结束信号。 微机控制技术

  21. 6.4.2 I C总线的数据传送 2 6. 一帧完整数据的格式 ①一帧完整数据包括 开始信号、从设备地址(7位)、方向位(R/ )、 应答信号、数据(n 字节+应答)、结束信号。 ②若主设备希望继续通信, 将再次产生另一个开始信号和寻址另一个从设备,(不需要先产生一个停止信号)。在这种传送方式中,就可能有读写方式的组合。完成上述传送可能的数据格式如图6.37所示。 微机控制技术

  22. 图6.37 完整的数据传送过程 P170 从设备产生 主设备产生 主设备产生 微机控制技术

  23. 图6.38 可能的数据传送格式 从设备产生 主设备产生 微机控制技术

  24. 6.4.2 I2 C总线的数据传送 • 主接收方式中,在第一应答位时 主发送器变成主接收器, 从接收器变成从发送器。 (该应答位仍旧由从设备产生, 结束信号仍旧由主设备产生)。 • 在传送中方向改变时, 要重复发送信号和地址,R/ 位反向。 说明 微机控制技术

  25. 6.4.3 寻址 1. 第一个字节各位的定义 (图6.39 ) 启动信号后,主机发送一个字节数据: 高 7 位组成从机的地址,最低位是 R/ 确定信息的方向 串行总线中通过数据线传输地址码的方式 寻址数据接收方。 微机控制技术

  26. 图6.39 启动信号后的第一个字节 微机控制技术

  27. 6.4.3 寻址 • 启动信号出现后, 系统中各设备将本机地址和主设备送到总线上的地址比较, 若相同,该设备确认被主设备寻址,接收或发送由 R/ 确定。 • 设备的从地址由固定位和可编程位两部分组成。 如果希望在系统中使用 1个以上相同的设备,从地址的可编程部分确定了在I2C总线上可接的这种设备的最多数目。1个设备从地址的可编程位数取决于该设备可用来编程的引脚数。例如,如果1个设备从地址有4个固定位和3个可编程位,在总线上以接 8个相同的这种设备。I2C总线约定可以调整I2C地址的分配。 2 微机控制技术

  28. 6.4.3 寻址 保留地址 • 扩展地址1111111 寻址过程在下一个地址继续进行(两个地址字节)。 不使用扩展地址的器件收到这个地址后不做响应。 • 7位其他可能的组合中高4位为1111作为扩展目的用, 但还没有对它分配。 • 0000×××定义为一种特殊组合,如表 6.3 所示 • 的分配。 微机控制技术

  29. 表6.3 0000XXX特殊组合表 微机控制技术

  30. 6.4.3 寻址 2.通用呼叫地址 (1)启动信号后的 8 位全为 0 的第一字节称为通用 呼叫地址,用于寻访接到 I2C 总线上所有设备。 (2)不需要从通用呼叫地址命令获取数据的设备可 以不响应通用呼叫地址。否则,接收到这个地 址后应做应答,并把自己置为从机接收器方式 以接收随后的各字节数据; (3)当遇到不能处理的数据字节时,不做应答,否 则收到每个字节后都应做应答。 微机控制技术

  31. 6.4.3 寻址 (3)通用呼叫地址的用意在第二个字节中说明。 如 图6.40 所示。 ①当第二字节为 06H 时: 要求从机设备复位; 由硬件写从机地址的可编程部分。 ( 要求能响应命令的从机设备复位时 不拉低 SDA 和 SCL 线的电平,以免堵塞总线。 微机控制技术

  32. 图6.40 通用呼叫地址的格式 P172 微机控制技术

  33. 6.4.3 寻址 ② 第二字节为 04 H 时: 设备不复位; 从机设备由硬件写从机地址的可编程部分, ( 重写过程见设备的手册说明)。 ③ 第二字节的最低位 A 为1: ♂这两个字节命令称为硬件通用呼叫命令, (由“硬件主机设备”发出) ♂ 在这第二字节的高7位中说明命令发出者的地址, 如图6.41所示。 总线上的智能设备如微控制器能识别这个地址,并与之传送数据。 不能发送所要寻访从机设备地址的发送器,如键盘扫描器等 也是作从机使用时的地址, 微机控制技术

  34. 图6.41 硬件主机发送的数据 微机控制技术

  35. 6.4.3 寻址 ④ 系统复位时硬件主机设备工作在从机接收器方式时: 由系统中的主机先告诉主机设备数据应送往的从机 设备地址,当硬件主机设备要发送数据时就可以直 接向指定从机设备发送数据了。 微机控制技术

  36. 6.4.3 寻址 3.起始字节 单片机连到 I2C 总线上可有两种方式: ① 片内提供 I2C 总线接口 由总线接口电路向 CPU 发中断申请; ② 片内不具备 I2C 总线接口 ♂ 可通过软件不断监视总线状态,以及时响应 总线请求。 2 高速的硬件设备和靠软件查询的微机之间在速度上 有一定的差别。 需要一个比正常启动过程时间长得多的启动过程。 ♂ 微机控制技术

  37. 图6.42 开始字节的启动过程 0 0 0 0 0 0 0 1 微机控制技术

  38. 6.4.3 寻址 图6.42 中,起始字节由下面几部分组成: • 启动信号 S • 起始字节 00000001 • 应答时钟脉冲 • 重复启动信号 Sr 微机控制技术

  39. 6.4.3 寻址 ♂请求访问总线的主机发出启动信号 S 后,发送起 始字节(00000001),总线上另一台微机可以以比 较低的速率采样 SDA 线,直到检测到起始字节中 的7个“0”中的1个“1”为止。 ♂ 在检测到SDA线上的低电平后,微机切换到高速 采样,以便寻找作为同步信号用的第二个启动信号 Sr。 ♂ 硬件接收器将在接收到第二个启动信号Sr时复位, 所以此时第一个启动信号不起作用。 微机控制技术

  40. 6.4.3 寻址 启动信号后的应答时钟脉冲仅仅是为了和总线所用的格式一致,并不要求设备在这个脉冲期间做应答。 微机控制技术

  41. 6.4.3 寻址 4.CBUS 兼容性 常规的CBUS(控制总线)接收器可以接到I2C总线。在这种情况下,必须连接第3根线(称为DLEN),并省略认可位。通常在I C上传送多个8位字节,但CBUS器件具有不同的格式。 在混合的总线结构中,不允许I C器件对CBUS信息响应。正是由于这个原因,保留了特殊的CBUS地址(0000001X)。没有I C器件能对此地址做出响应。在CBUS地址送出以后,激活DLEN,并根据CBUS格式进行数据传送(如图6.43所示)。在结束信号以后,所有的器件又准备好接收数据。 2 2 2 微机控制技术

  42. 图6.43 CBUS接收器/发送器数据传送格式 微机控制技术

  43. 6.4.3 寻址 6. 10位地址格式 10位地址是近年来在原有7位地址格式基础上发展出来的,以便I C总线上能连接更多设备。10位地址格式并未改变I C总线原有协议,所以,采用10位地址的设备和7位地址的设备可以接入同一I C总线。 主机寻访10位地址设备,在发出启动信号后要发送两个字节的地址数据。其格式如下。 2 2 2 微机控制技术

  44. 6.4.3 寻址 第一字节 第二字节 微机控制技术

  45. 6.4.3 寻址 第一字节的高5位为11110,位6、位7为10位地址的最高两位地址,位8是读/写位(意义和用法与8位地址相同)。10位地址的从机设备接收到第一个字节,取位6和位7与自己地址的高二位进行比较,相同者做出应答A1,并记住R/ 位(高二位地址相符的从机设备可能不只一台);然后,接收第二字节,也就是10位地址的低8位,再与自己地址的低8位地址进行比较,只有一台从机设备会与之相符,做出应答A2,并根据R/位设置为对应的发送/接收方式。接下来就是主机-从机之间传送数据,直到主机发出停止信号。 微机控制技术

  46. 6.4.4 仲裁和时钟同步化 1. 时钟的同步 主机总是向SCL发送自己的时钟脉冲,以控制I C总线上的数据传送。由于设备是经过开漏或开集电极电路接到SCL线上的,所以多台主机同时发送时钟时,只要有一个设备向SCL输出低电平,SCL线就是低电平;只有当所有向SCL输出时钟脉冲的设备都输出高电平时,SCL线才是高电平,这是“与”的关系。时钟同步就是利用电路上的这个特点。总线的SCL线上电平由高到低的变化,使I C接口硬件从这个下降沿起开始计算时钟的低电平时间。 2 2 微机控制技术

  47. 6.4.4 仲裁和时钟同步化 当低电平持续时间达到片内设定的时钟低电平时间,就向SCL线输出高电平。但SCL线要等所有输出时钟的设备都输出为高时,才变高。SCL线的低电平时间为时钟周期最长设备的低电平时间。各设备从SCL线由低变高的上升沿开始计算高电平时间,当达到片内设定的高电平时间时,向SCL线送出低电平。尽管别的主机仍向SCL线输出高电平,但SCL线已变低。总线上SCL的电平变化如图6.44所示。 微机控制技术

  48. 6.4.4 仲裁和时钟同步化 由此可见,SCL线的低电平时间等于时钟周期最长的主机时钟的低电平时间;SCL线的高电平时间等于时钟周期最短的主机的时钟的高电平时间。几台主机同时工作时,时钟就是按这种方式同步的。 微机控制技术

  49. 6.4.4 仲裁和时钟同步化 2. 仲裁(裁决) 为了保证I C上数据的可靠传送,在任一时刻总线应由一台主机控制。这就要求总线上连接的多个具有主机功能的设备,在别的主机使用总线时,不应再向总线发送启动信号以试图控制总线。但几台主机有可能同时向总线发送启动信号,要求控制总线,这时就需要一个判断处理过程,决定哪些主机放弃总线控制权,而仅由一台主机控制总线。这个过程称为仲裁,仲裁过程和时钟的同步是同时进行的。 2 微机控制技术

More Related