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

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

[复制链接]
STMCU小助手 发布时间:2021-12-17 12:05
和我最近测试的结果大致相同,STM32F7 上TCP 速率3Mbps左右。而之前我测试UDP,可以到30Mbps 以上。9 v7 n+ h3 x. G; L  T; D

+ G0 {  s3 R/ w1、测试目的5 F1 L& {+ c/ b, k4 A" p
    在尽量保持硬件和软件一致的前提下,测试LWIP和DJYIP两个协议栈的TCP接收不同包的速度。
2 u( @+ V( u9 D& c& M) T2、测试方法
, i, V: J, Z1 d) S3 U     用一块STM32F7的发送板,应用层无延迟调用TCP发送函数send(),不断发送不同大小的数据包,数据包大小范围64 ~ 1460byte,接收端每1秒统计接收到的数据包,交终端上显示接收的速度。(当然,运行LWIP和DJYIP的两块接收板,运行在相同的主频,协议栈的pbuf缓冲、TCP接收窗口大小、优先级等一致。)   6 Z7 U! H2 ^, f) v, i1 `
3、软硬件平台
; s: Q; z. X$ h% X     硬件平台
$ x6 z" r+ _. F# lLWIP        DJYIP! K; W5 P! y7 L& l- N7 P4 A
运行板件        ST官方板STM32756G-EVAL2        STM32F7核心板7 K$ L! `$ o% @) j# O* m% s
运行主频        200MHz        200MHz- K) R# q2 ~; k2 N7 k' q
连接方式        与发送板直连        与发送板直连* v3 y$ ~, a- b9 A/ F5 c
编译调试        MDK        eclipse
# \8 D% a/ C/ G% l) _7 S: W+ I     软件平台( L# Z0 E6 R; Z# ?9 V
LWIP        DJYIP
% C' M) s; q$ O% c6 s- u网络驱动接收方式        中断        中断
5 c& z8 }! w% t2 V" `pbuf大小        16kbytes        16kbytes$ f/ J1 v* a( ^0 O: M1 R: v; E
TCP窗口       2 Y* S6 R4 v: c- p6 u
2048& D( H/ ^5 T& O! T  R$ o8 _
2048
3 @& p% h' S  y/ R" X    其中,运行在STM32756G-EVAL2的LWIP的软件代码,是直接从ST官方下载的STM32Cube_FW_F7_V1.6.0版本固件库," N3 ~3 w' V$ `3 k* b2 _* d
编译运行在MDK5.12.9 ~& P5 \; U; `2 H4 s
: {; B0 d2 j/ J; z% T2 d8 z
4、测试步骤

+ i/ W$ H3 U" I+ ^) x2 J    (1)源码编写及修改, @4 b1 v1 z+ y
             主要是比较基础的socket编程,发送板作为TCP客户端,两块接收板作为TCP服务器,客户端板建立TCP连接后,一直: A3 e, A5 D% R' x% I
发送程序,服务器一直接收TCP数据,并统计接收速度。6 H1 u; S4 ^" A
              对STM32Cube_FW_F7_V1.6.0源码中LWIP的配置,需要修改lwipopts.h,主要修改了如下两行代码: l9 U- U, P) V
  1. #define PBUF_POOL_SIZE          11//8
    5 j) ]4 c0 w0 h7 h& H
  2. #define TCP_WND                 2048//(2*TCP_MSS)
    # m) n% u" C* k  v( X. F- L+ S
  3.     (2)客户端发送
    ( U" e* m6 d# N2 Y0 p! `
  4.        while(1)   4 M2 O; U! q9 L3 v& X
  5.       {
    - [) B+ P# k6 e+ _) C7 [8 `% V
  6.             byMsgBuf[0] = byMsgBuf[0] + 1;
    % j9 ^- l3 d  }& d7 J5 f0 Y+ H
  7.             if(ClientSndRand)( B# Y4 c& q" U
  8.             {3 I& Q/ f9 {" @% V5 R0 @2 {
  9.                        iMsgLen =  (int)(drand48() * TCP_PKG_LEN_MAX);9 Y% z! K8 k* N( `2 k( L
  10.             }. V* g; ~  M- z; {; u
  11.             else! V8 U+ d+ S$ S4 l  t+ V
  12.             {/ c, V$ c4 ]6 e1 l
  13.                     iMsgLen = ClientSndLen;
    5 J9 T+ P- x! z, d. f
  14.             }& j1 @- \% v& z3 o& }# a. |
  15.             if(iMsgLen)
    3 O+ C$ e2 G3 @: \6 d3 n. E
  16.                     iMsgLen = send(sockfd, byMsgBuf, iMsgLen, 0);
    ; [, O* f* }# j2 B) ~' l" Y. J, y* W
  17.     }
    $ G! f3 A8 g6 S+ J5 L- I
  18.     (3)服务器接收0 G  {5 W* ]; b; H
  19.           while(1)
    2 o5 a, M3 Q! e% P* @( m
  20.          {
    ; H1 o" G" B# N. c6 k5 c5 U
  21.                  iMsgLen = recv( sFd, byMsgBuf, SvrRcvLen, 0);8 H- Z0 }( w: J0 i1 t& H( ^: u
  22.                  iMsgCnt += iMsgLen;
    + v' w  |% Y* ^
  23.           }
复制代码
+ D) ~& \' E2 K
5、测试结果' C- t+ T( y$ A; p" A9 B( i( v
       测试结果如下表所示3 W2 G$ a0 G* Q' D6 R  ?2 |

. A- Z; M9 o+ m/ j0 H, [发送包(byte)        LWIP(Mbytes/s)        DJYIP(Mbytes/s): K0 c0 C* L$ g8 v
1400                      3.02                                 3.18
) t% n6 R, ]1 v% c' o# L1024                       4.22                                3.16
( q# |  s6 |& ~1 y. F6 h. s6 j512                        3.07                                    3
% ^& @. L$ `( p- l6 R9 s+ I- u256                        2.02                                    2.52 ]$ `5 K) a2 Y/ M& L- n
128                       0.2±0.2                              1.760 r3 ]; P7 S. c4 _4 k+ e! K* X
64                          0.2±0.2                             1.12
+ @, _, J6 ?; r  zrand*1460        1M内变动        2.52) y3 g' K# E$ |/ S$ a- y
      其中,rand是产生0~1的随机数。LWIP这组数据中,1024的速度大于1400,有可能是
, {% A/ D8 a5 E) L因为1024是2的整数次幂的原因(可能猜测)。% D' J7 e' i; M  }  C

# q( R" J2 Q0 e$ g/ C% |0 \5 K7 z' {& L+ d
收藏 评论0 发布时间:2021-12-17 12:05

举报

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