OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3565|回复: 1

阿波罗F429网络客户端试验大数据量稳定性测试(LWIP的RAW编程接口)

[复制链接]

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-10-10 15:35:57 | 显示全部楼层 |阅读模式
本帖最后由 zuozhongkai 于 2017-10-10 15:42 编辑

有客户反应说用阿波罗F429开发板做网络客户端试验的时候,当发送大数据量的时候会出现严重的丢数据现象。开发板只做接收,PC上的网络调试助手做为TCP服务器。
平台:阿波罗F429开发板。
例程:网络实验5 RAW_TCP客户端实验。


针对这个问题专门做了个测试小例程,F429开发板做TCP客户端,PC上的网络调试助手做TCP服务器。开发板完成的功能就是一个简易的网络转串口功能,当接收到服务器发送过来的网络数据的时候将其通过串口发送给串口调试助手。最终比较网络调试助手发送的数据量和串口调试助手接收到的数据量来判断数据丢失情况。

代码修改如下(完整的测试工程请看附件):

1、修改串口1的波特率为921600,如下图:
{AQ0HA5D6YDEO[OKE1FM{23.png

2、将接收到的网络数据通过串口发送出去。
直接在网络实验5 RAW_TCP客户端实验上修改,修改文件tcp_client_demo.c中的函数tcp_client_recv(),在此函数中添加网络转串口的代码,很简单,只需要将接收到的数据通过串口发送出去即可,通过函数UART1_Send_Data()来完成,代码如下:
KV44]WI@Q`BAPNCQ%ZBBQAD.png

函数UART1_Send_Data()就是最简单的串口数据发送,代码如下图:
Q)FY9WUHX`FPL@4IOFA0L)O.png

3、初步测试!
打开网络调试助手和串口调试助手,网络调试助手设置为TCP服务器模式,一次发送1500个字节的数据。当发送成功以后串口调试助手肯定也能接收到1500个字节的数据,测试结果如下图:
25D@$U7A[WU]]L5JV3$Z0(O.png

4、进行持续测试。
设置网络调试助手每1ms发送1500个字节,然后测试了两次,两次的结果如下图:
UX]I1@IWNTM2R}}B~EU1}BQ.png
可以看出上图中网络调试助手发送了4941000,串口调试助手也接收到了4941000字节的数据。说明没有丢数据。

(FRN7]7K%%RTMNU{SC02.png
继续发送,此时发送了12733500个字节的数据,串口调试助手也接收到了12733500个字节的数据。

结论:
经过上面的测试,在整个12.7M字节的数据发送过程中并没有数据丢失,当然了这并不是说数据丢失率为0,这是为了说明F429的TCP客户端试验在每毫秒1500个字节的数据发送中稳定性是可以的。如果要做到更高速度、更长时间的不丢数据那还是需要自己做数据校验算法的。例程只是给一个基本的能用的工程,更高的需求肯定是需要自己去实现的!

注意:做测试的时候可能会遇到串口显示乱码,可以提高串口波特率,或者网络调试助手发送十六进制的数据,串口调试助手也显示16进制的数据。因为串口调试助手默认显示的是字符串,TCP/IP协议栈是会进行分段处理,可能会将原来的一包完整的字符串给切开,导致显示出问题。本测试试验仅仅只做数据丢失测试









F429 RAW_TCP客户端网络 大数据量测试(网络转串口仅接收).zip

1.76 MB, 下载次数: 234

开往春天的手扶拖拉机
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

42

主题

297

帖子

0

精华

高级会员

Rank: 4

积分
994
金钱
994
注册时间
2016-7-22
在线时间
318 小时
发表于 2017-10-20 14:09:01 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 22:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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