I2C,也叫 IIC,是一种常见的串行总线,它只需要两根线即可在连接于总线上的器件之间传送信息。
0. 电气知识
- 开漏输出:Open drain output,不输出电压,低电平时接地,高电平时不接地。
- 上拉电阻:pull-up resistor,
1. I2C
SDA 与 SCL 是 I2C 的两种双向信号线。
- SDA:串行数据线;
- SCL:串行时钟线;
2. SPI
SPI:Serial Peripheral Interface,是一种高速的(最高可达 10Mbps,远高于 I2C 和 UART),全双工(两根线),同步(统一的时钟信号,由 Master 提供 clock generator)的通信总线,比如用于两个单片机之间的数据传递与通信)。并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间。
SPI 协议:
SPI 的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选,chip selected)。
- MISO:Master Input Slave Output,MOSI:Master Output Slave Input;
- SPI 数据是一位一位传输的,这就需要有时钟信号提供时钟脉冲,SDI/SDO 基于此脉冲完成数据传输
- SCK 上升沿是读,下降沿是写;