目录
一:什么是I2C通信协议
二:I2C通信
三:I2C时序图
四:面试常见问题
一:什么是I2C通信协议
I2C(Inter-Integrated Circuit)协议是一种串口通信协议,用于在集成电路之间传输数据。它使用两根线(数据线和时钟线)进行通信,支持多个设备总线连接。I2C是一种串行、半双工的总线,注意用于近距离、低速的芯片之间的通信。I2C的总线有两根双向信号线,一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步。
就是在串口通信上满足四个要求
- 要求1:删掉一根通信线,防止资源浪费,只能在同一根线上进行发送和接收
- 要求2:需要一个应答机制,没发送一个字节都有一次应答
- 要求3:一根线上能同时接多个模块
- 要求4:把异步协议改成同步的协议,另外加一根时钟线
二:I2C通信
- I2C总线(Inter IC USB)是由Philips公司开发的一种通用数据总线
- 两根通信线:SCL(Serial Clock) , SDA(Serial Data)
- 同步、半双工
- 带数据应答
- 支持总线挂载多设备(一主多从,多主做从)
1.常见的I2C协议通信硬件
2.硬件电路
三:I2C时序图
2.发送一个字节
3.接收一个字节
4.发送应答
5.指定地址写
6.指定地址读
四:面试常见问题
1.介绍一下什么是I2C协议?
2.画一下I2C协议的时序图?
3.为什么要用到上拉电阻?
4.如何解决访问冲突?