[DSP]/DSP283352013. 9. 15. 23:39

TMS320F28335 NET_EVM_EX 보드 + W5300 을 이용한 TCP/UDP 테스트

TMS320F28335 NET_EVM_EX 보드  + W5300 을 이용한 TCP/UDP 테스트




네트웍 및 MP3, Codec등을 테스트 할수 있는 [N_EX_NET EVM] 보드를 테스트 하기 위해 TMS320F28335에서 W5300을 이용한 TCP, UDP 테스틀 했다.


[N-EX_MCU] 보드는 다양한 타입의 MCU보드의 IO 및 Data/Address를 쉽게 확장해서 테스트 가능한보드이다.






W5300, W5100, W5200, Enc28J60등의 네트웍 컨트롤러를 쉽게 연결해서 테스트 가능하다.










TMS320F28335 EVM과 W5300을 이용한 TCP/UDP 테스트 동영상


Posted by nexp

댓글을 달아 주세요

[INTERFACE]/iMCU_W71002010. 11. 23. 23:35

[W7100 EVM] UDP 테스트

[W7100 EVM] UDP 테스트



UDP는 신뢰성을 보장하지 않는 대신 커넥션이 필요 없으므로 속도가 빠르고 간단하게 제어 할수 있다. 접속필요 없이 IP와 포트를 알고 있으면 바로 데이터를 보낼 수 있다.

UDP처리를 간단히 코드로 나타내면 아래와 같이 된다.
//UDP처리
void ProcessUDP(void)
{
//소켓번호
int s = SOCK_UDP;
//포트번호
int port = 3000;

 switch (getSn_SR())
 {
//연결되어 데이터를 수신하게 되면
 case SOCK_UDP:
  //UDP 데이터전송되면
    len = recvfrom(s, data_buf, len, (uint8*)gDestip, &dDestport);
   

   // 처리 한다.
   EthernetTest(data_buf, len);
  break;

 //연결종료
 case SOCK_CLOSED:
  close(s);
  socket(s,Sn_MR_UDP,port,0);  
   break;
}


UDP 호스트 프로그램은 예전에 작성했던  초간단 VB UDP 테스트 프로그램  테스트 했다.
udp_host.zip



W7100 UDP 테스트 코드
void main()
{
 unsigned int cnt = 0;
 unsigned char buffer[32]; 
 
 SystemInit();  //Initialize iMCU

 init_iMCU();
 
 Led1Init(); Led1On();
 Led2Init(); Led2Off();

 U0_Init(BAUD_115200);
 U0_PutStr("iMCU Serial Test\r\n");

 Init_Network();  // Initialize   Network Configuration
 
 Sw1Init();
 
 while(1)
 {
  ProcessUDP();

  //스위치 처리
  if(GetSw1())
  {
   sw_flag ^= 1;
   if(sw_flag == 1)Led2On();
   else Led2Off();

   sprintf(buffer, "cnt%d\r\n", cnt++);
   printf(buffer);
   
   //UDP로 데이터 전송
   sendto(0,buffer, strlen(buffer), (uint8*)gDestip, gDestport);
   
   Cbi(EIF, BIT1);
   Delay(100);
  }
 }



iMCU W7100 UDP 테스트 동영상
W7100 EVM보드상의 스위치를 누르면  누른 카운트값을 UDP로 전송하는 예제. PC프로그램에서 UDP로 데이터 전송하여 LED On/Off.
Posted by nexp
TAG iMCU, udp, W7100

댓글을 달아 주세요

[Proramming]/VB2007. 8. 10. 13:48

초간단 UDP데이터 송수신 프로그램 작성(VB)


[W5100 WVM]초간단 UDP데이터 송수신(VB)

- 1분만에 만드는 UDP통신 프로그램

 

 

VB UDP 테스트 소스코드 


소스코드 자체는 상당히 간단하다. VB에서 제공하는 ActiveX를 이용하면 단 몇줄의 코드로 UDP데이터를 전송할 수 있다.

VC++과는 비교도 않될정도의 간단히 프로그램을 작성할 수 있다. 물론 쓰레드나 다른 여러 기법을 사용하기에는 무리가 있겠지만 간단한 이더넷 프로그램 작성하기에는 정말 쉽고 간편히 만들 수 있다.

 전체 소스코드

'Send Data
Private Sub Command1_Click()
    'Set UDP Socket
    Winsock1.RemoteHost = Text1.Text  'Destination IP
    Winsock1.RemotePort = Text4.Text  'Destination Port
    
    'Send UDP Data
    Winsock1.SendData Text2.Text
End Sub

 

'Receive Data
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim strData As String
   
    'Receive UDP Data
    Winsock1.GetData strData

    Text3.Text = strData
End Sub

  

Winsock ActiveX Control 추가

[구성요소]에서 Microsoft Winsock Control추가

 

 추가한 Winsock Control을 폼위에 올린다.

 

 Socket 속성 설정 - UDP로 설정

 

원하는 형태로 폼을 꾸민다.

 

데이터 전송
버튼을 눌렀을때 호출되는 Command1_Click()함수에서 Text2 박스의 내용을 UDP로 전송 하도록 프로그램 작성 한다.
상당히 간단하다. SendData()함수로 문자열을 전송하면 끝이다.

 

 데이터 수신
이더넷(UDP)로 데이터가 수신되면 호출되는 Winsock1_DataArrival()함수에서 GetData 함수로 수신된 데이터를 얻어서 Text3에 표시 하도록 한다.

 

 테스트


 

UDP데이터를 송수후 시리얼 포트로 표시

Posted by nexp
TAG udp, vb, W5100_EVM

댓글을 달아 주세요