搜索
bottom↓
回复: 25

W5500怎么仿串口做流控机制?

[复制链接]

出0入0汤圆

发表于 2018-6-26 16:36:23 | 显示全部楼层 |阅读模式
问题如下:
我应用程序以W5500做服务器,PC做上位机,现在问题是这样的,当我的应用程序buff满了之后,怎么通知客户端(PC),停止发送数据,当buff能接收数据后,又发送一个包给客户端,说可以继续发送了!

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

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2018-6-26 16:57:40 | 显示全部楼层
不要沉啊,在线急等

出0入89汤圆

发表于 2018-6-26 17:29:56 | 显示全部楼层
你这个要有多大的数据啊,pc上处理不过来?

出0入0汤圆

 楼主| 发表于 2018-6-26 17:33:14 | 显示全部楼层
youkebing 发表于 2018-6-26 17:29
你这个要有多大的数据啊,pc上处理不过来?

不是PC处理不过来,是PC发送太快,我的设备处理不过来,需要一个机制,让PC发送的速度不超过设备接收包接收的速度

出0入89汤圆

发表于 2018-6-26 17:34:41 | 显示全部楼层
Mrjiang 发表于 2018-6-26 17:33
不是PC处理不过来,是PC发送太快,我的设备处理不过来,需要一个机制,让PC发送的速度不超过设备接收包接 ...

是用tcp协议?

出0入0汤圆

发表于 2018-6-26 17:35:56 | 显示全部楼层
自己走一个应用层协议呗。

出0入0汤圆

 楼主| 发表于 2018-6-26 17:37:01 | 显示全部楼层

是一个W5500芯片,它芯片走的是TCP协议

出0入0汤圆

 楼主| 发表于 2018-6-26 17:38:27 | 显示全部楼层
浮华一生 发表于 2018-6-26 17:35
自己走一个应用层协议呗。

现在就是想自己做个应用层,想了一天,就是没有思路,所以就问问大家

出0入89汤圆

发表于 2018-6-26 17:41:20 | 显示全部楼层
Mrjiang 发表于 2018-6-26 17:37
是一个W5500芯片,它芯片走的是TCP协议

其实,如果是tcp处理起来很简单
你只要在5500端按照一定的速度来读就可以了

出0入0汤圆

 楼主| 发表于 2018-6-26 17:44:32 | 显示全部楼层
youkebing 发表于 2018-6-26 17:41
其实,如果是tcp处理起来很简单
你只要在5500端按照一定的速度来读就可以了 ...

嗯嗯,目前就是不知道怎么去处理,怎么让对方停下来,毕竟我应用程序的buff是有限的,满了就不能再收了

出0入0汤圆

发表于 2018-6-26 17:44:35 | 显示全部楼层
Mrjiang 发表于 2018-6-26 17:38
现在就是想自己做个应用层,想了一天,就是没有思路,所以就问问大家

自己搞应用层还不好说,你让他发多少他就得发多少,不让他发他就不能发,不听话就不理他

出0入0汤圆

 楼主| 发表于 2018-6-26 17:46:04 | 显示全部楼层
modbus 发表于 2018-6-26 17:44
自己搞应用层还不好说,你让他发多少他就得发多少,不让他发他就不能发,不听话就不理他 ...

兄弟啊,要的就是这样的效果,关键是怎么去实现,

出0入89汤圆

发表于 2018-6-26 17:51:55 | 显示全部楼层
Mrjiang 发表于 2018-6-26 17:44
嗯嗯,目前就是不知道怎么去处理,怎么让对方停下来,毕竟我应用程序的buff是有限的,满了就不能再收了 ...

你满了,他自然就不能再发了,这个是tcp协议决定的,你不用担心

出0入0汤圆

 楼主| 发表于 2018-6-26 18:04:06 | 显示全部楼层
youkebing 发表于 2018-6-26 17:51
你满了,他自然就不能再发了,这个是tcp协议决定的,你不用担心

呃呃,它现在就是一直往下发,TCP我知道有相应的机制,就是不知道这个芯片的流控机制是什么?该怎么去实现它?

出0入0汤圆

发表于 2018-6-26 18:10:32 | 显示全部楼层
Mrjiang 发表于 2018-6-26 18:04
呃呃,它现在就是一直往下发,TCP我知道有相应的机制,就是不知道这个芯片的流控机制是什么?该怎么去实 ...

应用层每收到一次数据 可以回应一下 还能接收好多, 满了的话, 客户端可以暂停一下 然后发送个查询帧给服务器看看数据处理得怎么样了,可不可以继续发送

出0入89汤圆

发表于 2018-6-26 19:21:58 | 显示全部楼层
Mrjiang 发表于 2018-6-26 18:04
呃呃,它现在就是一直往下发,TCP我知道有相应的机制,就是不知道这个芯片的流控机制是什么?该怎么去实 ...

这个是tcp的机制,你不读5500的数据,最后另外一端一定是发送失败的

出870入263汤圆

发表于 2018-6-27 09:03:21 | 显示全部楼层
Mrjiang 发表于 2018-6-26 18:04
呃呃,它现在就是一直往下发,TCP我知道有相应的机制,就是不知道这个芯片的流控机制是什么?该怎么去实 ...

你单片机不去读5500,它会自己发给单片机?

出0入0汤圆

发表于 2018-6-27 09:44:02 | 显示全部楼层
那你做客户端让对方做服务端,你发申请她才会给你服务,反过来你当服务员就只能听客户了。

出0入0汤圆

发表于 2018-6-27 09:52:44 | 显示全部楼层
应用层定一个协议,服务器收一包,响应ACK,客户端收到响应ACK,然后再发一包数据,以此类推。

出90入4汤圆

发表于 2018-6-27 20:08:20 来自手机 | 显示全部楼层
应用层自定义协议,从机应答,并把剩余空间发给主机

出0入0汤圆

 楼主| 发表于 2018-6-28 14:31:56 | 显示全部楼层
xuyaqi 发表于 2018-6-27 09:44
那你做客户端让对方做服务端,你发申请她才会给你服务,反过来你当服务员就只能听客户了。 ...

做的服务器      

出0入0汤圆

 楼主| 发表于 2018-6-28 14:33:03 | 显示全部楼层
openmcu666 发表于 2018-6-27 09:52
应用层定一个协议,服务器收一包,响应ACK,客户端收到响应ACK,然后再发一包数据,以此类推。 ...

主要是想兼容一些软件,所以尽量从我们这边解决

出0入0汤圆

 楼主| 发表于 2018-6-28 14:35:23 | 显示全部楼层
john78 发表于 2018-6-27 20:08
应用层自定义协议,从机应答,并把剩余空间发给主机

呃呃,其实就是当W5500收满之后,怎么关闭接收,然后当数据取完之后,在打开接收,目前没有找到相应的寄存器,供应商技术支持也很水,没有办法解决

出0入4汤圆

发表于 2018-6-28 16:46:19 | 显示全部楼层
TCP本身支持流控。。。 但是比较复杂。。。

出0入0汤圆

发表于 2018-6-28 21:13:12 | 显示全部楼层
这样试下,看下是否有效?有数据从PC发过来,应该有中断通知,假如BUFF满了,在这个中断里不去读数据那些,只做个有数据待处理的标志,这样做,应该会把接收窗口减小到0,然后PC端就会等到设备端的接收窗口不是0的时候再发数据过来,然后应用程序处理完一定的数据后,BUFF可以再接收数据的时候,判断那个标志,假如有待处理的数据,就仿照中断里读数据的方法读数据,然后把这个标志清了

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-4-27 08:41

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

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