IIC

概述

IIC协议全称inter-integrated circuit,翻译名为内部集成电路总线。一般用作两个设备之间短距离低速低数据量的通信。只有两根线,主机启动总线,并产生SCL作为时钟,SDA作为双向数据线进行数据传输。从机并联挂在两根线上,主机通过器件地址进行识别从机,然后启动数据传输。

主要有点:简单、便宜、可靠性高

时序

在SCL为高电平时SDA拉低,表示传输开始。SCL为低电平时允许数据切换,在SCL为高电平时数据要保持稳定。在最后一个时钟周期主机释放SDA控制权,从机在SDA发送低电平作为有效应答,表示传输结束。

示例


在空闲状态,两条线与设备断开,靠上拉电阻把电平拉高。起始和结束信号由主机产生,应答信号由从机产生。

所有数据包均是八个bit,每发送一个字节,都要应答一次。

主机向从机写数据

  1. 主机发送起始信号+设备地址+0(表示读)组成一个字节发送给从机,从机产生应答。
  2. 从机正确应答后,主机发送起始信号+八位寄存器地址给从机,从机产生应答
  3. 从机正确应答后,主机发送数据给从机,从机应答
  4. 主机收到有效应答,发送停止信号结束传输。

主机从从机读数据

  1. 主机先按上述写操作告诉从机要读取的寄存器地址
  2. 从机有效应答后,主机发送起始信号+设备地址+1(读操作)
  3. 主机收到有效应答后,从机占用SDA给主机发送寄存器数据,主句向从机发送非应答信号1
  4. 主机发送停止信号

此次学习IIC主要参考夏宇闻老师书中例子,代码没有自己写

posted @   骑猪上树的少年  阅读(431)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
回到顶部
点击右上角即可分享
微信分享提示

目录导航