0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

I2C总线的通信原理和协议

GReq_mcu168 来源:strongerHuang 作者:strongerHuang 2022-02-14 15:15 次阅读

I2C是目前使用较多的一种总线,一般用于连接各种从设备,比如:EEPROM存储器、温湿度传感器、角速度计等。

掌握I2C算是最基本的技能,初入职场的人有必要系统学习一下。

一、I2C简史

1980年,飞利浦公司为了让各种低速设备(飞利浦芯片)连接起来,就开始着手研发通信的总线。

1982年,原始版本,使用了100KHz通信速率,提供7位地址,将总线上的器件数量限制为112(有几个保留地址)。

1992年,发布第一个规范,增加了400kHz的快速模式以及扩展的10位地址空间。

1998年,随着技术的进步,通信速率要求越来越高,达到了高速3.4 MHz,再到后面升级至5MHz,同时使用差分信号以改进抗噪声能力等。

I2C版本历史:

I2C总线的通信原理和协议

额外说一下SMBus:

1995年,英特尔在I2C基础上推出了一种变体称为“系统管理总线”(SMBus)。SMBus是一种更严格控制的格式,旨在最大限度地提高PC主板上支持IC之间通信的可预测性。

SMBus之间最显着的区别在于它将速度限制在10kHz至100kHz之间,而I2C则可以支持0kHz至5MHz的器件。

二、I2C基础内容

I²C:Inter-Integrated Circuit,字面意思是集成电路之间,是I²C Bus简称。

I2C只需要两根电线,这两根线最多可支持1008个从设备,实现同步串行通信。

与SPI不同的是,I2C可以支持多主机,多从机的总线。

I2C总线的通信原理和协议

1.I2C两线信号

每个I2C总线由两个信号组成:SCL时钟信号,SDA数据信号。时钟信号总是由当前总线主机产生。

UART、SPI不同,I 2 C总线驱动器是开漏(不了解开漏的请自行百度),意思是它们可以将相应的信号线拉低,但不能将其驱动为高电平。

每条信号线上都有一个上拉电阻,当没有器件将其置为低电平时,将信号恢复为高电平。

I2C总线的通信原理和协议

2.信号电平

通常,I2C总线信号电平5V、3.3V居多,如果总线上器件兼容这两种电平,可以直接使用。

如果信号电压相差很大(比如5V和2.5V),或者电平不兼容,就需要进行电平转换才行。

三、I2C协议

I2C对初学者来说,难点就在于理解其中协议,下面从几个简单角度说一下。

1.收发基本原理

I2C的两个总线:SCL时钟信号,SDA数据信号。SCL由主机产生,SDA由主机或者从机产生。

I2C是同步串行通信,同时它属于半双工,也就是说同一时间SDA只能由一个设备发送信号。

这样,你就会发现,SDA上的信号(数据),有时候是主机的,有时候是从机的。

2.基本协议:7/10位地址

I2C支持7位地址和10位地址,消息主要分为两种:地址和数据。

7位地址:

I2C总线的通信原理和协议

10位地址:

I2C总线的通信原理和协议

除了地址和数据,还有开始条件、停止条件、读写,以及应答信息(上图小字描述)。

3.开始和停止

SDA数据线由高 -> 低 为总线开始条件;

SDA数据线由低 -> 高 为总线结束条件;

I2C总线的通信原理和协议

4.应答(ACK)和非应答(ACK)

应答和非应答发生在每个字节之后,是由接收方向发送方发出确认信号,表明“数据”已成功接收,并且可以继续发送下一字节数据。

I2C总线的通信原理和协议

应答有很多种情况,初学者可以参考协议手册,里面有详细讲述。

5.更多协议内容

I2C协议手册地址

原文标题:I2C很简单,但很多人都不了解它的通信原理和协议

文章出处:【微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信
    +关注

    关注

    18

    文章

    5697

    浏览量

    134308
  • 总线
    +关注

    关注

    10

    文章

    2697

    浏览量

    87158
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1344

    浏览量

    120729

原文标题:I2C很简单,但很多人都不了解它的通信原理和协议

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    最简单的总线通讯!I2C通讯总线的原理原来这么好懂

    通讯I2C
    安泰仪器维修
    发布于 :2024年01月02日 11:16:31

    I2C总线的使用与编程

    I2C总线是飞利浦公司在20世纪80年代初由S定义的一种二线制总线系统。I2C总线是一种双向的,专为简单但高效的控制应用而设计。 它广泛应用
    发表于 09-04 07:23

    全面掌握面试必考题I2C协议 - 第13节

    I2C协议
    充八万
    发布于 :2023年09月01日 19:08:34

    全面掌握面试必考题I2C协议 - 第12节

    I2C协议
    充八万
    发布于 :2023年09月01日 19:07:43

    全面掌握面试必考题I2C协议 - 第11节

    I2C协议
    充八万
    发布于 :2023年09月01日 19:06:53

    全面掌握面试必考题I2C协议 - 第10节

    I2C协议
    充八万
    发布于 :2023年09月01日 19:06:03

    全面掌握面试必考题I2C协议 - 第7节

    I2C协议
    充八万
    发布于 :2023年09月01日 19:03:32

    全面掌握面试必考题I2C协议 - 第6节

    I2C协议
    充八万
    发布于 :2023年09月01日 19:02:42

    全面掌握面试必考题I2C协议 - 第5节

    I2C协议
    充八万
    发布于 :2023年09月01日 19:01:51

    全面掌握面试必考题I2C协议 - 第4节

    I2C协议
    充八万
    发布于 :2023年09月01日 19:01:01

    全面掌握面试必考题I2C协议 - 第2节 #硬声创作季

    I2C协议
    充八万
    发布于 :2023年09月01日 18:59:21

    全面掌握面试必考题I2C协议 - 第1节

    I2C协议
    充八万
    发布于 :2023年09月01日 18:58:30

    80 第23.1讲 I2C实验-I2C协议和6U的I2C控制器详解 - 第4节 #硬声创作季

    程序代码I2C协议
    充八万
    发布于 :2023年08月17日 10:05:14

    80 第23.1讲 I2C实验-I2C协议和6U的I2C控制器详解 - 第2

    程序代码I2C协议
    充八万
    发布于 :2023年08月17日 10:03:33

    基于 FPGA 的模拟 I2C协议系统设计

    I2C 接口做为不同芯片间的通信协议I2C 串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到 I2C
    发表于 08-14 18:21