一、介绍
串口通信是一种通过串行接口逐位传输数据的通信方式,广泛应用于嵌入式系统、工业控制、传感器网络等领域。
二、以下是几种常见的串口通信方式及其对比:
1.UART(Universal Asynchronous Receiver/Transmitter)
-
特点:
-
异步通信:无时钟信号,依赖预定义的波特率(Baud Rate)同步数据。
-
全双工:支持同时发送和接收(需独立的TX和RX线)。
-
点对点:通常用于两个设备之间的通信。
-
帧格式:数据帧包含起始位、数据位(5-9位)、校验位(可选)和停止位。
-
-
优点:
-
简单易用,硬件成本低。
-
支持长距离通信(配合RS-232/RS-485等电平转换芯片)。
-
-
缺点:
-
依赖精确的波特率匹配,抗干扰能力较弱。
-
仅支持点对点,无法直接连接多设备。
-
-
典型应用:单片机与PC通信、GPS模块、蓝牙模块等。
2. I2C(Inter-Integrated Circuit)
-
特点:
-
同步通信:需时钟信号(SCL)和数据线(SDA)。
-
半双工:同一时间只能发送或接收。
-
多主多从:支持多个主设备和从设备共享总线。
-
地址寻址:每个设备有唯一地址,主设备通过地址选择从设备。
-
低速传输:标准模式(100kbps)、快速模式(400kbps)、高速模式(3.4Mbps)。
-
-
优点:
-
引脚少(仅需两根线),适合多设备场景。
-
支持总线仲裁和冲突检测。
-
-
缺点:
-
速度较慢,协议复杂度较高。
-
长距离通信需额外电路(如电平转换器)。
-
-
典型应用:温度传感器、RTC(实时时钟)、低速率外设。
3. RS-232
-
特点:
-
物理层标准:定义电平、连接器(如DB9)和电气特性。
-
异步通信:基于UART协议,需波特率匹配。
-
单端信号:使用正负电压表示逻辑(-3V~-15V为1,+3V~+15V为0)。
-
-
优点:
-
抗干扰能力较强(相比TTL电平)。
-
支持较长距离(典型15米以内)。
-
-
缺点:
-
速度较低(通常<115.2kbps)。
-
仅支持点对点通信。
-
-
典型应用:老式计算机外设(鼠标、调制解调器)、工控设备。
4. RS-485
-
特点:
-
差分信号:使用两条线(A和B)传输差分电压,抗干扰能力强。
-
多设备通信:支持总线拓扑,最多32个设备(通过中继器扩展)。
-
半双工:需方向控制(如RE/DE引脚)。
-
高速长距离:传输距离可达1200米(低速时),速率最高10Mbps(短距离)。
-
-
优点:
-
抗干扰强,适合工业环境。
-
支持多节点网络。
-
-
缺点:
-
需协议层管理(如Modbus),硬件复杂度较高。
-
-
典型应用:工业自动化、楼宇控制、多节点传感器网络。
5. USB(Universal Serial Bus)
-
特点:
-
复杂协议:支持热插拔、即插即用、电源供电。
-
高速传输:USB 2.0(480Mbps)、USB 3.0(5Gbps)。
-
主从架构:主机(如PC)控制所有数据传输。
-
-
优点:
-
高带宽,支持多种设备类型。
-
广泛兼容,即插即用。
-
-
缺点:
-
协议复杂,需专用控制器。
-
传输距离短(一般<5米)。
-
-
典型应用:外设连接(键盘、存储设备)、高速数据采集。
6. SPI(Serial Peripheral Interface)
1. 基本特性:
-
同步通信:依赖时钟信号(SCLK)控制数据传输时序,主设备生成时钟。
-
全双工:数据可同时发送(MOSI)和接收(MISO)。
-
主从架构:一个主设备控制多个从设备,通过片选信号(SS/CS)选择从机。
-
高速传输:理论速率可达几十Mbps(如STM32的SPI支持50Mbps以上)。
-
灵活性:数据位宽可配置(通常8位或16位),时钟极性和相位可调。
2. 信号线
-
SCLK(Serial Clock):主设备输出的时钟信号,控制数据传输节奏。
-
MOSI(Master Out Slave In):主设备发送数据到从设备的线路。
-
MISO(Master In Slave Out):从设备发送数据到主设备的线路。
-
SS/CS(Slave Select/Chip Select):主设备通过拉低对应从机的片选信号激活通信。
3. 通信过程
-
主设备初始化:配置时钟极性(CPOL)和相位(CPHA),确定数据采样边沿。
-
选择从设备:拉低目标从机的SS/CS引脚。
-
数据传输:
-
主设备通过MOSI发送数据,同时通过MISO接收从机数据。
-
每个时钟周期传输一个数据位(上升沿或下降沿采样,由CPOL和CPHA决定)。
-
-
结束通信:拉高SS/CS引脚,释放从机。
4. 时钟模式(CPOL和CPHA)
-
CPOL(Clock Polarity):
-
CPOL=0:时钟空闲时为低电平。
-
CPOL=1:时钟空闲时为高电平。
-
-
CPHA(Clock Phase):
-
CPHA=0:数据在时钟的第一个边沿(上升或下降)采样。
-
CPHA=1:数据在时钟的第二个边沿采样。
-
5. 多从机连接方式
独立片选(SS/CS):每个从机有独立的片选信号,主设备通过多个SS引脚控制。
-
优点:简单直接,各从机独立工作。
-
缺点:占用主设备较多引脚。
菊花链(Daisy Chain):多个从机共用同一片选信号,数据依次传递。
-
优点:节省主设备引脚。
-
缺点:所有从机需支持菊花链模式,协议复杂度高。
6. 优缺点总结
-
优点:
-
高速传输,适合实时性要求高的场景。
-
全双工通信,数据传输效率高。
-
硬件简单,无复杂协议(如地址寻址)。
-
-
缺点:
-
引脚占用多(每个从机需单独SS线)。
-
无硬件错误检测机制(依赖软件校验)。
-
通信距离短(通常<1米)。
-
7. 典型应用
-
存储器:Flash、EEPROM(如W25Q128)。
-
传感器:加速度计、陀螺仪(如MPU6050)。
-
显示屏:OLED、TFT屏幕(通过SPI传输图像数据)。
-
ADC/DAC:高速模数/数模转换芯片。
三、SPI多从机通信的连线方法
若主机需连接多个从机,常见连线方式有两种:
1. 独立片选(CS)法
- 硬件连接:每个从机独占一条CS线,主机通过拉低对应CS线选中从机。
- 优点:逻辑简单,各从机独立操作,无冲突。
- 缺点:占用主机较多GPIO引脚,从机数量受限于可用CS线数量。
连线示意图:
主机 从机1 从机2
SCLK ──┬─────SCLK─────SCLK
MOSI ──┼─────MOSI─────MOSI
MISO ──┼─────MISO─────MISO
CS1 ──┴─────CS
CS2 ────────┴───────CS
2.菊花链(Daisy Chain)法
- 硬件连接:所有从机的MOSI/MISO串联,数据依次传递。
- 工作方式:主机发送数据包,各从机依次截取自身所需数据段。
- 优点:仅需一条CS线,节省主机引脚。
- 缺点:所有从机需支持菊花链协议,且数据需按顺序处理。
适用场景:LED驱动芯片(如移位寄存器)等需要级联的设备。
四、SPI多从机通信的注意事项
- 时序同步:所有从机的时钟模式(CPOL/CPHA)需与主机一致。
- 抗干扰设计:长距离通信时,可加入终端电阻或使用差分信号(如RS-485兼容SPI)。
- 软件调度:主机需通过轮询或优先级策略管理多从机通信,避免总线冲突。
五、STM32F103单片机中默认SPI引脚是哪个
1.SPI1(高速SPI,APB2总线)
- 默认引脚(无需重映射):
- SCK(时钟):PA5(引脚PA5,复用功能
SPI1_SCK
) - MOSI(主机输出):PA7(引脚PA7,复用功能
SPI1_MOSI
) - MISO(主机输入):PA6(引脚PA6,复用功能
SPI1_MISO
) - NSS(片选,可选硬件控制):PA4(引脚PA4,复用功能
SPI1_NSS
)
- SCK(时钟):PA5(引脚PA5,复用功能
2.SPI2(低速SPI,APB1总线)
- 默认引脚(无需重映射):
- SCK(时钟):PB13(引脚PB13,复用功能
SPI2_SCK
) - MOSI(主机输出):PB15(引脚PB15,复用功能
SPI2_MOSI
) - MISO(主机输入):PB14(引脚PB14,复用功能
SPI2_MISO
) - NSS(片选,可选硬件控制):PB12(引脚PB12,复用功能
SPI2_NSS
)
- SCK(时钟):PB13(引脚PB13,复用功能