SPI/I2C 总线 虽然现实世界中的信号都是模拟信号,但是越来越多的模拟IC 产品通过数字接口实现通讯
微处理器通过几条总线控制周边的设备,比如:模/数转换器(ADC),数/模转换器(DAC),智能电池,端口扩展,EEPROM 以及温度传感器
与数据的平行传输接口不同,串行数据通过两条、三条或者四条数据/时钟总线连续地传输比特数据
虽然并行的总线具有传输速度快的特点,但是串行总线具有使用较少的控制和数据线的优点
2 线和 3 线的总线在大多数微处理器上应用于收发数据
串行接口在提供串行时钟的主设备和从设备/周边设备之间的进行通讯
串行接口有三种:三线、二线和单线
本文着眼于二线和三线的串行接口
三线的接口包括:片选线(CS 或 SS)、时钟线(SCLK)和数据输入/主设备输出线(DIN或 MOSI)
三线接口有时也包括一条数据输出/主设备输入线(DOUT 或 MISO)
包含DOUT 线的三线接口有时也叫做四线接口
为了叙述的简便,本文将三线接口和四线接口统称为三线接口
二线接口包括一条数据线(SDA 或 SMBDATA)和一条时钟线(SCL 或SMBCLK)
串行外设接口(SPI),队列串行外设接口(QSPI)和 MicroWire(或 MicroWire/Plus)接口都是三线接口
芯片间总线(I2C)和 SMBUS 都是二线接口
这些串行接口拥有各自的优点和缺点,见表1
三线接口可以以更高的时钟频率工作,并且不需要上拉电阻
SPI/QSPI 和 MicroWire 接口都可以工作在全双工模式(数据可以在同一时间发送和接收)
而且三线接口是边沿触发的而不是电平触发,因此具有更强的抗干扰能力
三线接口的主要缺点是它要为每一个从设备提供一条片选线,除非将从设备用菊链形式连接
另外一个缺点是三线接口没有应答机制去判断数据的收发是否正确
二线接口的优点是使用更少