模拟IIC

  1. 开始
  2. 停止
  3. 数据格式
  4. 应答信号
  5. 非应答信号

传输过程:
读取过程:

  1. 主机发送开始信号
  2. 主机广播7位设备地址 & 0xFE (最后一位为0:写入地址)
  3. 等待应答
  4. 主机发送8位寄存器地址
  5. 等待应答
  6. 主机发送开始信号
  7. 主机发送7位设备地址 | 0x01 (最后一位为1:读取地址)
  8. 等待应答
  9. 保存数据,主机返回非应答信号
  10. 发送停止信号

写入过程:

  1. 主机发送开始信号
  2. 主机广播7位设备地址 & 0xFE (最后一位为0:写入地址)
  3. 等待应答
  4. 主机发送8位寄存器地址
  5. 等待应答
  6. 发送 1 字节数据
  7. 等待应答
  8. 发送停止信号

应答信号:
IIC的数据都是 1 字节(8bit)传输的,主机每发送完 1 字节数据后会在时钟的第 9 个周期释放SDA数据总线(将SD设为输入),由接收器发送一个ACK(把数据总线SDA电平拉低)表示数据成功接受。

非应答信号:
在诗中的第 9 个脉冲周期释放数据总线,接收器不拉低数据总线表示一个NACK,NACK有两种用途:

  1. 一般表示接收器未成功接受数据字节
  2. 当接收器是主控制器时,它收到最后一个字节后,应该发送一个NACK信号来通知被控发送器结束数据发送,并释放总线,以便主控接收器发送一个停止信号STOP。
发布了18 篇原创文章 · 获赞 2 · 访问量 640

猜你喜欢

转载自blog.csdn.net/weixin_39618542/article/details/101868014
IIC
今日推荐