微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > CC3200 TCP通信速度特别慢,寻求原因

CC3200 TCP通信速度特别慢,寻求原因

时间:10-02 整理:3721RD 点击:

本人打算用CC3200(A)发送TCP数据包给CC3200(B),他俩都作为STA模式连接在路由上,能够正常收,但是速度特别慢,几乎1分钟只能收到0.1mb,我试着将发送端每次发送的包调的大一点,结果还是一样的速度,为了排除每次断开重连的原因,我让A持续发送数据给B,结果仍然特别慢,我试着去排除他们两个的问题,我把电脑连到路由,用发送端A发给电脑,电脑端接收速度很快,排除了发送端的问题,结果用电脑又给接收端B每隔1ms发送数据,接收端也收的很快……不知道为什么用A去给B发就会出现速度特别慢的问题,附上代码(代码中是每发送10包断开重连继续发送),还请麻烦大家帮我分析一下原因,谢谢了!

 while(1)
    {
    // creating a TCP socket
    	iSockID = sl_Socket(SL_AF_INET,SL_SOCK_STREAM, 0);
    	if( iSockID < 0 )
    	{
    		ASSERT_ON_ERROR(SOCKET_CREATE_ERROR);
    	}
    	iStatus = sl_Connect(iSockID, ( SlSockAddr_t *)&sAddr, iAddrSize);
    	if( iStatus < 0 )
    	{
        // error
        sl_Close(iSockID);
        ASSERT_ON_ERROR(CONNECT_ERROR);
		}
		for(i=0;i<10;i++)
		{// sending packet g_cBsdBuf[BUF_SIZE-6]=(char)lLoopCount>>24; g_cBsdBuf[BUF_SIZE-5]=(char)lLoopCount>>16; g_cBsdBuf[BUF_SIZE-4]=(char)lLoopCount>>8; g_cBsdBuf[BUF_SIZE-3]=(char)lLoopCount;
iStatus = sl_Send(iSockID, g_cBsdBuf, 262, 0 );if( iStatus < 0 ){	// error	sl_Close(iSockID);	ASSERT_ON_ERROR(SEND_ERROR);}
		   lLoopCount++;
		}
		sl_Close(iSockID);
		MAP_UtilsDelay(8000000);

    }

以上是发送端;

      int Ret,lLoopCount;
      int socketID[4] = {-1, -1, -1, -1};
      for(i = 0; i < 4; i ++)
	  {
		  if(socketID[i] < 0)
		  {  socketID[i] = sl_Accept(serverID, ( struct SlSockAddr_t *)&sAddr, (SlSocklen_t*)&iAddrSize);
		  }

		  if(socketID[i] > 0)
		  {
		      int LOOP;
    		    UART_PRINT("\n\rReceiving:\n\r");
		    for(LOOP = 0;LOOP < 1024 ; LOOP++)     {	  Ret = sl_Recv(socketID[i], g_cBsdBuf, 1000, 0);	  for ( lLoopCount = 0;lLoopCount < Ret;lLoopCount++)  {  	  MAP_UARTCharPut(UARTA0_BASE,g_cBsdBuf[lLoopCount]);   }	  memset(g_cBsdBuf,0,sizeof(g_cBsdBuf));	 }
		  }
	  }
	  for(i = 0; i < 4; i ++)
	  {
		  sl_Close(socketID[i]);
		  socketID[i]= -1;
	  }

以上是接收端。

每发送10包断开重连继续发送-----快速发送可以不用断开,直接向目的地址的IP+端口号发送数据即可

我试过不断开,速度仍然特别特别慢

经过检查,发现是发送端速度太快没有进行限制,接收端用uart输出速度太慢造成数据堆挤,将发送端速度降低便可。

UART可采用FIFO+DMA的方式提高使用效率,提高数据的传输效率

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top