This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 通过 DM365上的 USB-Net 协议、预计会有哪种传输速度?

Guru**** 2583915 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/629342/what-sort-of-transfer-speeds-are-to-be-expected-throught-the-usb-net-protocol-on-dm365

大家好、我现在已经完成了一组算法、这些算法构建了一个"图像"数组、将其放入图形序列数据包中并将其加载到 DLP 中。 该算法接受任何数量的要构建和加载的图像、但一次只加载96个图像(由于其最小曝光时间太长、我选择不使用扩展的图形序列)。 我在中使用了 clock()函数 库 (c/c++)、用于计算 CPU 执行所有指令所需的时间、包括构建"图像"、"旋转"这些指令(以实现真正的正方形)、将它们加载到 bmp"结构数组中、将其加载到数据包中、将数据包加载到 DLP 中、使用加载 DLP 数据包、 数据包和 A 数据包。 clock()估计每96个图形序列小于0.04s,但我已经用一个时钟表计时,每个96个图形序列大约需要7.5s。 这是由于 USB->Internet 通信协议造成的吗? 我希望通过 USB 2.0实现大约50MB/s 的传输速率、但~5MB 的传输速率要低得多。

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您能详细说明一下 USB 网络设置吗? DM365充当 RNDIS 设备还是充当连接到 USB 网络软件狗的 USB 主机?

    请参阅 pdf,其中讨论了 DM365的 USB 性能数据: www.ti.com/.../sprs566a.pdf
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jmfras、

    DM365 BSP 软件包在文档部分中包含性能指南、可帮助您进一步分析。  

    但是,请注意,DM365上 USB 2.0的50Mbps 是非常高的期望值:)

    由于 CPU 负载较高、这在实际的终端应用中可能无法达到此数字。 有关测试速度、请查看以下参考链接。  

    优点是 ,通过优化软件(包括 BSP 和您的应用程序),USB 吞吐量确实有提高的余地:)

    根据用例要求,我们可以提高吞吐量:)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不知道、DM365是在 DLP3000中构建的、但我在文档中找不到它的工作方式。 我只知道它是从 GUI 源代码下载的。 目前、我使用以下代码(应该能提供帮助)连接 DLP:

    /*套接字结构*/
    结构 saddr_in sa;
    SA.SIN_Family = AF_iNet;
    sa.sin_addr.s_addr = inet_addr (IP);
    SA.SIN_PORT = htons (0x5555);
    int DM365 = socket (AF_iNet、SOCK_STREAM、0);

    /*尝试建立连接*/
    if (connect(DM365、(sockaddr*)&sa、sizeof (sa))!=1){
    COUT<"已连接。"<<endl;
    COUT<<<<endl;}<br> else{<br> COUT<<"连接失败。<endl;
    返回-1;}
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我并不是很期待如此高的传输速率、但肯定不需要等待8s 的5MB 内存。 我一直在为我使用的所有函数计时、最后每个序列需要0.05秒(96个图形、每个图形52KB)、问题是计时仅考虑 CPU 特性、因此不考虑挂起时间、因此我不确定具体的问题是什么。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我建议您执行 iperf 测试、您可以交叉编译并运行以检查。 此外,在 shell 中提供 ping 命令时的周转时间是多少?
    此外、如果您可以提供 dmesg 日志和 ifconfig 输出、也会有所帮助
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ping:
    --192.168.1.100 ping 统计信息--
    发送26个数据包、接收26个、0%数据包丢失、时间24998ms
    RTT 最小值/平均值/最大值/mdev = 0.482/0.534/0.607/0.035ms

    配置:
    USB0 链路连接:以太网 HWaddr 0A:87:55:02:F8:6a
    iNet addr:192.168.1.99 Bcast:192.168.1.255 Mask:255.255.255.0
    inet6 addr:fe80::887:55ff:fe02:f86A/64范围:链接
    运行多播 MTU:1500公制:1的上广播
    RX 数据包:174错误:0丢弃:0超限:0帧:0
    TX 数据包:1745错误:0丢弃:0超限:0载波:0
    冲突:0 txqueuelen:1000
    RX 字节:10464 (10.4KB) TX 字节:2063727 (2.0MB)

    我将研究该 iperf 测试、看看我是否能够做到这一点。 至于 dmesg,我不知道。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    只需键入 ifconfig 之类的命令行即可
    # dmesg

    您的 ping 操作需要很长时间。 此外、如果可以共享正在使用的内核配置、 什么版本的内核? 如何连接到网络(可以是以太网连接到 DM36x 之类的任何电缆?)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    所以、我想它充当 RNDIS。 它通过 USB 连接。

    dmesg:
    [61606.464243] USB 3-2:使用 xhci_hcd 的全新全速 USB 器件编号19
    [61606.5924] USB 3-2:不以最高速度运行;连接到高速集线器
    [61606.593490] USB 3-2:找到新的 USB 器件、idVendor=0525、idProduct=a4a2
    [61606.593492] USB 3-2:新 USB 器件串:MFR=1、Product=2、SerialNumber=0
    [61606.593494] USB 3-2:产品:RNDIS/以太网小工具
    [61606.593495] USB 3-2:制造商:Linux 2.6.32.17-davinci1 with musb_hdrc
    [61606.600062] CDC_ETHERe 3-2:1.0 usb0:寄存器'CDC_ETH'位于 USB-0000:00:14.0-2、CDC 以太网设备、0A:87:55:02:F8:6a
    [61606.674317] CDC_Ether 3-2:1.0 usb0:kevent 12可能已被丢弃
    [61888.627052] systemd-hostnamed[7812]:警告:未安装 NSS-myhostname。 更改本地主机名可能会使其无法解析。 请安装 NSS-myhostname!
    [62060.446749] USB 3-2:USB 断开连接、器件编号19
    [62060.446822] CDC_ETHERE 3-2:1.0 usb0:取消注册'CDC_ETH' USB-0000:00:14.0-2、CDC 以太网器件
    [62357.364379] USB 3-2:使用 xhci_hcd 的全新全速 USB 器件编号20
    [62357.492567] USB 3-2:未以最高速度运行;连接到高速集线器
    [62357.493469] USB 3-2:找到新的 USB 器件、idVendor=0525、idProduct=a4a2
    [62357.493472] USB 3-2:新 USB 器件字符串:MFR=1、Product=2、SerialNumber=0
    [62357.493474] USB 3-2:产品:RNDIS/以太网小工具
    [62357.493477] USB 3-2:制造商:Linux 2.6.32.17-davinci1 with musb_hdrc
    [62357.499962] CDC_ETHERe 3-2:1.0 usb0:在 USB-0000:00:14.0-2、CDC 以太网设备、0A:87:55:02:F8:6A 处注册'CDC_ETHER'
    [62357.570131] CDC_Ether 3-2:1.0 usb0:kevent 12可能已被丢弃
    [62641.085674] USB 3-2:USB 断开连接、器件编号20
    [62641.085739] CDC_ETHERe 3-2:1.0 usb0:取消注册'CDC_ETH' USB-0000:00:14.0-2、CDC 以太网器件
    [63187.36854] USB 3-2:使用 xhci_hcd 的全新全速 USB 器件编号21
    [63187.496732] USB 3-2:未以最高速度运行;连接到高速集线器
    [63187.497662] USB 3-2:找到新的 USB 器件、idVendor=0525、idProduct=a4a2
    [63187.497665] USB 3-2:新 USB 器件串:MFR=1、Product=2、SerialNumber=0
    [63187.497667] USB 3-2:产品:RNDIS/以太网小工具
    [63187.497668] USB 3-2:制造商:Linux 2.6.32.17-davinci1 with musb_hdrc
    [63187.504067] CDC_ETHERe 3-2:1.0 usb0:寄存器'CDC_ETH'位于 USB-0000:00:14.0-2、CDC 以太网设备、0A:87:55:02:F8:6A
    [63187.580074] CDC_Ether 3-2:1.0 usb0:kevent 12可能已被丢弃

    内核:

    4.4.4.0-97-generic

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    这看起来是 PC 端的 dmesg。 您也可以从 DM36x 端共享 dmesg 吗? 看起来它被配置为全速(USB 1.1)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我该怎么做?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    与 PC 中的操作相同。 如果您要获取 DM36x shell、请键入
    # dmesg
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    哦、抱歉、我之前留下的 ping 信息也是在我的末尾而不是在 DM36x shell 上完成的。 如何访问它?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉、如何访问 DM365的 shell?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    最后、我得出了一些结果:

    ifconfig:
    USB0 链路连接:以太网 HWaddr 2A:C2:28:8B:90:6B
    iNet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
    运行多播 MTU:1500公制:1的上广播
    RX 数据包:67750错误:37丢弃:0溢出:0帧:37
    TX 数据包:66769错误:0丢弃:0超限:0载波:0
    冲突:0 txqueuelen:1000
    RX 字节:4402136 (4.1 MIB) TX 字节:3624886 (3.4 MIB)

    dmesg:
    Linux 版本2.6.32.17-davinci1 (Sanjeev@Sanjeev-VirtualBox)(gcc 版本4.4.1 (Sourcery G++ Lite 2010q1-202))#5 (2009年9月20日星期五16:14:26 IST 2013)
    CPU:ARM926EJ-S [41069265]修订版5 (ARMv5TEJ)、CR=00053177
    CPU:VIVT 数据高速缓存、VIVT 指令高速缓存
    机器:达芬奇 DM365 LCR
    存储器策略:ECC 禁用、数据高速缓存写回
    在节点0上总计页:29696
    FREE_Area_init_node:节点0、pgdat c0342804、node_mem_map c035a000
    DMA 区域:用于 memmap 的232页
    DMA 区域:保留0页
    DMA 区域:29464页、LIFO 批处理:7
    达芬奇 DM36x_rev1.2变体0x8
    在区域顺序和移动分组中构建1个区域列表。 总页数:29464页
    内核命令行:MEM=116M console=ttyS0、115200n8 root=/dev/ram0 rw initrd=0x82000000,5M ramdisk_size=15360 IP=off video=davincifb:vid0=1216x684x16,4050K:vid1=off:osd0=0x8,0K:osd1=0x8,0K:osd1=0x365_imb_0=0x3600_emp_mode.davinci_enc_mngr.ch0_output=LCD davinci_enc_mngr.ch0_mode=1216x684YUV vpfe_capture.interface=1
    PID 哈希表条目:512 (顺序:-1、2048字节)
    DEntry 高速缓存散列表条目:16384 (顺序:4、65536字节)
    inode 高速缓存哈希表条目:8192 (顺序:3、32768字节)
    内存:116MB =总共116MB
    存储器:108956KB 可用(3024K 代码、243K 数据、124K 初始化、0K HIGHMEM)
    slub:Genslabs=11、HWalign=32、order=0-3、MinObjects=0、CPU=1、 节点= 1
    分层 RCU 实现。
    NR_IRQ:245
    控制台:彩色虚拟设备80x30
    正在校准延迟环路... 147.86茂物剪(lpj=739328)
    挂载高速缓存散列表条目:512
    CPU:测试写入缓冲区一致性:好的
    达芬奇:8个 GPIO IRQ
    NET:注册协议系列16.
    DaVinci_serial_init:97:无法获取 UART2时钟
    BIO:创建层块 为0
    DM365 IPIPE 在连续模式下初始化
    VPSS VPSS:DM365_VPSS 已探测 VPSS
    VPSS VPSS:DM365_VPSS VPSS 探针成功
    DM365_afew_hw_init
    CH0默认输出"LCD"、模式"1216x684YUV"
    be_encoder_setoutput>
    将输出设置为复合
    vpbe_encoder_setmode 的开始..
    PBE_ENCODER_setMODE>
    PBE_ENCODER_setoutput>
    VPBE 编码器已初始化
    be_encoder_enumoutput>
    PBE_ENCODER_enumoutput>
    be_encoder_enumoutput>
    PBE_ENCODER_enumoutput>
    be_encoder_enumoutput>
    PBE_ENCODER_enumoutput>
    be_encoder_getoutput>
    PBE_ENCODER_getoutput>
    be_encoder_getmode>
    be_encoder_getmode/>
    VPBE 编码器已初始化
    VPBE 编码器已取消初始化
    gicpd_encoder_setoutput>
    logicpd_encoder_setmode 开始..
    ogicpd_encoder_setoutput>
    已初始化 LogicPD 编码器
    gicpd_encoder_enumoutput>
    ogicpd_encoder_enumoutput>
    gicpd_encoder_setoutput>
    logicpd_encoder_setmode 开始..
    ogicpd_encoder_setoutput>
    logicpd_encoder_setmode 开始..
    gicpd_encoder_getoutput>
    ogicpd_encoder_getoutput>
    gicpd_encoder_getmode>
    ogicpd_encoder_getmode>
    已初始化 LogicPD 编码器
    切换到时钟源 timer0_1
    musb_hdrc:6.0版、cpi-dma、外设、debug=0
    MUSB:ConfigData=0x06 (UTMI-8、dyn FIFO、SoftConn)
    MUSB:MHDRC RTL 版本1.500
    musb_hdrc:设置 fifo_mode 2.
    musb_hdrc:9/9最大 EP、4032/4096存储器
    MUSB 外设模式控制器、fec64000使用 DMA、IRQ 12
    NET:注册协议系列2.
    IP 路由高速缓存哈希表条目:1024 (顺序:0、4096字节)
    TCP 建立哈希表条目:4096 (顺序:3、32768字节)
    TCP 绑定哈希表条目:4096 (顺序:2、16384字节)
    TCP:配置哈希表(建立4096 BIND 4096)
    TCP 重新注册
    NET:注册协议系列1
    正在尝试将 rootfs 映像解压缩为 initramfs...
    rootfs 映像不是 initramfs (没有 cpio magic);看起来像 initrd
    释放 initrd 内存:5120K
    JFFS2版本2.2。 (NAND)Copyright2001-2006 Red Hat, Inc.
    msgmni 已设置为223
    ALG:无待试验(krpng)
    已注册 IO 调度程序 NOOP
    IO 调度程序预期已注册(默认)
    gicpd_encoder_getmode>
    ogicpd_encoder_getmode>
    gicpd_encoder_getmode>
    ogicpd_encoder_getmode>
    gicpd_encoder_getmode>
    ogicpd_encoder_getmode>
    davincifb davincifb.0:dm_vid0_fb:1216x684x16@0、0、帧缓冲区大小为4050KB
    可探测 DM365 IPEIF
    已初始化 IMP 串行器
    已初始化 DaVinci_previewer
    已初始化 DaVinci_resizer
    串行:8250/16550驱动程序,2个端口,禁用 IRQ 共享
    serial8250.0:MMIO 0x1c20000 (IRQ = 40)上的 ttyS0为16550A
    控制台[ttyS0]已启用
    serial8250.0:MMIO 0x1d06000 (IRQ = 41)处的 ttyS1为16550A
    返修:模块已加载
    LOOP:模块已加载
    NAND 器件:制造商 ID:0xEC、芯片 ID:0xF1 (Samsung NAND 128Mib3、3V 8位)
    在第65472页、版本0x01中发现错误的块表
    在第65408页、版本0x01中找到错误的块表
    NAND_READ_BBT:0x000000040000处的块错误
    NAND_READ_BBT:0x0000007a0000处的块错误
    NAND_READ_BBT:0x000002480000处的块错误
    NAND_READ_BBT:0x0000039c0000处的块错误
    NAND_READ_BBT:0x000004a60000处的块错误
    NAND_READ_BBT:0x000004f40000处的块错误
    NAND_READ_BBT:0x000007700000处的块错误
    在"Davinci_nand.0"上创建4个 MTD 分区:
    0x0000000000000000 0x000000400000:“bootloader”
    0x000000400000-0x000000800000:“内核”
    0x000000800000-0x000000C00000:“rootfs”
    0x000000c00000-0x000008000000:“数据”
    DaVinci_nand DaVinci_nand.0:控制器修订版2.3
    SPI_DaVinci SPI_Davinci.0:控制器位于0xfec66000
    G_ETher 小工具:使用随机自以太网地址
    G_ETher 小工具:使用随机主机以太网地址
    USB0:Mac 2a:C2:28:8b:90:6B
    USB0:主机 MAC aa:28:9a:26:AC:40
    G_ether 小工具:以太网小工具、版本:2008年阵亡将士纪念日
    G_ether 小工具:G_ether 就绪
    I2C /dev/entries 驱动程序
    Linux 视频捕捉接口:v2.00
    VPFE_INIT
    VPFE 捕捉:VPSS 时钟 VPSS_MASTER 被启用
    VPFE 捕获 VPFE 捕获:已注册 v4l2器件
    VPFE 捕获 VPFE 捕获:已注册视频设备
    IndPico:切换到 HD 影像仪 MT9P031视频输入
    Sanjeev::MT9P031->正在探测摄像机设备...
    Sanjeev::MT9P031->未检测到摄像头设备!!!
    VPFE-CAPTURE VPFE-CAPTURE:v4l2子器件 mt9p031寄存器失败
    Suresh:mt9m112_probe ()
    Sanjeev::MT9M112->正在探测摄像机设备...
    Suresh:mt9m112:f0 <= 0
    mt9m112:页面寄存器写入失败!!!!!!!
    mt9m112 1-0048:未检测到 MT9M11x 芯片、寄存器读取 ffff87
    Sanjeev::MT9M112->未检测到摄像机设备!!!
    VPFE-CAPTURE VPFE-CAPTURE:v4l2子设备 mt9m112寄存器失败
    mt9v113 1-003c:未检测到 MT9V113芯片、寄存器读取 ffffff87
    VPFE-CAPTURE VPFE-CAPTURE:v4l2子设备 mt9v113寄存器失败
    未注册子设备
    VPFE_REGISTER_CCDC_DEVICE:DM365 ISIF
    DM365_ISIF:DM365_ISIF 的探测器失败、错误-22
    AF MAJOR #:252、MINOR # 0
    AF 驱动程序已初始化
    AEW 主要#:251、次要# 0
    AEW 驱动程序已初始化
    vinci_display_init>
    尝试注册达芬奇显示视频设备。
    lay=c669a000、lay->video_dev=c669a164
    尝试注册达芬奇显示视频设备。
    lay=c669a400,lay->video_dev=c669a564
    DaVinci_init:加载了达芬奇 V4L2显示驱动程序 V1.0
    avinci_init>
    看门狗装置:心跳60秒
    DaVinci_MMC DaVinci_MMC.0:使用 DMA、4位模式
    TCP 立方注册
    NET:注册协议系列17.
    时钟:禁用未使用的 mmcsd1
    时钟:禁用未使用的 SPI1
    时钟:禁用未使用的 SPI2
    时钟:禁用未使用的 spi3
    时钟:禁用未使用的 SPI4
    时钟:禁用未使用的 pwm0
    时钟:禁用未使用的 pwm1
    时钟:禁用未使用的 pwm2
    时钟:禁用未使用的 pwm3
    时钟:禁用未使用的定时器1
    时钟:禁用未使用的 timer3
    时钟:禁用未使用的 EMAC
    时钟:禁用未使用的 voice_codec
    时钟:禁用未使用的 asp0
    时钟:禁用未使用的 RTO
    时钟:禁用未使用的 MJCP
    ramdisk:在块0处找到 gzip 映像
    G_ETHERNET 小工具:全速配置#1:CDC 以太网(ECM)
    VFS:在设备1:0上安装了根(ext2文件系统)。
    释放初始化内存:124K
    G_ETHERNET 小工具:全速配置#1:CDC 以太网(ECM)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    它作为全速 USB 设备运行。 因此理论最大值为1.5MB/s、您将获得约66KBps 的性能、这并不是很糟糕(考虑到网络开销)。 建议您配置为高速小工具。 另外、请尝试调整内核的网络相关缓冲区并进行检查。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在您链接到的 pdf 中、我找不到这样的最大参考值、它是5-10Mb/s 的顺序、您能给我指出该值在哪里?
    您建议进行哪种调优?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是标准配置、您可以在网上找到全速 USB。 我将讨论如何调整内核缓冲区大小、如读取和写入、如在以下链接中: wwwx.cs.unc.edu/.../network_tuning.php
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢。