Разработка радиолинка на основе микросборок RFM.
Разрабатывают: Андрей Борисенко и Вячеслав Сойников.
С микросдорками RFM можно ознакомиться здесь (имеются ещё дополнительные PDF`ки) или на сайте производителя
Вячеславом в своё время был разработан радиолинк на модулях RX5000/TX5000 (схема здесь). Скорость реально получил 19.2кб, хотя можно 115кб если использовать ASK (Amplitude Shift Keying) модуляцию. Устройство прекрасно работало, но для применения на обычных персональных компьютерах полученная схема не годится. Дело в том, что Вячеслав экперементировал на машинах SIEMENS, которые представляют собой часть системы слежения и оповещения на узле космической связи (а предназначался для связи с контрольным терминалом по КМС кабелю. Это все работало под Solaris, наверное под винду тоже есть, но у меня сейчас нет ни того ни другого). У них есть софтятина, называется Port Manager. С помощью её можно с портами делать чёрта лысого. Он пристроил их к COM, правда пока не получается дуплекс. С однотипными модулями это невозможно. Пришлось перевести порт в режим IRD - INTELLIGENT REMOTE DEVICE (не путать с IRDA - INFRA RED DATA ASSOCIATION). Просто в этом режиме порт работает в симплексе и это все отличие. Для связи большего числа машин необходимо задействовать передачу сигналов CD и DTR, что вызывает определенные проблемы. Я по правде не знаю, обеспечивает ли IRD передачу этих сигналов. Там же, в Port Manager можно установить уровни сигналов. Следует помнить, что в RFM модулях уровни входных сигналов ограничены до питания +200мВ, а питание как известно 3В. Следовательно так просто в порт не воткнуть. Наверное нужно будет сделать какой-нибудь маленький преобразователь уровня.
В ходе письменно обсужения между нами предстоящей разработки устройства было принято решение отказаться от использования порта RS232, т.к. возникает много проблем с управлением COM порта (снижение уровней сигналов, перевод порта в симплекс и т.д.). Софт придётся писать (или искать что-то похожее) для управления портом, а при эксплуатации у некомпетентных пользователей могут возникнуть громные проблемы и возможен выход из строя модулей RFM. Кроме того нелегко будет организовать моножественный доступ, т.к. необходимо будет организовать передачу дополнительных служебных команд, что вызывает определённые проблемы для микросборок RFM. Приговор окончательный и обжалованию не подлежит! Разрабатываемое устройство должно будет подключаться непосредственно к сетевой карте.
Стоит поговорить о рациональности изготовления данного устройства: Если собирать самому на RFM модулях по 13$ приемник и 9$ передатчик + всякие мелкие расходы на комплектуху 5$ то получим 27 долларов за комплект и 115Кбит/с с большим сексом при сборке. Следовательно 1кбит/с будет стоить 0.23 доллара. Если мы покупаем фабричный RadioEthernet за 250$ + антенна 100$, то получаем 350$ и 10Мбит/с, то есть 10000Кбит/с. Следовательно каждый 1 кбит/с будет стоить 0.035 долларов. 0.035 < 0.23. :-) Конечно дороговато выходит. Но кто за вас отдаст 350$ за то, чтобы в Quake погонять. :-)
Но, если подключать через сетевушку, то это вызовет проблему с полосой. У нее же спектр какой.. Получится, только на низкой скорости. Чтобы получить хороших 100Мбит нужно, чтобы полоса была около 400МГц, и частота несущей соответственно. И даже на 10Мбит будет проблема. По крайней мере с модулями RFM это не получится. Если конечно не нати способ обойти теорему Котельникова :-). Микросборки RFM работают на скорости 115200. Необходимо понижать скорость севой карты, а также перевести её в симлекс.
Можно понижать скороть и соответственно ширину канала заменой кварца на сетевухе: 8МГц - 2Мбит/с, 4МГц - 1Мбит, 3МГц - что-то около 800Кбит, а с кварцем более низкой частоты сетевая карточка работать отказалась.
Вячеслав: Понижать скорость сетевухи, посредством снижения частоты кварца - не самый лучший способ. Ты снижаешь только частоту тактирования, а еще есть частота передачи, она связана конечно с тактовой, но мне кажется нужно идти по другому пути. Ты просто, нахально снижаешь скорость чипа, а тот в силу своей медлительности снижает скорость передачи. И так можно уменьшать тактовую частоту до наименее возможной, пока чип не перестанет работать, что вобщем-то ты и проделал. Мне так кажется,
что для управления скоростью, нужно менять что-то другое. Если чип может менять частоту передачи самостоятельно, то скорее всего это не аппаратная фишка. Вероятно, что существует метод ограничения скорости передачи софтом. Даже для Линукса / или тем более для Линукса. Хотя может быть есть и аппаратные методы снижения именно частоты передачи, а не частоты тактирования.
LANDEX: Есть такая фишка в Linux. Называется ограничитель потока данных (Traffic Shaper). Он создаёт специальные виртуальные устройства с ограничениями на передачу данных. При это все исходящие пакеты маршрутизируются через устройства-ограничители. Компилируется эта фигня в виде модуля и настраивается программой shapecfg:
shapecfg attach shaper0 eth0 (или eth1-если 2 интерфейса)
shapecfg speed shaper0 115000
Но есть одно но.. ограничитель контролирует только исходящие пакеты.
Если нужно ограничивать и входящий поток, надо использовать функцию "Маршрутизация по адресу отправителя". Возможно, что-то подобное можно найти и под Windows.
Я с этим тоже согласен, но склонен всёже искать аппаратный метод снижения скотости передачи сетевой катры. ИМХО это в дальнейшем облегчит эксплуатацию конечного устройства и минус геморрой при переходе между операционками.
Следующее: перевод сетевой карты в симплекс.
Вячеслав: "Открываешь Свойства сети -> Свойство карты -> Дополнительно. Там есть список режимов и некоторых свойств. Находишь в списке Transfer Mode, и устанавливаешь значение Duplex Off. Кроме этого, там можно выбрать Half Duplex или Autodetect. На некоторых картах там еще что-нибудь может быть. Если карточка ооочень старая, то таких опций может не быть. Но на подавляющем большинстве карточек по 10$ есть такие функции."
Мной было обследовано несколько различных сетевых карт, и как раз таки режима Duplex Off там небыло, так что я считаю, что тут тоже необходимо искать аппаратный способ переключить сетевуху в симплексный режим работы.
Андрей: Вот ещё такое предложеньеце: Использовать инфракрасный порт компьютера. Скорость у него 115200, а режимы симпекс/дуплекс переключается в BIOSе. Что скажешь?
Слава: Ты знаешь Андрей, я думаю, что стоит бороться с сетевухами. Я просто сейчас пока не знаю как работает IRDA, в том смысле, что не знаю возможно ли взаимодействие машин через этот порт на протоколах более высокого уровня. То есть возможна ли связь на TCP/IP или NetBios.
Андрей: IRDA устанавливается на СОМ порт. Через СОМ можно гонять и ICP/IP и NetBios.. а также и другие протоколы. Следовательно..
В сущности собрать сам радиолинк на микросборках RFM не представляет никакой трудности. Всё сводится к проблеме сопряжения его с компьютером.
Итак, необходимо решить следующие проблемы:
1. Аппаратное нижение скорости сетевой карты до 115Кбит/с.
2. Перевод передачи данных сетевой карты из дуплекса в симплекс (тоже желателен аппаратный способ).
3. Необходимо описание IrDA порта компьютера (уровни сигналов, режимы работы..).
4. Возможен ли множественный доступ через IrDA порт?
Разработка и оформление Андрея Александровича Борисенко aka ICE.
По всем вопросам просьба писать мне на icenet (at) narod.ru