目录
串口通信基本原理
设备之间的通信方式一般为:并行通信、串行通信两种。
串行通信分类:
1.按数据传送方向分为:
- 单工:只支持数据在一个方向上传输;
- 半双工:允许数据在两个方向传输,但是在某一时刻只允许一个方向,它实际上是一种切换方向的单工通信;
- 全双工:允许数据同时在两个方向上传输。
2.按通信方式分为:
- 同步通信:带时钟同步信号传输,如SPI、IIC通信接口。
- 异步通信:不带时钟同步信号,如UART(通用异步收发器)、单总线。
在同步通讯中,收发设备上方会使用一根信号线传输信号,在时钟信号的驱动下双方进行协调,同步数据。例如,通讯中通常双方会统一规定在时钟信号的上升沿或者下降沿对数据线进行采样。
在异步通讯中不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些用于同步的信号位,或者将主题数据进行打包,以数据帧的格式传输数据。通讯中还需要双方规约好数据的传输速率(也就是波特率)等,以便更好地同步。常用的波特率有4800bps、9600bps、115200bps等。
串口、RS-232、RS-485
串口、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电平)。
(1)物理接口形式
串口:串口是一个泛称,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模块)
(2)电平标准
UART(通用异步收发传输器),负责处理数据总线和串行口之间的串/并、并/串转换,并规定了帧格式;通信双方只要采用相同的帧格式和波特率,就能在未共享时钟信号的情况下,仅用两根信号线(Rx 和Tx)就可以完成通信过程,因此也称为异步串行通信。
若加入一个合适的电平转换器,UART就能用于RS-232、RS-485通信,或与计算机端口连接。
从某种意义上,可以说,线路上存在的仅仅是电流,RS232/RS485规定了这些电流在什么样的线路上流动和流动的样式;在UART那里,电流才被解释和组装成数据,并变成CPU可直接读写的形式。
TTL与CMOS:
我们进行串口通信的时候,从单片机直接出来的基本都是TTL电平。
TTL电平:全双工
硬件框图如下,TTL用于两个MCU间通信。
标准输入电压为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
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)
硬件框图如下,RS-232用于MCU和PC机间通信。
(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针杜邦头。
在电路板上常见,经常上边还带有杜邦插针。还有时候有第五根针,3.3V电源端。
嵌入式里边说的串口,一般指UART口。UART有4个pin(VCC、GND、RX、TX),用的TTL电平,低电平为0(0V),高电平为1(3.3V或以上)。
这种接口的协议只有两种:RS-232和RS-485,不会是TTL。一般只接出RXD、TXD两针,外加GND。
芯片与PC机(或上位机)相连:通常PC机(或上位机)使用的是RS232接口,故要想使芯片与PC机的RS232接口直接通信,需要先经过电平转换电路实现TTL电平与RS232电平之间的转换。
版权声明:本文为CSDN博主「woshizuopie」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/woshizuopie/article/details/122912527
目录
串口通信基本原理
设备之间的通信方式一般为:并行通信、串行通信两种。
串行通信分类:
1.按数据传送方向分为:
- 单工:只支持数据在一个方向上传输;
- 半双工:允许数据在两个方向传输,但是在某一时刻只允许一个方向,它实际上是一种切换方向的单工通信;
- 全双工:允许数据同时在两个方向上传输。
2.按通信方式分为:
- 同步通信:带时钟同步信号传输,如SPI、IIC通信接口。
- 异步通信:不带时钟同步信号,如UART(通用异步收发器)、单总线。
在同步通讯中,收发设备上方会使用一根信号线传输信号,在时钟信号的驱动下双方进行协调,同步数据。例如,通讯中通常双方会统一规定在时钟信号的上升沿或者下降沿对数据线进行采样。
在异步通讯中不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些用于同步的信号位,或者将主题数据进行打包,以数据帧的格式传输数据。通讯中还需要双方规约好数据的传输速率(也就是波特率)等,以便更好地同步。常用的波特率有4800bps、9600bps、115200bps等。
串口、RS-232、RS-485
串口、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电平)。
(1)物理接口形式
串口:串口是一个泛称,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模块)
(2)电平标准
UART(通用异步收发传输器),负责处理数据总线和串行口之间的串/并、并/串转换,并规定了帧格式;通信双方只要采用相同的帧格式和波特率,就能在未共享时钟信号的情况下,仅用两根信号线(Rx 和Tx)就可以完成通信过程,因此也称为异步串行通信。
若加入一个合适的电平转换器,UART就能用于RS-232、RS-485通信,或与计算机端口连接。
从某种意义上,可以说,线路上存在的仅仅是电流,RS232/RS485规定了这些电流在什么样的线路上流动和流动的样式;在UART那里,电流才被解释和组装成数据,并变成CPU可直接读写的形式。
TTL与CMOS:
我们进行串口通信的时候,从单片机直接出来的基本都是TTL电平。
TTL电平:全双工
硬件框图如下,TTL用于两个MCU间通信。
标准输入电压为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
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)
硬件框图如下,RS-232用于MCU和PC机间通信。
(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针杜邦头。
在电路板上常见,经常上边还带有杜邦插针。还有时候有第五根针,3.3V电源端。
嵌入式里边说的串口,一般指UART口。UART有4个pin(VCC、GND、RX、TX),用的TTL电平,低电平为0(0V),高电平为1(3.3V或以上)。
这种接口的协议只有两种:RS-232和RS-485,不会是TTL。一般只接出RXD、TXD两针,外加GND。
芯片与PC机(或上位机)相连:通常PC机(或上位机)使用的是RS232接口,故要想使芯片与PC机的RS232接口直接通信,需要先经过电平转换电路实现TTL电平与RS232电平之间的转换。
版权声明:本文为CSDN博主「woshizuopie」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/woshizuopie/article/details/122912527
暂无评论