Сеть сбора данных и управления на базе многофункциональных криптозащищенных радио-сенсоров

17 сентября 2007  |  Системы сбора и обработки информации (устройства)



Кому не приходилось вдруг остро чувствовать необходимость в беспроводной передаче данных от удаленных датчиков, измерителей, выключателей и т.д.? Причем исполнение должно быть с минимумом финансовых и временных издержек. Открытый проект, описанный в этой статье, представляет собой одну из попыток решения этой задачи с ориентацией на доступность элементной базы.

Спецификация MODBUS, описания радиомодулей, другая информация

Моделирование радиопротокола в MATLAB

Проект с исходными текстами для микроконтроллера радиосенсора

Проект с исходными текстами для центрального приемника

Введение


Как-то под руки подвернулись малогабаритные модули для передачи данных на частоте 433.92 МГц и парочка недорогих микроконтроллерав ATMEGA8. А известно, что микроконтроллеры серии AVR фирмы ATMEL к которым относится ATMEGA8 имеют весьма дружественную архитектуру, а также очень доступный и обширный набор иструментов быстрой разработки.

Было решено, что для создания на их базе системы беспроводного сбора данных с датчиков, которая всегда требовалась и до которой не доходили руки, наконец то пришло время. Рядом оказались температурные датчики DS18S20 - цифровые датчики не требующие калибровки и с возможностью объединения в сеть. Все говорило о возможности быстрого создания достаточно универсальной системы. О том, что из этого получилось рассказано ниже.


Сеть сбора данных и управления на базе многофункциональных криптозащищенных радио-сенсоров

Рис. 1 Модуль приемника RX433


Сеть сбора данных и управления на базе многофункциональных криптозащищенных радио-сенсоров

Рис. 2 Модуль передатчика TX433N

Состав, назначение и характеристики системы.


Радиосеть сбора данных физически состоит из некоторого числа радиосенсоров с автономным питанием с подключенными к ним внешними датчиками и одного центального приемно-управляющего модуля. Радиосенсоры периодически высылают пакеты данных которые принимаються центральным модулем (ЦМ). Центральный модуль может выдавать управляющие сигналы на внешние исполнительные устройства в соответствии с сигналами от радиосенсоров или передавать накопленную с радиосенсоров информацию по проводному последовательному интерфейсу по запросу на другие устройства или компьютер.

Такое решение часто необходимо для считывания информации с рядом расположенных, но подвижных объектов – прицепов, машины возле дома, поплавков, контейнеров, конвейеров, датчиков температуры пациентов на этаже лечебного корпуса и т.д. в пределах 100...200 м. С другой стороны эта система может быть применена для множественного доступа из разных точек к одному исполнительному устройству, например электрозамку или выключателю освещения.

Описание радиосенсора

Радиосенсор построен на основе микроконтроллера ATMEGA8 и модуля передатчика TX433N. К радиосенсору может быть подключена локальная проводная сеть датчиков с интерфейсом 1-Wire. В данной версии радиосенсора на 1-Wire шину подключаются температурные датчики DS18S20. Это цифровые датчики с точностью ±0.5°C и диапазоном измерения -55°C to +125°C, производимые фирмой Maxim Integrated Products, Inc. Шина 1-Wire может объединять множество датчиков, образуя сеть. Программа радиосенсора в момент его включения способна идентифицировать все 1-Wire устройства подключенные в эту шину. Но в текущей версии обрабатываються данные только c температурных датчиков. В общем случае для 1-Wire шины разработано большое количество разнообразных устройств включающих: аналогово-цифровые преобразователи, цифровые потенциометры, часы реального временя, различные типы памяти и известные под маркой iButton® электронные ключи.

Радиосенсор способен также измерять и передавать значение напряжения со встроенных аналоговых входов. Аналоговые входы расчитаны на диапазон входного напряжения 0...10 В и входное сопротивление не менее 10 КОм. Аналоговые входы имеют разрешение 10 бит и могут использоваться для подключения датчиков с аналоговыми и цифровыми выходами по напряжению. Для обеспечения точности измерения радиосенсор снабжен функцией калибровки аналаговых входов.

Для универсальности приложений радиосенсоры выполнены так, что могут питаться от внешнего источника напряжения или от автономного источника напряжением 3.6...5 В с очень малым потреблением энергии.

Радиосенсоры считывают информацию с температурных датчиков и аналоговых входов в течении короткого периода через определенные промежутки времени, все остальное время находясь в выключенном состоянии с целью экономии энергии автономного источника напряжения. Время выхода из выключенного состояния определяеться работой внутренного сторожевого таймера микроконтроллера радиосенсора.

Поскольку в радиосети может работать одновременно несколько передатчиков, то во избежания конфликтов связанных с одновременной синхронной передачей пакетов разными радиосенсорами применен способ случайного генерирования длительности пауз между периодами активности в радиосенсорах. Для этого в радиосенсорах применяется программный генератор случайных чисел (ГСЧ). Разное время включения радиосенсоров обеспечивает достаточно хорошую рандомизацию ГСЧ, но для усиления рандомизации применен способ формирования начальной комбинации ГСЧ на основе уникального кода первого обнаруженного датчика DS18S20 в сети 1-Wire.

Для сосуществования сети радиосенсоров вблизи других аналогичных сетей (например в многоквартирном доме) реализовано кодирование передаваемых пакетов на основе 4-х байтного ключа с помощью криптоалгоритма RC4. Приемник одной радиосети, не зная ключа, не может случайно или намерено принять и расшифровать пакеты, выдаваемые радио-сенсорами другой сети.

Целостность передаваемых пакетов контролируеться с помощью контрольной суммы, а для уменьшения вероятности ложного приема пакетов применено специальное кодирование преамбулы пакета.

Радиосенсоры в сети идентифицируются по своим номерам, которые передаются в каждом пакете. Номер задается перемычками на плате радиосенсора. В сети може быть до 8-и радиосенсоров.

Для мгновенной активизации в ответ на некоторые события радиосенсоры снабжены двумя цифровыми входными линиями. При спаде сигнала на какой либо из цифровых линий ниже 1.5 В радиосенсоры входят в рабочее состояние и сразу же начинают передачу сигнала с информацией о состоянии этих линий. Центральный модуль в ответ на принятое сообщение без задержек способен дать соответствующий сигнал внешнему исполнительному устройству. Используя эту возможность можно построить, например, удобную систему управления освещением на беспроводных автономных выключетелях.

У радио-сенсора ряд параметров может быть изменен с компьютера или другого устройства через встроенный последовательный интерфейс. Параметры можно изменить временно только в ОЗУ микроконтроллера радиосенсора до следующего включения либо сделать новые параметры постоянными с сохранением их в EEPROM микроконтроллера.

При редактировании параметров применяеться простой протокол командной строки поддердживаемый всеми программами для PC типа HyperTerminal.

При включении радиосенсора программа микроконтроллера проверяет целостность данных в EEPROM с помощью механизма контрольной суммы и в случае сбоя возвращает параметры в состояние по умолчанию.

Технические характеристики радиосенсора версии 1.0 :

Напряжение питания номинальное................................................. 5 В

Ток потребления в активном режиме............................................... 27 мА

Ток потребления в пассивном режиме............................................ 64 мкА

Выходная мощность радиопередатчика........................................... 10 мВт

Частота работы радиопередатчика................................................... 433.92 Мгц

Пределы регулировки скорости передачи ...................................... 100...2000 бит/с

Тип модуляции при передаче радиопакетов................................... манчестер

Длина пакетов (фиксированная)....................................................... 11 байт

Длина преамбулы............................................................................... 2 байта

Максимальное количество устройств на шине 1-Wire................... 4

Количество аналоговых входов........................................................ 6

Диапазон напряжения на аналоговых входах................................. 0...10 В

Входное сопротивление аналоговых входов................................... 10 кОм

Скорость работы последовательного интерфейса.......................... 115200 бит/с

Формат данных последовательного интерфейса ........................... 8,n,1

Диапазон номеров радиосенсоров................................................... 0...7

Температура эксплуатации (оценочно)............................................ -20...+50 °C

Регулируемые параметры радиосенсора и их значения по умолчанию:

Мнемоника в протоколе

Значение по умолчанию

Описание

WDTPER

7

Установка предделителя сторожевого таймера  (WDT) микроконтроллера ATMEGA8. Определяет с какой частотой происходит активизация микроконтроллера

Возможные значения задания периода активизации:

0 - 16 мс,

1 - 32 мс.

2 - 65 мс,

3 - 0.13 с,

4 - 0.26 с,

5 - 0.52 с,

6 - 1 с,

7 - 2.1 с

WDTDVC

2

Определяет какая по счету активизация сторожевого таймера вызовет процедуру считывания датчиков и посылки радиопакета. После выполнения процедуры считывания-отправки счет начинается заново. Допускаються значения от 0 до 255.

WDTDVV

0

Максимальная величина вариации. Вариация  - это случайное целое число, добавляемое к WDTDVC после каждой активизации процедуры считывания-отправки при расчете реального числа активизаций WDT до следующей процедуры считывания-отправки. Допускаются значения от 0 до 255.

BTRATE

16000

Величина, определяющая скорость передачи радио-пакетов. Равна числу тактов осциллятора формирующих интервал в половину бита. В версии 1.0 частота осциллятора равна 16 Мгц

Допускаются значения от 4000 до 65535. Величина 16000 означает скорость передачи 500 бит/с.

SFLAGS

0

Системные флаги.

При представлении в двоичном виде начиная счет с права налево:

0-й бит – единица означает отключение посылки информации о состоянии аналоговых входов

1-й бит – единица означает отключение посылки информации с температурных датчиков

3-й бит – единица означает отключение реакции на цифровые входы

4-й бит – указывает, что вместо кода состояния 1-го аналогового канала будет передаваться калибровочная константа АЦМ

PREAMB

0xD9C2

Код преамбулы. Изменением кода преамбулы можно усилить защиту от влияния соседних сетей. Изменять можно только на специальные расчитаные значения

REFCOD

999

Калибровочная константа АЦМ

KEYCOD

999

Ключ шифрования для алгоритма RC4. Должен быть идентичен ключу приемника.

При редактировании параметров радио-сенсора через терминал компьютера можно использовать следующие команды:

Символы команды

Описание действия

[Мнемоника]=[новое значение]

Редактирование параметра. Новое значение может быть введено в дечятичном или шестнадцатеричном виде (с префиксом 0x )

“?”

Вызов значений всех рабочих параметров из RAM

+

Сохранить параметры в EEPROM из RAM

“-“

Восстановить параметры из EEPROM в RAM

“*”

Восстановить параметрвы по умолчанию в RAM

“#”

Показать номер радио-сенсора

.

Выйти из режима редактирования

^

Показать результаты измерения всех аналоговызх каналов

Все команды должны заканчиваться нажатием клавиши “ENTER”

Калибровка АЦМ радио-сенсора заключаеться в том, что в его специальный параметр REFCOD записываеться код преобразования АЦМ для известного входного напряжения.

Например можно подать на аналоговый вход 1 радио-сенсора напряжение 2.5 В. Определить код АЦМ можно по команде “^”. Код первого входа будет в первой строчке списка. Необходимо этот код записать в параметр REFCOD. Далее этот код может быть передан в пакете с данными на центральный модуль. (см. параметр SFLAGS). Таким образом устройства принимающие данные от радио-сенсоров могут провести корректировку полученных значений в соотвествии с калибровочным кодом каждого радио-сенсора.

Описание принципиальной схемы радио-сенсора

На Рис. 11 изображена схема макета радио-сенсора. Микроконтроллер DD1 программируеться на плате через разъем X2. К разъему X3 может непосредственно подключаться PC через интерфейс RS232. Большинство настольных компьютеров будет работоспособно с такой схемой.

Кнопки BT1 и BT2 подают сигнал на цифровые входы радиосенсора.

Контакты 23...28 микроконтроллера DD1 служат аналоговыми входами.

Перемычками J1...J3 задаеться номер радио-сенсора в сети. Для корректной работы все радио-сенсоры в сети должны иметь разные номера.

Светодиод VD4 зажигается в моменты передачи радио-пакетов. В режиме настройки параметров светодиод непрерывно мигает.

Радио-сенсор работает от кварцевого резонатора частотой 16 МГц. Такая частота выбрана для технологического удобства. Для улучшения энергетических параметров радио-сенсора частота кварцевого резонатора должна быть уменьшена. Этого можно добиться небольшими изменениями в программе. Без значительных трудностей с профайлингом программы на C можно уменьшить частоту до 4 Мгц.

Оптимизация энергопотребления радио-сенсора.

Для энергосбережения микроконтроллер радио-сенсора использует возможность выхода из выключенного состояния по сигналу от сторожевого таймера (WDT).

После подачи питания микроконтроллер выполнив начальные инициализации и отправив первые пакеты с данными входит в режим Power-down. В этом режиме прекращается работа кварцевого генератора и останавливается тактирование внутреннего процессора и периферии, но продолжает работать внутренний RC генератор WDT. Генератор WDT потребляет некоторый ток, который являеться доминирующим током в потреблении радио-сенсора в выключеном состоянии.


Сеть сбора данных и управления на базе многофункциональных криптозащищенных радио-сенсоров

Рис. 3 Результат измерений тока потрбления радио-сенсора в выключеном состоянии

Через некоторое время WDT выдает сигнал включающий кварцевый генератор и активизирующий процессор. Для стабилизации генератора схемой микроконтроллера делаеться задержка около 5 мс. В это время ток потребления радио-сенсора значительно увеличиваеться.


Сеть сбора данных и управления на базе многофункциональных криптозащищенных радио-сенсоров

Рис. 4 Результат измерений тока потребления радио-сенсора в момент активизации WDT

Чаще всего радио-сенсор должен находится в выключеном режиме гораздо дольше чем период следования сигналов активизации от WDT. Для этого в программе ведеться счетчик включений по достижении определенного значения, которого программа инициирует рабочий цикл радио-сенсора, в ином случае программа сразу же переводит микроконтроллер обратно в режим Power-down. Контрольное значение счетчика пересчитывается программой по определенному алгоритму после каждого рабочего цикла.

Длительность рабочего цикла радиосенсора в течении которого он считывает информацию с температурных датчиков, аналоговых входов и посылает радиопакеты в основном зависит от количества и скорости передачи радиопакетов. Весь радиопакет имеет длину 104 бита. Для каждого температурного датчика посылается отдельный пакет, также отдельный пакет посылается с информацией об аналоговых входах.

Установкой рабочих параметров можно увеличить скорость передачи пакетов и уменьшить их количество. Но увеличивать скорость выше 1000 бит/с не рекомендуется из-за возможного ухудшения качества связи.

По экспериментальным данным при скорости 500 бит/с и отправке одного пакета длительность рабочего цикла равнялась 0.215 сек.


Сеть сбора данных и управления на базе многофункциональных криптозащищенных радио-сенсоров

Рис. 5 Результат измерений тока потребления радио-сенсора в рабочем цикле

Вклад температурных датчиков DS18S20 в ток потребления в выключенном состоянии составляет не более 2 мкА, а в активном режиме не более 2 мА в течении незначительной доли времени рабочего цикла.

Модуль передатчика в выключеном состоянии практически не вносит никакого влияния , а в режиме передачи потребляет 5..8 мА при напряжении питания 3.6..5 В соответственно.

Опираясь на представленные данные можно легко вычислить необходимую емкость элемента питания для автономной работы радио-сенсора заданное время.

Так например, при напряжении питания 3.6 В и активизации радио-сенсора каждые 30 сек. на 0.215 сек емкости литиевой батарей фирмы Tadiran размера AA будет достаточно для непрерывной работы радио-сенсора в течении 555-и дней.

Еще лудшие энергетические параметры может дать снижение частоты кварцевого резонатора до 4 М Г ц . Снижение частоты ниже 4 МГц не приведет к существенной экономии потребления поскольку здесь уже будет доминировать ток радио-передатчика.

Описание центрального приемника

Центральный модуль (в дальнейшем ЦМ) построен на основе микроконтроллера ATMEGA8 и модуля приемника RX433. Его задача непрерывно вести прием поступающих по эфиру от удаленных радио-сенсоров пакетов, размещение информационного содержания из них в своей внутренней памяти и по запросу от внешних устройств выдача накопленной информации по последовательному интерфейсу.

В случае поступления пакетов с информацией о состоянии цифровых входов радио-сенсоров ЦМ немедленно переключает состояние своих 2-х соответствующих цифровых выходов.

Центральный модуль снабжен алфавитно-цифровым ЖК-индикатором. В данной версии приемника индикатор используется для тестирования.

Как и радио-сенсор ЦМ позволяет модифицировать некоторые свои рабочие параметры через последовательный интерфейс с компьютера. Рабочие параметры также имеют значения по умолчанию восстанавливаемые в случае сбоев во внутренней памяти EEPROM микроконтроллера.

ЦМ взаимодействует с внешними устройствами по сокращенной версии протокола MODBUS в качестве подчиненного устройства в режиме ASCII.

Протокол MODBUS канального уровня широко известен в среде разработчиков систем промышленной автоматизации и поддерживается большим количеством различных устройств. Он очень прост в реализации и хорошо описан, а потому логично было бы использовать его в качестве протокола передачи данных с надеждой на возможность итеграции ЦМ в какие либо существующие системы.

При нормальной работе ЦМ по последовательному интерфейсу обрабатывает пакеты MODBUS, в случае поступления символа ESC (шестнадцатеричное число 0 x 1B) , например, из программы HyperTerminal, ЦМ переходит в режим редактирования параметров. Выход из режима также по приходу символа ESC.

Описание протокола MODBUS дается в приложении. ЦМ обрабатывает только одну функцию протокола – 03 (чтение 2-х байтных регистров).


Сеть сбора данных и управления на базе многофункциональных криптозащищенных радио-сенсоров

Рис. 6 Структура принимаемого ЦМ пакета по протоколу MODBUS в режиме ASCII


Сеть сбора данных и управления на базе многофункциональных криптозащищенных радио-сенсоров

Рис. 7 Интерпретация полей блока данных функции 3

При запросе данных из ЦМ внешнее устройство должно использовать функцию 3 протокола MODBUS. С помощью этой функции устройство может прочитать содержимое 3-х массивов: массива идентификаторв температурных датчиков DS 18 S 20, массива значений температуры с температурных датчиков, массива состояний аналоговых входов с радио-сенсоров.

Интерпретация полей блока данных при запросе выполнения функции 3 внешним устройством показана на Рис. 7 .

Первые два символа кодируют тип данных, т.е. элемент какого из 3-х массивов требуется прочитать. Символы 3-й и 4-й задают 1-й и 2-й индексы двумерного массива с данными. 1-й индекс задает номер радио-сенсора, 2-й – номер температурного датчика или номер аналогового входа. Индексация начинается с нуля.

Принята следующая кодировка поля типа данных:

1 - идентификаторы температурных датчиков,

2 - значения температуры с температурных датчиков,

3 - значения с аналоговых входов (АЦП) удаленных датчиков.

Поле “количество читаемых регистров” должно иметь значение 1 при чтении температуры и значений АЦП поскольку они выражаются 2-байтными величинами значение 3 при чтении идентификаторов поскольку они состоят из 6-и байт.

Температура представляется в оригинальном формате, в таком, в каком она передается температурными датчиками с младшим байтом впереди.

Значения АЦП представляются также в формате с младшим байтом впереди.

Идентификаторы представлены 6-ю байтами вместо 8-и, которые обычно выдаются 1-Wire устройствами. Отбрасываются кода семейства устройств и контрольная сумма.

Пример команды запроса чтения внешним устройством значения 1-го аналогового входа 0-го радио-сенсора:

:010303000001B8

Регулируемые параметры ЦМ и их значения по умолчанию:

Мнемоника в протоколе

Значение по умолчанию

Описание

WDTPER

7

Установка предделителя сторожевого таймера  (WDT) микроконтроллера ATMEGA8. Определяет с какой частотой происходит активизация микроконтроллера

Возможные значения задания периода активизации:

0 - 16 мс,

1 - 32 мс.

2 - 65 мс,

3 - 0.13 с,

4 - 0.26 с,

5 - 0.52 с,

6 - 1 с,

7 - 2.1 с

WDTDVC

2

Определяет какая по счету активизация сторожевого таймера вызовет процедуру считывания датчиков и посылки радиопакета. После выполнения процедуры считывания-отправки счет начинается заново. Допускаються значения от 0 до 255.

WDTDVV

0

Максимальная величина вариации. Вариация  - это случайное целое число, добавляемое к WDTDVC после каждой активизации процедуры считывания-отправки при расчете реального числа активизаций WDT до следующей процедуры считывания-отправки. Допускаются значения от 0 до 255.

BTRATE

16000

Величина, определяющая скорость передачи радио-пакетов. Равна числу тактов осциллятора формирующих интервал в половину бита. В версии 1.0 частота осциллятора равна 16 Мгц

Допускаются значения от 4000 до 65535. Величина 16000 означает скорость передачи 500 бит/с.

SFLAGS

0

Системные флаги.

При представлении в двоичном виде начиная счет с права налево:

0-й бит – единица означает отключение посылки информации о состоянии аналоговых входов

1-й бит – единица означает отключение посылки информации с температурных датчиков

3-й бит – единица означает отключение реакции на цифровые входы

4-й бит – указывает, что вместо кода состояния 1-го аналогового канала будет передаваться калибровочная константа АЦМ

PREAMB

0xD9C2

Код преамбулы. Изменением кода преамбулы можно усилить защиту от влияния соседних сетей. Изменять можно только на специальные расчитаные значения

REFCOD

999

Калибровочная константа АЦМ

KEYCOD

999

Ключ шифрования для алгоритма RC4. Должен быть идентичен ключу приемника.

Технические характеристики центрального приемника версии 1.0 :

Напряжение питания номинальное................................................. 5 В

Ток потребления................................................................................. 25 мА

Частота работы радиоприемника..................................................... 433.92 Мгц

Пределы регулировки скорости передачи ...................................... 100...2000 бит/с

Тип модуляции при передаче радио-пакетов.................................. манчестер

Длина принимаемых пакетов (фиксированная).............................. 11 байт

Длина преамбулы............................................................................... 2 байта

Максимальное количество обслуживаемых радио-сенсоров........ 4

Скорость работы последовательного интерфейса.......................... 115200 бит/с

Формат данных последовательного интерфейса ........................... 8,n,1

Температура эксплуатации (оценочно)............................................ -20...+50 °C

При редактировании параметров центрального приемника через терминал компьютера можно использовать следующие команды:

Символы команды

Описание действия

[Мнемоника]=[новое значение]

Редактирование параметра. Новое значение может быть введено в дечятичном или шестнадцатеричном виде (с префиксом 0x )

“?”

Вызов значений всех рабочих параметров из RAM

+

Сохранить параметры в EEPROM из RAM

“-“

Восстановить параметры из EEPROM в RAM

“*”

Восстановить параметрвы по умолчанию в RAM

“#”

Показать номер радио-сенсора

.

Выйти из режима редактирования

^

Показать результаты измерения всех аналоговызх каналов

Все команды должны заканчиваться нажатием клавиши “ENTER”

Описание принципиальной схемы радио-сенсора

Цетральный приемник посторен на основе приемного модуля RX433.

Модуль RX433 построен по 2-х транзисторной сверхрегенеративной схеме с компараторм на основе операционного усилителя LM358. Чувствительность модуля равна -106 dBm, это равно приблизительно 1 мкВ при 50 Ом антенне. Полоса захвата сигнала равна 1 МГц. Экспериментальные измерения показали, что модуль способен принимать данные со скоростью до 10 кбит/c.

Широкая полоса захвата и работа на частоте сигнала широко используемой различными системами охраны и телеуправления приводит к тому, что на выходе приемного модуля постоянно присутствует непрерывно изменяющийся цифровой сигнал.

Микроконтроллер DD1 выполняет задачу анализа цифрового сигнала с приемного модуля, обнаружение в нем радио-пакетов от радио-сенсоров, декодирование радио-пакетов и сохранение информации из них во внутренней памяти.

В случае прихода радио-пакетов с информацией от цифровых входов радио-сенсоров микроконтроллер переключает состояние ключей VT2, VT3 в случае если в радио-пекете выставлен в единицу бит первого и второго входов соответственно (соответствует нажатию кнопок BT1 и BT2 на макете радиосенсора).

Светодиод VD1 зажигается в момент приема и обработки принятого радио-пакета.

К разъему X3 подключаеться внешнее устройство через интерфейс RS232 для съема данных с центрального приемника по протоколу MODBUS в режиме ASCII. Также к нему может подключаться компьютер для настройки рабочих параметров.

Микроконтроллер центрального приемника так же как и микроконтроллер радио-сенсора программируется на плате через разъем X2

Принцип действия декодера радио-протокола

Как понятно из выше сказанного платой за дешевизну технологии модулей передатчика и приемника (TX433N, RX433) является сильная зашумленность принимаемого сигнала. Специальный радио-протокол разработанный для этого проекта позволяет ослабить вляние некоторых неприятностей сопутствующих приему такого сигнала.

Структура радио-протокола базируеться на нескольких основных идеях:

- пакетная передача с фиксированной длиной.

- обнаружение пакетов и синхронизация на основе кодированной преамбулы.

- манчестерское кодирование информационных битов.

- дополнительная выборка.

- точно известная скорость передачи данных.

Фиксированаая длина пакетов и известная скорость передачи упрощают структуру декодера и повышают вероятность декодирования данных.

Манчестерское кодирование удаляет из сигнала постоянную составляющую, что улучшает работу компаратора приемного модуля. При таком кодировании единица представляется спадом сигнала, а ноль подъемом. Спад или подъем распологаются по середине интервала передачи бита, а в начале интервала производиться переключение уровня сигнала так чтобы через пол бита можно было выполнить спад или подъем.

Кодированная преамбула позволяет синхронизировать прием и повышает вероятность обнаружения пакетов данных искаженных помехами одновременно снижая вероятность ложного обнаружения пакетов при их отсутствии в условиях непрерывного шумового потока. Преамбула использует NRZ кодировку и передается с вдвое большей скоростью чем информационные биты. Она специально вычислена на основе ряда критериев один из которых - это минимальные побочные максимумы автокорреляционной функции, а другой - это минимальный максимум кросскорреляции на всем множестве возможных двоичных кодов с манчестерским кодированием. Вычисления для 16-битной преамбулы легко ввполнить прямым перебором и в приложении можно найти утилиту предназначенную для этого.

Дополнительная выборка означает, что декодер принимет отсчеты с гораздо большей частотой чем передаются биты информации. Это позволяет применить корреляционные методы при декодировании битов, таким образом повышая помехоустойчивость приема.


Сеть сбора данных и управления на базе многофункциональных криптозащищенных радио-сенсоров

Рис.8.

Диаграмма поясняющая принцип действия декодера радио-протокола

На начальном этапе в микроконтроллере ЦП непрерывно выполняеться процедура корреляции входного потока отсчетов с 64-битным шаблоном преамбулы. Для двоичного сигнала это сумма значений битов получившихся после побитной операции сложения по модулю 2 текущего буфера входных отсчетов и битов шаблона.

В момент когда значение корреляции достигает некоторой контрольной границы микроконтроллер принимает решение о начале приема битов данных и запускает процедуру корреляции с шаблоном бита равного 1. В качестве привязки для отсчета битовых интервалов берется точка максимума на корреляционной функции преамбулы после того как она превысила контрольную границу. В конце каждого битового интервала, через каждые 8-мь отсчетов микроконтроллер принимает решение о значении принятого бита. Корреляция больше 3-х означает прием единицы, в обратном случае – нуля.

Как видно при приеме бита возможно искажение значений до 3-х отсчетов из 8-и без возникновения ошибки. Относительная доля искаженных значений отсчетов при приеме преамбуле должна быть меньше поскольку она служит еще и источником синхронизации. В связи с этим оправдано выбирать граничное значение детектирования приамбулы на 5-6 единиц меньше значенимя ее пика автокорреляции т.е. в данном случае 58-59.

Моделирование декодера радио-протокола

Для количественной оценки преимуществ, которые дает описанный выше алгоритм работы декодера, была разработана модель в пакете моделирования SIMULINK для среды MATLAB 7 (см. Рис. 9). Файлы модели можно найти в приложении.

Модель состоит из трех основных составляющих: модели передатчика, модели канала передачи и модели приемника.

Модель передатчика формирует поток двоичных данных по формату повторяющий поток излучаемый реальным передатчиком. Модель передатчика позволяет легко варьировать такие параметры как количество байт в пакете, количество формируемых пакетов до завершения работы модели, скорость передачи, код преамбулы. Перечисленные параметры можно редактировать в рабочем пространстве (Workspace) MATLAB. Модель может выдавать пакеты как со случайными данными так и с определенными данными заданными в ручную в подсистеме генератора пакетов.

Поток данных модели передатчика вместе со служебными сигналами и контрольными данными организуеться в две шины и передаеться к приемнику проходя модель канала передачи.

Канал передачи имитирует шум наблюдающийся на выходе приемника в паузах и несколько меньший шум во времая приема данных. Вероятности обоих шумовых составляющих можно изменять из рабочего пространства MATLAB.

Модель приемника восстанавливает из входного двоичного потока пакет данных и выводит его на дисплей рядом с панелью отображающей контрольный пакет. Попутно в модели приемника производиться сравнение декодированных и контрольных данных и выводиться на дисплей статистика процесса декодирования. Наиболее важными параметрами в статистике являються количество пропущенных пакетов и количество поврежденных пакетов при заданном общем количестве переданных пакетов.

В модели приемника самым интересным регулируемым параметром является коэффициент дополнительной выборки (oversampling), обозначаемый как переменная k в рабочем пространстве MATLAB. Этот коэффициент означает количество отсчетов в приемнике приходящихся на один бит данных. От его величины в наибольшей степени зависит помехоустойчивость приемника. Поскольку от этого коэффициента зависят вектора (в терминологии MATLAB) шаблонов преамбулы и бита данных а также границы принятия решений, то его непосредственно менять в рабочем пространстве MATLAB нежелательно, для этого нужно поменять соответствующее значение в файле “initmod.m” в директории файлов модели. Указанный файл выполняется всегда при загрузке модели. Он создает в рабочем пространстве MATLAB переменные, и расчитывает зависимые параметры. После изменении в нем коэффициента дополнительной выборки в командной строке MATLAB нужно выполнить команду initmod.

Структура модели приемника не повторяет структуру программы в микроконтроллере центрального модуля. Модель приемника воспроизводит только алгоритм обработки данных в реальном приемнике, и при этом дает очень важные результаты, влияющие на принятие решений по выбору того или иного варианта радио-протокола.

Для запуска модели нужно сделать текущей директорию с файлами модели и в командной строке MATLAB ввести команду “start_model_fixrate”.

Получение результатов моделирования автор оставляет энтузиастам SIMULINK.


Сеть сбора данных и управления на базе многофункциональных криптозащищенных радио-сенсоров

Рис.9.

Модель системы передатчик - радиоканал - приемник

Описание программного обеспечения и программирования микроконтроллеров.

Проекты программ радио-сенсора и центрального приемника, находящиеся в приложении, написананы на С для среды разработки IAR Embedded Workbench включающей версию компилятор IAR C/C++ Compiler for AVR 4.10A/W32.

Для бесплатного скачивания на сайте фирмы IAR помимо прочих доступна 30-и дневная оценочная версия среды разработки IAR Embedded Workbench для AVR. Ее возможностей хватает чтобы скомпилировать приведенные проекты.

В среде разработки IAR используються файлы рабочего пространства проектов с расширением eww при загрузке проектов. Для радио-сенсора и центрального приемника используються разные файлы рабочего пространства, но в свойствах проекта у них одинаково должны быть выставлены следующие опции:

* General options

- Processor configuration = ATmega8

- Memory model = small

- System configuration = no use dialog

- Library Configuration = CLIB

- Printf formatter = medium

- Scanf formatter = medium

* C/C++ compiler

- Optimization = Size, High, all optimizations enabled

* Linker

- Output format = Other, Intel Standart

- Linker command file = [текущая директроия проекта]\lnkm8s.xcl

После компиляции в поддиректории выбранного проекта debug\exe\ появляется HEX-файл Proj.a90 с образом исполняемой программы для загрузки в микроконтроллер.

Для программирования микроконтроллеров используется программа и очень простое аппаратное приспособление с сайта http://www.LancOS.com .

Вид программы приведен на Рис. 10 . При программировании необходимо внимательно следить за установкой конфигурационных бит микроконтроллера. Они должны быть установлены так как показано на Рис. 10 . Иначе микроконтроллер в схеме может оказаться неработоспособным. Биты секретности BootLock 12.. BootLock 01 и Lock 2, Lock 1 могут выставляться по усмотрению. Установки конфигурационных бит в данной версии радио-сенсора и центрального приемника одинаковые.


Сеть сбора данных и управления на базе многофункциональных криптозащищенных радио-сенсоров

Рис.10.

Внешний вид программы PonyProg и панель установки кофигурационных бит


Сеть сбора данных и управления на базе многофункциональных криптозащищенных радио-сенсоров

Рис.11.

Схема макета радио-сенсора


Сеть сбора данных и управления на базе многофункциональных криптозащищенных радио-сенсоров

Рис.12.

Схема макета центрального модуля

Литература:


1. K. T. Heien, T. A Lunder, K. H. Torvmark “Oversampling and data decision for the CC400/CC900”. http://www.chipcon.com/files/AN_008_Oversampling_1_0.pdf

2. Бернард Скляр “Цифровая связь”. Издательский дом “Вильямс” 2003

3. Прокис Дж. “Цифровая связь”. М. Радио и Связь 2000

Автор: Автор: AlexandrY, ase[dog]takas[dot]lt


Код для размещения на форумах или блоге

«