IIC
概述
IIC协议全称inter-integrated circuit,翻译名为内部集成电路总线。一般用作两个设备之间短距离低速低数据量的通信。只有两根线,主机启动总线,并产生SCL作为时钟,SDA作为双向数据线进行数据传输。从机并联挂在两根线上,主机通过器件地址进行识别从机,然后启动数据传输。
主要有点:简单、便宜、可靠性高
时序
在SCL为高电平时SDA拉低,表示传输开始。SCL为低电平时允许数据切换,在SCL为高电平时数据要保持稳定。在最后一个时钟周期主机释放SDA控制权,从机在SDA发送低电平作为有效应答,表示传输结束。
示例
在空闲状态,两条线与设备断开,靠上拉电阻把电平拉高。起始和结束信号由主机产生,应答信号由从机产生。
所有数据包均是八个bit,每发送一个字节,都要应答一次。
主机向从机写数据
- 主机发送起始信号+设备地址+0(表示读)组成一个字节发送给从机,从机产生应答。
- 从机正确应答后,主机发送起始信号+八位寄存器地址给从机,从机产生应答
- 从机正确应答后,主机发送数据给从机,从机应答
- 主机收到有效应答,发送停止信号结束传输。
主机从从机读数据
- 主机先按上述写操作告诉从机要读取的寄存器地址
- 从机有效应答后,主机发送起始信号+设备地址+1(读操作)
- 主机收到有效应答后,从机占用SDA给主机发送寄存器数据,主句向从机发送非应答信号1
- 主机发送停止信号
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 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】