你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32F7 LWIP协议栈TCP速度测试

[复制链接]
STMCU小助手 发布时间:2021-12-17 12:05
和我最近测试的结果大致相同,STM32F7 上TCP 速率3Mbps左右。而之前我测试UDP,可以到30Mbps 以上。
" O5 Q$ d# o7 K1 d
7 E( w: M' H$ E1、测试目的$ }- w6 r* E0 c1 f9 r1 @$ L: l! S7 N
    在尽量保持硬件和软件一致的前提下,测试LWIP和DJYIP两个协议栈的TCP接收不同包的速度。
' n3 k- i  p. x& r! Q. ]: f2、测试方法; g3 ]- \* J& r" n% n* `
     用一块STM32F7的发送板,应用层无延迟调用TCP发送函数send(),不断发送不同大小的数据包,数据包大小范围64 ~ 1460byte,接收端每1秒统计接收到的数据包,交终端上显示接收的速度。(当然,运行LWIP和DJYIP的两块接收板,运行在相同的主频,协议栈的pbuf缓冲、TCP接收窗口大小、优先级等一致。)   
! m# B7 E- P! _' l9 a3、软硬件平台4 W; c, X! W  T( M) K$ p3 c  i
     硬件平台9 T" d7 C$ g1 [$ `- y4 Y
LWIP        DJYIP
; f, C5 U( a/ o运行板件        ST官方板STM32756G-EVAL2        STM32F7核心板( e$ l3 x1 I$ ^6 g
运行主频        200MHz        200MHz% \, J, j, c' g7 {
连接方式        与发送板直连        与发送板直连) }3 a: d7 w1 c9 }3 \4 g
编译调试        MDK        eclipse
: `; V7 ?6 B# P, l     软件平台
6 w2 X" X9 p0 ]! }8 iLWIP        DJYIP
4 d+ N- b2 u* f" X7 C- F3 V  i" I网络驱动接收方式        中断        中断& b, o4 k) [# @- Z. H% i5 G
pbuf大小        16kbytes        16kbytes
# ]$ Q/ R7 _. RTCP窗口      
! H  B; d' T: n7 s2048( L, y$ l2 z% [7 D) N5 }5 f) g
2048# M7 j; p' S- ^: t
    其中,运行在STM32756G-EVAL2的LWIP的软件代码,是直接从ST官方下载的STM32Cube_FW_F7_V1.6.0版本固件库,
% t* Y8 X2 d. \1 R/ m编译运行在MDK5.12.! e+ l2 z; G7 p( B; y6 D8 V  `

- A4 Q9 o2 ^& E/ ~. p' ?4、测试步骤

, S6 J7 {0 D5 ^    (1)源码编写及修改+ g4 ^$ W& l9 y# B
             主要是比较基础的socket编程,发送板作为TCP客户端,两块接收板作为TCP服务器,客户端板建立TCP连接后,一直
* ^7 @& j$ {8 b$ K& [; c' N4 E发送程序,服务器一直接收TCP数据,并统计接收速度。1 f  [8 w1 n( f- j- C9 H1 h/ w
              对STM32Cube_FW_F7_V1.6.0源码中LWIP的配置,需要修改lwipopts.h,主要修改了如下两行代码1 Z+ ^; N1 u/ b! e! t6 {
  1. #define PBUF_POOL_SIZE          11//8# T! f3 B  O& o' Q0 X
  2. #define TCP_WND                 2048//(2*TCP_MSS)4 Z- {, B, `( f8 X
  3.     (2)客户端发送2 `5 Z2 d* j% d& _6 ^6 |
  4.        while(1)   
    : O; X0 i  n0 O& y. a& P
  5.       {
    * m0 p. H7 {% |1 @* W
  6.             byMsgBuf[0] = byMsgBuf[0] + 1;
    ) Y3 T2 W  t4 @, C% e4 s( m2 _0 H4 v4 `
  7.             if(ClientSndRand)0 T7 b0 W6 r" I2 j* o: L9 }! l0 I
  8.             {
    * `% ~7 A& g1 ^" o- {
  9.                        iMsgLen =  (int)(drand48() * TCP_PKG_LEN_MAX);
    : d: H( ]8 k4 H1 W5 [
  10.             }9 J/ s7 n( u( a4 c
  11.             else, o: q; d( G( q! Z2 D5 Q
  12.             {
    ( A( [7 D5 G" N
  13.                     iMsgLen = ClientSndLen;
    + T7 B0 f# [0 H' g! \. }' f+ \: Y
  14.             }
    1 T, Q/ u2 u8 \1 \
  15.             if(iMsgLen)" k8 w8 \) S. \# u2 V# Y2 y
  16.                     iMsgLen = send(sockfd, byMsgBuf, iMsgLen, 0);
      ?* S( R+ T9 w
  17.     }
    ) T5 V  {" g1 Q4 ~& _+ q
  18.     (3)服务器接收
    ! r. ~( [- g2 j2 J" m! z
  19.           while(1)$ C3 O  l' t' W9 q
  20.          {
    % v0 t  h. [" G: j+ s0 q
  21.                  iMsgLen = recv( sFd, byMsgBuf, SvrRcvLen, 0);
    * n# e& o+ Z+ o! H) ]2 e* ?5 m7 _
  22.                  iMsgCnt += iMsgLen;" i) X. e# @" `% V
  23.           }
复制代码

8 d. a4 I5 m6 D1 y3 i7 I% W( X0 T5、测试结果
/ G8 N7 J4 R8 M' u4 W! Q/ L       测试结果如下表所示
: |+ I4 \9 u+ i- y2 x8 m. r, k5 j+ p+ g
发送包(byte)        LWIP(Mbytes/s)        DJYIP(Mbytes/s)
2 p' @+ r* z6 P1400                      3.02                                 3.181 N$ R4 N. v0 ^) q" Y8 Z/ a
1024                       4.22                                3.16! C# f3 |. ^2 B: R; {0 {0 C
512                        3.07                                    3- h( Y  Q5 g) B4 w- m  F& J" F
256                        2.02                                    2.5
8 W' B8 u8 [( I2 |' c128                       0.2±0.2                              1.76! a. D* n: I+ M4 n
64                          0.2±0.2                             1.12. Y7 l+ }' ^! D7 j7 s2 d
rand*1460        1M内变动        2.528 C- u* T: v0 m4 ^3 U- }- \
      其中,rand是产生0~1的随机数。LWIP这组数据中,1024的速度大于1400,有可能是8 n& x4 z0 g1 V. H
因为1024是2的整数次幂的原因(可能猜测)。
, o  _; X' T7 K3 m+ O0 r* d' [" N6 K5 R6 a2 O3 ~+ Y

: c0 Z" y$ \# o* R
收藏 评论0 发布时间:2021-12-17 12:05

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版