Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УММ_Zig_Bee_Гл6 / Системы беспроводной передачи данных компании MaxStream v2.doc
Скачиваний:
73
Добавлен:
08.06.2016
Размер:
1.16 Mб
Скачать

Управление обменом данных (flow control)

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

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

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

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

Режимы работы модуля

Модуль может находиться в одном из 5 режимов работы (рис. 5). Когда нет приема или передачи данных модуль находится в холостом режиме (Idle mode). Модуль переходит в другие режимы при возникновении следующих ситуаций: последовательные данные поступают по линии DI (Режим Передачи – Transmit Mode); действительные данные были приняты по радиоканалу (Режим Приема – Receive Mode); через UART была получена специальная управляющая последовательность (Командный режим – command Mode).

Рис. 5. Диаграмма возможных режимов работы модуля XBee™

Если модуль находится в холостом режиме некоторое время (программируемый параметр ST), то он переходит в спящий режим (Sleep Mode). В спящем режиме потребляемый ток не превышает 50 мкА. В спящий режим модуль можно также перевести принудительно, задействовав линию Sleep (выв. 9). Прием и передача информации невозможна, когда модуль переведен в спящий режим по линии Sleep. Модуль может также находиться в циклическом спящем режиме (Cyclic Sleep Mode), когда он периодически активизируется для приема или передачи данных. В зависимости от выполняемой функции модуля в рамках стандарта ZigBee (координатор или удаленное устройство) применяется различный алгоритм работы в циклическом спящем режиме. Для изменения внутренних настроек модуля используется командный режим. В этом режиме поступающие по UART данные интерпретируются как команды. Для управления модулем создан набор специальных AT-команд. Для входа в командный режим необходимо передать предопределенную последовательность символов «+++». При этом необходимо до и после этой посылки выдержать определенную паузу.

Каждая AT-команда представляет собой текстовую строку, которая начинается символами «АТ». Далее следует код команды, пробел, параметр команды и символ «возврат каретки» (<CR>, код 0x0D). Например, команда, изменяющая младший байт адреса модуля на «0х1F» будет выглядеть так: ATDL 1F <CR>. Для сохранения измененных параметров модуля в энергонезависимой памяти используется команда записи WR (Write). Если не подать команду WR, то после выключения и повторной подачи питания будет восстановлен предыдущие значения параметров. Каждая подаваемая команда сначала распознаются модулем и затем исполняется. В случае успешного выполнения модуль выдаст строку «OK» по линии DO. Если команду не удалось исполнить, сообщение «ERROR» поступает во внешний микроконтроллер. Модуль выходит из командного режима по команде «ATCN» или по программируемому тайм-ауту.