串口通信的原理是什么?Uart串口与RS232串口有什么区别?
串行接口是一种可以将接收来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接收的串行数据流转换为并行的数据字符供给CPU的器件。
更多
好的,我们来详细解释一下串口通信的原理以及 UART 和 RS232 的区别。
一、串口通信的原理
串口通信(Serial Communication)是一种逐位(bit by bit) 地在通信线路上传输数据的技术。它的核心原理是异步通信,这意味着通信双方不需要共享一个统一的时钟信号来严格同步数据位的时序。相反,它依赖于事先约定好的参数来协调数据的发送和接收。
关键要素和原理
-
约定参数(通信协议):
- 波特率: 这是通信速度,表示每秒传输的符号数(Symbols per second)。因为一个符号通常代表一个二进制位(bit),所以波特率在数值上通常等于比特率(bps - bits per second)。例如,9600 波特率表示每秒传输 9600 个 bit。收发双方必须设置相同的波特率!
- 数据位: 指定每个数据包中包含的有效数据位数(通常是 5、6、7 或 8 位)。最常见的是 8 位(一个字节)。
- 停止位: 在每个数据包结束处发送的信号位,用于标识数据包的结束,同时给接收方留出处理时间。通常是 1 位、1.5 位或 2 位。最常见的是 1 位。
- 奇偶校验位(可选): 一个用于检测传输过程中单比特错误的冗余位。可以是无校验、奇校验或偶校验。
-
数据包格式: 每次传输一个“字符”或“数据帧”的基本结构如下(以最常见 8-N-1 格式为例):
[空闲状态 高电平] ----> [起始位 (0)][D0][D1][D2][D3][D4][D5][D6][D7][奇偶校验位 (可选)] ----> [停止位 (1)][停止位 (可选)] ----> [下一个起始位或空闲]- 起始位: 数据包的开头标志。通信线路在空闲状态下保持高电平(逻辑 1)。发送方通过从高电平切换到低电平(逻辑 0)并维持一个 bit 时间来表示数据包开始传输。这个低电平脉冲就是起始位。这是接收方检测传输开始的唯一信号!
- 数据位: 紧跟在起始位后,按照低位在前(LSB First) 或高位在前(MSB First) 的顺序(通常 LSB First)发送有效数据位。
- 奇偶校验位: (如果启用)根据数据位计算出的校验位,用于错误检测。
- 停止位: 在数据(和可能有的校验位)之后发送的高电平信号(逻辑 1),用于标记数据包的结束。它帮助接收器完成接收操作并为下一个数据包做准备,也有助于将通信线恢复到空闲状态(高电平)。时长可以是 1、1.5 或 2 个比特时间。
-
发送过程:
- 发送端检测到需要发送数据。
- 当通信线路处于空闲状态(高电平)时,发送端拉低线路一个比特时间,发送起始位 (0)。
- 发送端按照约定好的顺序(通常是低位在前)逐个发送数据位(从低到高或从高到低),每个位维持一个比特时间。
- (如果启用)发送端计算并发送奇偶校验位,维持一个比特时间。
- 发送端拉高通信线路,发送停止位 (1),维持约定的比特时间(1、1.5 或 2)。
- 线路回到空闲高电平状态(或准备发送下一个起始位)。
-
接收过程(核心难点:异步采样):
- 接收端持续监测通信线路。
- 当检测到线路从高电平跳变到低电平时,将其识别为起始位的开始。
- 接收端启动一个本地定时器,其间隔基于约定的波特率(一个比特时间的宽度)。
- 在每个比特时间的中间点(大约在起始位下降沿之后的 1.5 个比特时间,以及之后每隔一个比特时间)对线路进行采样。这是最关键的异步机制:接收方在起始位下降沿后,以自己的本地时钟为基准,在每个位的中间点读取线路电平值。
- 在起始位采样点:如果检测到的是低电平,则确认起始位有效。
- 在数据位采样点:读取值为对应的数据位(0 或 1)。
- 在奇偶校验位采样点:读取并验证(如果启用)。
- 在停止位采样点:期望采样到高电平,否则可能表示数据传输错误或帧错误。
- 重复步骤 4 直到所有数据位、可能的校验位和停止位被采样。
- 收到的数据位组合成一个完整的数据单元(如一个字节)。
- 线路恢复到空闲状态,接收端继续等待下一个起始位的下降沿。
总结原理要点:
- 逐位传输: 数据是串行地一位一位地在通信线上流动。
- 异步性: 无需独立时钟线,依赖事先约定的波特率。
- 帧结构: 用起始位标志帧开始,用停止位标志帧结束和恢复空闲状态。
- 采样同步: 接收方在起始位下降沿后,依靠自己的本地时钟,在每个比特位时间的中间点采样线路状态来识别数据位。
- 约定一致: 通信双方必须采用完全相同的波特率、数据位长度、停止位长度和奇偶校验设置(如果有)才能正确通信。
二、UART 串口与 RS232 串口的区别
UART 和 RS232 描述的是串口通信中不同层面上的概念,经常一起使用,但存在本质区别:
-
UART (Universal Asynchronous Receiver/Transmitter) 通用异步收发器
- 是什么? UART 是一种芯片或微控制器内部的硬件模块(有时也指实现该功能的软核)。
- 功能? UART 负责串行化 (Parallel-to-Serial) 和并行化 (Serial-to-Parallel) 转换。它将微控制器内部并行传输的字节数据(比如 8 位同时出现)逐位(串行) 地发送出去;同时也将逐位(串行) 接收到的数据组合(并行为) 成完整的字节给微处理器处理。
- 逻辑电平? UART 输出的原始信号是TTL/CMOS 逻辑电平:
- 逻辑低电平 0:0V (或接近 0V,如 < 0.8V)
- 逻辑高电平 1:3.3V 或 5V (或其他系统电压)
- 范围? UART 负责板上或近距离设备间(通常是几厘米到一两米)的逻辑信号转换。
- 关注点? 数据帧格式、波特率生成、串并行转换。
-
RS232 (Recommended Standard 232) 推荐标准 232
- 是什么? RS232 是一种定义物理接口特性(电气特性和机械特性)的通信标准。
- 功能? RS232 规定了通信线上的信号电平、连接器类型、引脚定义等物理层规范。
- 逻辑电平? RS232 使用反逻辑和高电压差分:
- 逻辑低电平 0(也称为“Mark”):+3V 到 +15V
- 逻辑高电平 1(也称为“Space”):-3V 到 -15V
- 它定义了更宽的电压范围(+3V 到 +15V 为 0, -3V 到 -15V 为 1)来增强抗干扰能力和延长通信距离(理论上可达几十米)。
- 范围? RS232 的目标是解决设备间较长距离(相对UART的TTL电平而言)的通信问题,使其不易受噪声干扰。
- 关注点? 如何通过电缆稳定可靠地传输代表 0 和 1 的电平信号。
核心区别总结
| 特性 | UART | RS232 |
|---|---|---|
| 本质 | 逻辑器件/功能模块 (负责串并转换和帧控制) | 物理层标准 (定义电压、连接器等) |
| 作用层次 | 偏重数据链路层(帧格式、串/并控制) | 纯粹物理层(线缆上的电压、接口) |
| 信号电平 | TTL/CMOS电平 (0: ~0V, 1: +3.3V/+5V) | 反逻辑电平 (0: +3V to +15V, 1: -3V to -15V) |
| 主要目的 | 完成微控制器内的串行数据收发功能 | 解决远程通信(相对TTL距离)的电平和干扰问题 |
| 依赖关系 | UART 不依赖 RS232也能工作(在近距离) | RS232接口必须使用UART (或类似逻辑)作为核心 |
| 常见组合 | 电路板上的 TX/RX 引脚提供 UART(TTL) |
UART + RS232转换芯片 = "RS232串口" |
关键联系和常见应用
- 通常说的“电脑后面的串口(DB9母口)”或者“RS232串口线”,指的是符合RS232标准的物理接口。
- 在这个接口内部,必然有一个UART芯片(或其功能) 来处理数据帧的控制和串并转换。
- 连接电脑DB9串口与嵌入式设备的UART(TTL)时,必须使用一个RS232转换芯片(如MAX232、SP3232等)。
- 这个芯片的作用是:
- 在发送端:将 UART 输出的 TTL 电平 (0V/3.3V/5V) 转换成 RS232 要求的 负逻辑电平 (低电平0 -> +5 to +15V, 高电平1 -> -5 to -15V),并通过 DB9 连接器的 TX 引脚发送出去。
- 在接收端:将 RS232 线路上接收到的 负逻辑电平 (+5 to +15V -> 0, -5 to -15V -> 1) 转换回 UART 可以识别的 TTL 电平 (接近 0V / 3.3V/5V),通过 RX 引脚输入给 UART。
- 现代很多开发板(如 Arduino, Raspberry Pi 的 GPIO 引脚)上直接引出的标注为
TX,RX的引脚,提供的就是 UART 的 TTL 电平信号。这时候如果连接到另一个同样使用 TTL 电平的设备,可以直接连接(TX -> RX, RX -> TX, GND -> GND),不需要 RS232 转换,并且只能用于非常近距离的连接。如果要连接到标准的 DB9 RS232 接口,就必须经过一个 RS232 电平转换芯片。
简单一句话记忆区别: UART 是“思想”(怎么做串行通信),RS232 是“语言”(用什么电压和插头来表达思想),TTL 是 UART 默认的“说话方式”(小声、近距离),而 RS232 电平则是另一种更响亮的“说话方式”(大声、远距离)。
7天热门专题
换一换
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 芯片的工作原理是什么?
- ssd是什么意思
- 什么是蓝牙?它的主要作用是什么?
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- dtmb信号覆盖城市查询
- 怎样挑选路由器?
- 华为芯片为什么受制于美国?
- 元宇宙概念股龙头一览
- type-c四根线接法图解
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- BLDC电机技术分析
- 复位电路的原理及作用
- dsp是什么意思?有什么作用?
- iphone13promax电池容量是多少毫安
- 苹果无线充电器怎么使用?
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 传感器常见类型有哪些?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机