W5500 Multicast 설정 질문좀 드리겠습니다.
소켓 오픈시에 Destination IP(224.1.1.11), Destination MAC(01:00:5E:01:01:0B), Destination Port(3000)를 설정해 주는 것 까지 알겠는데요…
이 경우 Source IP, Port 설정은 어떻게 해주어야 하는지 궁금합니다. 또한 모든 장비에 똑같이 설정해 주어야 하는 것인지요?
한가지 더 질문드립니다…
소켓 0는 송신용으로, 소켓 1은 수신용으로만 사용할 경우에는 IP, MAC, Port 설정을 어떻게 해주어야 하는지요?
Multicast 가입은 소켓 오픈 이전에 해당 Dest IP, Port, Mac을 설정한 후 소켓을 오픈하여야합니다.
먼저 Destination 정보를 레지스터에 써주신다음 소켓을 멀티캐스트 옵션을 주고 오픈하시면 해당 소켓은 해당 멀티캐스트에 가입이 되게 됩니다.
즉 해당 멀티캐스트 주소로 오는 패킷을 받게됩니다. 수신측이 되겠지요.(오픈할때 MLD 패킷이 나가게됩니다.)
반대로 송신용으로 사용할 경우에는 멀티캐스트 소켓옵션으로 소켓을 열 필요없이 그냥 해당 멀티캐스트 주소로 송신하시면 됩니다.
Source 측 네트워크 정보의 경우 멀티캐스트 송수신에 따로 추가 설정 하는 것은 없습니다.
Multicast를 위해 UDP소켓 오픈 이전에
Dest IP : 239.0.1.2 (setSn_DIPR() 함수 이용)
Dest Port : 20480 (setSn_DPORT() 함수 이용)
Dest Mac : 01:00:5E:00:01:02 (setSn_DHAR() 함수 이용)
설정 직후 레지스터 값을 읽은 결과
Dest IP : 0.0.0.0 (getSn_DIPR() 함수 이용)
Dest Port : 0 (getSn_DPORT() 함수 이용)
Dest Mac : FF:FF:FF:FF:FF:FF (getSn_DHAR() 함수 이용)
으로 읽혀 설정이 되지 않는 것으로 판단되고,
Multicast 패킷을 수신도 못하고 있습니다.