串口之双机通信


一、串口通信电平简介

(一)TTL标准电平

TTL指双极型三极管逻辑电路,市面上很多“USB转TTL”模块,实际上是“USB转TTL电平的串口”模块。这种信号0对应0V,1对应3.3V或者5V,与单片机、SOC的IO电平兼容。我们进行串口通信的时候从单片机直接出来的基本上都是TTL电平。

因为单片机通信接口的电平逻辑和PC机通信接口的电平逻辑不同,PC机上的通信接口有USB接口,相应电平逻辑遵照USB原则(输出5v);

而我们如果要实现电脑与单片机通信就需要一个USB转TTL模块
在这里插入图片描述

在这里插入图片描述

(二)Rs232标准

在这里插入图片描述
RS-232通信距离传输距离15m、最大位速率为20Kb/s
串口通信接口标准——RS232

在TXD和RXD数据线上:

(1)逻辑1的电平为-3V~-15V

(2)逻辑0的电平为+3~+15V的电压

在RTS、CTS、DSR、DTR和DCD等控制线上:

(1)信号有效(接通,ON状态)为+3~+15V的电压

(2)信号无效(断开,OFF状态)为-3~-15V的电压

如果我们计算机需要与RS232标准的设备通信,因为电气特性不一样,所以我们要用到USB转RS232模块

接线如下在这里插入图片描述
USB转串口模块

在这里插入图片描述
该电气标准的优点在于提高了抗干扰能力,增大了通信距离。

(三)Rs232标准与TTL标准的区别

在这里插入图片描述

TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。于是TTL电平的输入低电平的噪声容限就只有(0.8-0)/2=0.4V,高电平的噪声容限为(5-2.4)/2=1.3V。

RS -232的噪声容限为2V,接收器将能识别高至+3V的信号作为逻辑“0”,将低到-3 V的信号作为逻辑“1。

为何RS232中要(很奇怪的)用负电压表示逻辑高电平呢?

按理来说:

TTL用正电压(3.3V或5V)表示逻辑1,用0电压表示逻辑0,是相对来说,比较符合人类的逻辑的

但是,为何RS232却,很奇怪的,用负电压表示逻辑高电平==1呢?

那是因为:

此设计(用负电压表示逻辑1,正电压表示逻辑0)相对来说,更加:

  • 抗(外界的电磁)干扰
  • 抗外界的(电磁信号)噪音干扰
  • 抗(信号的)衰减
  • 使得和同样的TTL信号相比,RS232信号可以传输的更远

由此使得:

信号传输,相对更加稳定和可靠
TTL和RS232之间的详细对比

二、USB转TTL实现双机通信

(一)连线操作

在这里插入图片描述
接线操作

串口转TTL模块1的RX接串口转TTL模块2的TX
串口转TTL模块1的TX接串口转TTL模块2的RX
两者共地相连

(二)打开串口调试助手

这里要选择一个带文件传输功能的串口调试助手
设置波特率,准备一个要发送的文件

查看大小

在这里插入图片描述
在这里插入图片描述
可以看到文件大小为50634字节
理论时间:(50634*8)/115200+(50634/256)*0.001=3.197s

开始发送
在这里插入图片描述

实际用时:6.61s
在这里插入图片描述

保存接收到的文件
在这里插入图片描述
找到接收到的文件,并用图片方式打开
在这里插入图片描述

在这里插入图片描述


总结

在通过串口传输文件中,增大波特率可以提高传输速率,但是设定过大,但由于电平相对较低,容易受到干扰,并且TTL标准传输距离也相对较短、速度较慢,在工业领域,更多的采用是RS232、RS485标准,由于此次没有USB转RS232模块,所以我用USB转TTL模块实现双机通信替代。

参考

串口通信接口标准——RS232

TTL和RS232之间的详细对比

猜你喜欢

转载自blog.csdn.net/weixin_52288941/article/details/121308096
今日推荐