电脑间通过串口传输数据【串口练习】

一、串口通信概述

串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节。

串行接口简称为串口,串行接口 (Serial Interface)是指数据一位一位地顺序传送。实现双向通信就需要一对传输线,即TX与RX线。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。

1. 串口如何连接

电路连接方式:
串口如果要实现双向传输,则设备1与设备2,TX与RX要交叉相连。
在这里插入图片描述
起始位: 数据线TX由高电平变为低电平。
停止位: 数据线TX由低电平变为高电平。

起始位和停止位作用:
  如果接收设备检测到数据线由高电平变为低电平,就是接收到了来自发送设备的起始信号,表示开始数据的传输。如果接收设备检测到数据线由低电平变为高电平,就是接收到了来自发送设备的停止信号,表示一帧数据的结束,通过以上特点接收设备就可以将中间的8bit有效数据解析出来,这样就完成了一帧数据的传输。

2. 如何计算波特率

串口传输格式:我们通常用的串口传输格式为:1bit起始位+8bit数据位+1bit停止位(无奇偶校验位),如下图所示
在这里插入图片描述
所以传输1Byte数据串口需要传输10bit数据。上面计算得传输1Bit需要的时间为8.68us,则传输1Byte需要时间为8.68*10=86.8us。

波特率
  由基础知识知50M系统时钟—波特率为115200条件下传输1bit需要计数个数为434。那么1Byte(串口传输格式为:1bit起始位+8bit数据位+1bit停止位)是不是循环计数10次434就可以传输完毕。

要注意的是,串口通信的两台主机之间,波特率要一致,下面两图演示了波特率一致与不一致的情况

收发波特率一致:
在这里插入图片描述

收发波特率不一致:
在这里插入图片描述
计算公式
以波特率115200为例

波特率115200 = 115200 (位/秒)。

如果没有校验位,就应该除以 10,得到的是每秒字节数:波特率115200 = 115200 (位/秒) = 11520 (字节/秒)

再除以 1024,就是每秒 KB 数:波特率115200 = 115200 (位/秒) = 11.25 (KB/秒)。如果有一位奇偶校验位,就应该除以 11,得到的是每秒字节数。

最后得出:波特率115200 = 115200 (位/秒) = 10.27 (KB/秒)

二、实验演示

1. 实验设备

  • 两个USB TO TTL
  • 两台PC机
  • 杜邦线若干
  • 串口助手软件

2. 实际电路连接

连接方法与之前的理论一致,解法见下表,电源可以不接,可以通过电脑供电。

USB TO TTL 1 USB TO TTL 2
TX RX
RX TX
GND GND
3V3 3V3

在这里插入图片描述
实际接线如下图
在这里插入图片描述

3. 通过串口传输数据

按照上示连接好了之后,连接两台电脑,打开各自电脑的串口助手,并打开串口
在这里插入图片描述
在这里插入图片描述
1. 选择一个文件进行传输
这里我选择传输一张2.11Mb的jpg文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/4c3f75b2c2bf4fd2b8ce47f7c59e7482.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAdHlfc2o=,size_20,color_FFFFFF,t_70,g_se,x_1
2. 计算理论传输时间
在串口助手打开了文件之后,显示文件大小为2220595字节

在这里插入图片描述
根据之前给出的计算公式,理论传输时间为216秒
在这里插入图片描述
3. 实际传输对比

开始传输后,发送端与接收端分别显示如下
在这里插入图片描述
在这里插入图片描述
传输完成后

在这里插入图片描述
传输时,使用手机同步计时,实际的传输时间为4*60+31=271秒,比理论计算的216秒与系统给出的理论实践200秒都要长,说明实际上通过串口传输的速率没办法达到理论峰值。
在这里插入图片描述

三、总结

本次实验通过两个usb to ttl在两台pc机之间进行了大文件的传输,并对文件大小进行预算,根据大小估算了理论计算时间,再将理论与实际时间进行对比,实验结果表明,串口的实际传输速率是要低于理论速率的。本次实验的过程总体来说还是比较顺利,接线也比较简单,但是其实背后的一些底层原理还没有那么清晰,所以以后还需要继续接着学习、动手实践。

参考文献

串口是怎样传输数据的
什么是波特率,波特率怎么计算
【转】波特率计算串口速度

版权声明:本文为CSDN博主「ty_sj」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yeye3333/article/details/121283552

生成海报
点赞 0

ty_sj

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

4路红外循迹模块使用教程

4路红外循迹模块使用教程 个人原创博客:点击浏览模块详细信息: 工作电压:DC 3.3V~5V 工作电流:尽量选择1A以上电源供电 工作温度:-10℃~50℃ 安装孔

拉绳位移传感器在接线时需要注意哪几点?

拉绳位移传感器在接线时需要注意哪几点? 1、拉绳位移传感器在接线时务必确认在电源关闭的情况下进行接线,接线应采用锡焊工艺,各引脚应焊接牢固,避免虚焊情况发生。焊接各引脚时应严格按照传感器厂

实验一 stm32F407VETx点亮流水灯

二、设计指标 使电路板上的8个LED轮流点亮,并按键控制点亮速度。 三、操作 1、CubeMX操作 1.1依据开发板LED引脚设置CubeMX中8个LED的引脚为GPIO_Output模式, 2、按键设置

初试——串口传输文件

一、实验概述 串口传输文件的练习。将两台笔记本电脑,借助 usb转rs232 模块和杜邦线,建立起串口连接。然后用串口助手等工具软件(带文件传输功能)将一台笔记本上的一个大文件&#xff