搜索
bottom↓
回复: 35

ESP8266作为TCP Client的数据包发送频率能达到多少?

[复制链接]

出0入0汤圆

发表于 2016-7-14 21:28:02 | 显示全部楼层 |阅读模式
如题,  我用stm32f411+8266作为TCP Client, 测试发送一包数据用时接近700ms,  这个是否不正常?      也就是说,不停的发送,1s都发送不了2包数据。如果用来实时控制,这样控制频率也太低了,不到2hz呀。   

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2016-7-15 07:29:51 来自手机 | 显示全部楼层
stm 8266之间怎么连接?

出0入0汤圆

发表于 2016-7-15 08:47:29 | 显示全部楼层
不正常。
ESP8266 程序设计得当的话可以传 200KByte / second
非常轻松。最多可以去到 900K 左右。

你是做 TCP 还是 UDP? ESP8266 有个要注意的,
在 send_cb 回调用以前不能发新的数据包。
所以比较快的方式是写个循环缓冲等 send_cb 的
时候接受数据。本质上就是要用两个 buffer。


出0入0汤圆

发表于 2016-7-15 09:12:01 | 显示全部楼层
肯定有问题,这也太慢了

出0入0汤圆

 楼主| 发表于 2016-7-15 12:48:24 | 显示全部楼层
panjun10 发表于 2016-7-15 07:29
stm 8266之间怎么连接?

串口连接

出0入0汤圆

 楼主| 发表于 2016-7-15 12:50:48 | 显示全部楼层
helislayer 发表于 2016-7-15 08:47
不正常。
ESP8266 程序设计得当的话可以传 200KByte / second
非常轻松。最多可以去到 900K 左右。

数据包倒是不大,小于20字节, 就是发送频率需要提高些。 因为是做实时控制。

出0入0汤圆

发表于 2016-7-15 13:08:35 | 显示全部楼层
helislayer 发表于 2016-7-15 08:47
不正常。
ESP8266 程序设计得当的话可以传 200KByte / second
非常轻松。最多可以去到 900K 左右。

你这个是原生SDK开发吧。

出0入0汤圆

 楼主| 发表于 2016-7-15 13:42:15 | 显示全部楼层
helislayer 发表于 2016-7-15 08:47
不正常。
ESP8266 程序设计得当的话可以传 200KByte / second
非常轻松。最多可以去到 900K 左右。

是做TCP client, 电脑端做 TCP server

出0入0汤圆

发表于 2016-7-15 18:21:23 | 显示全部楼层
huangqi412 发表于 2016-7-15 13:08
你这个是原生SDK开发吧。

这个是用那个 C 的 non os 的 SDK 开发的。

一般 stm32 和 ESP8266 如果用串口的话可以
做到 460800 的波特率。但是发送代码就要比较小心细致写了
才能完全不丢包。网上比较流行的用 task 的来接收 uart 的方
式不够快,表现为偶尔出现 task 调用不够及时,uart 的 fifo 就
满了丢数据了。用完全中断的驱动来读 fifo 就可以解决 task
调度不够及时的问题。

更高的波特率我试过会出乱码。

出0入0汤圆

发表于 2016-7-15 18:53:52 | 显示全部楼层
jxx315315 发表于 2016-7-15 13:42
是做TCP client, 电脑端做 TCP server

你是用 C 开发的还是发 AT 指令?

出0入0汤圆

发表于 2016-7-16 14:00:56 | 显示全部楼层
helislayer 发表于 2016-7-15 18:53
你是用 C 开发的还是发 AT 指令?

楼主肯定是用AT方式的,

出0入0汤圆

发表于 2016-7-16 15:27:15 | 显示全部楼层
huangqi412 发表于 2016-7-16 14:00
楼主肯定是用AT方式的,

用 AT 指令的话能做的东西比较弱是有可能的。
另外 AT 指令发送数据某个地方有20ms 的时间
限制。要看具体文档说明。我不用 AT 所以帮不
太上忙。

出0入0汤圆

 楼主| 发表于 2016-7-17 16:44:51 | 显示全部楼层
helislayer 发表于 2016-7-16 15:27
用 AT 指令的话能做的东西比较弱是有可能的。
另外 AT 指令发送数据某个地方有20ms 的时间
限制。要看具 ...

能否帮忙上传下esp8266的文档, 我咋在网上找不到?   都是些应用资料

出0入0汤圆

发表于 2016-7-17 16:48:19 | 显示全部楼层
要快还是用upd

出0入0汤圆

发表于 2016-7-17 16:56:22 | 显示全部楼层

ESP8266 上面 UDP 反而不快,
因为 ESP8266 的 RAM 非常有限,所以能够
缓冲的 UDP 包有限,超过 3 个就开始丢包了。
按照协议 UDP 是可以被丢包的,然后就丢了。
实际测试还是 TCP 传输数率快。

出0入0汤圆

发表于 2016-7-17 17:00:13 | 显示全部楼层
jxx315315 发表于 2016-7-17 16:44
能否帮忙上传下esp8266的文档, 我咋在网上找不到?   都是些应用资料

你要什么文档?

最新的文档都在这里下载,非常全。

https://espressif.com/en/support/download/documents

然后 SDK 我就是用这个, Linux 下面的:
https://github.com/pfalcon/esp-open-sdk

如果有帮助我可以把我的 setup 脚本放上来。
主要下了 github 以后还有一堆依赖包。


出0入0汤圆

发表于 2016-7-18 21:00:58 | 显示全部楼层
我已经把这个做成透传的了,串口转WIFI,非AT命令的

出0入0汤圆

发表于 2016-7-19 00:05:24 | 显示全部楼层
zjtzlqr 发表于 2016-7-18 21:00
我已经把这个做成透传的了,串口转WIFI,非AT命令的

透传有开源的项目,不过实现不是特别好。
支持不了 460800 bps 不丢包。
要 460800 不丢包需要我说的中断加双缓冲处理。

出0入0汤圆

发表于 2016-7-19 07:33:16 来自手机 | 显示全部楼层
有直接做成透傳的資訊嗎?
头像被屏蔽

出0入0汤圆

发表于 2016-7-19 09:48:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2016-7-21 19:12:12 | 显示全部楼层
g921002 发表于 2016-7-19 07:33
有直接做成透傳的資訊嗎?


我已经做出来了

出0入0汤圆

发表于 2016-7-21 22:11:23 | 显示全部楼层
很有用的讨论,谢谢。

出0入0汤圆

发表于 2016-8-8 15:10:35 | 显示全部楼层
helislayer 发表于 2016-7-15 08:47
不正常。
ESP8266 程序设计得当的话可以传 200KByte / second
非常轻松。最多可以去到 900K 左右。

请问,这个模块,到底最高到多少波特率呢。
AT手册是这样的

而用户手册是这样的,


我自己测试,921600bps能运行,就是偶尔出错。改为115200就稳定了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2016-8-8 15:21:50 | 显示全部楼层
helislayer 发表于 2016-7-15 08:47
不正常。
ESP8266 程序设计得当的话可以传 200KByte / second
非常轻松。最多可以去到 900K 左右。

200KByte/second是内部产生数据的吗?如果用串口发数据给ESP8266,即使最高波特率也达不到这个性能。

出0入0汤圆

发表于 2016-8-8 15:46:55 | 显示全部楼层
lihui_mc 发表于 2016-8-8 15:10
请问,这个模块,到底最高到多少波特率呢。
AT手册是这样的

首先,我不用 AT 那个 firmware。
我是用 C 自己对 NON RTOS 的 SDK 写的。
最高可以用的是 115200 * 4 = 460800。
再高那个串口波形就不对了,开始有 bad frame 这些。
ESP8266 可以有硬件的 I2S,那个速率可以很快的。
但是接口不是官方支持的,是别人试出来的。
我自己测的那个 200KByte 是外部数据,但是不是串口。
串口就是 460800 是我可以用的不丢包的速率。
当然程序是比较仔细严谨设计过的。按照网上示范
的程序是做不到这个速率完全不丢包的。

出0入0汤圆

发表于 2016-9-24 19:58:05 | 显示全部楼层
helislayer 发表于 2016-8-8 15:46
首先,我不用 AT 那个 firmware。
我是用 C 自己对 NON RTOS 的 SDK 写的。
最高可以用的是 115200 * 4 = ...

你好,我想咨询一下,如果我想用ESP8266下载个几十kb的文件如果用SDK的话怎么做,是发GET请求资源吗?

出0入0汤圆

发表于 2016-9-25 00:31:45 | 显示全部楼层
nzk123 发表于 2016-9-24 19:58
你好,我想咨询一下,如果我想用ESP8266下载个几十kb的文件如果用SDK的话怎么做,是发GET请求资源吗? ...

随便啊,你用 SDK 就和用 socket 差不多,可以不用 htttp 协议,
直接用 TCP 写。 SDK 的api 不是socket。主要表现为一次只能
有一个数据包,你发送一个包网络部分没有处理完之前不能发第二个。

出0入0汤圆

发表于 2016-9-25 18:07:28 | 显示全部楼层

既然串口连接,那么波特率设置的是9600么

出0入0汤圆

发表于 2016-9-25 22:17:38 | 显示全部楼层
helislayer 发表于 2016-9-25 00:31
随便啊,你用 SDK 就和用 socket 差不多,可以不用 htttp 协议,
直接用 TCP 写。 SDK 的api 不是socket ...

我目前的想法是这样的,先建立TCP连接,然后发送GET请求资源,下载的数据就会在注册的接收回调函数中下发下来,但是这个文件比较大,一下子接收到十几kb,我怎么存储啊。我记得TCP不是字节流协议吗,按我理解应该是我发了GET请求后,我可以分几次下载,次数和大小都由自己定,这个怎么实现啊,我对网络这块也是一知半解,麻烦详细说一下,或者能否留个联系方式,我再请教。

出0入0汤圆

发表于 2016-9-26 03:21:34 | 显示全部楼层
nzk123 发表于 2016-9-25 22:17
我目前的想法是这样的,先建立TCP连接,然后发送GET请求资源,下载的数据就会在注册的接收回调函数中下发 ...

esp8266 只有 40 K 左右可以用的RAM, SDK 要占用一些。
你如果要一次下载 40K 文件会有问题。你要想好如何在线
处理你的数据。
注册 espconn 以后会有个回调函数,有数据到来就调用
你的回调函数来接受数据。一次回调最多2K 左右。

出0入0汤圆

发表于 2016-9-26 03:22:19 | 显示全部楼层
如果你对网络很不熟悉的话建议还是找个人帮你开发吧。

出0入0汤圆

发表于 2016-9-26 16:42:25 | 显示全部楼层
helislayer 发表于 2016-9-26 03:21
esp8266 只有 40 K 左右可以用的RAM, SDK 要占用一些。
你如果要一次下载 40K 文件会有问题。你要想好如 ...

我现在想做的是一个外挂的MCU,通过ESP8266进行自身的升级,所以需要ESP8266来下载烧录文件,考虑到两种方法,一种是MCU通过AT命令发送http请求包,在请求包头中带上Range字段,这个可以每次下载一点,多次下载完,缺点是需要频繁发请求命令。另外一种方法是通过扩展AT命令的方法,发命令给ESP8266,让wifi芯片一次性通过http的GET方法下载,接收的数据存储在FLASH(不知道数据写FLASH的速度够不够快,是否能保证比回调函数下发的快),然后MCU再通过命令从FLASH中一点一点的读出。麻烦指点一下这两种方法哪种可行。我自己抱着学习的态度来做的,并不急着出产品,所以就不找人来代做了,找人代做还不如买市场上现成的模块了。

出0入0汤圆

发表于 2016-10-24 13:50:21 | 显示全部楼层
正想找wifi模块,看来太慢了不合用

出100入101汤圆

发表于 2016-10-24 15:27:22 | 显示全部楼层
做client,tcp连接能保持多长时间不掉线?

出0入0汤圆

发表于 2016-10-24 17:13:19 | 显示全部楼层
NJ8888 发表于 2016-10-24 13:50
正想找wifi模块,看来太慢了不合用

你指什么太慢了?,这类模块处理一些控制指令,是够快了。。。要传输图片之类的,就得等等了

出0入0汤圆

发表于 2016-10-24 18:53:40 | 显示全部楼层
wkman 发表于 2016-10-24 17:13
你指什么太慢了?,这类模块处理一些控制指令,是够快了。。。要传输图片之类的,就得等等了  ...

大块传输数据
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-19 11:31

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表