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.

K1_STK里面的GE的例子能不能用于与计算机通信



我运行了K1_STK里面的GE的例子GE_TEST_DSP0_TO_DSP1,为什么计算机什么也收不到,计算机发出的6678也收不到呢

  • 请先确认按照STK doc文件夹下的GE_test文档说明修改工作模式

    GE_Test_Data_Path test_data_path= GE_TEST_DSP0_TO_DSP1;

    在PC侧运行类似wireshark的软件抓取网络报文,查看是否有DSP发送过来的报文。

  • 谢谢!网络通了

    我测了一下,

    1)为什么我用PC向DSP发数很慢,怎么改能快呢

    2)收到的包含Emac帧头,能不能过滤去掉,网络包有1514长度限制,导致中断很多,有办法把接收到的数据放到一起,达到一定数量再中断吗

  • 你好,

    1、你是通过什么方式由PC向DSP发包的?是用的发包软件吗?发包间隔是多少呢?由底层驱动直接收包绝对是最快的网口通信的方式,比起NDK效率要高出很多。只要两帧的间隔大于中断服务函数处理一帧数据的时间就完全可以持续的收包,而且出现不会丢包。流量达到50MB/S是没问题的,估计是你PC发包的方式有问题。

    2、去帧头需要由程序来完成,底层硬件不具有这个功能,只能根据MAC地址进行帧过滤。K1能支持的最大帧长是9504字节,所以PC可以向DSP发巨型帧。网口中断是由Navigator中的accumulator buffer产生的,中断步进方式可以设置成你需要的那种,即buffer满产生中断,需要积累几帧数据就把buffer的entry设多大。总之,三言两语解释不清,具体的细节请参考navigator guide以及GbE Switch guide。

  • 谢谢您的回复

    计算机端自己利用winpcap写的测试程序,好像发送不了巨型帧(XP系统),麻烦告诉我怎么发巨型帧,已经设置了MAC过滤,之所以慢的原因是因为中断解包和分发数据什么的耗时太长,你说的把几帧数据积累起来的办法速度不会有改善。

  • 您好!我现在也在调试6678的网口,能发一份您修改后的GE程序吗?我按网上修改但是无法收到pc发到dsp的包,而且dsp发到pc的包间隔是1ms左右,我看代码应该是由延时导致的。如何修改代码才能使dsp发送和接收udp包呢?