реклама на сайте
подробности

 
 
> Контроль потери соединения мс W3150+ с ПЭВМ, Интерфейс TCP/IP для Wiznet NM7010B+(W3150A+)
Vital33
сообщение Mar 30 2010, 13:10
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 30-03-10
Пользователь №: 56 293



Подскащите как решить проблему контроля потери соединения мс Wiznet W3150+ с ПЭВМ ?


В настоящее время наше предприятие использует модуль Wiznet NM7010B+ для осуществления удаленного мониторинга оборудования.

Для осуществления мониторинга, оборудование подключается к ПЭВМ по TCP/IP.

ПЭВМ ----------> Хаб-----//----->Хаб-----------> Оборудование с модулем NM7010B+
^
|
место разрыва TCP/IP соединения

ПЭВМ настраивается в качестве TCP-клиента, оборудование (плата) с модулем NM7010B+ - в качестве TCP-сервера. Модуль NM7010B+ выполнен на базе микросхемы W3150A+.

Суть проблемы состоит в невозможности определить факт потери соединения (физического разрыва на участке, указанном на рисунке ) средствами модуля NM7010B+ .

Если установить соединение по TCP/IP компьютер <> NM7010B+ и разорвать в указанном на рисунке месте, то и компьютер и модуль будут оставаться «в соединении» сколь угодно длительное время (по крайней мере более 8 часов). Т.е., факт разрыва не определяется ни компьютером, ни модулем NM7010B+.

Со стороны ПО компьютера, решением является задание низкоуровневых операционных режимов для Socket посредством функция socket.IOControl со значениями:

keepalivetime=3000; // определяет интервал между посылкой сообщений при пассивном состоянии канала.
keepaliveinterval=500; // определяет интервал посылки сообщений, если ответ не получен.

После применения этих параметров, разрыв соединения приводит к генерации ошибки сокета. Что, в свою очередь, может быть обработано программно и позволяет отследить факт разрыва соединения.

Со стороны оборудования подобного решения найти не удалось.

Мы попытались выполнить следующие действия:

1. После того как установлено соединение (между ПЭВМ и NM7010B+ ) и микросхема W3150A+ имеет состояние SOCK_ESTABLISHED , производим физический разрыв соединения, как показано на рисунке выше. Микросхема W3150A+ остается в состоянии SOCK_ESTABLISHED;
2. Записывается регистр RTR=0х07D0 (200мс) и RCR=5;
3 Записывается команда SEND_KEEP в регистр команд сокета Sn_CR и в течении 3 минут происходит ожидание установки бита TIMEOUT в «1» (при чтении регистра прерывания сокета Sn_IR). После истечения 3 минут бит TIMEOUT так и не взвелся, хотя должен был взвестись через 6 секунд.

Таким образом данную последовательность действий мы не можем использовать для сброса состояния соединения блока с модулем NM7010B+.

Подскажите , каким образом можно определить факт потери соединения !!!!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st August 2025 - 16:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01341 секунд с 7
ELECTRONIX ©2004-2016