Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УММ_Zig_Bee_Гл6 / ИВС_на основе технологии ZigBee..doc
Скачиваний:
167
Добавлен:
08.06.2016
Размер:
633.34 Кб
Скачать

3.5. Адресация.

Согласно протоколу 802.15.4 пакеты пересылаются, используя 16-ти или 64-х битную адресацию. Каждому модулю при производстве назначается уникальный 64-х битный IEEEадрес. Этот адрес можно прочитать с помощью командSL(SerialAddressLow) иSH(SerialAddressHigh). Для отсылки радиопакета на модуль с определенным адресом необходимо задать адрес этого модуля командамиDL(DestinationAddressLow) иDH(DestinationAddressHigh). Для передачи пакета можно также использовать 16-ти битную адресацию. В этом случаеDHустанавливается равным «0х00000000».

3.6. Обмен данными.

Внутренняя структура модуля представлена на рисунке. Когда последовательные данные поступают в модуль по линии DI, они сохраняются во внутреннем буфере (DIBuffer) до момента передачи в эфир. Передача в эфир откладывается, если, например, в данный момент идет приемRFданных. Если приемный буфер заполнен, то в действие вступает программный или аппаратный (линияCTS) контроль передачи данных. Можно полностью отказаться от контроля передачи данных, если понизить скорость до значения, когда данные по радиоканалу будут передаваться быстрее, чем будет заполняться приемный буфер.

Рисунок. Внутренняя структура модуля XBee™

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

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

3.7. Контроль данных.

Для того чтобы избегать потери данных при переполнении буферов, размер которых ограничен 100 байтами, предусмотрена линия CTS. Когда вDIбуфере остается 17 байт до полного его заполнения, модуль выставляет высокий уровень на линииCTS, сигнализирующий внешнему устройству о переполненииDIбуфера и о необходимости приостановить передачу данных в модуль.

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

3.8. Работа в режиме ретрансляции.

По умолчанию, модуль работает в режиме ретрансляции. Все данные поступающие по линии DIв порядке очереди сразу передаются в приемопередатчик. Таким образом, модули не требуют никаких настроек и готовы сразу работать в режиме «прозрачного» удлинителяRS-232.

Пакетная передача.

Помимо непрерывной передачи данных, возможна настройка пакетной передачи. Данные буферизируются в DIбуфере, пока пакет заданного размера не будет упакован и передан в эфир.

Для пакетной передачи данных характерно:

  • Пока идет упаковка, модуль не может принимать данные.(при настройке модуля можно установить параметр RO, этот параметр определяет время задержки для упаковки пакета, приRO=0 упаковка начинается сразу при поступлении данных);

  • Максимальный пакет 100 байт;

  • При передаче последовательности команд, в командном режиме, каждый знак буферизируется, перед тем как последовательность будет передана.

Например: Последовательность команд (GT+CC+GT), в данном случае модуль отправит восемь пакетов.

Поскольку модуль работает в дуплексном режиме, одновременная передача и прием данных невозможна. Если модуль принимает данные по радиоканалу и одновременно получает данные по линии DIиз внешнего устройства, он не может их передать. Данные сохраняются вDIбуфере до возможного момента их передачи(прием по радиоканалу закончен илиDOбуфер переполнен и происходит считывание данных). В этом случае так же необходимо применение программного или аппаратного контроля данных (линияCTS) для избежания переполненияDIбуфера и потери информации.