W7500P TCP client - W7500P TCP server 연결 문의


#1

현재 두 개의 W7500P 보드를 사용하여 하나는 TCP server, 하나는 TCP client로 동작시키고자 합니다.
각각은 PC를 사용해서 TCP server, client 동작을 확인했는데, 두 개를 연결하니까 초기에

0:Try to connect to the 192.168.xx.xx

의 메시지만 계속해서 뜨고 연결이 되지 않습니다. ( TCP client쪽 메시지)

코드는 예제에서 따로 추가한게 없이 초기화 부분은 똑같이 사용했고, 실행쪽은 loopback test참고해서 각각 server, client 테스트 프로그램을 넣었습니다.

보시고 조언 부탁드립니다.
감사합니다.

// TCP Client 코드

// W7500P setting
*(volatile uint32_t *)(0x41003070) = 0x61;
*(volatile uint32_t *)(0x41003054) = 0x61;

/* mdio Init */
mdio_init(GPIOB, MDC, MDIO);
//mdio_error_check(GPIOB, MDC, MDIO); //need verify...

/* PHY Link Check via gpio mdio */
retry_cnt = 0;
while( link() == 0x0)
{
	printf(".");  
	delay(500);
	retry_cnt++;
	if(retry_cnt > 10)
	{
	        printf("PHY link fail. \r");  		
		break;
	}
}
    loopback_tcpc(....);

// TCP server code
// W7500P setting
*(volatile uint32_t *)(0x41003070) = 0x61;
*(volatile uint32_t *)(0x41003054) = 0x61;

/* mdio Init */
mdio_init(GPIOB, MDC, MDIO);
//mdio_error_check(GPIOB, MDC, MDIO); //need verify...

/* PHY Link Check via gpio mdio */
retry_cnt = 0;
while( link() == 0x0)
{
	printf(".");  
	delay(500);
	retry_cnt++;
	if(retry_cnt > 10)
	{
		b_ethernet_exist = false;
		printf("PHY link fail. \r");  		
		break;
	}
}
    
   loopback_tcps(....);

#2

맥어드레스와 IP 주소는 각각의 보드에서 어떻게 설정하셨나요.
중복해서 사용하신 것은 아닌지요.


#3

MAC address 중복된거 확인했습니다.

Client쪽을 바꿔서 해 봤는데, PHY connection error가 뜹니다.

Ethernet Checking… (예제의 run message)

…PHY link fail.

MAC address를 중복했을때는 PHY는 연결되고 try to connect메시지가 뜹니다.

아래 메시지 참고하시기 바랍니다.

Ethernet Checking…

…PHY is linked.

MAC ADDRESS : 00:08:DC:01:02:03

IP ADDRESS : 192.168.069.034

GW ADDRESS : 192.168.069.001

SN MASK: 255.255.255.000

0:Try to connect to the 192.168.69.34 : 6934

0:Try to connect to the 192.168.69.34 : 6934

0:Try to connect to the 192.168.69.34 : 6934

0:Try to connect to the 192.168.69.34 : 6934

내용 보시고 문제 있는 부분을 알려주시기 바랍니다.

감사합니다.


#4

현재 알려주신 내용만으로는 문제있는 부분이 정확하게 파악하기가 힘듭니다.

먼저 Server와 Client 각각의 IP address와 Mac address 그리고 Socket의 port를 알아야합니다.

Mac Address는 중복되는일이 있으면 절대 안됩니다. IP 또한 같은 네트워크안에서 중복이 되면 안됩니다.

Mac 주소와 IP가 고유하다면 다음으로 Client가 Server에 연결을 하기위해서는 Destination Address가 Server의 IP Address가 되어야합니다 Port또한 마찬가지입니다.

예를 들어 Server의 IP가 192.168.1.100 이고 Client의 IP가 192.168.1.99라고 치면,
Server의 동작은 해당 Socket을 5000번 port로 열었다고 하겠습니다. 그럼 server는 이제 listen이라는 동작을 하면됩니다.

Server IP 192.168.1.100
Server PORT 5000
Server Staus Listen

다음은 Client입니다 IP가 192.168.1.99입니다 그리고 Socket을 5000번으로 열었다고 하겠습니다. 그럼 Client는 이제 Destination IP와 PORT로 Connect를 시도하게 됩니다.

여기서 접속이 제대로 안된다면 Destination IP와 PORT가 틀렸을 가능성이 있습니다.

기본적인 TCP/IP 네트워크 알고 계셔야 동작을 시키고 이해하는데 무리가 없습니다.