TI员工,您好,我需要尽快的实现dsp向PC传输,有以下问题,请帮忙解答
(1)我采用了TI官方提供的GE ,想从DSP向 PC发射数据,请问详细的步骤是怎样的?按照之前的修改的我也做了 但是无法ping 成功? 有说静态IP,请问这是怎么设置的?DSP IP 地址是?
(2)如果在GE中想要实现TCP/UDP传输应该怎么设置?
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.
TI员工,您好,我需要尽快的实现dsp向PC传输,有以下问题,请帮忙解答
(1)我采用了TI官方提供的GE ,想从DSP向 PC发射数据,请问详细的步骤是怎样的?按照之前的修改的我也做了 但是无法ping 成功? 有说静态IP,请问这是怎么设置的?DSP IP 地址是?
(2)如果在GE中想要实现TCP/UDP传输应该怎么设置?
Hi, 您好!
1. 您需要修改GE_Test.c:
> GE_Test_Data_Path test_data_path= GE_TEST_DSP0_TO_DSP1;
> Ethernet_Mode ethernet_mode = ETHERNET_AUTO_NEGOTIAT_SLAVE;
> GE_Port_Connection port_connect[2]=
{
GE_PORT_CABLE_CONNECT, //SGMII port 0 假设您的板子用的是以太网端口0
GE_PORT_NO_CONNECT //SGMII port 1
};
重新编译后在DSP核0上运行
GE工程包含物理层,MAC曾, 没有TCP/IP及上层协议,所以ping不能用
DSP IP您可以自己在软件中设定:
即当DSP对外发送数据包时(详见GE_2DSP_Test.c 中的 GE_2DSP_Test()函数), 您只要按协议格式在填MAC头之前填好IP头即可
2. 您可以在 GE_2DSP_Test()函数的基础之上添加TCP/IP发送端代码
在GE_Interrupts.c 文件的parserRxPacket函数中添加TCP/IP接收端代码
上诉这种方式要添加的代码较多, 您也可以使用NDK, NDK包含了TCP/IP层, 安装MCSDK后可以在安装目录下找到NDK
谢谢!
您好,我下载了一个STK_C6657_EMAC的工程文件中没有找到GE_2DSP_Test.c这个文件,请问您这个demo最新版本从哪里可以下载到?急用,多谢!
Hi Kevin Cai:
我们之前网络通信这块是基于NDK,官方提供的helloworld那个例程进行修改的,但是那个和pc-Ubuntu系统间tcp通信速率上不去,只有5M/s。和arm间通信速率则更低,仅有2M/s。所以我们现在考虑使用裸跑的这种方案测试一下速率,看会不会有大的提升。但是根据您所讲的这些修改方法,我感觉摸不着头脑啊,还请再指教:
1.按协议格式在填MAC头之前填好IP头即可,这个如何添加IP头,有相关文档可以查阅吗?协议格式在哪里可以看?
2. 您可以在 GE_2DSP_Test()函数的基础之上添加TCP/IP发送端代码
在GE_Interrupts.c 文件的parserRxPacket函数中添加TCP/IP接收端代码
这个要自己对tcp/ip协议进行封装吗?有修改好的demo可供参考吗?
Hi, 您好!
1. 格式是按TCP/IP协议填的,附件是格式的简要说明
2. 是的,要自己封装,您可以参考NDK; TCP/IP是公开的协议,您也可以寻找开源代码
谢谢
你好, kevin。 我用的6678的开发板运行你的GE程序,想测试6678和PC之间的连接,按照你的说明修改程序:
> GE_Test_Data_Path test_data_path= GE_TEST_DSP0_TO_DSP1;
> Ethernet_Mode ethernet_mode = ETHERNET_AUTO_NEGOTIAT_SLAVE;
> GE_Port_Connection port_connect[2]=
{
GE_PORT_CABLE_CONNECT, //SGMII port 0 假设您的板子用的是以太网端口0
GE_PORT_NO_CONNECT //SGMII port 1
};
但是现在程序停在了wait for link up那个循环了,请问这是什么原因?程序的其他地方我都没有做过改动,我把开发板和EVM6678直连的。
谢谢!
您好!
我们之前网络通信这块是基于NDK,官方提供的helloworld那个例程进行修改的
我目前也想做基于NDK的UDP通信,与PC机通信。
请问方便分享您的代码吗?
谢谢!
我的邮箱stevechaw@126.com
你好,
我也是使用GE的例程进行测试,板卡是通过SGMII port0实现两个DSP之间的连接。然后现在两个DSP之间数据通信可以实现,但在进行速率测试的时候,理论上来说千兆以太网的话应该可以达到125MB/s,但实际测出来的结果却是61MB/s,与理论值差别有些大,这个请问各位大神是什么原因。传输的数据中没有使用协议,MAC层的数据传输,除了传输的测试数据9200byte以外,再就是14byte的MAC地址以及包类型定义。
多谢!
您好!我也在调EVMC6678 网络和PC间的通信,看了您2L说的步骤,也按您说的配了,加载到core0,发现如下一直处于等待中。
[C66xx_0] JTAG ID= 0x0009e02f. This is C6678/TCI6608 device, version variant = 0.
DEVSTAT= 0x00000001. little endian, No boot or EMIF16(NOR FLASH) or UART boot, PLL configuration implies the input clock for core is 50MHz.
SmartReflex VID= 38, required core voltage= 0.943V.
Die ID= 0x0100d010, 0x0401011c, 0x00000000, 0x17fe0020
Device speed grade = 1000MHz.
Enable Exception handling...
Initialize DSP main clock = 100.00MHz/1x10 = 1000MHz
Initialize PASS PLL clock = 100.00MHz/2x21 = 1050.000MHz
Initialize DDR speed = 66.67MHzx/1x20 = 1333.333MTS
GE auto negotiation (slave) two DSPs test (DSP0 -> DSP1)...
这是怎么回事啊!我是直接用网线把PC和dsp相连,按您上面配置的,其他地方没有改
看了下您和楼下的帖子,有几个问题不解
1.您说,DSP IP您可以自己在软件中设定,要按协议格式在填MAC头之前填好IP头即可,那么这步是必须要做的吗,否则,仅上面的几步无法和PC通信;如果必须的,那具体的步骤如何写代码,我第一次调试网络,好多地方都不懂。您能指导下吗?谢谢!!!
您好!不知您问题是否已经解决,能指导下我吗,我刚接触网口部分。您后来是怎么改的,能分享下吗,我的邮箱:yangfenzhia@163.com ,qq:2195636160
红色显示部分是正常的啊,因为PC相当于文字中说的DSP1了!应该是这样的!
baozeng zhao
您好,最近也在调试板子上的以太网接口,想测试一下接口的传输速度,方便将您的测试代码共享一下吗,
谢谢