硬件是STM32+ENC28J60。没有用操作系统。PC做为TCP客户端,STM32做为TCP server。在PC连接上之后,STM32主动发数据。
现在的问题是:
1、如果我们发送快一点,发送一两次之后,就无法继续发送了;
2、如果修改成收到ACK再发送,发现发送速度非常慢,大概1s也就4次左右;如果要做成连续发,又不根据ack来,该怎么来做呢?我的理解是应该有一个发送窗口,发的时候可以连续发,收到ACK之后就释放发送缓冲区
LWIPOPT.h中的几项主要配置如下:
#define MEM_ALIGNMENT 4
#define MEM_SIZE (8 * 1024)
#define MEMP_NUM_PBUF 10
#define MEMP_NUM_UDP_PCB 10
#define MEMP_NUM_TCP_PCB 5
#define MEMP_NUM_TCP_PCB_LISTEN 10
#define MEMP_NUM_TCP_SEG 12
#define MEMP_NUM_SYS_TIMEOUT 5
#define PBUF_POOL_SIZE 8
#define PBUF_POOL_BUFSIZE 1550
请教各位大侠,如果要加快发送速度,该如何处理呢?
|