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

一、串口通信概述

串口通信(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 1USB TO TTL 2
TXRX
RXTX
GNDGND
3V33V3

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

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

参考文献

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

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值