W5500 과 wiz100sr UDP multicast 통신

기존에 PC와 wiz100sr 로 UDP multicast 과 TCPIP 통신하던걸 W5500 chip을 이용해서 사용하려합니다.

PC에서 Dst(MAC) :01:00:5e:7f:ff:ff, Dst(IP) : 224.255.255.255 로 뿌리면 wiz100sr 모듈이 UDP multicast 통신하여 네트워크 설정값을 받아오도록 되어있는데,

현재 W5500 포팅된 보드에서는 네트워크 설정이 MAC : 01:00:5e:1:1:1, IP : 244.255.255.255 여야만 데이터를 받을 수 있습니다. (MAC address 앞 두자리 01:00 만 건드리지 않으면 다른 값이 와도 데이터가 들어오지만 IP를 바꾸면 데이터가 들어오지 않습니다)

  1. 제가 알고있기로는 UDP는 MAC address로 통신하기 때문에 Mac address를 multicast address 01:00:5e 만 설정해주면 통신이 가능해야하지 않나요?

  2. multicast setting으로 소캣을 열었을 때 sendto 가 오류는 안나는데 데이터가 보내지지 않습니다. (multicast 설정 안하면 잘됨)
    아래는 제가 세팅한 소캣 옵션입니다.

  3. 추측이지만 현재 broadcast 가 block 된 상태라 Dst IP 일때만 받고 broadcast는 무시하는거 같은데. Mode register MR 0x82 면 block들이 disable 된 상태인데 …왜 broadcast가 안들어오는지 모르겠습니다.

  4. Sn_MR_ ND/MC/MMB
    Multicast
    0 : using IGMP version 2
    1 : using IGMP version 1
    이 Bit 는 MULTI Bit 가 enable 상태이고 UDP 모드일 때 유효함 (P3-P0:
    ‘0010’) 추가적으로 multicast 는 IGMP message 에 Join/Leave/Report 와
    같은 version number 를 Multicast group 으로 보낸다.
    를 0과 1 둘다 해봤지만 … IP를 바꾸면 데이타가 들어오지 않습니다.

UDP DBUG :
DH Address : [ 00 : 00 : 00 : 00 : 00 : 00 ]
PORT : 1460
MR : 0x82
CR : 0x0
IR : 0x0
IMR : 0x1F
SR : 34
DIPR : [ 0 0 0 0 ]
DPORT : 0
FLAG : 0x4000

안녕하세요

socket을 open하기전에
Sn_DPORT, Sn_DIPR 레지스터에 muticastgroup의 ip와 port를 설정해주어야
해당 멀티캐스트 그룹에 가입이 되고 통신이 가능합니다.

감사합니다. :smiley: