CH392F TCP客户端调试问题

1、CH392F支持10M以太网,实际收发速率最大能达到多少?下图是我能跑出的最快速度,但只能坚持两三分钟,这个速度在正常范围内吗?偏高还是偏低?

微信图片_20240831204337.png

2、CH392F接收缓冲区支持调节大小吗?

3、CH392F手册中说到的查询发送队列指令:GET_SEND_QUEUE(0x60),这条指令支持吗?我没有找到相关API函数。

4、CH392F默认的TCP MSS是多少字节?536个字节吗?有查询指令吗?

5、实际做TCP客户端测试,服务器每次向CH392F送字节数超过536个字节时,CH392F会没有反应,监控发现是MCU从CH392F中读取数据时,CH392F没有数据输出,这可能是什么原因造成的?

6、当CH392F接收缓存满了之后,如果MCU并没有读取也没有清除接收缓存,CH392F会怎么处理后续网络到来的数据?会把对应的Socket关闭吗?同样,如果CH392F发送队列是满的状态,MCU仍然继续对其写入发送数据,CH392F会怎么处理?会关闭对应的Socket端口吗?

7、MCU对CH392F写入发送数据,单次最多可写入多少字节?也就是内部的发送队列长度是多少?没查到相关参数?每次只能等SINT_STAT_SENBUF_FREE中断来了,MCU才能执行写入数据,但应该写入多少字节数据呢?


您好:

1.CH392F支持串口、spi两种通讯接口,实际通信的速度受限于多种因素,如:串口波特率/spi时钟频率、字节间的延时间隔、测试数据包的数据量及发送间隔、socket的工作模式等。可以将您的测试条件邮件告知一下,我这边实际测试看看。

2.CH392F的接收缓冲区配置可以参考手册5.38章节

3.官网例程中,有对发送队列的相关操作。(如EXAM_TCPClient例程中,main.c文件中169行以及CH392CMD.c文件中840行)

4.CH392F默认的TCP mss为536字节,暂不支持修改和查询。

5.对于第五点问题,根据您的描述可以判断下392F是否有产生接收中断以及可以通过wireshark抓个包看一下。可以把抓包邮件发来看一下(邮箱:lq@wch.cn)

6.(1)如392F默认socket0的接收缓冲区为2144字节,当接收满2144字节且没有及时取出时,后续给392发的数据将不在接收,直到接收缓冲区中的数据被取出。并不会有关闭socket的操作。

(2)CH392F执行发送时,必须在产生发送缓冲区非空这个中断后才可发送下一包数据。如果socket使用数量大于队列数,则还需加上对可用队列数的判断。

image.png

image.png

7.手册对于各个工作模式下的发送机制有详细说明,可以参考手册8.2章节

image.png

手册及EVT例程:/search?t=all&q=392

后续有其他问题也可邮件交流。


请给我个邮箱地址,谢谢!


您好,可以发邮件到 lq@wch.cn 这个邮箱。


只有登录才能回复,可以选择微信账号登录