W5500 Multicast 설정 관련 질문입니다

안녕하세요?

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 측 네트워크 정보의 경우 멀티캐스트 송수신에 따로 추가 설정 하는 것은 없습니다.

1 Like

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 패킷을 수신도 못하고 있습니다.

  1. Multicast주소를 사용자가 설정할 수 없는건가요?
  2. 위 레지스터가 설정한 값이 원래 읽히지 않는 메모리type 인가요?
  3. 제가 Multicast수신을 위하여 잘못된 레지스터에 설정한 것인가요?
  4. 잘못된 방법으로 설정한 것이라면 어떻게 설정해야 하나요?

이상 궁금한 사항입니다.

해당 레지스터에 쓰고 읽는 것이 안될 이유가없는데요… 읽을때 전부 default 값으로 읽히는걸로 보아 쓰기가 안된듯합니다.

  1. 이전에 가이드 드린대로 설정하실수 있습니다.
  2. READ가 가능한 레지스터 입니다.
  3. 같은 소켓으로 셋팅하셨는지 궁금하네요…
  4. 어떻게 잘못 셋팅했는지 주신 정보로는 알수가 없습니다…

해당 레지스터 셋팅하는 소스코드라도 올려주시기 바랍니다.