前面三篇文章我们简单介绍了一下最常用的三种串行总线SPI、I2C、UART,总体来讲串行总线需要的管脚少、PCB设计的时候连线少,非常方便MCU和外设尤其是传感器之间的连接,相对于并行总线有很大的优势,可以说这三种总线已经是任何一款MCU必有的外设连接方式了。
这三种总线也各有千秋,I2C看似简约但用起来不简单,主要是要让2根信号线处理那么多复杂的场景并能够保证数据的传输,背后支撑的硬件机制以及协议是不简单的,用FPGA自己写一个I2C的控制逻辑会非常的烧脑;SPI比I2C多出用于片选的信号线,因此逻辑设计上要简单很多,但带来的劣势就是每多连接一个外设,就要多出一条连接线;UART是一种异步的串行连接方式,没有了时钟线的连接就像I2C一样硬件连接起来非常简单,但使用的时候需要收、发两端的波特率设置在共同的频率,偏差要很小,否则就会出现传输错误。
今天我门就通过一些生动的动图来对我们三种总线再次进行一次深刻的认识。我们先看看SPI的传输(同步、串行)