tag 标签: ethernet

相关博文
  • 热度 10
    2021-6-25 15:58
    976 次阅读|
    0 个评论
    B y Toradex 胡珊逢 Verdin iMX8M Plus 是 Toradex 采用 NXP 最新的 i.MX 8M Plus 处理器的计算机模块,其具有 4x Cortex-A53 和 Cortex-M7 核心,支持神经网络加速运算的 NPU , H .265 硬件编码, C AN FD ,以及双路千兆以太网。配合 Verdin 开发板,用户可以直接测试两路以太网。文章将对网络性能做简要的测试。 使用 Toradex Easy Installer 安装 Linux BSP v5.3.0 ,默认的配置已经支持两路千兆以太网。因此安装完成重启后即可看到两个网络接口。 ---------------------------------- root@verdin-imx8mp:~# ifconfig eth0 Link encap:Ethernet HWaddr 00:14:2D:78:82:04 inet addr:192.168.20.120 Bcast:192.168.20.255 Mask:255.255.255.0 inet6 addr: fe80::214:2dff:fe78:8204/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5105505 errors:0 dropped:0 overruns:0 frame:0 TX packets:5988237 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:7344324802 (6.8 GiB) TX bytes:8611102924 (8.0 GiB) Interrupt:48 eth1 Link encap:Ethernet HWaddr 00:14:2D:68:82:04 inet addr:192.168.200.150 Bcast:192.168.200.255 Mask:255.255.255.0 inet6 addr: fe80::214:2dff:fe68:8204/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:6686311 errors:0 dropped:0 overruns:0 frame:0 TX packets:247321 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6234153398 (5.8 GiB) TX bytes:8180651220 (7.6 GiB) ---------------------------------- Verdin 开发板分别和两台电脑相连,链路速度为 1000M bps 。 I P 地址设置如下。 P C1:192.168.200.1 P C2:192.168.20.132 E t h0: 192.168.200.150 E th1:192.168.20.120 测试场景为 l Eth0 和 Eth1 单独向 PC1 和 PC2 发送数据 l Eth0 和 Eth1 同时向 PC1 和 PC2 发送数据 l Eth0 和 Eth1 单独接收来自 PC1 和 PC2 的数据 l Eth0 和 Eth1 同时接收来自 PC1 和 PC2 的数据 l Eth 0 上的数据转发到 Eth 1 期间测试模块 Eth0 和 Eth1 的最大带宽以及 CPU 占用率。 Eth0 和 Eth1 单独向 PC1 和 PC2 发送数据 在 PC1 和 PC2 上运行 iperf3 服务器。 ---------------------------------- $ iperf3 -s ---------------------------------- 在 Verdin iMX8M Plus 运行 iperf 3 向 PC 发送数据。 Eth 0 和 Eth 1 的测试数据如下。 Eth 0: ---------------------------------- root@verdin-imx8mp:~# iperf3 -c 192.168.20.132 Connecting to host 192.168.20.132, port 5201 local 192.168.20.120 port 34982 connected to 192.168.20.132 port 5201 Interval Transfer Bitrate Retr Cwnd 0.00-1.00 sec 114 MBytes 957 Mbits/sec 0 373 KBytes 1.00-2.00 sec 112 MBytes 942 Mbits/sec 0 373 KBytes 2.00-3.00 sec 112 MBytes 937 Mbits/sec 0 410 KBytes 3.00-4.00 sec 112 MBytes 942 Mbits/sec 0 410 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - Interval Transfer Bitrate Retr 0.00-10.00 sec 1.10 GBytes 942 Mbits/sec 0 sender 0.00-10.00 sec 1.10 GBytes 941 Mbits/sec receiver iperf Done. ---------------------------------- E th1: ---------------------------------- root@verdin-imx8mp:~# iperf3 -c 192.168.200.1 Connecting to host 192.168.200.1, port 5201 local 192.168.200.150 port 59206 connected to 192.168.200.1 port 5201 Interval Transfer Bitrate Retr Cwnd 0.00-1.00 sec 111 MBytes 934 Mbits/sec 0 1.14 MBytes 1.00-2.00 sec 112 MBytes 944 Mbits/sec 0 1.23 MBytes 2.00-3.00 sec 111 MBytes 933 Mbits/sec 0 1.23 MBytes 3.00-4.00 sec 112 MBytes 943 Mbits/sec 0 1.23 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - Interval Transfer Bitrate Retr 0.00-10.00 sec 1.09 GBytes 940 Mbits/sec 0 sender 0.00-10.00 sec 1.09 GBytes 937 Mbits/sec receiver iperf Done. ---------------------------------- Verdin iMX8M Plus CPU 占用率: Eth0 和 Eth1 同时向 PC1 和 PC2 发送数据 Eth 0 : ---------------------------------- root@verdin-imx8mp:~# iperf3 -c 192.168.20.132 Connecting to host 192.168.20.132, port 5201 local 192.168.20.120 port 34994 connected to 192.168.20.132 port 5201 Interval Transfer Bitrate Retr Cwnd 0.00-1.00 sec 113 MBytes 949 Mbits/sec 0 438 KBytes 1.00-2.00 sec 112 MBytes 937 Mbits/sec 0 464 KBytes 2.00-3.00 sec 112 MBytes 943 Mbits/sec 0 464 KBytes 3.00-4.00 sec 111 MBytes 935 Mbits/sec 0 464 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - Interval Transfer Bitrate Retr 0.00-10.00 sec 1.09 GBytes 940 Mbits/sec 0 sender 0.00-10.00 sec 1.09 GBytes 939 Mbits/sec receiver iperf Done. ---------------------------------- Eth 1 : ---------------------------------- root@verdin-imx8mp:~# iperf3 -c 192.168.200.1 Connecting to host 192.168.200.1, port 5201 local 192.168.200.150 port 59210 connected to 192.168.200.1 port 5201 Interval Transfer Bitrate Retr Cwnd 0.00-1.00 sec 111 MBytes 929 Mbits/sec 0 1.14 MBytes 1.00-2.00 sec 112 MBytes 944 Mbits/sec 0 1.14 MBytes 2.00-3.00 sec 111 MBytes 933 Mbits/sec 0 1.14 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - Interval Transfer Bitrate Retr 0.00-10.00 sec 1.09 GBytes 936 Mbits/sec 0 sender 0.00-10.00 sec 1.09 GBytes 933 Mbits/sec receiver iperf Done. ---------------------------------- Verdin iMX8M Plus CPU 占用率: Eth0 和 Eth1 单独接收来自 PC1 和 PC2 的数据 在 Verdin iMX8M Plus 分别运行 iperf 3 服务器,针对 Eth 0 和 Eth 1 使用不同的端口。 ---------------------------------- root@verdin-imx8mp:~# iperf3 -B 192.168.20.120 -s root@verdin-imx8mp:~# iperf3 -B 192.168.200.150 -p 5202 -s ---------------------------------- Eth 0 : ---------------------------------- root@verdin-imx8mp:~# iperf3 -B 192.168.20.120 -s ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- Accepted connection from 192.168.20.132, port 48674 local 192.168.20.120 port 5201 connected to 192.168.20.132 port 48676 Interval Transfer Bitrate 0.00-1.00 sec 111 MBytes 933 Mbits/sec 1.00-2.00 sec 111 MBytes 935 Mbits/sec 2.00-3.00 sec 111 MBytes 934 Mbits/sec 3.00-4.00 sec 111 MBytes 935 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - Interval Transfer Bitrate 0.00-10.00 sec 1.09 GBytes 934 Mbits/sec receiver ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- ---------------------------------- Eth 1 : ---------------------------------- root@verdin-imx8mp:~# iperf3 -B 192.168.200.150 -p 5202 -s ----------------------------------------------------------- Server listening on 5202 ----------------------------------------------------------- Accepted connection from 192.168.200.1, port 47290 local 192.168.200.150 port 5202 connected to 192.168.200.1 port 47292 Interval Transfer Bitrate 0.00-1.00 sec 110 MBytes 919 Mbits/sec 1.00-2.00 sec 112 MBytes 939 Mbits/sec 2.00-3.00 sec 112 MBytes 941 Mbits/sec 3.00-4.00 sec 112 MBytes 941 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - Interval Transfer Bitrate 0.00-10.00 sec 1.09 GBytes 938 Mbits/sec receiver ---------------------------------- Verdin iMX8M Plus CPU 占用率: Eth0 和 Eth1 同时接收来自 PC1 和 PC2 的数据 Eth 0 : ---------------------------------- root@verdin-imx8mp:~# iperf3 -B 192.168.20.120 -s ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- Accepted connection from 192.168.20.132, port 48712 local 192.168.20.120 port 5201 connected to 192.168.20.132 port 48714 Interval Transfer Bitrate 0.00-1.00 sec 111 MBytes 931 Mbits/sec 1.00-2.00 sec 111 MBytes 934 Mbits/sec 2.00-3.00 sec 111 MBytes 934 Mbits/sec 3.00-4.00 sec 111 MBytes 935 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - Interval Transfer Bitrate 0.00-10.00 sec 1.09 GBytes 934 Mbits/sec receiver ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- ---------------------------------- Eth 1 : ---------------------------------- root@verdin-imx8mp:~# iperf3 -B 192.168.200.150 -p 5202 -s ----------------------------------------------------------- Server listening on 5202 ----------------------------------------------------------- Accepted connection from 192.168.200.1, port 47308 local 192.168.200.150 port 5202 connected to 192.168.200.1 port 47310 Interval Transfer Bitrate 0.00-1.00 sec 110 MBytes 919 Mbits/sec 1.00-2.00 sec 112 MBytes 941 Mbits/sec 2.00-3.00 sec 112 MBytes 941 Mbits/sec 3.00-4.00 sec 112 MBytes 941 Mbits/sec 4.00-5.00 sec 112 MBytes 941 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - Interval Transfer Bitrate 0.00-10.00 sec 1.08 GBytes 928 Mbits/sec receiver ----------------------------------------------------------- Server listening on 5202 ----------------------------------------------------------- ---------------------------------- Verdin iMX8M Plus CPU 占用率: Eth 0 上的数据转发到 Eth 1 为了将 Eth 0 的数据转发到 Eth 1 ,需要设置 /etc/sysctl.conf 。 ---------------------------------- # needed for routing, including masquerading or NAT net/ipv4/ip_forward=1 ---------------------------------- 然后运行 sysctl 另设置生效,当然重启系统也可以。 ---------------------------------- root@verdin-imx8mp:~# sysctl -p ---------------------------------- 设置转发规则。 ---------------------------------- root@verdin-imx8mp:~# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE root@verdin-imx8mp:~# iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT root@verdin-imx8mp:~# iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT ---------------------------------- 在 PC2 上启动 iperf 3 服务器, P C 1 运行 iper 3 客户端发送数据,所有的数据由 Verdin iMX8M Plus 负责从 Eth 0 转发到 Eth 1 上。 P C2 Server: ---------------------------------- $ iperf3 -s ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- Accepted connection from 192.168.20.120, port 55360 local 192.168.20.132 port 5201 connected to 192.168.20.120 port 55362 Interval Transfer Bitrate 0.00-1.00 sec 105 MBytes 881 Mbits/sec 1.00-2.00 sec 111 MBytes 928 Mbits/sec 2.00-3.00 sec 110 MBytes 921 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - Interval Transfer Bitrate 0.00-10.00 sec 1.08 GBytes 931 Mbits/sec receiver ---------------------------------- P C1 Client: ---------------------------------- $ iperf3 -c 192.168.20.132 Connecting to host 192.168.20.132, port 5201 local 192.168.200.1 port 55362 connected to 192.168.20.132 port 5201 Interval Transfer Bitrate Retr Cwnd 0.00-1.00 sec 108 MBytes 904 Mbits/sec 0 471 KBytes 1.00-2.00 sec 110 MBytes 926 Mbits/sec 0 492 KBytes 2.00-3.00 sec 109 MBytes 916 Mbits/sec 0 492 KBytes 3.00-4.00 sec 112 MBytes 938 Mbits/sec 0 492 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - Interval Transfer Bitrate Retr 0.00-10.00 sec 1.09 GBytes 934 Mbits/sec 0 sender 0.00-10.00 sec 1.08 GBytes 931 Mbits/sec receiver ---------------------------------- Verdin iMX8M Plus CPU 占用率: 数据汇总如下。 两个千兆网口无论是在单独还是同时收发数据时都达到 920M bps 以上,包括网口之间的数据转发,基本接近满带宽。在 CPU 占用方面,当两个千兆网口以接近满带宽速率同时工作时,其中一个核心站占用率会超过 70% 。 总结 Verdin iMX8M Plus 的双网口设计为多网口需求的应用提供了理想的选择,例如在工业自动化中,一个网口运行实时性要求高的应用如 EtherCAT ,而另外一个则可以用于一般的网络通信。或者另一个网口可以用作冗余接口,或者连接两个不同的网络。 Verdin iMX8M Plus 还有许多其他实用的功能,我们会在后续的文章进行介绍
  • 热度 14
    2020-2-20 11:50
    1002 次阅读|
    0 个评论
    By Toradex 秦海 1). 简介 NXP iMX7 是 NXP 基于 Cortex-A7 和 Coretex-M4 异构多核架构的 ARM 处理器,其中 iMX7 Dual 型号 SoC 支持两路 MAC 控制器,可以通过外置百兆或者千兆 PHY 芯片扩展两路以太网接口,本文就基于 Toradex 基于 NXP iMX7 Dual SoC 的 ARM 核心板模块 Colibri iMX7D 示例扩展两路以太网。 2). 第一路以太网 a). Colibri iMX7D 模块已经通过模块上面部署的一个 Microchip KSZ8041NL 百兆 PHY 芯片默认支持了第一路百兆以太网 b). KSZ8041NL 的参考电路请参考 这里 (原理图示例的 SoC MAC 端来自 Toradex VF61 ARM 模块的定义,在 iMX7 或者其他平台上面不能直接引用,请只参考 PHY 一侧的连接) c). 由于选择的 iMX7D ENET1 MAC RMII 接口 50MHz 参考时钟输出引脚 GPIO1_IO12 和另外一个 M4 核心的 NMI 输入引脚冲突,因此最终在设计中,这一路的 KSZ8041PHY 使用了外部参考时钟,没有使用 iMX7 ENET1 的参考时钟输出 d). 基于上述配置的第一步以太网对应的 device tree 节点定义和 pinmux 定义请参考如下,内核基于 4.9.166 版本 --------------------------------------- # arch/arm/boot/dts/imx7-colibri.dtsi …… &fec1 { pinctrl-names = "default", "sleep"; pinctrl-0 = ; pinctrl-1 = ; clocks = , , , ; clock-names = "ipg", "ahb", "ptp", "enet_clk_ref"; assigned-clocks = , ; assigned-clock-parents = ; assigned-clock-rates = , ; phy-mode = "rmii"; phy-supply = ; fsl,magic-packet; }; … &iomuxc { … pinctrl_enet1: enet1grp { fsl,pins = < MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL 0x73 MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0 0x73 MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1 0x73 MX7D_PAD_ENET1_RGMII_RXC__ENET1_RX_ER 0x73 MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL 0x73 MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0 0x73 MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1 0x73 MX7D_PAD_GPIO1_IO12__CCM_ENET_REF_CLK1 0x73 MX7D_PAD_SD2_CD_B__ENET1_MDIO 0x3 MX7D_PAD_SD2_WP__ENET1_MDC 0x3 ; }; pinctrl_enet1_sleep: enet1sleepgrp { fsl,pins = < MX7D_PAD_ENET1_RGMII_RX_CTL__GPIO7_IO4 0x0 MX7D_PAD_ENET1_RGMII_RD0__GPIO7_IO0 0x0 MX7D_PAD_ENET1_RGMII_RD1__GPIO7_IO1 0x0 MX7D_PAD_ENET1_RGMII_RXC__GPIO7_IO5 0x0 MX7D_PAD_ENET1_RGMII_TX_CTL__GPIO7_IO10 0x0 MX7D_PAD_ENET1_RGMII_TD0__GPIO7_IO6 0x0 MX7D_PAD_ENET1_RGMII_TD1__GPIO7_IO7 0x0 MX7D_PAD_GPIO1_IO12__GPIO1_IO12 0x0 MX7D_PAD_SD2_CD_B__GPIO5_IO9 0x0 MX7D_PAD_SD2_WP__GPIO5_IO10 0x0 ; }; --------------------------------------- 3). 第二路以太网 a). 第二路以太网通过模块预留的 RMII 或者 RGMII 接口连接百兆 PHY 或者千兆 PHY 来扩展, Colibri iMX7D RMII 或者 RGMII 接口管脚定义请参考 手册 5.4 章节。 b). 同样使用 KSZ8041NL 百兆 PHY 扩展的参考电路请参考 这里 (原理图示例的 SoC MAC 端来自 Toradex VF61 ARM 模块的定义,在 iMX7 或者其他平台上面不能直接引用,须按照上面手册定义连接),如需要连接千兆 PHY ,请参考所使用的千兆 PHY (如 Microchip KSZ9031RNL )手册进行连接 c). 通过 ENET2 RMII 接口连接 KSZ8041NL 百兆 PHY 的 device tree 配置参考如下 patch ,和上面第一路以太网不同,这次使用的 iMX7 SoC 内部的参考时钟输出给 PHY ,因此在 clock 项目配置会有不同 https://github.com/simonqin09/colibri_imx7_2nd_ethernet/blob/master/0001-imx7d-2nd-ethernet-support_update_20200218.patch // 对于 &fec2 节点中的 “fsl,mii-exclusive” 参数,因为 ENET1 和 ENET2 分别使用其对应的 MDIO 总线,而不是共享一个 MDIO 总线,在 4.9 kernel 下,如果不配置这个参数,驱动会默认都使用 ENET1 的 MDIO 去配置 ENET2 ,因此在这里是必须的。但在其他 i.MX 平台或者 mainline kernel 下则不一定需要。 // MX7D_PAD_EPDC_BDR0__CCM_ENET_REF_CLK2 配置为 0x40000073 ,因为使用 iMX7 SoC 内部参考时钟,这个时钟要同时给 PHY 和 MAC 提供参考时钟,因此 Input 和 Output 都要配置使能,因此需要为 0x40000073 ,关于 pinctrl 的更多说明请参考 这里 。 d). 通过 RGMII 连接千兆 PHY 的 device tree 配置请参考 这里 4). 总结 本文基于 iMX7 示例了双路以太网的设计和配置思路,同时对于其他支持双路 MAC 的 NXP i.MX ARM 处理器(如 iMX8 )的配置思路也都是一致的,只是具体的 clock 和 pinmux 定义等要做对应的适配
  • 热度 2
    2020-1-6 12:11
    3142 次阅读|
    1 个评论
    By Toradex 秦海 1). 简介 NXP iMX8 已经正式发布,相较于之前 NXP i.MX 系列的主力产品 iMX6 ,其性能有了大幅提升,本文就针对网络接口对 NXP iMX8 和 iMX6 两款 ARM 处理器进行对比测试。 本文演示所使用的 ARM 平台来自 Toradex 基于 NXP iMX8 SoC 的 Apalis iMX8 ARM 核心板和基于 NXP iMX6Q SoC 的 Apalis iMX6 ARM 核心板。 2). 准备 a). Apalis iMX8QM ARM 核心版配合 Apalis Evaluation Board 载板 , Apalis iMX8QM 安装 Toradex V3.0b2 Linux demo image ,同时连接调试串口 UART1 (载板 X29 )到开发主机方便调试。更多关于 Apalis iMX8 配合 Apalis Evaluation Board 载板的说明请参考 Datasheet 和 开发上手指南 。 b). Apalis iMX6Q ARM 核心版配合 Apalis Evaluation Board 载板 , Apalis iMX6Q 安装 Toradex V2.8 Linux demo image ,同时连接调试串口 UART1 (载板 X29 )到开发主机方便调试。更多关于 Apalis iMX6 配合 Apalis Evaluation Board 载板的说明请参考 Datasheet 和 开发上手指南 。 c). Ubuntu linux PC 主机, 用于分别和 Apalis iMX8 、 Apalis iMX6 进行收发测试。 d). 测试工具软件使用 iperf3 工具, Toradex Linux demo image 里面已经默认集成, Ubuntu 系统(这里以 18.04 为例)要通过 apt 命令来安装 iperf3 ---------------------- $ sudo apt update $ sudo apt install iperf3 ---------------------- e). 网络连接拓扑为 Apalis iMX8QM 、 Apalis iMX6Q 以及 Ubuntu PC 都通过千兆有线网络连接到同一个局域网。 3). TCP 网络传输性能测试对比 a). Apalis iMX6Q/Apalis iMX8QM 作为 Server 端接收, Ubuntu PC 作为 Client 端发送测试 ./ Apalis iMX6Q/Apalis iMX8QM Server 端运行下面命令 ---------------------- $ iperf3 -s ---------------------- ./ Apalis iMX6Q ---------------------- $ iperf3 -c -t 60 -i 10 -w 300K … Interval Transfer Bandwidth Retr 0.00-60.00 sec 4.01 GBytes 574 Mbits/sec 1 sender 0.00-60.00 sec 4.01 GBytes 574 Mbits/sec receiver ---------------------- ./ Apalis iMX8QM ---------------------- $ iperf3 -c -t 60 -i 10 … Interval Transfer Bandwidth Retr 0.00-60.00 sec 6.52 GBytes 934 Mbits/sec 0 sender 0.00-60.00 sec 6.52 GBytes 934 Mbits/sec receiver ---------------------- b). Apalis iMX6Q/Apalis iMX8QM 作为 Client 端发送, Ubuntu PC 作为 Sever 端接收测试 ./ Ubuntu PC server 端运行下面命令 ---------------------- $ iperf3 -s ---------------------- ./ Apalis iMX6Q Client 端连接测试 ---------------------- root@apalis-imx6:~# iperf3 -c -t 60 -i 10 … Interval Transfer Bitrate Retr 0.00-60.00 sec 2.84 GBytes 406 Mbits/sec 0 sender 0.00-60.00 sec 2.84 GBytes 406 Mbits/sec receiver ---------------------- ./ Apalis iMX8QM Client 端连接测试 ---------------------- root@apalis-imx8:~# iperf3 -c -t 60 -i 10 … Interval Transfer Bitrate Retr 0.00-60.00 sec 6.39 GBytes 915 Mbits/sec 0 sender 0.00-60.00 sec 6.39 GBytes 915 Mbits/sec receiver ---------------------- c). 测试结果汇总 项目 TCP 发送测试 TCP 接收测试 Apalis iMX6Q 406 Mb/s 574 Mb/s Apalis iMX8QM 915 Mb/s 934 Mb/s 4). UDP 网络传输性能测试对比 a). Apalis iMX6Q/Apalis iMX8QM 作为 Server 端接收, Ubuntu PC 作为 Client 端发送测试 ./ Apalis iMX6Q/Apalis iMX8QM Server 端运行下面命令 ---------------------- $ iperf3 -s ---------------------- ./ Apalis iMX6Q ---------------------- /* 100M 带宽测试 */ $ iperf3 -c -u -b 100M -t 60 -i 10 … Interval Transfer Bandwidth Jitter Lost/Total Datagrams 0.00-60.00 sec 714 MBytes 99.9 Mbits/sec 0.110 ms 0/91424 (0%) /* 400M 带宽测试 */ $ iperf3 -c -u -b 400M -t 60 -i 10 … Interval Transfer Bandwidth Jitter Lost/Total Datagrams 0.00-60.00 sec 2.79 GBytes 400 Mbits/sec 0.098 ms 4374/365993 (1.2%) /* 1000M 带宽测试 */ $ iperf3 -c -u -b 1000M -t 60 -i 10 … Interval Transfer Bandwidth Jitter Lost/Total Datagrams 0.00-60.00 sec 2.98 GBytes 426 Mbits/sec 0.167 ms 2304/390206 (0.59%) ---------------------- ./ Apalis iMX8QM ---------------------- /* 100M 带宽测试 */ $ iperf3 -c -u -b 100M -t 60 -i 10 … Interval Transfer Bandwidth Jitter Lost/Total Datagrams 0.00-60.00 sec 714 MBytes 99.9 Mbits/sec 0.078 ms 84/91416 (0.092%) /* 400M 带宽测试 */ $ iperf3 -c -u -b 400M -t 60 -i 10 … Interval Transfer Bandwidth Jitter Lost/Total Datagrams 0.00-60.00 sec 2.79 GBytes 400 Mbits/sec 0.092 ms 121/366076 (0.033%) /* 1000M 带宽测试 */ $ iperf3 -c -u -b 1000M -t 60 -i 10 … Interval Transfer Bandwidth Jitter Lost/Total Datagrams 0.00-60.00 sec 6.63 GBytes 949 Mbits/sec 0.064 ms 284/868752 (0.033%) ---------------------- b). Apalis iMX6Q/Apalis iMX8QM 作为 Client 端发送, Ubuntu PC 作为 Sever 端接收测试 ./ Ubuntu PC server 端运行下面命令 ---------------------- $ iperf3 -s ---------------------- ./ Apalis iMX6Q Client 端连接测试 ---------------------- /* 100M 带宽测试 */ root@apalis-imx6:~# iperf3 -c -u -b 100M -t 60 -i 10 … Interval Transfer Bitrate Jitter Lost/Total Datagrams 0.00-60.00 sec 715 MBytes 100 Mbits/sec 0.000 ms 0/517952 (0%) sender 0.00-60.00 sec 715 MBytes 100 Mbits/sec 0.005 ms 0/517952 (0%) receiver /* 400M 带宽测试 */ root@apalis-imx6:~# iperf3 -c -u -b 400M -t 60 -i 10 … Interval Transfer Bitrate Jitter Lost/Total Datagrams 0.00-60.00 sec 1.91 GBytes 273 Mbits/sec 0.000 ms 0/1413705 (0%) sender 0.00-60.00 sec 1.91 GBytes 273 Mbits/sec 0.021 ms 0/1413705 (0%) receiver /* 1000M 带宽测试 */ root@apalis-imx6:~# iperf3 -c -u -b 1000M -t 60 -i 10 … Interval Transfer Bitrate Jitter Lost/Total Datagrams 0.00-60.00 sec 1.92 GBytes 274 Mbits/sec 0.000 ms 0/1421514 (0%) sender 0.00-60.00 sec 1.92 GBytes 274 Mbits/sec 0.057 ms 0/1421509 (0%) receiver ---------------------- ./ Apalis iMX8QM Client 端连接测试 ---------------------- /* 100M 带宽测试 */ root@apalis-imx8:~# iperf3 -c -u -b 100M -t 60 -i 10 … Interval Transfer Bitrate Jitter Lost/Total Datagrams 0.00-60.00 sec 715 MBytes 100 Mbits/sec 0.000 ms 0/517950 (0%) sender 0.00-60.00 sec 715 MBytes 100 Mbits/sec 0.035 ms 0/517950 (0%) receiver /* 400M 带宽测试 */ root@apalis-imx8:~# iperf3 -c 10.20.1.126 -u -b 400M -t 60 -i 10 … Interval Transfer Bitrate Jitter Lost/Total Datagrams 0.00-60.00 sec 2.79 GBytes 400 Mbits/sec 0.000 ms 0/2071798 (0%) sender 0.00-60.00 sec 2.79 GBytes 400 Mbits/sec 0.026 ms 68/2071798 (0.0033%) receiver /* 1000M 带宽测试 */ root@apalis-imx8:~# iperf3 -c 10.20.1.126 -u -b 1000M -t 60 -i 10 … Interval Transfer Bitrate Jitter Lost/Total Datagrams 0.00-60.00 sec 4.71 GBytes 674 Mbits/sec 0.000 ms 0/3489592 (0%) sender 0.00-60.00 sec 4.71 GBytes 674 Mbits/sec 0.030 ms 103/3489586 (0.003%) receiver ---------------------- c). 测试结果汇总 UDP 发送测试 UDP 接收测试 100M 带宽 400M 带宽 1000M 带宽 100M 带宽 400M 带宽 1000M 带宽 Apalis iMX6Q 100 Mb/s 273 Mb/s 274 Mb/s 99.9 Mb/s 400 Mb/s * 426 Mb/s * Apalis iMX8QM 100 Mb/s 400 Mb/s 674 Mb/s 99.9 Mb/s 400 Mb/s 949 Mb/s * 注意此时丢包率已经到 1% 左右 5). 总结 本文对比测试了 NXP iMX6 和 NXP iMX8 处理器的网络性能,对于 iMX6 ,由于这个 Eratta 的限制, 400Mb/s 左右的性能也就把符合文档的描述, iMX8 则在大多数情况下能够接近千兆带宽。
  • 热度 18
    2015-8-31 16:42
    888 次阅读|
    3 个评论
    Arduino实现 仪器放大仪对压力感应器读取数据 ,这样的理论能用来做什么呢?当然可以让你隔着房间就获知 DoES Liverpool 咖啡壶中装了多少咖啡!一个 “咖啡壶” 就可以做到! 关于咖啡机器的内容已经在网络上有先例了;第一个网络摄像机的灵感是,1991至2001年间在剑桥大学电脑实验室安装了Trojan房间咖啡监控器。所以利用DoES Liverpool,通过咖啡机器,壶和水的重量测量,我们可以进行咖啡容量的在线记录。 在厨房的咖啡机下面放置了浴室磅秤,并将其与Arduino Ethernet连接来测重,计算机器上咖啡杯数量,并将其数据传送至Xively。所有磅秤的测量电子器件都可以忽略,通过INA125仪器放大仪,Arduino读取磅秤每个角的压力传感器阻值变化,来测量咖啡机里面的水量。关于连接仪器放大仪和Arduino的细节,已经在 GitHub中的ArduinoInstAmp库 中列出, 我之前有写过 。   来自DoES Liverpool 咖啡壶的即时动态(刷新页面进行更新) 用于咖啡壶的电路和我之前描述过的INA125的压力传感器读取相同。唯一增加的是一个常见的接地按钮,连接到引脚2上,把LED与电阻(一头连的引脚5)的正极相连。代码在 github.com/DoESLiverpool/CoffeeBot/ 上。                               用于咖啡壶背面与Arduino的连接         在磅秤里面的远程压力传感器需要一个连接器                              压力传感器的惠斯通电桥布置                       INA125P的仪器放大器连接 一个普通的接地按钮输出 为了使得到的信息不在电脑前也可以利用起来,磅秤的远程监控器会将最新的杯子数量上传到Xively,并将结果显示在DoES主空间的刻度盘上。如果能通过网络连接获取到咖啡量,信息的可用性就没有了,因为你离机器太远了。使用咖啡壶的优先条件是,你看不到它,但还是在同一座楼里(为了保证是内网)。 机器中咖啡量的采集是一个很有趣的事,在起床之前就可以知道是不是有咖啡可以喝,数据被采集后就可以有更多实际应用了。每天消耗的咖啡杯平均数,可能在你下午做咖啡的时候就会给你指导,就知道最后一壶做多少杯了。跟踪杯子数量意味着你需要买多少咖啡豆,这样就可以让他们保持新鲜了。 DoES咖啡使用的最新及历史信息都会在  xively.com/feeds/106284  显示出来,用于咖啡壶运转的Arduino的全部代码及监控器信息都会在  github.com/DoESLiverpool/CoffeeBot 上提供。 文章来源:http://www.deferredprocrastination.co.uk/blog/2013/coffeebot-monitoring-with-arduino/ 感谢阅读!
  • 热度 19
    2015-1-16 15:03
    1632 次阅读|
    0 个评论
    网络上关于Arduino Ethernet的教程不多,刚刚入门的伙伴们,先给大家提供一篇:官方Arduino Ethernet中文介绍(http://www.arduino.cn/thread-8384-1-1.html),以便快速了解它的参数及用法。而后可以学习一下这篇构建简易Web Server教程。Arduino官方的以太网板采用的是WIZnet-W5100,而目前市场上也有很多结合最新的W5500的Arduino Ethernet板。如下例程都是适用的。 转自:Arduino中文社区-WIZnet网络专区 作者:奈何Col 本教程适用于使用WIZnet w5100/w5500的Arduino控制器。 程序一 这里我们使用Arduino Ethernet建立一个简单网页服务器,当Arduino服务器接收到浏览器访问请求时,即会发送响应消息,浏览器接收到响应消息,会将其中包含的HTML文本转换为网页显示出来。 这样就可以将传感器获取到的信息显示到网页上,每个在该网络范围内的计算机或其他移动设备,无论什么平台都可以通过网页浏览器了解到各传感器的数据。 /* OpenJumper WebServer Example 建立一个显示传感器信息的Arduino服务器 http://www.openjumper.com/ http://x.openjumper.com/ethernet/ */   #include SPI.h #include Ethernet.h   // 设定MAC地址、IP地址 // IP地址需要参考你的本地网络设置 byte mac[] = {    0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192,168,1,177);   // 初始化Ethernet库 // HTTP默认端口为80 EthernetServer server(80);   void   setup() { // 初始化串口通信    Serial.begin(9600);   继续阅读:   http://www.iwiznet.cn/blog/?p=6825  
相关资源