IV. Разделение канала.
Т.к. в проекте используется несколько КД, а среда передачи информации одна - радиоканал, то необходимо принять меры для разделения канала между КД, а также идентификации КД. Можно выделить 5 способов разделения радиоканала:
- Разнесение в пространстве.
- По направлению.
- Частотный.
- Временной.
- Кодовый.
Решено использовать временной, как самый простой. Все КД работают на одной частоте, но занимают радиоканал в разные промежутки времени. Большая скорость передачи, малый объем передаваемых данных, большой период опроса - все это позволяет эффективно использовать разделение по времени.
Радиомодуль имеет средства адресной идентификации, но её решено не использовать. В RFM73 адрес используется не только для идентификации, но и для распознавания свой-чужой. "Свои" адреса заносятся в специальные регистры, всего возможно использовать только 6 различных адресов. Это сильно ограничивает возможности по расширению системы. Поэтому адрес решено передавать в пакете с данными, идентификацию выполнять с помощью криптографии, а всем радиомодулям присвоить одинаковые аппаратные адреса.
Временное разделение можно организовать двумя способами:
- Обмен данными в фиксированные моменты времени. Все КД ждут запроса ЦК или выходят на связь периодически в заранее известное время, занимая таймслот. Такой способ исключает возможность возникновения т.н. коллизий, когда во время обмена данными с одним КД, другие тоже могут начать передачу. Требует постоянной работы радиомодуля КД на прием или специальных мер для начальной синхронизации.
- Обмен данными в случайные моменты времени.* КД выходят на связь в заранее неизвестное время. Например измерения производятся периодически, но данные передаются не сразу, а через случайный промежуток времени в пределах периода, чтобы исключить возникновение постоянных коллизий. Позволяет более экономно расходовать энергию.
Решено использовать обмен данными в случайные моменты времени. Обмен данными всегда происходит циклически: ЦК слушает постоянно; КД выполняет передачу в случайное время и сразу после передачи некоторое время слушает радиоканал - ждет команды от ЦК; ЦК после получения данных от КД при необходимости передает команду КД.
При передаче в случайные моменты времени невозможно полностью исключить возникновение коллизий. Поэтому часть передаваемых данных будет теряться. Для моделирования работы системы из заданного количества передатчиков и оценки процента потерь была написана программа Collision. Приведем результат расчета для самого плохого случая. Примем исходные данные:
Параметр | Значение | Примечание |
---|---|---|
Длительность передачи | 5мс. | Длина пакета 40 байт * 8 = 320 бит. Скорость передачи 250 кбит/сек. Длительность передачи 320/250 мс = 1,28 мс. Сделаем двухкратный запас на ошибки и двухкратный запас на команду от ЦК к КД (вдруг понадобится для телеуправления). Получим 5 мс. Время на переключение трансивера RX/TX - менее 0,2 мс, можно не учитывать. |
Период | 10 сек. | Очень маленький период. Можно использовать для телеуправления. Для телеметрии годится в 30 больше - 5 минут. |
Количество передатчиков | 20 | Пятикратный запас на расширение системы. |
Задайте исходные данные: Длительность передачи a: 5 Период b: 10000 Количество передатчиков d: 20 Количество моделируемых периодов e: 8640 Моделирование выполнено: a=5, b=10000, d=20, e=8640 Доля пакетов без коллизий: 0.979653 Минимальное время: 9058 Нажмите клавишу y для нового расчета, любую другую для выхода:Видно, что даже в самом плохом случае при суточной работе за счет коллизий будет потеряно 2 процента пакетов, что легко скомпенсировать интерполяцией за счет остальных измерений.