查看: 3455|回复: 6

[主题月] 【9月主题月】RT1176千兆以太网速率测试

[复制链接]
  • TA的每日心情
    慵懒
    2024-2-8 09:39
  • 签到天数: 217 天

    [LV.7]常住居民III

    92

    主题

    1111

    帖子

    29

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    7576

    热心会员

    最后登录
    2024-4-17
    发表于 2021-9-20 18:14:28 | 显示全部楼层 |阅读模式
    本帖最后由 az158 于 2021-9-20 18:13 编辑

    NXP针对以太网的操作提供了相当齐全的例程。主要是freertos加lwip的方案,很经典也很好用。
    今天笔者就简单测一下RT1176板卡的千兆以太网速率。这里使用的例程是SDK_2_10_0_MIMXRT1170-EVK\boards\evkmimxrt1170\lwip_examples\lwip_iperf\bm\cm7\mdk。

    iperf是是一个网络性能测试工具。Iperf可以测试最大TCP和UDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。

    可以在下面的代码里面配置默认的ip地址、掩码、网关。
    1. /* IP address configuration. */
    2. #define configIP_ADDR0 192
    3. #define configIP_ADDR1 168
    4. #define configIP_ADDR2 0
    5. #define configIP_ADDR3 102

    6. /* Netmask configuration. */
    7. #define configNET_MASK0 255
    8. #define configNET_MASK1 255
    9. #define configNET_MASK2 255
    10. #define configNET_MASK3 0

    11. /* Gateway address configuration. */
    12. #define configGW_ADDR0 192
    13. #define configGW_ADDR1 168
    14. #define configGW_ADDR2 0
    15. #define configGW_ADDR3 100
    复制代码

    设备接线
    IMG_20210920_180005.jpg

    串口打印,这里笔者选择了1模式,测试TCP的RX速率
    QQ截图20210920180433.png

    上位机显示,测试时间为60s
    QQ截图20210920180444.png
    最终速率达到了253Mbit/s,对于一个单片机来说可以说相当惊人了。

    之后笔者测试了freertos的tcp服务器的RX速度。不对接收到的数据做任何处理
    1. static void
    2. tcpecho_thread(void *arg)
    3. {
    4.   struct netconn *conn, *newconn;
    5.   err_t err;
    6.   LWIP_UNUSED_ARG(arg);

    7.   /* Create a new connection identifier. */
    8.   /* Bind connection to well known port number 7. */
    9. #if LWIP_IPV6
    10.   conn = netconn_new(NETCONN_TCP_IPV6);
    11.   netconn_bind(conn, IP6_ADDR_ANY, 7);
    12. #else /* LWIP_IPV6 */
    13.   conn = netconn_new(NETCONN_TCP);
    14.   netconn_bind(conn, IP_ADDR_ANY, 7);
    15. #endif /* LWIP_IPV6 */
    16.   LWIP_ERROR("tcpecho: invalid conn", (conn != NULL), return;);

    17.   /* Tell connection to go into listening mode. */
    18.   netconn_listen(conn);

    19.   while (1) {

    20.     /* Grab new connection. */
    21.     err = netconn_accept(conn, &newconn);
    22.     /*printf("accepted new connection %p\n", newconn);*/
    23.     /* Process the new connection. */
    24.     if (err == ERR_OK) {
    25.       struct netbuf *buf;
    26.       void *data;
    27.       u16_t len;

    28.       while ((err = netconn_recv(newconn, &buf)) == ERR_OK) {
    29. //        /*printf("Recved\n");*/
    30. //        do {
    31. //             netbuf_data(buf, &data, &len);
    32. //             err = netconn_write(newconn, data, len, NETCONN_COPY);
    33. //#if 0
    34. //            if (err != ERR_OK) {
    35. //              printf("tcpecho: netconn_write: error "%s"\n", lwip_strerr(err));
    36. //            }
    37. //#endif
    38. //        } while (netbuf_next(buf) >= 0);
    39.         netbuf_delete(buf);
    40.       }
    41.       /*printf("Got EOF, looping\n");*/
    42.       /* Close connection and discard connection identifier. */
    43.       netconn_close(newconn);
    44.       netconn_delete(newconn);
    45.     }
    46.   }
    47. }
    复制代码
    速度大约有45Mbit/s,这里估计是NXP并没有对其代码做优化,有时间可以继续试一下。

    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3298

    主题

    6545

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32003
    最后登录
    2024-4-9
    发表于 2021-9-23 16:02:26 | 显示全部楼层
    好建议
    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    7 小时前
  • 签到天数: 1933 天

    [LV.Master]伴坛终老

    61

    主题

    1万

    帖子

    3

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    17218
    最后登录
    2024-4-19
    发表于 2021-9-23 16:21:47 | 显示全部楼层
    这个测试非常棒
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6

    主题

    30

    帖子

    0

    注册会员

    Rank: 2

    积分
    191
    最后登录
    2022-7-29
    发表于 2022-7-29 09:03:56 | 显示全部楼层
    本帖最后由 xiaobu253d086 于 2022-7-29 09:06 编辑

    大佬,看你的千兆网,这块的原理图,采用的是3.3V电路的,这样可以避免于1176中间产生一个电平转换,如果我直接把1176模块的3.3V改为1.8V。是不是也可以避免中间的电平转换??这样不知道软件上是否要做调整?

    千兆网原理图

    千兆网原理图
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-2-8 09:39
  • 签到天数: 217 天

    [LV.7]常住居民III

    92

    主题

    1111

    帖子

    29

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    7576

    热心会员

    最后登录
    2024-4-17
     楼主| 发表于 2022-7-29 14:52:29 | 显示全部楼层
    xiaobu253d086 发表于 2022-7-29 09:03
    大佬,看你的千兆网,这块的原理图,采用的是3.3V电路的,这样可以避免于1176中间产生一个电平转换,如果我 ...

    可以,注意CFG_LDO位置的电阻,软件不用调整
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    2

    帖子

    0

    新手上路

    Rank: 1

    积分
    19
    最后登录
    2023-3-10
    发表于 2023-2-22 17:49:47 | 显示全部楼层
    您好,想请教您个问题,我看了RT1176的手册,依然觉得疑惑,不太清楚资源里的1路带TSN的千兆以及1路带AVB的千兆是否可以同时使用?还是说其实是同一个MAC控制器无法同时使用?不知道您这边清不清楚,感谢!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-2-8 09:39
  • 签到天数: 217 天

    [LV.7]常住居民III

    92

    主题

    1111

    帖子

    29

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    7576

    热心会员

    最后登录
    2024-4-17
     楼主| 发表于 2023-5-7 17:19:08 | 显示全部楼层
    wxはしる 发表于 2023-2-22 17:49
    您好,想请教您个问题,我看了RT1176的手册,依然觉得疑惑,不太清楚资源里的1路带TSN的千兆以及1路带AVB的 ...

    应该可以,这是俩外设
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-19 19:11 , Processed in 0.139241 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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