IIC通信协议

IIC通信协议

IIC 集成电路总线,多用于主控制器和从器件间的主从通信,在小数据量场景下使用,传输距离短,任意时刻只能有一个主机

物理层面

只有两条线,一条是串行时钟线SCL和一条串行数据线SDA

空闲状态

IIC空闲状态下 SDA 和SCL 都为高电平
一般加两颗上拉电阻
在这里插入图片描述

数据传输状态

  1. 当时钟信号为高电平时,数据线上的数据必须稳定

  2. 当时钟信号为低电平时,数据线上的数据允许变化
    在这里插入图片描述

起始信号

时钟线SCL为高电平期间,数据线SDA由高电平向低电平变化
在这里插入图片描述

终止信号

时钟线SCL为高电平期间,数据线SDA由低电平向高电平变化
在这里插入图片描述

应答信号

发送器每发送一个字节(8bit),就在第 9个时钟脉冲期间释放数据线,由接收器反馈一个应答信号。

  1. 应答位为低电平(Low Level)时,规定为有效应答位 (ACK)
  2. 应答位为高电平(High Level)时,规定为无效应答位(nACK)

写工作流程

  1. 发送起始信号 (SCL高电平,SDA下降沿)
  2. 发送7Bit 从机地址 + 1bit 写数据位 (为1)
  3. 等待从机应答ACK
  4. 发送Data,等待从机ACK,依次循环
  5. 发送终止信号 (SCL高电平,SDA上升沿)
    在这里插入图片描述

读工作流程

  1. 发送起始信号(SCL高电平,SDA上升沿)
  2. 发送7Bit从机地址 + 1 Bit 读数据位 (为0)
  3. 等待从机应答ACK
  4. 从机发送Data,主机反馈ACK,依次循环
  5. 终止读数据时候发送NACK
  6. 主机发送终止信号
    在这里插入图片描述

IIC 通信模式

IIC通信模式分为 标准模式和快速模式
100KHZ 以及400KHZ

IIC 错误处理和恢复机制

主机检测到错误时,可以发送一个NACK信号,选择重试或终止信号

IIC总线仲裁

当主机发送一个起始信号时候,其他主机接收到会自动释放控制权避免冲突
多主机下通信 只能有一个主机拥有控制权

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值