最近在测试ESP8266WIFI转串口的速率时发现,设置的波特率到最高,但与理论上计算的传输速度相差甚远。目前仍没有找到准确合理的解释。

测试说明:

ESP8266通过USB TO TTL(芯片为CH340)连接到PC,在PC上用USR-TCP232-Test软件建立TCP Server(UDP也可),ESP8266通过WIFI与PC连接到同一网关的路由,用sscom5.12.1控制ESP8266,发送AT指令,如设置波特率(AT+UART_CUR=9600,8,1,0,0)(数据位8bit,停止位1bit,无校验,无流控),设置透传(AT+CIPMODE=1),建立连接(AT+CIPSTART="TCP","192.168.3.110",8000),开始发送数据(AT+CIPSEND),发送音频文件(大小6640305字节,6.33M,就是一首流行歌的大小,发送音频文件主要是方便查看稳定时的速度,避免文件过小,一下子就发送完了),用360流量防火墙查看下载速度。

各种波特率下的传输速度如下:

波特率为9600时,稳定时下载速度约为0.9KB/S;

波特率为19200时,稳定时下载速度约为1.8~1.9KB/S(平均值取1.85KB/S);

波特率为38400时,稳定时下载速度约为3.8KB/S;

波特率为76800时,稳定时下载速度约为6.2-8.2KB/S(此时下载速度经常变化,7.5KB/S为中间值);

波特率为115200时,稳定时下载速度约为8.5KB/S;

波特率为153600时,稳定时下载速度约为10.5-14.2KB/S(较多在11.4KB/S);

波特率为192000时,稳定时下载速度约为14.2-17.1KB/S(基本在14.2和17.1这两个速率变化);

波特率为230400时,稳定时下载速度约为14.2-17.1KB/S(基本在14.2和17.1这两个速率变化);

波特率为460800时,稳定时下载速度约为14.2-17.1KB/S(基本在14.2和17.1这两个速率变化);

由此可见,在波特率为9600~38400之间,波特率的增长倍数与传输速率的增长倍数基本相同,但是在波特率大于192000以上时,传输速率基本没有任何提高。

若以(起始位1bit(必须的,隐藏位,与之前计算有所更正),数据位8bit,停止位1bit,无校验,无流控)计算,

波特率为9600时,理论下载速度为9600/10/1024=0.9375KB/S;(实际与理论值基本相符)

波特率为19200时,理论下载速度为19200/10/1024=1.875KB/S;(实际与理论值基本相符)

波特率为38400时,理论下载速度为38400/10/1024=3.75KB/S;(实际与理论值基本相符)

波特率为76800时,理论下载速度为76800/10/1024=7.5KB/S;(实际与理论值基本相符)

波特率为115200时,理论下载速度为115200/10/1024=11.25KB/S;(实际与理论值相差较大)

波特率为153600时,理论下载速度为153600/10/1024=15KB/S;(实际与理论值相差较大)

波特率为192000时,理论下载速度为19200010/1024=18.75KB/S;(实际与理论值相差较大)

波特率为230400时,理论下载速度为230400/10/1024=22.5KB/S;(实际与理论值相差较大)

波特率为460800时,理论下载速度为460800/10/1024=45KB/S;(实际与理论值相差较大)

从115200开始,实际传输速率与理论上计算的传输速率相差较大,至于为什么波特率大于192000以上时,传输速率基本没有任何提高,目前仍没有找到准确合理的解释。怀疑是受到PC上接收串口数据的缓冲器大小所限制?

另外,若通过USR-TCP232-Test软件发送同样的音频文件(大小6640305字节,6.33M)到ESP8266接收,则最大上传速度为4KB/S,

波特率为9600时,则通常为接收16KB后即停止接收;

波特率为19200~192000时,通常为接收20KB后即停止接收;

但有时不会停止接收,若停止接收,已接收数据量均为4KB的倍数。

怀疑是ESP8266上接收数据缓冲器的大小为4KB?

(后经大神指点,原来是USR-TCP232-Test这个软件右下角有一个发送间隔XXX毫秒的设置,将其改短一点即可提高上传速度,在UDP传输时可以改得很短,例如3ms,但是在TCP传输时要注意模块是否来得及接收,若PC上传速度过快,模块来不及接收,将会停止接收。原以为这个发送间隔只是对循环发送相同的数据有效。)

若有大神知道个中道理请指点一二,谢谢!

QQ邮箱:81590509@qq.com

关于ESP8266WIFI转串口的速率问题(含测试数据)相关推荐

  1. 【cs229-Lecture2】Linear Regression with One Variable (Week 1)(含测试数据和源码)

    从Ⅱ到Ⅳ都在讲的是线性回归,其中第Ⅱ章讲得是简单线性回归(simple linear regression, SLR)(单变量),第Ⅲ章讲的是线代基础,第Ⅳ章讲的是多元回归(大于一个自变量). 本文的 ...

  2. BUAA(2021秋)计算机硬件基础(软件学院计组)P4——用Logisim实现流水线CPU(含测试数据供自测)

    计算机硬件基础(软件学院计组)P4--用Logisim实现流水线CPU 目录 计算机硬件基础(软件学院计组)P4--用Logisim实现流水线CPU 实验内容 实验要求 提交要求 题解 前言及其预备知 ...

  3. 快速人体姿态估计:CVPR2019论文阅读

    快速人体姿态估计:CVPR2019论文阅读 Fast Human Pose Estimation 论文链接: http://openaccess.thecvf.com/content_CVPR_201 ...

  4. RabbitMQ—性能测试

    线上环境出现问题,由于某数据上报接口的大量请求,导致rabbitmq的消息队列中Ready消息超过300W条,rabbitmq挂掉 一.信息确认 确认线上数据库配置 线上数据库几主几从,多少个分库 数 ...

  5. 图---邻接矩阵 建立,深度遍历,广度遍历

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 图的存储 ...

  6. 【测绘程序设计】——空间直角坐标转换

      测绘工程中经常遇到空间直角坐标转换--比如,北京54(或西安80)空间直角坐标转换成CGCS2000(或WGS-84)空间直角坐标,常用转换模型包括:①布尔沙模型(国家级及省级范围):②莫洛坚斯基 ...

  7. 软件配置管理工程师(SCM)

    软件配置管理(Software Configuration Management,SCM)是一种标识.组织和控制修改的技术.软件配置管理应用于整个软件工程过程. 在软件建立时变更是不可避免的,而变更加 ...

  8. 功能测试学习笔记【资料来源:B站黑马测试】

    链接:软件测试第一篇_测试理论_Linux数据库_超详细教程_哔哩哔哩_bilibili 一.测试的基本知识 软件测试:通过手工或自动化的方式运行被测的软件是否正常(看预期结果和实际结果是否一致). ...

  9. joomla之T3框架使用教程1----安装

    项目 说明 官网 http://www.t3-framework.org/ T3 Package https://github.com/t3framework/t3/releases/tag/v2.7 ...

最新文章

  1. Xdebug的安装-(无错可执行版)
  2. nacos 配置中心和注册中心依赖后报错,提示 org.apache.http.impl.client.HttpClientBuilder 这个类找不到
  3. 如何准备电赛?19年电赛经验总结!
  4. php计算经纬度距离,php经纬度计算距离
  5. 数据结构是如何装入 CPU 寄存器的?
  6. 超算和服务器性能,烽火GPU高性能服务器助力武大超算中心建设
  7. Java中多态、抽象类和接口
  8. spark原理和spark与mapreduce的最大区别
  9. 读《白话统计》笔记——第七章
  10. 1-7华为HCNA认证eNSP基础B
  11. 百度如流智能工作平台2.0发布 聚焦智能组织
  12. 我的世界服务器插件文件夹,各位大神服务器没有插件文件夹怎么办
  13. lia人是什么意思_Lia[莉雅,]的中文翻译及英文名意思
  14. vcm驱动芯片原理_每周一品 · 音圈电机(VCM)中的磁性材料
  15. 华为服务器维修报告,服务器运维报告
  16. Java8-使用stream.sorted()对List排序
  17. 教您一招解决Word不能复制粘贴问题
  18. B2C大点名:国内B2C网站收集(更新至2009年6月2日)
  19. 斑马条码打印机的手动设置方法
  20. 洛谷刷题笔记 打印 ASCII 码

热门文章

  1. javascript ClientId用法
  2. docker打jdk 1.8镜像
  3. 【C 语言之项目实战】生成随机数并排序(详细版)
  4. Pix4飞控硬件平台框架(一)
  5. PXE高效网络装机与Kickstart无人值守
  6. $.ajax传递数组的两种方式
  7. Linux JKD1.8 安装及配置
  8. onblur事件不支持冒泡的解决办法
  9. 图像的平均梯度AG,信息熵IE,峰值信噪比PSNR,平均值,SSIM(matlab)
  10. Flume-----八种采集方案