Добрый день!
Не сразу придумал в какую ветку адресовать вопрос, потому разместил здесь, т.к. это имеет непосредственное отношение к беспроводным технологиям.
Возникла такая проблема - имеется набор устройств соединенных между собой через беспроводной интерфейс. Устройства это датчики движения, разбития, датчики газа, радиокнопки и т.п. В качестве радиоинтерфейса используется CC1100-1101, хотя тут не принципиально. Проблема возникает в том что когда это оборудование устанавливается на реальном объекте то возникают ситуации когда каким-то из датчиков сложно дострельнуть по дальности до центрального приемопередатчика - главного блока беспроводной сети который соединяет ее с остальным оборудованием. Топология сети получается звезда, датчики работают только напрямую с центральным приемопередатчиком. В связи с этим возникла идея немного видоизменить топологию сети - добавить в датчики простые функции маршрутизации типа переадресации пакетов на центральный блок, ну или, в идеале (для большой сети датчиков когда многие датчики не могут добивать до центрального блока) добавить возможность выбора оптимального маршрута от дальних датчиков до центрального блока по цепочке датчиков. Сделать что-то наподобии маршрутизации в TCP/IP.
Сталкивался ли кто-то с подобной задачей? Если кто-то сталкивался, то подкажите пожалуйста в какую сторону двигаться чтобы не изобретать велосипед.
Рассматривал протокол ZigBee , но не нашел довольно подробного описания по самой маршрутизации, только довольно обобщенные сведения, которые не ответили на ряд вопросов. Датчики в большинстве своем будут иметь довольно емкий источник питания потому вопрос спящих режимов, пробуждения по событию и т.п. пока не стоит. Понимаю что нужно связываться наверное с таблицами маршрутизации, постоянно корректировать их, вообщем объем работы получается очень и очень немаленький по разработке всего этого.
Хотя есть мысль привязаться как-то к уровню приема базового блока каждым из датчиков и от этого уже исходить. Т.е., грубо говоря, какой-то удаленный датчик(который находиться вне зоны действия центрального блока) посылает по направлению центрального блока пакет в котором в одном из полей содержится нулевой уровень сигнала по которому остальные датчики понимают что этот датчик находиться вне зоны действия. Эти пакеты принимают датчики которые находятся в зоне действия, то добавляя к нему свой заголовок с адресом через какой-то псевдослучайный промежуток(во избежание коллизий) времени посылают его на центральный блок. Ответ от центрального блока идет тому промежуточному датчику который его послал, а он в свою очередь уже ретранслирует его обратно тому датчику который находиться вне зоны покрытия. Ну вообщем где-то так в общих чертах. Тут конечно еще много своих вопросов и нюансов.
Главный вопрос во всем этом это то что важна минимальная задержка(десятки мс) от момента отправки сообщения исходным датчиком с тревогой до момента получения ответа от центрального блока. А если использовать полноценную маршрутизацию то могу потерять довольно много времени на операции с таблицами маршрутизации, плюс нужно много ресурсов на создание этих таблиц, на математику связанную с просчетами путей и т.п.
Подскажите пожалуйста свои соображения по этому поводу.
Спасибо!
Сообщение отредактировал Pasha_a13 - Mar 23 2013, 18:52
|