发布网友
共2个回答
热心网友
串行通信只需一根和几根数据传输线(兼作地址、控制线),不仅大大降低硬件成本,也有利于系统的扩展设计,所以串行总线广泛应用于单片机测控中。目前串行总线除了使用通用异步串行接口(UART,如:RS-232C/449/423/422/485)以外,应用越来越多的是同步串行扩展总线接口,主要有单总线、I2C、SPI、USB、MPS、Microwire/PLUS等。
一句话有:时钟线的串线总线都是同步串行总线,与时钟同步。像USB没有时钟线,所以是异步,I2C有一个SCK线,所以是同步总线。比如看下图:
热心网友
最常用的三种串行总线SPI、I2C、UART,总体来讲串行总线需要的管脚少、PCB设计的时候连线少,非常方便MCU和外设尤其是传感器之间的连接,相对于并行总线有很大的优势,可以说这三种总线已经是任何一款MCU必有的外设连接方式了。
这三种总线也各有千秋,I2C看似简约但用起来不简单,主要是要让2根信号线处理那么多复杂的场景并能够保证数据的传输,背后支撑的硬件机制以及协议是不简单的,用FPGA自己写一个I2C的控制逻辑会非常的烧脑;SPI比I2C多出用于片选的信号线,因此逻辑设计上要简单很多,但带来的劣势就是每多连接一个外设,就要多出一条连接线;UART是一种异步的串行连接方式,没有了时钟线的连接就像I2C一样硬件连接起来非常简单,但使用的时候需要收、发两端的波特率设置在共同的频率,偏差要很小,否则就会出现传输错误。
今天我门就通过一些生动的动图来对我们三种总线再次进行一次深刻的认识。
我们先看看SPI的传输(同步、串行)
SPI的串行数据传输(1)
SPI串行数据传输(2)
SPI的时序
我们再看看I2C的传输(同步、串行、2线):
I2C的数据传输及寻址
最常用的调试通道 UART(异步、串行):
PC通过UART来调试MCU
微处理器上的UART通过RS-232跟PC进行连接
红外控制也是基于异步串行的方式:
红外发射和接收
红外发射接收的详细构成
红外遥控
串行通信离不开数据的并/串转换和串/并转换:
串行输入/串行输出的移位寄存器
8位的移位寄存器
4位并行总线的数据传输
并/串转换 -- 串/并转换
还有一些与我们相关的有趣的动画:
比如PWM的产生和应用:
PWM的产生方式
用PWM方式控制LED的亮度
通信中常用到的模拟调制信号:
AM和FM调制波形
相位调制:
相位调制
方波信号的边沿抖动:
波形的边沿抖动(Jitter)