[W5100]
사용 중인 제품 명을 위와 같이 제목에 명기하시면 더 빠른 응답을 받으실 수 있습니다.
본 Template을 삭제 후 문의 내용을 남겨 주세요.
안녕하세요. 현재 W5100을 이용하여 UDP를 통해 서버가 살아있는지 체크하는 부분을 만들고 있습니다.
현재 확인한 바로는, UDP로 특정 아이피에 UDP를 쏠 경우 Sn_IR 레지스터로 Send_OK 가 날아오는것을 확인할 수 있었습니다.
그리고 제가 이해한 W5100 ARP 메커니즘으로, sendto 를 하면서 ARP를 보냄으로 ARP 테이블이 해당 값으로 초기화되면서 보낸 그 IP에 해당하는 ARP가 업데이트되어, 그 망이 끊어져도(랜선을 뽑는다는등) 계속해서 Send_OK가 뜨는것을 확인하였습니다.
그래서 이를 해결하기위해 해당 IP로 데이터를 보낸 후 바로 다른 IP로 다시 UDP 데이터를 보냄으로써 ARP 테이블을 초기화시키자 랜선이 끊어졌을 시 TIMEOUT이 뜨는걸 확인할 수 있었습니다.
이러한 작업은 3초에 한번씩 하도록 해두었는데, 문제는 외부망이 끊어졌을 경우입니다.
허브를 통해서만 mcu(w5100이연결된)와 서버쪽 pc가 랜선으로 연결되어있을 시, 외부망을 사용하지 않을시인데,
이 때에 mcu에서 pc쪽 IP로 UDP 데이터를 쏘면 Send_OK가 뜨지만 외부망이 끊긴 내부망으로만 연결된 상태에서는 다른 IP로 UDP를 쏠 씨 ARP 초기화 즉 업데이트가 되지않습니다. 원래 ARP 메커니즘이 이러한가요?
저희가 사용하는 제품은 외부망이 연결되지 않고 내부망으로만 연결되는데, 보통 장비와 pc쪽 아이피가 한개씩 연결되어서
pc쪽 IP : 192.168.1.10
mcu쪽 : 192.168.1.11
이런식으로 두개의 아이피만 사용하게 됩니다. 그래서 19.2168.1.12 등으로 더미데이터를 보낼 시 UDP ARP가 초기화가 되어야 하는데, 초기화가 되지를 못하더군요…
무언가 방법이 있는지 답변부탁드립니다 !