2019-05-09 IIC通信

1. 概述

IIC = Inter Integrated-Circuit 总线是PHLIPS公司推出的一种串行总线,是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL,如下图:

2. 硬件结构

I2C总线通过上拉电阻(大小由速度和容性负载决定一般在3.3K-10K之间)接正电源。当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。如下图:


每个连接到总线的设备都有唯一的地址,地址为7位,前四位鉴定器件类别,一般是固定的;后三位由器件本身管脚A0、A1、A2可以编程,故同类器件一般最多挂8个。

工作速率如下:

常见的有标准模式100Kbit/s和快速模式400Kbit/s两种,增强快速模式1Mbit/s和高速模式3.4Mbit/s,极速模式单向数据传输速率可达5Mbit/s。

可以实现半双工通信。基于I2C衍生出来的标准有SMBus、PMBus、IPMI、DDC和ATCA等。

 3. 总线寻址

总线明确规定,采用7位寻址字节,D7~D1位组成从机的地址。

D0位是数据传送方向位,为“0”时表示写数据,为“1”时表示读数据。

主机发送地址时,总线上的每个从机都将这7位地址码和自己的地址码比较,如果相同则认为自己被主机寻址,根据读写位确认为发送器或者接收器。


部分规格书中说明地址是8位则分读地址和写地址,即增加了读写位在里面:

极少数情况下有10位寻址的情况;

IIC总线保留地址表如下:

  0000 0000 为通用广播地址。


 4. 数据传输

数据位有效性规定

I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有时钟信号为低电平时,数据线上的电平才允许变化。如下图:

起始信号和终止信号

SCL线为高电平时,SDA线由高变低表示起始信号;

SCL线为高电平时,SDA线由低变高表示终止信号。

起始信号和终止信号均是主机发出;

起始信号产生后,总线处于被占用状态;

终止信号产生后,总线处于空闲状态;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 做单片机开发时UART,SPI和I2C都是我们最经常使用到的硬件接口,我收集了相关的具体材料对这三种接口进行了详细...
    梁睿坤阅读 68,244评论 7 31
  • 在使用单片机的过程中,I2C 通信可以说是最被广泛使用和采纳的协议之一,采用 I2C 协议可以占用更少的资源,链接...
    noparkinghere阅读 2,256评论 0 8
  • I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间...
    WB莫遥燚阅读 5,212评论 0 1
  • EEPROM是“Eleally Eras-able Programmable Read-only”(电可擦写可编...
    飞向深空阅读 6,717评论 0 1
  • 阅读完全文大约需要6分钟。 最近,看了一本书,是美国密歇根周立大学博士后研究员亚伦·桑托斯写的《超级思维》,里面所...
    仟佰Edward阅读 1,246评论 0 5