硬件基础:串口通信
数据传输方式(按位传输方式)
并行通信
通过多条数据线同时传输多个数据位,速度较快但成本高,抗干扰能力弱,适用于短距离通信,如早期的打印机接口。
串行通信
通过单条或少数数据线逐位传输数据,线路简单、成本低、抗干扰强,适用于中长距离通信,如UART、USB等。
通信方向(按收发能力)
单工通信
数据只能单向传输,无法交互,如广播或遥控器。
半双工通信
数据可双向传输但不能同时进行,需分时切换方向,如对讲机或RS-485总线。
全双工通信
数据可同时双向传输,需独立收发线路,如电话或UART串口。
串口通信(UART)
采用异步全双工通信方式,无时钟线,通过预设波特率同步传输。
数据帧包含起始位、数据位(5~8位)、可选校验位及停止位。
典型应用包括单片机与PC、传感器等设备的通信。
校验方式(数据完整性检测)
奇校验
数据位中“1”的总数需为奇数,不足时校验位补“1”。
例如:01001000
(2个“1”)需补“1”使总数为3。
偶校验
数据位中“1”的总数需为偶数,不足时校验位补“1”。
例如:01001000
(2个“1”)校验位补“0”保持总数不变。
实际通信中也可选择无校验以减少开销。
同步通信与异步通信(按同步方式)
同步通信
依赖时钟信号同步,数据连续传输,无起始/停止位,效率高但需额外时钟线,如SPI或I2C。
异步通信
通过波特率和帧结构同步,数据以独立帧传输,硬件简单但效率较低,如UART或RS-232。
串口通信基础概念
串口通信是一种通过单条或少数线路逐位传输数据的通信方式,适合中短距离设备交互(如单片机与PC)。其核心是异步时序,典型代表为UART协议。
UART通信时序
空闲状态:通信线保持高电平(逻辑1)。
起始位:1位低电平(逻辑0),标志数据传输开始。
数据位:5~8位有效数据(常见8位),低位在前传输。
校验位(可选):奇/偶校验或无校验,用于简单检错。
停止位:1~2位高电平(逻辑1),标志帧结束。
波特率与速率配置
串口通信速率由波特率(Baud Rate,单位bit/s)决定,收发双方必须一致。
常见波特率
标准值包括:1200、2400、4800、9600、19200、38400、57600、115200、230400等。
代码示例:
通过定时器配置波特率(如8051单片机):
TH1 = 0xFD; // 波特率9600(假设晶振11.0592MHz)
TL1 = 0xFD;
物理层标准对比
TTL电平
电平范围:
5V TTL:逻辑1≈5V,逻辑0≈0V。
3.3V TTL:逻辑1≈3.3V,逻辑0≈0V。
特点:传输距离短(<3米),抗干扰弱,直接连接芯片引脚。
RS232
电平范围:逻辑1=-3~-15V,逻辑0=+3~+15V。
特点:通过电平转换芯片(如MAX232)与TTL互转。
传输距离≤15米,点对点全双工通信,常见于DB9接口。
RS485
差分信号:逻辑1(A>B),逻辑0(A<B)。
特点:抗干扰强,传输距离≤1200米。支持多节点(最多32设备),半双工通信,用于工业总线(如Modbus)。
应用场景
标准 | 距离 | 节点数 | 典型场景 |
---|---|---|---|
TTL | <3米 | 点对点 | 单片机与传感器直连 |
RS232 | ≤15米 | 点对点 | 旧式PC与外设通信 |
RS485 | ≤1200米 | 多节点 | 工业现场总线(PLC等) |
Modbus协议
工业领域主从式通信协议,支持设备间数据交互。
Modbus RTU
二进制模式,帧结构包括地址码、功能码、数据区及CRC校验。
功能码如0x03
(读寄存器)、0x06
(写单个寄存器)。
采用CRC16校验确保数据完整性。
Modbus ASCII
文本模式,数据以ASCII字符传输,帧结构包含起始符、地址码、功能码、数据区及LRC校验。
校验采用LRC(纵向冗余校验)。
协议简单开放,支持RS-232/485及以太网(Modbus TCP)等物理层。