今天小编要和大家分享的是接口,总线,驱动相关信息,接下来我将从I2C总线的工作原理以及优缺点解析,背景图790505这几个方面来介绍。
接口,总线,驱动相关技术文章I2C总线的工作原理以及优缺点解析
如果您正在使用OLED显示器,气压传感器或陀螺仪/加速度计模块的项目,您可能会发现正在使用I2C总线。
I2C总线简介
如果您正在使用OLED显示器,气压传感器或陀螺仪/加速度计模块的项目,您可能会发现正在使用I2C总线。当您希望有多个微控制器记录数据到单个存储卡或将文本显示到单个LCD时,这非常有用。
与UART通信一样,I2C仅使用两条线在设备之间传输数据:
SDA(串行数据) - 主站和从站发送和接收数据的线路。
SCL(串行时钟) - 承载时钟信号的线路。
I2C是一种串行通信协议,因此数据沿着单线(SDA线)逐位传输。
与SPI一样,I2C是同步的,因此位输出通过主机和从机之间共享的时钟信号与位采样同步。时钟信号始终由主机控制。
I2C如何工作
使用I2C时,数据被转换成messages,messages则被分解为数据帧。每条messages都有一个地址帧,其中包含从站的二进制地址,以及一个或多个包含正在传输的数据的数据帧。该消息还包括每个数据帧之间的启动和停止条件,读/写位和ACK / NACK位:
启动条件:在SCL线路从高电平切换到低电平之前,SDA线路从高电平切换到低电平。
停止条件:SCL线路从低电平切换到高电平后,SDA线路从低电平切换到高电平。
地址帧:每个从站唯一的7或10位序列,用于在主站想与之通信时识别从站。
读/写位:单个位,指定主器件是向从器件发送数据(低电压电平)还是从器件请求数据(高电压电平)。
ACK / NACK位:消息中的每个帧后跟一个应答/不应答位。如果成功接收到地址帧或数据帧,则从接收设备向发送方返回ACK位。
地址
I2C没有像SPI这样的从选择线,因此它需要另一种方法让从器件知道数据正在发送给它,而不是另一个从器件。它通过地址来做到这一点。地址帧始终是新消息中起始位之后的第一帧。