目录
串口通信基本原理
串口、RS-232、RS-485
(1)物理接口形式
(2)电平标准
TTL与CMOS:
RS-232、RS-485、RS-422
串口形式
参考【STM32】串口通信基本原理
设备之间的通信方式一般为:并行通信、串行通信两种。
串行通信分类:
1.按数据传送方向分为:
2.按通信方式分为:
在同步通讯中,收发设备上方会使用一根信号线传输信号,在时钟信号的驱动下双方进行协调,同步数据。例如,通讯中通常双方会统一规定在时钟信号的上升沿或者下降沿对数据线进行采样。
在异步通讯中不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些用于同步的信号位,或者将主题数据进行打包,以数据帧的格式传输数据。通讯中还需要双方规约好数据的传输速率(也就是波特率)等,以便更好地同步。常用的波特率有4800bps、9600bps、115200bps等。
UART和RS232/RS485的关系是什么?
串口、COM口、UART口, TTL、RS-232、RS-485区别详解
首先,串口、UART口、COM口、USB口是指的物理接口形式(硬件)。
而TTL、RS-232、RS-485是指的电平标准(电信号)。
接设备的时候,一般只接GND RX TX。不会接Vcc或者+3.3v的电源线,避免与目标设备上的供电冲突。
PL2303、CP2102芯片是USB 转 TTL串口 的芯片,用USB来扩展串口(TTL电平)。
MAX232芯片是TTL电平与RS232电平的专用双向转换芯片,可以TTL转RS-232,也可以RS-232转TTL。
TTL标准是低电平为0,高电平为1(+5V电平)。RS-232标准是正电平为0,负电平为1(±15V电平)。
串口:串口是一个泛称,UART、TTL、RS232、RS485都遵循类似的通信时序协议,因此都被通称为串口。
UART接口:通用异步收发器(Universal Asynchronous Receiver/Transmitter),UART是串口收发的逻辑电路,这部分可以独立成芯片,也可以作为模块嵌入到其他芯片里,单片机、SOC、PC里都会有UART模块。
COM口:特指台式计算机或一些电子设备上的D-SUB外形(一种连接器结构,VGA接口的连接器也是D-SUB)的串行通信口,应用了串口通信时序和RS232的逻辑电平。
USB口:通用串行总线,和串口完全是两个概念。虽然也是串行方式通信,但由于USB的通信时序和信号电平都和串口完全不同,因此和串口没有任何关系。USB是高速的通信接口,用于PC连接各种外设,U盘、键鼠、移动硬盘、当然也包括“USB转串口”的模块。(USB转串口模块,就是USB接口的UART模块)
UART(通用异步收发传输器),负责处理数据总线和串行口之间的串/并、并/串转换,并规定了帧格式;通信双方只要采用相同的帧格式和波特率,就能在未共享时钟信号的情况下,仅用两根信号线(Rx 和Tx)就可以完成通信过程,因此也称为异步串行通信。
若加入一个合适的电平转换器,UART就能用于RS-232、RS-485通信,或与计算机端口连接。
从某种意义上,可以说,线路上存在的仅仅是电流,RS232/RS485规定了这些电流在什么样的线路上流动和流动的样式;在UART那里,电流才被解释和组装成数据,并变成CPU可直接读写的形式。
我们进行串口通信的时候,从单片机直接出来的基本都是TTL电平。
TTL电平:全双工
标准输入电压为5V的情况下 | ||
TTL | CMOS | |
输出 | L:<0.8V H:>2.4V |
L:<0.1Vcc H:>0.9Vcc |
输入 | L:<1.2V H:>2.0V |
L:<0.3Vcc H:>0.7Vcc |
区别 | 引脚悬空,默认高电平 | 引脚悬空,电平状态未知 |
电流控制型 | 电压控制型 | |
延迟<10ns | 延迟<50ns |
RS-232 | RS-485 | RS-422 | |
通信特点 | 点对点 短距离 低速 |
半双工 支持多机通讯 同一总线上最多可以挂接32个节点 |
多点通信,平衡传输 硬件上相当于两组RS-485 两个半双工RS-485构成一个全双工RS-422 |
传输速度 | 50~19200b/s | 100 kbit/s-10 Mbit/s | 同RS485 |
接口线 | 标准25条线 简化9条,DB-9接口 一般3~9条信号线就可以实现全双工通信 |
3根(A、B、G) | 4根信号线,两根发送,两根接收 |
逻辑电平 | -5V~-15 V(1) +5 V~+15 V(0) |
Voa–Vob < −200 mV(1) Voa–Vob > +200 mV(0) |
Voa–Vob < −6 V(1) Voa–Vob > +6 V(0) |
(1)RS-232(DB9连接器):
全双工(逻辑1:-15V-5V;逻辑0:3V-15V)
(2)RS-485:
- 数据采用差分传输方式,使用一对屏蔽双绞线A、B。
- RS-485只有两根信号线,所以是半双工,常用于总线网(类似于CAN网络拓扑)。
- 逻辑“1”:两线间的电压差为 +2~+6V;逻辑“0”:两线间的电压差为 -2~-6V。
- RS-485的数据最高传输速率为10Mbps 。
- RS485接口连接器采用DB-9的9芯插头座。
(3)RS-422:
电气性能与RS-485完全一样。
主要区别:RS-422有4根信号线,两根发送,两根接收。收与发是分开的,可以同时收和发,所以是全双工,常用于两个站之间的通信、星型网、环网。
一般见到的有两种标准:D型9针插头、4针杜邦头。
1.常见的4针串口:
在电路板上常见,经常上边还带有杜邦插针。还有时候有第五根针,3.3V电源端。
嵌入式里边说的串口,一般指UART口。UART有4个pin(VCC、GND、RX、TX),用的TTL电平,低电平为0(0V),高电平为1(3.3V或以上)。
2.D型9针串口(DB9):
这种接口的协议只有两种:RS-232和RS-485,不会是TTL。一般只接出RXD、TXD两针,外加GND。
USB转TTL:
USB转RS-232:
两个芯片之间的连接:TTL电平通信。
芯片与PC机(或上位机)相连:通常PC机(或上位机)使用的是RS232接口,故要想使芯片与PC机的RS232接口直接通信,需要先经过电平转换电路实现TTL电平与RS232电平之间的转换。