91高清免费观看_亚洲高清视频免费观看_91视频综合_国产精品一区99_伊人手机视频_懂色av懂色aⅴ精彩av

有趣生活

当前位置:首页>职场>简述i2c总线(一文了解I2C总线工作原理)

简述i2c总线(一文了解I2C总线工作原理)

发布时间:2024-01-19阅读(6)

导读如果您正在使用OLED显示器,气压传感器或陀螺仪/加速度计模块的项目,您可能会发现正在使用I2C总线。I2C总线简介I2C结合了SPI和UART的优点。使用....

如果您正在使用OLED显示器,气压传感器或陀螺仪/加速度计模块的项目,您可能会发现正在使用I2C总线。

I2C总线简介

I2C结合了SPI和UART的优点。使用I2C,您可以将多个从设备连接到单个主设备上(如SPI),并且可以让多个主器件控制单个或多个从器件。当您希望有多个微控制器记录数据到单个存储卡或将文本显示到单个LCD时,这非常有用。

与UART通信一样,I2C仅使用两条线在设备之间传输数据:

简述i2c总线(一文了解I2C总线工作原理)(1)

SDA(串行数据) - 主站和从站发送和接收数据的线路。

SCL(串行时钟) - 承载时钟信号的线路。

I2C是一种串行通信协议,因此数据沿着单线(SDA线)逐位传输。

与SPI一样,I2C是同步的,因此位输出通过主机和从机之间共享的时钟信号与位采样同步。时钟信号始终由主机控制。

简述i2c总线(一文了解I2C总线工作原理)(2)

I2C如何工作

使用I2C时,数据被转换成messages,messages则被分解为数据帧。每条messages都有一个地址帧,其中包含从站的二进制地址,以及一个或多个包含正在传输的数据的数据帧。该消息还包括每个数据帧之间的启动和停止条件,读/写位和ACK / NACK位:

简述i2c总线(一文了解I2C总线工作原理)(3)

启动条件:在SCL线路从高电平切换到低电平之前,SDA线路从高电平切换到低电平。

停止条件:SCL线路从低电平切换到高电平后,SDA线路从低电平切换到高电平。

地址帧:每个从站唯一的7或10位序列,用于在主站想与之通信时识别从站。

读/写位:单个位,指定主器件是向从器件发送数据(低电压电平)还是从器件请求数据(高电压电平)。

ACK / NACK位:消息中的每个帧后跟一个应答/不应答位。如果成功接收到地址帧或数据帧,则从接收设备向发送方返回ACK位。

地址

I2C没有像SPI这样的从选择线,因此它需要另一种方法让从器件知道数据正在发送给它,而不是另一个从器件。它通过地址来做到这一点。地址帧始终是新消息中起始位之后的第一帧。

主设备将与其通信的从设备的地址发送给与其连接的每个从设备。然后,每个从设备将从主设备发送的地址与其自己的地址进行比较。如果地址匹配,则将低电压ACK位发送回主机。如果地址不匹配,则从器件不执行任何操作,SDA线保持高电平。

读/写位

地址帧在末尾包括一个位,用于通知从设备,主设备是想要向其写入数据还是从主设备接收数据。如果主设备想要向从设备发送数据,则读/写位是低电平。如果主设备向从设备请求数据,则该位是高电平。

数据框架

在主设备检测到来自从设备的ACK位之后,准备好发送第一个数据帧。

数据帧始终为8位长,并以最高有效位先发送。紧接着每个数据帧的ACK / NACK位以验证帧已被成功接收。在发送下一个数据帧之前,主机或从机必须接收ACK位(取决于发送数据的人)。

在发送了所有数据帧之后,主设备可以向从设备发送停止条件以停止传输。停止条件是SCL线上从低电平到高电平转换后,SDA线上从低电平变为高电平,SCL线保持高电平。

I2C数据传输步骤

1.主机向每一个连接的从设备发送数据,然后将SDA信号从高切换到低,之后在将SCL从高切换到低电平。

简述i2c总线(一文了解I2C总线工作原理)(4)

2.主设备向每个从设备发送它想要与之通信的从设备的7或10位地址,以及读/写位:

简述i2c总线(一文了解I2C总线工作原理)(5)

3.每个从设备将主设备发送的地址与其自己的地址进行比较。如果地址匹配,则从器件通过将SDA线拉低一位来返回ACK位。如果主设备的地址与从设备的地址不匹配,则从设备将SDA线保持为高电平。

简述i2c总线(一文了解I2C总线工作原理)(6)

4.主设备发送或接收数据帧:

简述i2c总线(一文了解I2C总线工作原理)(7)

5.在传输了每个数据帧之后,接收设备将另一个ACK位返回给发送方以确认成功接收到该帧:

简述i2c总线(一文了解I2C总线工作原理)(8)

6.要停止数据传输,主机通过在将SDA切换为高电平之前切换SCL为高电平来向从机发送停止条件:

简述i2c总线(一文了解I2C总线工作原理)(9)

有多个从设备的单一主设备

由于I2C使用寻址,因此可以从单个主设备控制多个从设备。使用7位地址,可以使用128(27)个唯一地址。使用10位地址并不常见,但提供1,024(210)个唯一地址。要将多个从器件连接到单个主器件,请像这样连接它们,使用4.7K欧姆上拉电阻将SDA和SCL线连接到Vcc:

简述i2c总线(一文了解I2C总线工作原理)(10)

有多个从设备及多个主设备

多个主设备可以连接到单个从设备或多个从设备。当两个主设备尝试通过SDA线同时发送或接收数据时,同一系统中出现多个主设备的问题。为了解决这个问题,每个主设备需要在发送消息之前检测SDA线路是低还是高。如果SDA线为低电平,则表示另一个主控制器已控制总线,主控制器应等待发送消息。如果SDA线路很高,那么传输信息是安全的。要将多个主设备连接到多个从设备,请使用下图,使用4.7K欧姆上拉电阻将SDA和SCL线路连接到Vcc:

简述i2c总线(一文了解I2C总线工作原理)(11)

I2C的优点和缺点

与其他协议相比,I2C听起来很复杂,不容易在程序中实现而导致数据丢失、无应答、“死等”等问题。但却有很多优点:

优点

只使用两根电线

支持多个主服务器和多个从服务器

ACK / NACK位确认每个帧都已成功传输

硬件没有UART那么复杂

众所周知且广泛使用的协议

缺点

数据传输速率比SPI慢

数据帧的大小限制为8位

实现比SPI更复杂的硬件

欢迎分享转载→http://www.umpkq.cn/read-32606.html

Copyright ? 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图

主站蜘蛛池模板: 欧美怡春院一区二区三区 | 亚洲av无码乱码国产麻豆穿越 | 久久久久成人精品 | 婷婷久久综合九色综合88 | 国产极品粉嫩福利姬萌白酱 | 热99re久久精品精品免费 | 99视频在线看 | 亚洲国产系列久久精品99人人 | 欧美视频一区二区 | 免费一区二区三区四区 | 日韩在线观看精品 | 国产精品无码一区二区在线观一 | 亚洲欧美在线观看视频 | 亚洲一区不卡视频 | 免费高清观看青青草原 | 欧美综合激情 | 欧美乱人伦中文在线观看不卡 | 丰满的邻居hd高清伦理 | 国产欧美日韩高清专区ho | 色噜噜狠狠狠综合曰曰曰88av | 欧美丰满大乳高跟鞋 | 日韩欧美亚洲每日更新网 | 日本三级理论久久人妻电影 | 在线精品亚洲 | 欧美性色生活片天天看99 | 成人男女网18免费网站 | 亚无码乱人伦一区二区 | 色综合色综合色综合 | 色播在线永久免费视频网站 | 国产精品欧美精品国产主播 | 国产区精品一区二区不卡中文 | 国产精品入口免费视频 | 樱花草在线社区www韩国 | 国产亚洲精品资源在线26u | 真性中出 | 在线观看片免费人成视频播放 | 欧美粗大无套gay | 精品视频一区二区三区在线播放 | 久久99精品久久久久久琪琪 | 国产精品久久久久无码av | 国产又色又爽又黄刺激视频 |