TI论坛
直播中

王欢欢

7年用户 141经验值
私信 关注
[问答]

请教关于C6678千兆网调试及性能问题

            各位专家及大牛,我在调试C6678的千兆网时,使用了CCS自带的MCSDK下的hua daemo例程,在其中网络连接建立后加入了自己用SOCKET向计算机(xp系统)发送数据的函数,实际测试中发现采用IPPROTO_UDP协议时,发送速率能达到400Mbps左右,发送200万个包其中大概有4、5个丢失,请问用socket传输速率(最好是你们实际中实现的速率)最大能达到多少?我后来想改成IPPROTO_TCP(参照的是NDK目录下spru523文档中的例子),但用connect函数建立连接时始终失败,错误代码61,我查了一下是拒绝连接,请问这个是什么原因及怎么解决。
           另外,我看了一下PA_EmacExample那个例子,这个例子对网络的配置是不是比hua daemo更底层?在zhen kong发表的帖子“C6678千兆网调试”中Marvin Liang 回复说“例子中注释掉 CSL_SGMII_enableLoopback (macPortNum); cpsw_mng.c 即可取消internal loopback模式,请参看附件中的代码在C6678 EVM上来实现千兆以太网的SGMII和SERDES的配置。”我照着做了PLL能锁定,但程序中有一段查询SGMII状态寄存器的代码,显示始终无连接(寄存器连接状态位一直为0,网线已经连接好),程序在这死循环不能继续运行,请问是否需要配置MDIO?如果需要怎么配置?例子中有一个Init_Mdio的函数,但没有实现。如果不需要配置,那怎么才能建立连接?
谢谢!

回帖(39)

蒲泛粟

2018-8-2 08:39:15
Water Sea,
   1. 目前的NDK暂未发布基于C6678L EVM的benchmark数据 (请关注http://www.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber=spraaq5a)
 2. 请问你测试400Mbps测试中所用的包长是多少?另,发送2M个包有4,5 个包的丢失是在多大的发送速率下?你可以根据NDK 的相关统计以及C6678 以太网用户手册中(sprugv9a.pdf)交换端口的统计来判断丢包的原因。
 3.PA_EmacExample是不带TCP/IP协议栈的例子,包含了底层的SGMII/CPSW/NETCP等的初始化过程。该例子也可以改为大量数据测试,该层的测试结果表明C6678以太网能达到线速。当然NDK中的例子因为包含协议栈,所以效率会有所下降。
 4. 如果你是用的C6678L EVM做与PC之间的收发包测试,则PDK默认的例子需要一点修改。因为C6678L EVM的SGMII port 1连接到了板子上的PHY,另一个SGMII port连接到了总线上。如果你get SGMII port 0的状态,可能一直是link down的,请参考我附上的文件。
 5. C6678L EVM上的PHY比较简单,跑PDK例子的时候,MDIO不需要初始化,也不必通过MDIO来配置PHY。当然你可以尝试这样做,硬件条件是允许的。
举报

王欢欢

2018-8-2 08:46:12
引用: flowerddd 发表于 2018-8-2 08:39
Water Sea,
   1. 目前的NDK暂未发布基于C6678L EVM的benchmark数据 (请关注http://www.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber=spraaq5a)
 2. 请问你测试400Mbps测试中所用的包长是多少?另,发送2M个包有4,5 个包的丢失是在多大的发送速率下?你可以根据NDK 的相关统计以及C6678 以太网用 ...

感谢Marvin Liang的回答!
1.我测试包长是1514字节,现在发送速率极限可以达到900Mbps左右,但计算机收不下来。另外socket发送用UDP没问题,一改成TCP就connect函数失败,报拒绝连接,请教一下这是什么原因。
2.dsp上一个核发送的时候我怎么看占用了多少资源?
3。第四点我也发现了,没有连接的是port0.
再次感谢!
举报

蒲泛粟

2018-8-2 08:51:40
引用: 77uufuwr 发表于 2018-8-2 08:46
感谢Marvin Liang的回答!
1.我测试包长是1514字节,现在发送速率极限可以达到900Mbps左右,但计算机收不下来。另外socket发送用UDP没问题,一改成TCP就connect函数失败,报拒绝连接,请教一下这是什么原因。
2.dsp上一个核发送的时候我怎么看占用了多少资源?

1. 如果你想做网口吞吐量测试,只有一个EVM可以用内部环回模式,或者用两个EVM直接连接测试。TCP失败原因很多,请根据我们的例子来修改你的代码(NSP包中含有测试实例)
software-dl.ti.com/.../index.html
2. 你可以用TSC寄存器来测量发送函数耗用的cycle数 (refer to sprugh7)
举报

王欢欢

2018-8-2 09:08:40
引用: flowerddd 发表于 2018-8-2 08:51
1. 如果你想做网口吞吐量测试,只有一个EVM可以用内部环回模式,或者用两个EVM直接连接测试。TCP失败原因很多,请根据我们的例子来修改你的代码(NSP包中含有测试实例)
software-dl.ti.com/.../index.html
2. 你可以用TSC寄存器来测量发送函数耗用的cycle数 (refer to sprugh7) ...

“ 4. 如果你是用的C6678L EVM做与PC之间的收发包测试,则PDK默认的例子需要一点修改。因为C6678L EVM的SGMII port 1连接到了板子上的PHY,另一个SGMII port连接到了总线上。如果你get SGMII port 0的状态,可能一直是link down的,请参考我附上的文件。
    我又试了一下,发现SGMII port 1也一直没有连接,这个是插好网线就可以吗,还是需要其他配置
举报

更多回帖

发帖
×
20
完善资料,
赚取积分