본문 바로가기

[INTERFACE]/iMCU_W7100

[W7100 EVM] 예제프로그램 작성 - TCP/IP 테스트 (Ping테스트)

[W7100 EVM] 예제프로그램 작성 - TCP/IP 테스트 (Ping테스트)

W7100은 8051코어에 W5100코어가 내장되어 있는 MCU이므로 기존 W5100코드를 이용하면 크게 수정없이 사용 가능하다. (물론 Wiznet에서 제공하는 코드는 호환성이 좀 떨어지므로 레이어를 두어 수정을 좀 했다.)


네트웍 초기화
MAC Address는 고유하 번호를 할당받아야 하지만 테스트용으로 충돌 나지 않는 할당하면 된다.
보드의 IP역시 충돌나지 않는 값으로 설정하면되지만 공유기를 사용하는 경우 자동 할당번호 내의 값으로 설정해야 한다.
#define MY_NET_MAC   {0x00, 0x08, 0xdc, 0x00, 0x00, 0x00} // MY Mac Address : 00.08.DC.00.00.00

#define MY_NET_GWIP   {192,  168, 0,    1} //Gateway     : 192.168.0.1
#define MY_SOURCEIP   {192,  168, 0,  104} //보드 IP     : 192.168.0.104
#define MY_SUBNET   {255, 255, 255,   0}


NetInit() 함수에서 초기화를 하면 (MAC, IP, GW..레지스트에 값을 기입하면) 하드웨어 적으로 Ping리퀘스트를 해준다.
Keil Project에는 01_drv/iinchip 폴더에 있는 TCPIPCore.c, socket.c, wizmemcpy.c 파일을 추가 해 주면 TCP/IP처리는 쉽게 된다.



W7100 Ping 테스트 예제코드
코드 자체는 상당히 간단하다. MAC, IP, GW레지스터에 데이터를 셋팅하면 ping이 자동으로 처리된다.
void main()
{
 unsigned int cnt = 0;
 SystemInit();  //Initialize iMCU

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

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

 NetInit();  // Initialize   Network Configuration
 
 while(1)
 {
  }


W5100 ping테스트

반응형