新手入门
- 积分
- 10
- 金钱
- 10
- 注册时间
- 2018-3-13
- 在线时间
- 45 小时
|
10金钱
最近在做一个基于单片机STM32F407+以太网芯片DP83848K的网口传输,参考原子哥的例程,用UCOSIII和LWIP实现了单片机作为TCP服务端,并实现了可以接入多个客户端。
目前是接入了3个客户端,单片机会分别往3个不同的客户端上传输不同类型的数据,上传的速率分别是1024B/100ms、128B/100ms、256B/100ms,当我只接入单个客户端的时候,单个的都不会丢包,但是当我接入2个或者3个的时候,就会出现丢包,我想请问下各位坛友这和LWIP相关配置有关系吗?
另外我上传的3种类型的数据都是从另一个单片机2传输过来的,两个单片机之间是通过FIFO芯片进行传输,程序建立了一个读取FIFO存储内容的任务;当接入单个客户端时,单片机2调试信息发送了1000次,则FIFO任务调试信息也是读取了1000次,但是接入多个客户端的时候,单片机2调试信息发送了1000次,而FIFO任务调试信息只读取了950次左右,这会是客户端传输的任务占用CPU时间太长,导致FIFO读取的任务执行少了吗。我客户端传输任务是每当传输完就挂起,当FIFO读取到对应数据时再回复。
以下是我lwipopts.h的相关设置
#define SYS_LIGHTWEIGHT_PROT 1
#define NO_SYS 0
#define MEM_ALIGNMENT 4
#define MEM_SIZE 1024*25
#define MEMP_NUM_PBUF 128
#define MEMP_NUM_UDP_PCB 6
#define MEMP_NUM_TCP_PCB 10
#define MEMP_NUM_TCP_PCB_LISTEN 6
#define MEMP_NUM_TCP_SEG 256
#define MEMP_NUM_SYS_TIMEOUT 16
#define PBUF_POOL_SIZE 16
#define PBUF_POOL_BUFSIZE 2048
求助各位坛友!!
|
|