안녕하세요. Wiznet 여러분.
W5200에 대해서 문의를 해 봅니다.
W5200을 STM32F407VE에 연결해서 Network 구현을 하고 있는데,
6시간이나 7시간동안 100Kbps 정도로 데이터를 쓰고 받고 있는데,
Wiznet 칩이 PC에 Close를 주고 있는 것 같아요.
그런데, Close STATE에 Break point을 걸어도 걸리지 않습니다.
그래서 문의를 해 정리하면 W5200 칩안에서 Close을 PC에 요청할 수 있나요. 외부의 Firmware에서는
Close를 하지 않습니다. 그럼 어떻게 Close를 요청하는지 또는 PC에서 Close을 받을 수 있는 경우가 있는 지 궁금합니다.
감사합니다.
안녕하세요.
아마도 timeout 발생으로 인한 close 일거라 생각 됩니다.
TCP connection이 된 상태에서, 데이터를 보냈는대 ack를 받지 못하는 경우 RTR. RCR 레지스터의 값에 따라 재전송 이후 timeout이 발생하며 close가 됩니다.
또는 ARP 전송 이후 응답을 받지 못하는 경우에서 발생합니다.
그럼 Close 된 상태에서 W5200 칩의 State는 Listen이나 Close 상태인가요 아니면 Session Establish 상태인가요?
왜나하면 Session은 Establish 상태에 있거든요.
Listen이나 Close 상태가 아닙니다.
PC와 W5200을 연결하면
PC에서는 request to close를 받고 Close 를 했고, W5200은 Session Etablish상태입니다. 이게 가능한 건가요?
감사합니다.
W5200에서 FIN packet을 전송했다면 PC가 FIN/ACK를 보낼 겁니다.
만약에 보낸다면 이 패킷을 받고 close 상태가 되거나
보내지 않았다면 이 또한 timeout이 발생하여 자동으로 close 상태로 됩니다.
즉, close상태가 되야 정상입니다.
PC쪽에서 W5200에서 보내는 FIN 패킷이 맞는지 확인해보시고,
W5200에서 timeout interrupt가 발생했는지도 확인해보세요.