Научная статья на тему 'Cc2500 — универсальное решение texas Instruments для локальной беспроводной связи'

Cc2500 — универсальное решение texas Instruments для локальной беспроводной связи Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
428
118
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Штрапенин Геннадий, Мишан Михаил

В последнее время беспроводные устройства связи все больше вытесняют проводную связь. С одной стороны это связано с повышением интеграции и уменьшением стоимости радиочастотных компонентов — радиотрансиверов, антенн и т. п., а с другой — с ростом стоимости материалов и трудозатрат для организации проводной связи. Если ранее эта тенденция была заметна при дальности связи, исчисляемой километрами, то сейчас бум беспроводных технологий приходит в область устройств локальной связи с дальностью от единиц до нескольких сотен метров. Даже при таких небольших расстояниях суммарная стоимость проводов, разъемов и корпусов к ним, а также работ по монтажу линии связи может оказаться существенно выше, чем применение интегрального приемопередатчика. В статье описываются примеры реализации нескольких устройств беспроводной связи — от простой системы радиоуправления до беспроводной сети с использованием компонентов и инструментария, который предлагает компания Texas Instruments.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Cc2500 — универсальное решение texas Instruments для локальной беспроводной связи»

CC2500 — универсальное решение Texas Instruments

для локальной беспроводной связи

Михаил МИШАН

[email protected] Геннадий ШТРАПЕНИН, к. ф.-м. н.

[email protected]

В последнее время беспроводные устройства связи все больше вытесняют проводную связь. С одной стороны это связано с повышением интеграции и уменьшением стоимости радиочастотных компонентов — радиотрансиверов, антенн и т. п., а с другой — с ростом стоимости материалов и трудозатрат для организации проводной связи. Если ранее эта тенденция была заметна при дальности связи, исчисляемой километрами, то сейчас бум беспроводных технологий приходит в область устройств локальной связи с дальностью от единиц до нескольких сотен метров. Даже при таких небольших расстояниях суммарная стоимость проводов, разъемов и корпусов к ним, а также работ по монтажу линии связи может оказаться существенно выше, чем применение интегрального приемопередатчика. В данной статье описываются примеры реализации нескольких устройств беспроводной связи — от простой системы радиоуправления до беспроводной сети с использованием компонентов и инструментария, который предлагает компания Texas Instruments.

Выбор элементной базы «беспроводки» в основном определяется ее стоимостью и временем освоения. Из предлагаемых рынком электронных компонентов решений наиболее интересны те, которые не требуют лицензирования или регистрации приемопередающих устройств. В большинстве стран мира нелицензируемым является ISM-диапазон 2,4 ГГц. В России устройства, работающие в этом диапазоне, не нуждаются в регистрации, если излучаемая ими мощность не превышает 100 мВт. Данным требованиям в полной мере удовлетворяет последняя разработка компании Texas Instruments — универсальный интегральный радиотрансивер СС2500, применение которого позволя-

Таблица. Основные параметры интегрального трансивера СС2500

Параметр Значение

Рабочая частота, мин, ГГц 2,400

Рабочая частота, макс, ГГц 2,483

Выходная мощность, макс, дБм 0*

Скорость передачи данных (макс.), кбит/с 500

Чувствительность (при скорости передачи 10 кбит/с, вероятность ошибки 1%), дБм -101

Тип модуляции FSK, GFSK, MSK*

Интерфейс управления Последовательный SPI

Технология изготовления КМОП 0,18 мкм

* Настраивается с помощью внутренних регистров управления

ет унифицировать элементную базу устройств различного типа и, как следствие, дает возможность переносить схемотехнику и программный код из предыдущих разработок в последующие. Важное преимущество данного решения — сравнительно низкая цена ^2500 с дополнительными элементами (примерно $3 для серийных изделий).

Основные параметры и структура интегральной микросхемы (ИМС) ^2500 представлены в таблице и на рис. 1 соответственно.

Следует отметить, что микросхема CC2500 допускает работу и в многоканальных устройствах c быстрой периодической перестройкой по каналам (Frequency Hopping).

Сигнал с антенны подается на выводы ИМС RF_P и RF_N, усиливается малошумя-щим усилителем, оцифровывается и демоду-лируется. Демодулятор приемника, так же как и модулятор передатчика, цифровой, что позволяет настраивать их на различные типы модуляции (таблица), управлять полосой ча-

Преамбула Синхрослово Длина поля Адрес абонента* Данные CRC

8xN бит 16 или 32 бита данных* 8 бит 8 бит 8xN бит 16 бит

*не обязательные к использованию

Рис. 2. Формат пакета данных, формируемого внутренним контроллером пакетов ИМС СС2500

стот канала передачи и, таким образом, повысить помехоустойчивость и оптимизировать работу трансивера для решения конкретных задач при варьировании числа каналов. Рабочая частота канала задается встроенным синтезатором частоты с ФАПЧ, который тактируется кварцевым генератором с внешним резонатором частотой 26-27 МГц. Особых требований к стабильности частоты резонатора нет, поскольку в микросхеме предусмотрен режим подстройки частоты канала приема под несущую частоту удаленного передатчика. Конкретное значение рабочей частоты определяется согласно формуле, приведенной в документации [1], или может быть рассчитано с помощью программного инструментария SmartRF Studio, доступного на сайте компании Texas Instruments — www.ti.com.

Цифровая демодуляция позволяет оценить уровень сигнала в эфире (внутренний регистр RSSI), что удобно использовать для проверки занятости канала. При установленной связи полезными могут быть индикатор качества соединения (внутренний регистр Link Quality Indication) и признак корректности контрольной суммы (CRC_OK). Для установки соединения можно использовать индикаторы несущей (Carrier Sense Indicator) и занятости канала (Clear Channel Assessment).

Особенность трансивера CC2500 — наличие встроенной аппаратной поддержки пакетного режима передачи. Для его реализации в ИМС предусмотрен контроллер пакетов, который позволяет добавлять к передаваемым данным служебную информацию, содержа-

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

Связь CC2500 с внешним микроконтроллером осуществляется по последовательному синхронному интерфейсу SPI с дополнительными выводами управления GDOO-GDO2. Функциональное назначение дополнительных выводов программируется и может быть различным. Например, сигналы на этих выводах могут информировать микроконтроллер об окончании передачи или наличии принятой информации. Встроенные раздельные буферы приема (RXFIFO) и передачи (TXFIFO), по 64 байта каждый, позволяют освободить внешний микроконтроллер от побайтного приема и передачи текущей информации.

Управление и синхронизация всех блоков СС2500 производится встроенным контроллером трансивера. Режимы его работы определяются настройками, содержащимися в служебных регистрах [1]. Доступ к этим регистрам, а также к регистрам индикаторов, статусным регистрам и буферам FIFO осуществляется через последовательный синхронный интерфейс SPI.

Еще один блок в структурной схеме — блок опережающей коррекции ошибок — позволяет исправлять некоторое количество ошибок в принятом сообщении путем избыточ-

ного шифрования данных по определенным правилам. Более подробно об этом можно прочитать в документе [2].

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

Типовая схема включения ИМС СС2500, не требующая настройки, изображена на рис. 3. Как видно из рисунка, схема эта весьма проста и содержит не более десяти недорогих внешних пассивных компонентов, число которых может быть еще уменьшено при использовании петлевой антенны, выполненной печатными проводниками. Размеры и расположение проводников такой антенны, а также рекомендуемую разводку печатной платы можно найти на сайте фирмы.

Перейдем далее к описанию конкретных возможностей реализации несложных устройств с беспроводным управлением на основе радиотрансивера СС2500, позволяющих разработчику всего за несколько часов «на коленках» выполнить макетирование устройства типа однокомандной системы радиоуправления, системы передачи данных или сетевой системы сбора информации об окружающей температуре.

Для практических работ целесообразно приобрести демонстрационный комплект EZ430-RF2500, состав которого изображен на рис. 4. В комплект входят две платы RF2500, JTAG-эмулятор EZ430 — аппаратный отладчик, подключаемый к USB-порту персонального компьютера, держатель двух батарей AAA и компакт-диск с программным обеспечением.

На плате RF2500 установлены микроконтроллер MSP430F2274 [3] и трансивер CC2500 со всей необходимой обвязкой, включающей диэлектрическую антенну. Стоимость комплекта на сайте производителя www.ti.com составляет $49. Демонстрационный комплект позволяет значительно сэкономить время на освоение технологии, разработку и изготовление печатных плат, а также на устранение возможных ошибок, поэтому при столь невысокой цене (хотя в России, естественно, она будет несколько выше) это наиболее оптимальный путь как для начинающего, так и для опытного разработчика.

Для работы с комплектом необходима среда разработки программного обеспечения (ПО) для микроконтроллеров MSP430 — «IAR Embedded Workbench (Kickstart Version)», установочный файл которой содержится на компакт-диске набора EZ430-RF2500, а последнюю версию можно скачать с сайта фирмы. Примечание «Kickstart Version» в названии компилятора означает, что данная версия среды имеет ограничение 4 кбайт по размеру

Рис. 3. Типовая схема включения ИМС CC2500

компилируемого кода языка Си. Однако для рассматриваемого круга задач такой лимит вполне приемлем, и, кроме того, эта версия ПО является бесплатной и распространяется свободно.

IAR Embedded Workbench включает все необходимое для работы с MSP430: компилятор языка Си, ассемблер, сборщик кода, а также отладчик, позволяющий проводить как программную симуляцию выполнения кода, так и отладку программы в микроконтроллере посредством JTAG-интерфейса.

Авторы воспользовались последней версией ПО 5.10, которая была доступна на сайте производителя во время написания статьи. Процедура инсталляции среды на персональный компьютер проста и заключается в запуске установочного файла FET_R510.exe, который был распакован из архива, скачанного по адресу http://www.ti.com/litv/zip/slac050q. По окончании процесса установки среды на ПК ее запуск осуществляется через меню «Пуск», кликом на ярлыке IAR Embedded Workbench.

Наш первый пример — простейшая однокомандная система радиоуправления. На практике это может быть устройство дистанционного открывания ворот и шлагбаумов или передачи тревожного сигнала с охранного или пожарного датчика.

Трансивер CC2500 требует настройки управляющих регистров под конкретный формат передачи данных. Наиболее удачным решением этой проблемы является использование готовой библиотеки интерфейсных функций «MSP430 Interface to CC1100/2500 Code Library» [4], предоставляемой производителем ИМС. Применение готовой библиотеки позволяет разработчику абстрагироваться от аппаратных особенностей микроконтроллера MSP430 и радиотрансивера CC2500. Библиотеку можно скачать с сайта фирмы по адресу: http://www.ti.com/lit/zip/slaa325. Предварительно создайте папку, в которой

вы будете размещать свой первый проект и назовите ее, например, Test1, затем поместите содержимое скачанного архива slaa325.zip в эту папку.

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

Во-первых, запустим и настроим среду IAR Embedded Workbench. Сразу после старта появляется меню, предлагающее создать новый проект или открыть ранее созданный. Выберем «Создать новый проект» («Create new project in current workspace»). Следующее окно предлагает выбрать тип создаваемого проекта. Выберем «Пустой проект» («Empty project»). Далее система откроет окно, в котором предложит ввести название проекта. Назовем проект «Test1.ewp» и нажмем ОК. Теперь к пустому проекту необходимо добавить главный исходный файл проекта, для чего в верхнем меню во вкладке Project выбираем пункт Add Files. В появившемся окне в созданном ранее каталоге Test1 выбираем файл main.c. Аналогичным образом в проект необходимо добавить еще два файла с исходным кодом CC1100-CC2500.c и TI_CC_spix. Сохраним весь проект, выбрав на вкладке верхнего меню File пункт SaveAll. В появившемся диалоговом окне необходимо ввести Test1. Теперь проект можно компилировать, выбрав пункт Rebuild All вкладки Project верхнего меню.

Исходный проект, являющийся примером, поставляемым с библиотекой, оптимизирован для использования на другой демонстрационной плате с микроконтроллером MSP430F169, поэтому вторым шагом будет коррекция проекта под демонстрационный комплект EZ430-RF2500. Для настройки проекта под микроконтроллер, используемый в данном комплекте, необходимо в верхнем меню во вкладке Projects выбрать пункт Options, при этом откроется окно настроек проекта.

На вкладке General Options в пункте Device нужно выбрать тип микроконтроллера. Выберите второе семейство — MSP430x2xx Family, а в нем MSP430F2274. На вкладке Debugger в пункте Driver выберите FET Debugger, что соответствует процессу отладки на реальном устройстве через JTAG-эмулятор. При этом необходимо проверить, что на вкладке FET Debugger в пункте Connection установлено значение Texas Instruments USB-IF. Теперь окно опций проекта можно закрыть, нажав ОК.

Третий шаг: необходимо перенастроить библиотеку под конкретные параметры аппаратных средств демонстрационного комплекта. Интерфейсная библиотека представляет собой набор готовых функций нескольких уровней. Самый низший уровень описывает особенности аппаратных средств в файлах TI_CC_CC1100-CC2500.h, TI_CC_MSP430.h и TI_CC_hardware_board.h. На более высоких уровнях описываются функции доступа к CC2500 и ее инициализации, а также непосредственно процедуры приема и передачи данных.

В файле TI_CC_MSP430.h, который можно открыть двойным кликом на названии этого файла в окне проекта среды, приведено назначение выводов микроконтроллера, используемых MSP430 для связи с трансивером по последовательному интерфейсу. В строке 17 необходимо изменить #include «msp430x16x.h» на #include <msp430x22x4.h>, в соответствии с применяемым нами микроконтроллером.

Больше всего изменений необходимо сделать в файле TI_CC_hardware_board.h. В результате он должен выглядеть следующим образом:

#include «TI_CC_msp430.h»

#define TI_CC_LED_PxOUT P10UT

#define TI_CC_LED_PxDIR P1DIR

#define TI_CC_LED1 0x01

#define TI_CC_LED2 0x02

#define TI_CC_SW_PxIN P1IN

#define TI_CC_SW_PxIE P1IE

#define TI_CC_SW_PxIES P1IES

#define TI_CC_SW_PxIFG P1IFG

#define TI_CC_SW1 0x04

#define TI_CC_GD00_Px0UT P20UT

#define TI_CC_GDO0_PxIN P2IN

#define TI_CC_GDO0_PxDIR P2DIR

#define o_PxIE P2IE

#define TI_CC_GD00_PxIES P2IES

#define TI_CC_GDO0_PxIFG P2IFG

#define TI_CC_GDO0_PIN 0x40

#define TI_CC_GD01_Px0UT P30UT

#define TI_CC_GDO1_PxIN P3IN

#define TI_CC_GD01_PxDIR P3DIR

#define TI_CC_GD01_PIN 0x04

#define TI_CC_GD02_Px0UT P20UT

#define TI_CC_GD02_PxIN P2IN

#define TI_CC_GD02_PxDIR P2DIR

#define TI_CC_GD02_PIN 0x80

#define TI_CC_CSn_Px0UT P30UT

#define TI_CC_CSn_PxDIR P3DIR

#define TI_CC_CSn_PIN 0x01

#define TI_CC_RF_SER_INTF TI_CC_SER_INTF_USCIB0 //

Interface to CCxxxx

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

В демонстрационном комплекте, согласно его схеме [5], есть два светодиода, которые подключены к выводам микроконтроллера Р1.0 и Р 1.1, поэтому проверяем определения констант Т1_СС_ЬЕБ. Строки с Т1_СС_ЬЕБ3 и Т1_СС_ЬЕБ4 удаляем как неиспользуемые.

На плате ИБ2500 установлена всего одна кнопка, подключенная к выводу микроконтроллера Р1.3, поэтому должны быть соответствующим образом определены константы Т1_СС_8”^ Строки с константами TI_CC_SW2, TI_CC_SW3 и TI_CC_SW4 удаляем как неиспользуемые.

Выводы 0000, 0001, 0002 и CSn микросхемы СС2500 подключены соответственно к выводам Р2.6, Р3.3, Р2.7 и Р3.0 микроконтроллера MSP430F2274, поэтому корректируем определение констант Т1_СС_0Б00, Т1_СС_0Б01, Т1_СС_0Б02 и TI_CC_CSn.

Передача данных в СС2500 осуществляется по последовательному интерфейсу SPI, в качестве которого в MSP430F2274 используется периферийный модуль ШСЮ0, поэтому константа TI_CC_RF_SER_INTF должна быть определена как TI_CC_SER_INTF_USCIB0.

Перейдем к следующему файлу СС1100-СС2500.с, нуждающемуся в коррекции. Необходимо указать, что в устройстве будет использоваться диапазон 2,4 ГГц, для чего в 17-й строке этого файла переменная TI_CC_RF_FREQ должна быть определена как 2400. После исправлений строка выглядит так:

В библиотеке предусмотрена возможность работы и в других радиодиапазонах, например 433 МГц, который так же, как и диапазон 2,4 ГГц, достаточно популярен в России. В этом случае можно воспользоваться трансивером СС1100, основное отличие которого от СС2500 — диапазон рабочих частот до 1000 МГц. Архитектура, расположение выводов, система команд и регистров управления у этих двух микросхем одинаковы. Таким образом, с помощью демонстрационного комплекта EZ430-RF2500 можно отладить алгоритмы передачи в диапазоне 2,4 ГГц и затем целиком использовать их для работы с микросхемой СС1100, изменив лишь настройки регистров внутреннего синтезатора частот.

После настройки библиотеки функций для работы с EZ430-RF2500 приступим к реализации собственно системы однокомандного радиоуправления. Для этого в основном файле проекта шат.с необходимо сделать еще несколько исправлений.

Поскольку в комплекте есть только одна кнопка, в строках 31-33 файла шат.с удалим константы TI_CC_SW2, TI_CC_SW3, TI_CC_SW4 так, чтобы строки выглядели следующим образом:

TI_CC_SW_PxIES = TI_CC_SW1;

TI_CC_SW_PxIFG &= ~(TI_CC_SW1);

TI_CC_SW_PxIE = TI_CC_SW1;

Также удалим эти константы в строке 58, которая теперь должна выглядеть так:

P1IFG &= ~(TI_CC_SW1);

В строке 54 в буфер передачи передается информация о состоянии кнопок. Поскольку на плате используется лишь одна подключенная к порту P1.3 кнопка, необходимо выполнить сдвиг только 3 раза, после чего наложить маску (операция логического «И») по первому биту. Таким образом, в результате строка 54 приобретает следующий вид:

txBuffer[2] = (~TI_CC_SW_PxIN >> 3) & 0x01;

Ввиду того, что светодиодов на плате только два, в строке 34 удалим константы TI_CC_LED3 и TI_CC_LED4, чтобы строка выглядела так:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

TI_CC_LED_PxDIR = TI_CC_LED1 + TI_CC_LED2;

Сразу после строки 22, в которой программируется остановка охранного таймера, добавим инициализацию регистра микроконтроллера P1REN для подключения «подтягивающего резистора» к выводу, используемому кнопкой:

P1REN=0x04;

Инициализация этого регистра библиотекой не предусмотрена, поскольку регистр является аппаратной особенностью используемого нами микроконтроллера MSP430F2274.

Также инициализируем светодиоды, включив их. Это можно выполнить сразу после предыдущей команды, добавив строку:

P10UT=0x07;

Поскольку выводы P2.6 и P2.7 микроконтроллера могут быть использованы как для портов ввода/вывода, так и для подключения кварцевого резонатора, то необходимо прямо указать их назначение путем добавления еще одной строки ниже предыдущей:

P2SEL=0;

Итак, проект завершен! Запускаем повторно компиляцию.

Загрузку проекта в микроконтроллер осуществляем с помощью JTAG-эмулятора. Для этого EZ-430 вместе с платой RF2500 подключаем к свободному USB-порту компьюте-

ра и в среде IAR Embedded Workbench нажимаем иконку запуска отладчика S (Debugger).

После успешного программирования MSP430 следует выйти из режима отладки, нажав иконку Е, и поменять между собой платы RF2500. Затем нужно повторить вышеописанную процедуру загрузки для второй платы, но в этот раз запустить микроконтроллер, кликнув иконку НО, не выходя из режима отладки.

Подключим вторую плату к питанию, перемкнув джампер JP1 на плате, прикрепленной к держателю батарей. Устройство готово к работе.

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

Теперь попробуем провести ряд интересных экспериментов. Для начала в файле CC1100-CC2500.c изменим адрес устройства. Пусть TI_CCxxx0_ADDR определен как 0х02. После повторной компиляции и загрузки программы в плату, а также запуска микроконтроллера мы видим, что управлять светодиодом теперь возможно только с одной платы. Поскольку мы изменили адрес нашего устройства, плата будет принимать только те пакеты, в которых указан адрес 0х02. Сейчас она не реагирует на пакеты, по-прежнему передаваемые с адресом 0x01.

Поменяем местами платы RF2500 и исправим адрес отправляемого пакета на 0x02. Для этого в обработчике прерывания «port1_ISR» файла main.c изменим строку txBuffer[1] = 0x01 на txBuffer[1] = 0x02. При этом в файле CC1100-CC2500.c адрес устройства снова установим 0х01. Перекомпилируем и загрузим проект. Теперь система вновь работает в обе стороны, но пакеты отправляются с различными адресами. Опыты можно продолжать при наличии нескольких плат RF2500, задав каждой из них свой индивидуальный адрес.

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

Разнообразные беспроводные системы могут работать, не влияя друг на друга при использовании нескольких частотных каналов. Это весьма удобно, если в сети действует плотный трафик передачи данных, но при этом есть возможность разбить беспроводную сеть на домены, работающие на разных частотах. Номер канала можно задать переменной TI_CCxxx0_CHANNR в файле CC1100-CC2500.c.

Для того чтобы на основе предыдущего примера создать устройство, которое будет

fdefine TI_CC_RF_FREQ 2400 // 315, 433, 868, 915, 2400

Точка доступа Обозначение типа соединений Точка—точка

Соединение с точкой доступа Абонент Соединение через повторитель

Повторитель

Рис. 5. Пример топологии охранно-пожарной беспроводной сети на основе стека 3|тр!|с1Т|

передавать несколько команд или совокупность данных, необходимо подготовить их в массиве txBuffer, объявленном в основном исходном файле main.c. При этом первый байт массива должен указывать на длину (объем) данных, а второй — на адрес устройства, которому данные должны быть переданы. Непосредственно процесс передачи данных начинается с вызова библиотечной функции RFSendPacket(txBuffer, len), где txBuffer — указатель на массив с данными, а len — длина данных. Длина данных в одном пакете для используемой библиотеки не может превышать 63 байт. Это ограничение вызвано размером внутреннего буфера FIFO микросхемы CC2500. Однако в самом трансивере предусмотрены режимы работы с длиной данных до 256 байт или с бесконечной длиной пакета. Если нужно, разработчик может самостоятельно реализовать алгоритм сборки единого пакета из нескольких. Выполнить все необходимое для передачи данных нетрудно, поэтому мы перейдем к следующему, более сложному примеру.

Одна из наиболее востребованных в настоящее время задач — это организация беспроводных сетей. На первый взгляд это весьма сложная проблема, поскольку необходимо затратить много времени на разработку и написание алгоритмов передачи, проверки, сборки и исправления ошибок. Однако задача может быть сравнительно легко решена при использовании программного стека компании Texas Instruments, названного SimliciTi, распространяемого бесплатно при условии, что он будет применяться совместно с микроконтроллерами MSP430. Алгоритмы стека SimliciTi позволяют организовывать передачу данных не только между двумя различными «точками», но и использовать в цепи передачи стандартные элементы сетей — мар-

шрутизаторы и повторители, позволяющие координировать работу сети и расширить физическую зону покрытия. Пример топологии беспроводной сети охранно-пожарной сигнализации, построенной на основе стека SimliciTi, показан на рис. 5. Установочный файл SimliciTi есть на сайте производителя www.ti.com.

Устройства, работающие под управлением стека SimliciTi, могут быть всего трех типов: Access Point, Range Extender и End Device, соответственно они выполняют различные функции.

Устройство типа Access Point («Точка доступа»), далее — AP, выполняет функции управления сетью и адресами хранения сообщений для «спящих» устройств в сети. В одной сети может существовать только одна точка доступа. Устройства типа AP не могут быть переведены в спящий режим, и их пи-

тание рекомендуется выполнять стационарным с резервированием от батарей. Отметим, что устройства типа AP могут быть одновременно сконфигурированы и как устройства типа Range Extender или End Device.

Устройства типа Range Extender («Расширитель»), далее — RE, выполняют функции маршрутизации и повторителя и, так же как AP, требуют стационарного питания с резервированием, поскольку не предназначены для перевода в спящий режим. Устройства типа RE могут быть одновременно сконфигурированы и как устройства типа End Device.

Устройства типа End Device («Конечное устройство»), далее — ED, служат собственно для приема и передачи данных. Поскольку стек оптимизирован для устройств с батарейным питанием, то подразумевается, что устройства типа ED большую часть времени находятся в спящем режиме.

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

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

Стек SimpliciTI включает в себя несколько уровней, иерархия которых показана на рис. 6.

Самый нижний уровень — Radio — реализует физический уровень связи. По сути это сам интегральный трансивер, например CC2500.

Уровень LHAL позволяет абстрагироваться от аппаратных особенностей интерфейса SPI к более высокому уровню — NWK, обращающемуся к Radio.

Следующий уровень — NWK — определяет передачу кадров и управление работой сети, включая процессы соединения, уста-

новки частот и каналов, работу с ключами шифрования, а также управление функционированием других элементов сети. На данном уровне работают основные алгоритмы стека, в которых реализуется управление приемом и передачей пакетов и кадров. Соединение организуется путем открытия портов, аналогичных портам стека TCP/IP. Соединения различных типов обращаются к NWK через определенные порты, как схематично показано на рис. 6. Более подробно структура стека и руководство по использованию встроенных функций приведены в документации «SimpliciTI: Simple Modular RF Network Developers Notes», которая поставляется с установочным файлом.

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

1. Аппаратный адрес — уникальный для каждого устройства адрес, присваиваемый устройству при компилировании программ. Аппаратный адрес состоит из четырех байтов и не может быть изменен в ходе функционирования сети. Кроме того, первый байт адреса не может быть равен 0xFF или 0x00, так как данные значения используются в широковещательных запросах.

2. Сетевой адрес, он назначается устройству автоматически во время подключения к сети и не зависит от пользователя.

На самом верхнем уровне Application Layer (APP) размещается непосредственно программа пользователя, занимающаяся, например, сбором и подготовкой информации. Пользовательское приложение осуществляет взаимодействие со стеком через API-интерфейс и позволяет провести инициализацию устройства, установку соединения, передачу сообщений и управление устройством. Более подробно обращение к APP описано в упомянутом ранее документе «SimpliciTI: Simple Modular RF Network Developers Notes».

В нашем случае удобнее воспользоваться уже готовым примером применения стека SimpliciTI «slac139», который есть на компакт-диске комплекта EZ430-RF2500 или может быть скачан с сайта компании.

Для этого создайте новую папку — Test2 и распакуйте в нее содержимое скачанного архива slac139a.zip. Теперь запустите заново IAR Embedded Workbench, но, в отличие от прошлого примера, в появившемся окне выберите пункт «Открыть существующий проект» («Open Existing Project»). В следующем окне, которое появится после нажатия ОК, будет предложено выбрать проект. Найдите созданную ранее папку Test2 и перейдите во вложенную папку «eZ430-RF2500

Ш

Рис. 7. Окно программы-монитора Demo Visualizer

Wireless Sensor Monitor IAR Source v1.02». Проект, который необходимо открыть, называется «eZ430-RF2500 Sensor Monitor Demo v1.02».

Скомпилируйте и загрузите в первую плату RF2500 проект End Device, а во вторую плату — проект Access Point. Переключение между активными проектами производится выбором вкладок в нижней части окна рабочей области Workspace. Плата c проектом End Device должна быть подключена к держателю батарей, а плата с проектом Access Point — к JTAG-отладчику EZ430.

Теперь обе платы образуют простейшую сеть SimpliciTI, в которой плата, прикрепленная к держателю батарей, — это конечное устройство (End Device), и передает информацию о своей температуре на другую плату, которая является точкой доступа (Access Point). Для возможности просмотра этой информации компания Texas Instruments предлагает программу-монитор «Demo Visualizer», которую можно найти в папке «Test2\Demo Visualizer». На рис. 7 показано рабочее окно программы-монитора. В центре окна отображается AP, а несколько выше — ED. Слегка нагрейте или охладите микроконтроллер платы ED и вы увидите, как изменяются показания температуры в окне программы-монитора. При наличии нескольких плат RF2500 можно организовать, например, сеть сбора данных о температуре в различных помещениях здания и вне его.

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

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

Последние разработки компании Texas Instruments обладают еще большими возмож-

ностями. Результатом объединения микроконтроллера с трансивером на одном кристалле стала ИМС CC2510, в состав которой входят процессорное ядро 8051 с перепрограммируемой Flash-памятью программ объемом от 8 до 32 кбайт в зависимости от версии. Кроме того, микросхема CC2510 содержит 10-разрядный АЦП последовательного приближения, два универсальных последовательных порта UART, интерфейс I2C, модуль прямого доступа к памяти и 128-битный крипто-сопроцессор.

На основе ИМС CC2510 могут быть реализованы миниатюрные однокристальные беспроводные решения самых различных задач. Ядро 8051 хорошо знакомо уже не одному поколению разработчиков, что должно способствовать широкому распространению данных микросхем. Параметры внутреннего трансивера CC2510 практически не изменились и совпадают с ИМС CC2500.

Проблема передачи данных на персональный компьютер легко решается при использовании ИМС СС2511 с внутренним интерфейсом USB2.0 со встроенным буфером FIFO размером 1 кбайт. Остальные параметры СС2511 аналогичны CC2510.

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

Все ИМС серии CC25xx — СС2500, СС2510, СС2511, СС2550 — имеют своих «двойников»: СС1100, СС1110, СС1111, СС1150 для работы в диапазонах 315, 433 и 868 МГц, при этом выходная мощность передатчика у них увеличена до 10 дБм.

Большое количество примеров, рекомендаций, библиотек, описаний конструкций и т. п., доступных на сайте производителя www.ti.com, помогут широкому кругу разработчиков в кратчайшие сроки спроектировать всевозможные устройства беспроводной связи. ■

Литература

1. CC2500. Single Chip Low Cost Low Power RF Transceiver, Data Sheet SWRS040A. Texas Instruments, 2006.

2. Hoel R. FEC Implementation. Design Note DN504 SWRA113A. Texas Instruments, 2007.

3. MSP430x22x2, MSP430x22x4 Mixed Signal Microcontroller, Data Sheet SLAS504B. Texas Instruments, 2007.

4. Quiring K. MSP430 Interface to CC1100/2500 Code Library, Application Report SLAA325. Texas Instruments, 2006.

5. eZ430-RF2500 Development Tool, User's Guide SLAU227. Texas Instruments, 2007.

i Надоели баннеры? Вы всегда можете отключить рекламу.