WIZnet Developer Forum

w5300 이용 멀티캐스트 문제

안녕하세요. W5300 을 이용하여 멀티캐스트를 구현하고자 하는데 문제가 있어 문의드립니다.

현재 장비를 2대 운용하고 있습니다.
편의상 장비A 와 장비B라고 하겠습니다.

장비 A의 경우 W5300 을 1개 사용하여 첫번째 ip를 사용하고,
장비 B의 경우 W5300 을 3개 사용하여 각각의 W5300 별로 두번째, 세번째, 네번째 ip를 할당하여 사용을 하고있습니다.

두 장비를 HUB를 이용하여 멀티캐스트 운용시,

장비 A에서는 10ms 간격으로 약 90바이트의 데이터를 멀티캐스트 그룹으로 send 해줍니다.

장비 B에서는 두번째 ip 에서는 10ms 간격으로 약 90바이트의 데이터를 멀티캐스트 그룹으로 send 해줍니다.
세번째 ip 에서는 10ms 간격으로 약 90바이트의 데이터와, 200ms 간격으로 약 10바이트의 데이터를 멀티캐스트 그룹으로 send 해줍니다.
네번째 ip 에서는 100ms 간격으로 약 10바이트의 데이터를 멀티캐스트 그룹으로 send 해줍니다.

위와 같이 운용을 할때, reciv 를 확인해보면 장비 B의 두번째 ip에서는 reciv 되는 모든 데이터중 장비 A에서 보내오는 데이터만 파싱하여 사용을 합니다.
즉, 운용을 할때 장비B의 두번째 ip에서 reciv하는 데이터 간격을 확인하면, 처음 5분가량은 데이터를 10ms 간격으로 잘 reciv 하다가, 시간이 조금 지나면 reciv를 정상적으로 하지 못하는 현상이 보입니다. 이때, Pn_BRDYR을 이용하여, RX부분의 full flag 확인을 해본결과, 처음 5분가량 데이터가 10ms 간격으로 잘나올때는 flag가 뜨지 않습니다만, 시간이 지나 reciv 주기가 일그러지는 타이밍에 확인하면 full flag가 나오는 현상이 있습니다.

위 현상에 대하여, 문의드립니다.
혹여나 내용 설명상 부족한부분등이 있으면 답변을 남겨주시기 바랍니다.

추가적으로 더 적자면, 장비A는 그대로 운용하고, 장비 B에서 세번째 ip에 해당되는 부분의 send 부분만 주석을 할경우 30분 정도 운용해본결과 잘 운용이 됩니다.
세번째 ip에서 10ms 간격으로 send 하는 부분만 주석을 할 경우 시간의 차이는 있지만, 약 10분가량 운용시 reciv 타이밍이 일그러지는 현상이 있구요…

말씀하신 증상으로 보아
데이타는 정상적으로 RX buffer에 들어가는 것으로 보입니다.
receive() 함수가 제대로 동작하지 않을 경우 RX buffer가 비워지지 않을 수 있습니다.
receive() 함수를 한번 더 재 검토 바랍니다.

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.