Поднял сервер TCP на W5100. Работаю по прерываниям. Если изменилось состояние, то МК получает прерывание от W5100, вычитывает регистр Sn_IR и вызывает соответствующий обработчик. Всё работает. Все прерывания работают. Возникает проблема, при нештатной потери связи. Например: установил связь (т.е. клиент открыл сокет на W5100, сокет перешел в состояние SOCK_ESTABLISHED. Если клиент закрывает сокет, то w5100 выставляет флаг прерывания DISCON в регистре Sn_IR. Вызываеся обработчик и чипу w5100 даются команды close/open/listen. Но если установить соединение и выдернуть кабель LAN из розетки, то W5100 этого не замечает. W5100 продолжает находиться в состоянии SOCK_ESTABLISHED. При восстановлении линии связи (воткнули в розетку LAN кабель) и при попытке заного клиентом открыть сокет - ни чего не получается. сокет на W5100 занят предыдущим соединением… сокет открыт… а новый клиент не может подключиться.
Как можно чипом W5100 отследить обрыв линии?