1. 串行通信的本质与工程定位
在嵌入式系统开发中,串行通信(Serial Communication)并非某种“高级外设”,而是贯穿整个硬件生态的底层数据通路。从调试信息输出、传感器数据采集,到模块间协同控制,其存在形式早已超越传统“UART接口”的物理边界,演化为一种系统级的数据交换范式。理解其本质,不是为了背诵定义,而是为了在真实项目中做出合理的技术选型与资源分配决策。
串行通信最核心的特征在于位序传输:一个字节(8 bit)的数据,并非通过8根独立信号线同时送达,而是沿单根(或差分对)数据线,按时间顺序逐位发送。典型时序中,低位(LSB)先行,随后是高位(MSB),中间穿插起始位、校验位(可选)、停止位等控制字段。这种设计直接决定了其硬件资源占用极低——仅需TX(发送)、RX(接收)两根信号线即可构成全双工通道。在STM32F103这类引脚资源受限的主流MCU上,这意味着可将宝贵的GPIO用于ADC采样、PWM驱动或按键检测,而非被并行总线吞噬。
但资源节省的代价是带宽约束。以标准115200 bps波特率为例,理论最大有效数据吞吐约为11.5 KB/s(扣除起始/停止位开销)。这远低于并行总线动辄数MB/s的速率。然而,在绝大多数嵌入式场景中,这一速率已绰绰有余:温湿度传感器每秒上报一次数据,GPS模块每秒输出NMEA语句,蓝牙模块透传音频控制指令——这些任务的数据量级均在KB/s量级以下。因此,工程师在选型时必须摒弃“速率越高越好”的惯性思维,转而思考:“我的应用是否真的需要并行总线的带宽?引入并行接口带来的PCB布线复杂度、信号完整性挑战、以及MCU引脚复用冲突,是否值得?”
一个典型的工程权衡案例是LCD显示屏驱动。初学者常困