学习嵌入式的第四十二天——ARM——UART
1、什么是单工,半双工,全双工通信?
单工:在整个通信过程中,只能一方发送,另一方接收
定义
数据只能单向传输,即从 “发送端” 到 “接收端”,接收端无法向发送端反馈数据,通信链路是 “单向不可逆” 的。
核心特点
- 只有一条单向信道,无需考虑 “冲突”(因接收端不发送数据)。
- 发送端和接收端的角色固定:发送端只负责发,接收端只负责收。
半双工:在同一时刻,只能一方发送,另一方接收,但是在通信过程中双方身份可以互换
定义
数据可以双向传输,但不能同时双向传输—— 同一时间内,通信链路只能允许一个方向的数据流动,发送端和接收端需 “交替” 工作(即 “发的时候不能收,收的时候不能发”)。
核心特点
- 共享一条信道(或一组信道),需通过 “分时复用” 实现双向通信(即 “轮流占用信道”)。
- 存在 “冲突风险”:若两端同时发送数据,会导致信号叠加、数据丢失,因此需额外机制避免冲突(如 “载波监听”)。
全双工:在同一时刻,通信双方既可以发送,也可以接收,收发互不影响
定义
数据可以同时双向传输—— 发送端和接收端能 “同时” 发送和接收数据,相当于存在 “两条独立的单向信道”(一条用于 A→B,一条用于 B→A),通信链路是 “双向同步” 的。
核心特点
- 有两条独立信道(或一条信道分为两个子信道),无需 “分时复用”,发送和接收可并行进行。
- 无 “冲突风险”(因双向数据走不同信道),通信效率最高,适用于需要 “实时交互” 的场景。
2、什么是串行通信,什么是并行通信?
串行:通信数据只能一个bit一个bit的传输
定义
数据通过一条传输线路(或一对线路)逐位传输,即一个数据字节(通常 8 位)需要分成 8 次,按顺序一位一位地发送,接收端再逐位拼接还原成完整数据。
核心特点
- 线路少:只需 1 条(或 2 条,含地线)传输线,硬件成本低、布线简单。
- 逐位传输:数据位按时间顺序依次发送(比如先传最高位,再传次高位,最后传最低位),需要严格的 “时序同步”(发送端和接收端需约定传输速率,确保对齐每一位)。
- 抗干扰强:由于线路少,长距离传输时信号间的 “串扰”(不同线路信号互相干扰)风险低,适合远距离通信。
- 速度限制:理论上单次只能传 1 位,速率受限于单条线路的信号频率(但现代技术可通过提高单路频率弥补,如高速串行接口)。
并行:通信数据可以多个bit同时传输
定义
数据通过多条独立的传输线路同时传输,即一个数据字节(8 位)可以通过 8 条线路同时发送,一次完成整个字节的传输。
核心特点
- 线路多:需要与数据位数相同(或更多)的线路(如 8 位数据需 8 条数据线,通常还需额外的时钟线、地线),硬件成本高、布线复杂。
- 多位并行传输:多个数据位(如 8 位、16 位)同时发送,理论上速度是同频率串行通信的 N 倍(N 为线路数)。
- 抗干扰弱:线路密集时,信号间 “串扰” 严重(尤其高频传输时);且长距离传输中,不同线路的信号延迟差异会导致 “数据错位”(同步困难),因此仅适合短距离。
- 速度优势有限:虽然单次数据传得多,但受限于串扰和同步问题,实际速率难以无限提升(高频下反而不如优化后的串行通信)。
3、
异步:通信双方没有链接时钟线,必须提前规定收发速率
定义
发送端和接收端不需要共享时钟信号,双方可以使用各自独立的时钟(只要时钟频率在允许范围内接近即可)。数据以 “离散的帧(Frame)” 为单位传输,每个帧的开头和结尾会添加 “起始位” 和 “停止位” 作为标记,告诉接收端 “数据开始了” 和 “数据结束了”。
核心特点
- 无共享时钟:双方时钟可独立运行(允许一定误差,通常 ±5% 以内),硬件实现简单。
- 帧格式标记:每个数据帧(如一个字节)的结构固定,例如 “1 位起始位(低电平)+8 位数据位 + 1 位停止位(高电平)”,通过这些标记让接收端识别数据边界。
- 传输有间隔:帧与帧之间可以有任意时长的空闲时间(接收端等待下一个起始位即可),无需连续传输。
- 容错性较强:即使时钟有微小偏差,因每帧长度短(通常 10-11 位),偏差不会累积到导致数据错误的程度,适合长距离、中低速率场景。
同步:通信双方有时钟线链接,可以通过相同时钟来执行操作
定义
发送端和接收端使用同一个时钟信号(或严格同步的时钟) 来协调数据传输节奏,双方在 “统一的时间节拍” 下收发数据。数据以 “连续的数据流” 形式传输,无需额外标记分隔单个数据单元(如字节),接收端通过时钟信号的节拍来判断每一位数据的开始和结束。
核心特点
共享时钟:发送端和接收端必须保持时钟同步(可以是发送端提供时钟,也可以是双方通过锁相环等技术实现时钟对齐)。
连续传输:数据像 “流水” 一样连续发送,没有额外的间隔或标记(除非传输结束),效率高。
无额外标记:不需要用 “起始位 / 停止位” 等标记来分隔数据,数据密度更高(每一位都是有效数据)。
对同步要求极高:若时钟出现微小偏差,累积后可能导致数据错位(比如把 “101” 错读成 “110”),因此适合短距离、高速率场景。
两者的本质是 **“如何解决收发双方的节奏对齐问题”**:
同步通信靠 “共享时钟” 实现严格对齐,适合高速、短距离、对效率要求高的场景(如芯片内部通信);
异步通信靠 “数据帧标记” 实现松散对齐,适合低速、长距离、对硬件成本敏感的场景(如串口、网络通信)。
4、串口通信属于哪一类?
异步,全双工,串行
5、串口通信的电器表达有哪些?
串口通信的 “电气表达”,本质是指其在电气层面的实现规范—— 包括信号电平定义、传输方式(单端 / 差分)、接口形式、抗干扰能力等核心特性。不同的电气规范决定了串口通信的传输距离、稳定性和适用场景,其中最主流、最常用的是 RS-232、RS-485、RS-422 三大标准,此外还有面向芯片级短距离通信的 TTL 串口。
一、主流串口通信的电气规范详解
1. RS-232(EIA RS-232):短距离单端传输标准
RS-232 是最早普及的串口电气标准,主要用于设备间短距离点对点通信(如早期电脑与调制解调器、打印机的连接),核心特点是 “单端传输”(信号相对于地电平定义)。
核心电气特性:
- 信号电平定义(与 “逻辑电平” 反向):
- 逻辑 “1”:-3V ~ -15V(负电平);
- 逻辑 “0”:+3V ~ +15V(正电平);
- 注意:电压范围需超出 ±3V 才被视为有效信号,±3V 之间为 “不确定区域”(避免噪声误判)。
- 传输方式:单端传输(信号通过一根线传输,参考 “地(GND)” 电平);
- 传输距离与速率:
- 标准速率下(≤20kbps),最大传输距离约 15 米;
- 速率越高,距离越短(如 115.2kbps 时,距离通常<5 米);
- 抗干扰能力:弱(单端传输易受共模干扰,如电源线噪声、地线波动);
- 接口形式:经典为 DB9 接口(9 针公头 / 母头),部分设备用 DB25(25 针,现已极少);
- 典型引脚(DB9):仅需 3 根核心线即可通信(其他为控制信号,非必需):
- 2 脚(RXD):接收数据;
- 3 脚(TXD):发送数据;
- 5 脚(GND):公共地线;
- 适用场景:短距离点对点设备连接(如电脑与调试模块、老式串口打印机)。
2. RS-485(EIA RS-485):工业级差分传输标准
RS-485 是为解决 RS-232“传输近、抗干扰弱” 问题设计的工业级标准,核心特点是 “差分传输”(通过两根线的电压差定义信号),支持多节点组网(一台主机连接多台从机)。
核心电气特性:
- 信号电平定义(差分电压):
- 逻辑 “1”:B 线电压 - A 线电压 > +200mV(即 B>A);
- 逻辑 “0”:B 线电压 - A 线电压 < -200mV(即 A>B);
- 无需参考地电平(仅依赖 A、B 线的压差),抗共模干扰能力极强;
- 传输方式:差分传输(通过两根双绞线:A 线(DATA-)、B 线(DATA+));
- 传输距离与速率:
- 低速下(≤100kbps),最大传输距离可达 1200 米;
- 高速下(10Mbps),距离缩短至 15 米(速率与距离成反比);
- 抗干扰能力:强(差分传输可抵消共模噪声,适合工业现场复杂电磁环境);
- 节点数:最多支持 32 个节点(通过中继器可扩展至更多);
- 双工模式:默认半双工(需通过 “收发控制引脚(DE/RE)” 切换发送 / 接收状态),部分芯片支持全双工(需额外增加一对差分线);
- 接口形式:无固定接口,工业中常用 端子台(方便接双绞线),或兼容 DB9 接口;
- 典型引脚:A(DATA-)、B(DATA+)、GND(可选,增强稳定性);
- 适用场景:工业现场组网(如传感器、PLC、变频器之间的通信)、长距离数据采集(如楼宇自控、智能电表抄表)。
3. RS-422(EIA RS-422):全双工差分传输标准
RS-422 与 RS-485 同属差分传输标准,但核心差异是支持全双工通信(无需切换收发状态),主要用于 “点对点或一点对多点(仅接收)” 场景。
核心电气特性:
- 信号电平定义:与 RS-485 完全一致(依赖 A、B 线差分电压,±200mV 阈值);
- 传输方式:差分传输,但需 两对差分线(分别用于发送和接收):
- 发送端:TX+(B1)、TX-(A1);
- 接收端:RX+(B2)、RX-(A2);
- 传输距离与速率:与 RS-485 接近(低速 1200 米,高速 15 米);
- 抗干扰能力:强(同差分传输机制);
- 节点数:仅支持 “1 个发送端 + 最多 10 个接收端”(不支持多节点发送,无法组网,仅点对点或 “一主多从接收”);
- 双工模式:全双工(发送和接收独立,可同时进行);
- 适用场景:需要实时双向通信的短距离工业场景(如 PLC 与伺服驱动器、高精度传感器的高速数据交互)。
4. TTL 串口:芯片级短距离通信标准
TTL 串口并非 “正式工业标准”,而是芯片内部或板间短距离串行通信的电气规范(如单片机、FPGA、模块间的通信),核心是 “低电压单端传输”。
核心电气特性:
- 信号电平定义(与 “逻辑电平” 一致,分 5V/3.3V 两种):
- 5V TTL:逻辑 “1”=4.0V~5.0V,逻辑 “0”=0V~0.8V;
- 3.3V TTL:逻辑 “1”=2.4V~3.3V,逻辑 “0”=0V~0.4V;
- 传输方式:单端传输(依赖 GND 为参考);
- 传输距离与速率:
- 速率≤115.2kbps 时,最大距离仅 1~3 米(超短距离);
- 速率越高,距离越短(如 1Mbps 时<1 米);
- 抗干扰能力:极弱(低电压信号易受噪声影响,仅适合板内或相邻板间通信);
- 接口形式:无固定接口,通常为 “杜邦线引脚”(如 Arduino 的 TX/RX 引脚、模块的排针);
- 典型引脚:TX(发送)、RX(接收)、GND(地);
- 注意事项:TTL 电平与 RS-232 电平不兼容(前者低电压,后者正负高压),需通过 “电平转换芯片”(如 MAX232)转换后才能互通;
- 适用场景:芯片级通信(如单片机与 GPS 模块、蓝牙模块的板间连接)。