Цитата(mjpronin @ Jan 28 2011, 17:30)

Широкое распространение имеют модули RFM (HOPERF), одни из самых дешевых. Но на многих форумах их не очень хвалят. Говорят, что аппаратного протокола в них нет, а отправлять сырые байты проблематично – много ошибок. Надо писать свой программный протокол. Но при использовании программного протокола резко падает скорость передачи. Да и потом достичь указанной дальности передачи не получается. Так ли это? Насколько адекватны эти модули заявленным параметрам?
С модулями не работал, однако трансивер RFM сейчас использую. И использую в том числе как раз потому, что они позволяют работать без протокола. Данные гоню через UART, и получается, на мой взгляд, хорошо.
Цитата(mjpronin @ Jan 28 2011, 17:30)

3. Хлопотно ли работать с модулями без встроенного протокола? Или написать свой это не так уж сложно?
Мне проще разработать свой протокол, чем разбираться с чужим. Но это дело вкуса.
Цитата(mjpronin @ Jan 28 2011, 17:30)

5. Действительно ли собственные программные протоколы резко снижают заявленную скорость обмена?
По-моему, это голимое вранье.
Для правильной работы приемника требуется, чтобы в принимаемом потоке кол-во "нулей" и "единиц" было равно. Обычно для этого все используют Манчестерский код, который снижает скорость обмена вдвое. Протокол ONE-NET вместо этого полагается на шифрование, поскольку зашифрованные данные выглядят как белый шум, а в белом шуме кол-во нулей и единиц в среднем одинаково. В этом случае скорость удается повысить, однако кол-во "битых" пакетов, очевидно, получится больше, т.к. трудно гарантировать правильные условия работы приемника.
Помимо этих способов, известны другие методы обеспечения DC баланса потока. Например, в Эзернете данные проходят через развязывающие трансы, поэтому кол-во нулей и единиц тоже должно быть сбалансировано. В ранних версиях использовался Манчестер, а в гигабитном начали применять кодирование
8b10b, что сохранило баланс и дало выигрыш в скорости.
Для обеспечения баланса я использую более простое кодирование,
6b8b с модификациями. Его легко кодировать/раскодировать, и оно хорошо ложится на UART. Несмотря на то, что из-за UART-а я немного теряю в скорости за счет старт- и стоп-битов, при использовании 6b8b скорость получается все же несколько выше, чем если бы использовать Манчестер. А за счет избыточности 6b8b имею как контроль четности каждого байта, так и символы управления потоком.