电子产业一站式赋能平台

PCB联盟网

搜索
查看: 3583|回复: 4
收起左侧

I2C很简单,但很多人却不了解其通信原理和协议

[复制链接]

2851

主题

4614

帖子

2万

积分

官网认证

Rank: 3Rank: 3

积分
25787

活跃会员热心会员推广达人优秀版主

发表于 2021-5-11 17:49:01 | 显示全部楼层 |阅读模式
                                                                                                   
I2C是目前使用较多的一种总线,一般用于连接各种从设备,比如:EEPROM存储器、温湿度传感器、角速度计等。

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

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


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

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

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

I2C版本历史:

302ebe87d2b114b07ed567d011789566.jpg

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

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

二、I2C基础内容

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


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

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

466b03b94e68975263b8a75e1be35d3e.png

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

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

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

2aec4d5c1d67da74285a2a454f6a4daa.png

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位地址:

6ab656001e641fd294387d0ae58c68c2.jpg

10位地址:

d2516b3c61003f1958137932bfae500f.jpg

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

3.开始和停止
SDA数据线由高 -> 低 为总线开始条件;
SDA数据线由低 -> 高 为总线结束条件;

a44d30b055d5f6eae5385ea754117e51.png

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

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

5.更多协议内容

I2C协议手册地址:
https://www.nxp.com/docs/en/user-guide/UM10204.pdf

本文转自:微信公众号“strongerHuang”



               
该会员没有填写今日想说内容.
回复

使用道具 举报

0

主题

56

帖子

297

积分

一级会员

Rank: 1

积分
297
发表于 2021-5-12 00:22:20 | 显示全部楼层
感谢分享。
回复 支持 反对

使用道具 举报

0

主题

35

帖子

151

积分

一级会员

Rank: 1

积分
151
发表于 2021-5-31 16:41:16 | 显示全部楼层
感谢指导,帮助很大
回复 支持 反对

使用道具 举报

3

主题

2721

帖子

3052

积分

四级会员

Rank: 4

积分
3052
发表于 2021-6-4 09:46:08 | 显示全部楼层
11111111111111111111
回复 支持 反对

使用道具 举报

0

主题

26

帖子

65

积分

一级会员

Rank: 1

积分
65
发表于 2021-6-4 10:57:10 | 显示全部楼层

谢谢分享!
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条


联系客服 关注微信 下载APP 返回顶部 返回列表