前言
2023.4.22
一、简要介绍
IIC
:Inter-Integrated Circuit
,集成电路总线
- 半双工协议
- 多主设备,多从设备。通过地址索引,I2C可以使能所需从设备
- 实现不同集成电路组件之间的控制功能
1、优点
- 接口减少,控制简单,只需要两条总线
- 通信速率高
- 多主控,但任意时刻只有一个主控有效。最大主设备——无限制,最大从设备——127个
2、缺点
二、信号线和连接方式
1、信号线
需要连接上拉电阻,空闲时保持高电平
SDA
(Serial Data) :串行数据线,用来传输数据信号。SCL
(Serial Clock):串行时钟线,用来传输时钟信号,一般是主设备向从设备提供。
2、连接方式
2.1 单主设备,单从设备
2.2 单主设备,多从设备
2.3 多主设备,多从设备
三、数据传输格式
主设备按照从高到低的顺序,依次发送地址位,从设备进行接收,通常情况下,地址位为7bit,读写选择为1bit。每个从设备有且只有一个唯一的地址编号。读写控制写为0,读为1。
为了确保采样时信号稳定,对于主设备,我们在下降沿的时候将信号放在SDA上,对于从设备,我们在上升沿的时候进行采样。
空闲位:空闲时,SCK和SDA均为高电平
起始位:在SCL为1时,拉低SDA,开始数据传输,SCL开始翻转(下降沿检测)
应答位:正确接收从设备拉低信号SDA;未正确接收SDA依旧为高电平
数据位:每一次默认传输一个字节(即8bit),每个字节的传输都需要跟一个应答位(ACK/NACK)
停止位:SCL先拉高,随后SDA先为低后拉高(上升沿检测)
1、数据传输过程
起始位 + 7位地址 + 1位读写控制 + slave响应 + 8位数据 + 响应 + 8位数据 + 响应 + 停止位 (加粗部分为slave控制总线)
四、IIC配置
1、传输模式
- 标准模式(Standard):
100kbps
- 快速模式(Fast):
400kbps
- 快速模式+(Fast-Plus):1Mbps
- 高速模式(High-speed):
3.4Mbps
- 超快模式(Ultra-Fast):
5Mbps
(单向传输)
2、地址位宽
10位地址的从设备,和7位地址的从设备,都可以挂在一个总线上,彼此相互兼容
- 标准I2C:
七位寻址
- 扩展I2C:十位寻址
3、仲裁机制
3.1 SCL同步问题
总线自带线与逻辑
,任意一个拉低,总线表现为低电平,全部位高电平时,总线才是高电平。
假设有两个主设备都想拉低SCL信号,Master1先拉低 ,Master2后拉低,那么SCL会按照CLK1
的时间来拉低自身(线与逻辑的应用),而假如Master1先拉高,Master2后拉高,SCL又会按照CLK2
的时间来拉高自身。
当多个节点同时发送时钟信号时,在总线上表现的是统一的时钟信号
3.2 SDA仲裁问题
每个主设备都需要在发送消息之前检测SDA线是低电平还是高电平。文章来源:https://www.toymoban.com/news/detail-421896.html
- 如果SDA线为低电平,则意味着另一个主设备可以控制总线,并且主设备应等待发送消息
- 如果SDA线为高电平,则可以安全地发送消息
五、UART、SPI、IIC协议比较
低速通用协议接口文章来源地址https://www.toymoban.com/news/detail-421896.html
数据流向 | 信号线 | 通信类型 | 选通方式 | 主从设备 | |
---|---|---|---|---|---|
UART | 单工/半双工/全双工 | 1/2条 | 异步 | 无 | 单主设备、单从设备 |
SPI | 全双工 | 4条 | 同步 | 片选信号NSS | 单主设备、多从设备 |
IIC | 半双工 | 2条 | 同步 | 地址索引 | 多主设备,多从设备 |
到了这里,关于IIC协议——同步半双工串行通信方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!