Цитата(Oleg_IT @ Jul 6 2007, 21:30)

Так в том то и вопрос, что слушать не желательно, в этом случае просто используется первый вариант, а он белее энерго затратный.
В CSMA прослушивание необходимо для следующего. Перед передачей пакета отправитель должен проверить занятость канала прослушиванием эфира в течение какого-то короткого промежутка времени или измерением уровня сигнала на входе приемника (RSSI). Если канал свободен, то выполняется передача пакета, если нет - передача откладывается и попытка повторяется через какой-то интервал времени. Задержки повторных попыток тоже могут выбираться разными способами.
Цитата(exSSerge @ Jul 7 2007, 00:03)

В случае радиоканала идея прослушивать эфир перед передачей оказывается не столь удачной как в случае с проводными каналами (типа Ethernet). Коллизии всё равно случаются довольно часто. Типичный случай - база слышит всех абонентов, а они друг друга - то слышат, то нет.
Идея проверять канал перед передачей является достаточно удачной, т.к. позволяет значительно повысить эффективность использования канала, при сохранении простоты реализации. Конечно, это не избавляет полностью от проблемы коллизий, но упомянутая Вами проблема скрытого терминала решается в CSMA/CA, который, в свою очередь, тоже имеет свои недостатки.
Цитата(exSSerge @ Jul 7 2007, 00:03)

Если поток данных от каждого устройства стабилен и заранее известен более эффективен будет вариант, когда база периодически рассылает "расписание работы" для каждого устройства. Коллизии практически полностью исключаются. Но придётся как-то решать проблему присоединения к сети новых устройств, исключения выбывших, синхронизации часов и т.д.
Для примера можно посмотреть как устроен стандарт IEEE 802.15.4 (это PHY- и МАС-уровни на которых живёт ZigBee).
Использование синхронизированного доступа усложняет систему, а толку от него может быть мало. Например, при очень низком трафике основные энергозатраты удаленных устройств будут на прием сигналных пакетов от базовой станции. В то время как при использовании случайного доступа энергозатраты будут "по факту", т.е. только на передачу полезных данных.
Именно поэтому нужно иметь какие-то числовые параметры системы для выбора подходящего варианта.
Цитата(Oleg_IT @ Jul 6 2007, 21:30)

Трафик маленький, длина пакета 0,23 мс. частота минимум 2 Гц.
Для Вашего случая можно прикинуть следующее.
Tp - время передачи пакета
f - частота передачи пакетов каждым устройством
N - количество устройств, которые передают пакеты базовой станции
G=N*f*Tp - нормированный трафик
Задаем значения:
Tp=0,23 мс
f = 2 Гц
N = 10 (допустим)
Для обычного варианта ALOHA вероятность успешной передачи пакета (т.е. вероятность отсутствия коллизии) равна
p = exp(-2G) = exp(-2*10*2*0,23*10^-3) = 0,99084
Рассмотрим вариант с подтверждением. Пусть длина пакета подтверждения равна длине пакета данных, тогда примерно Tp=0,5 мс. Получаем, что
p = exp(-2G) = exp(-2*10*2*0,5*10^-3) = 0,9802.
Если рассмотреть вариант обычного CSMA, то грубо можно считать, что
p=1/(1+G)
Тогда p = 0,9954 и p = 0,99009 соответственно.
Как видите, для Вашего трафика достаточно использовать обычный вариант ALOHA, т.к. вероятность коллизии очень мала. Подтверждение нужно использовать, т.к. возможны потери пакетов по другим причинам.
Более сложные варианты организации доступа к среде можно рассматривать, если требуется экономить энергию и базовой станций, а не только удаленных устройств.