- 串口通信
- UART在硬件中通常以一个独立的集成电路(IC)或作为更大芯片(如MCU、SoC)中的一个内部外设模块的形式存在。它的核心功能是进行并转串和串转并的转换,并处理通信协议
- 串行/并行通信

- 虽然并行一次能传更多数据,但随着速度提升,多条线之间的信号同步和相互干扰(串扰)变得极其难以处理。而串行通信虽然一次只传一位,但可以通过大幅提高时钟频率来轻松超越并行通信,且布线简单,成本低。现代高速总线(如USB,PCI-E,SATA)都是串行通信
- 通信模式
- 单工模式(Simplex Communication):主机间通信时如果一方固定为发送端另外一方固定为接收端,通过一根总线实现数据通信。这种通信方式就像是你只能听别人说话,但无法回答他们一样,只能单向传递信息。
- 半双工通信(Half-Duplex Communication):是一种通信方式,其中数据传输可以在两个方向之间交替进行,但不能同时进行。换句话说,通信双方可以既发送数据又接收数据,但不能同时进行这两种操作。比方说,就像你可以和别人交替说话和倾听对方说话一样。当你在说话时,对方在听你说:当对方在说话时,你在倾听对方。这种方式允许双方之间在发送和接收数据之间切换,但不能同时进行。半双工通信常用于对话式交流和一些简单的通信场景中。
- 全双工通信(Full-Duplex Communication):是一种通信方式,其中数据传输可以同时在两个方向进行,允许通信双方同时发送和接收数据,实现双向通信。就像打电话一样,你可以同时说话也可以听对方说话,双方可以同时进行数据传输,实现双向沟通
- 串口通信
- 异步串口通信
- 特点:不需要时钟信号线。发送和接收双方依靠预先约定好的波特率(BaudRate)来同步时序
- 要求:双方必须严格使用相同的波特率、数据位、停止位、校验位等参数
- 缺点:由于时钟不可能完全一致,长时间传输可能会有微小误差积累,因此不适合极高速和超长数据包传输
- 同步串口通信
- 特点:有一根专用的时钟信号线(CLK)。发送方在传输数据的同时,会发送一个时钟信号。接收方利用这个时钟边沿来采样数据线,同步精度极高
- 串口通信的核心参数
- 配置串口通信时,必须确保通信双方使用相同的参数,否则数据会乱码。这些参数构成了我们常说的"数据帧格式"
- 作为常用的串行通信方式,以TTL为例,串口通信在不同主机之间的数据格式为:

- 校验位分为奇校验,偶校验和无校验。奇校验是指确保数据位加上校验位中"1",1的总数为奇数;偶校验是指确保数据位加上校验位中"1",1的总数为偶数;
- 为保证下一个字节发送前的起始位能够表现出来,校验位之后发送一个停止位1
- 波特率(Baud Rate):
- 表示每秒传输的符号个数,可粗略理解为传输速率(比特率,bps)
- 常见值:9600,19200,38400,115200等。
- 115200的波特率意味着每位数据宽度大约为1/115200
- 奇偶校验位(Parity Bit):
- 可选值:
- Even:偶校验,数据位+校验位中"1"的个数为偶数
- Odd:奇校验,数据位+校验位中"1"的个数为奇数
- 常用配置缩写:8N1(8位数据位,无校验,1位停止位),这是最常用的配置
- 物理接口
- UART本身是TTL电平(OV表示0,3.3V/5V表示1),传输距离很短(通常不超过一米)。为了进行远距离、抗干扰的串口通信,人们定义了各种物理层标准
- RS-232:
- 经典的老式"串口"或"COM口"。使用负逻辑(-3V~-15V表示1,+3V~+15V表示0)使用DB9或DB25接口
- RS-485:
- 采用差分信号传输(用两条线AB之间的电压差表示0和1),抗共模干扰能力极强
- 传输距离可达千米以上,并支持多点总线(一个主机可带多个从机)
- USB转串口(USB to UART TTL):
- 现代计算机没有原生串口,通常使用USB转串口芯片(如CH340,CP2102,FT232)来模拟一个串口,输出的是TTL电平的UART信号