Журнал "Новости Электроники", номер 2, 2010 год.

Журнал "Новости Электроники", номер 2, 2010 год.Построение сетей мониторинга на примере набора eZ430-RF2500Алексей Пантелейчук Без сомнения, все слышали про технологию ZigBee, позволяющую соединить в беспроводную сеть сотни и даже тысячи устройств (датчиков, счетчиков, пожарных извещателей). Однако организация небольшой сети с использованием технологии ZigBee═-- избыточное и дорогое решение. В предлагаемой статье описывается пример построения сети беспроводных температурных датчиков с использованием протокола SimpliciTI компании Texas Instruments, упрощенной версии ZigBee.

В рассматриваемом примере сети термодатчиков конечные устройства передают значения измеренной температуры и напряжения по беспроводному каналу к точке доступа, которая сообщает все накопленные данные через интерфейс UART в COM-порт компьютера.

 

Описание беспроводной сети

Приложение построено на базе микроконтроллера MSP430, беспроводного приемопередатчика с низким энергопотреблением CC2500 и сетевого протокола SimpliciTI. Разработчик может повторить систему, используя два готовых решения:

Отладочный набор eZ430-RF2500;Беспроводной протокол SimpliciTI.

eZ430-RF2500 - это полный отладочный комплект для работы с микроконтроллером MSP430F2274 и беспроводным трансивером CC2500 на 2,4 ГГц. В отладочный комплект входит: USB-программатор/эмулятор; две съемные целевые платы; две батарейки в специальном корпусе (рис. 1); а также диск с документацией, графическим интерфейсом пользователя Network Visualizer и исходными кодами приложения. Целевая плата eZ430-RF2500T может использоваться как в паре с USB-программатором, так и в виде отдельной системы с внешним датчиком или без него, а также - как готовое решение. Через USB-интерфейс программатора можно организовать прием и передачу данных между компьютером и MSP430.

Отличительными характеристиками eZ430-RF2500 являются:

USB программатор/эмулятор;21 доступный вывод для отладки;Высокоинтегрированный микроконтроллер с низким энергопотреблением MSP430, работающий на частоте 16МГц;Два светодиода, зеленый и красный, управляющиеся двумя цифровыми портами ввода/вывода общего назначения;Кнопка, генерирующая внешнее прерывание приложения.

Блок батареек и плата расширения используются для запуска программы на eZ430-RF2500T без программатора (рис. 1).

 

 

 

Рис. 1. Отладочный набор eZ430-RF2500  

Подробно о eZ430-RF2500 можно узнать на сайте TI:  или в документе [1].

SimpliciTI - разработанный компанией TI протокол, ориентированный на сети с маломощными устройствами (до 30 устройств в сети). Сетевой протокол SimpliciTI очень прост в применении и требует минимальных ресурсов микроконтроллера. Протокол может быть реализован на базе микроконтроллеров с ультранизким энергопотреблением MSP430 и многочисленных радиочастотных приемопередатчиков. Несмотря на скромные требования к ресурсам микроконтроллера, сетевой протокол SimpliciTI поддерживает топологии «звезда» с точкой доступа для записи и отправки сообщений конечному устройству, а также до четырех расширителей дальности. Протокол SimpliciTI предназначен для таких приложений, как системы безопасности и сигнализации (датчики присутствия и движения, датчики управления включением света, датчики разрушения стекла, детекторы дыма и угарного газа), бытовые расходомеры (измерители расхода газа, воды и электричества), домашняя автоматизация (дистанционные системы открывания гаражных дверей, системы кондиционирования и отопления), системы радиочастотной идентификации. Сетевой протокол SimpliciTI распространяется с открытым кодом и не требует лицензии. Разработчики беспроводных устройств могут адаптировать протокол под свои задачи. Более подробную информацию о протоколе см. в [2],[3].

Две целевые платы eZ430-RF2500 отладочного комплекта изначально запрограммированы различным программным обеспечением для работы в беспроводной сети. Точка доступа (AP) всегда включена и управляет сетью, один раз в секунду принимает информацию от одного или нескольких конечных устройств (ED). Конечное устройство (ED) большую часть времени проводит в режиме низкого энергопотребления LPM3, «просыпаясь» раз в секунду для измерения температуры окружающей среды и напряжения батарейки, затем пересылая результаты измерений точке доступа. При получении данных от конечного устройства точка доступа пересылает их через UART в COM-порт компьютера для отображения. Безусловно, все устройства в сети должны работать по протоколу SimlpiciTI.

 

Точка доступа (AP)

Первое, что делает точка доступа при включении - передает текст (рис. 2) в COM-порт. Затем точка доступа инициализируется как сетевой концентратор. При успешном завершении этой процедуры точка доступа передает сообщение, показанное на рис. 2.

 

 

Рис. 2. Сообщение, передаваемое точкой доступа в COM-порт при инициализации

С помощью температурного датчика, встроенного в 10-битный АЦП (ADC10), точка доступа проводит измерение температуры окружающей среды один раз в секунду, постоянно тестируя сеть на факт подключения новых конечных устройств, а также принимает посылки от подключившихся ранее. С помощью двух светодиодов точка доступа сигнализирует о двух транзакциях в сети: красный светодиод показывает передачу измеренных значений от AP в компьютер, а зеленый светодиод сигнализирует о приеме пакета от одного из сетевых ED.

Код программы для точки доступа содержится в файле demo_AP.c. Выполнение кода программы начинается с системной инициализации, которая практически идентична для точки доступа и конечных устройств сети (рис. 3).

 

 

Рис. 3. Блок-схема алгоритма работы точки доступа

 

Функция BSP_Init() определяет взаимодействие между MSP430 и CC2500, а также настраивает светодиоды для использования в приложении. После аппаратной инициализации AP и ED создают (случайным образом) 4-байтный адрес, записывают этот адрес во flash-память для последующего его использования после сброса. Как только AP обнаруживает новое устройство в сети по его адресу, оно записывает этот адрес во flash и проверяет эту область при инициализации, чтобы ED, в случае сброса, всегда определялось как то же самое устройство, или, в случае сброса самой AP, конечные устройства, использующие эту точку доступа, правильно определили ее. Случайный адрес генерируется с помощью функции TI_getRandomIntegerFromVLO библиотеки vlo_rand.s43, доступной в проекте. Для более подробной информации о библиотеке генерирования случайных чисел для MSP430, см. документ Random Number Generation Using the MSP430 (SLAA338). Функция MCU_Init() инициализирует MSP430 следующим образом:

DCO и MCLK настраиваются на частоту 8 МГц;Таймер A настраивается на генерирование прерываний каждую секунду;UART инициализируется на работу с COM-портом компьютера со скоростью 9600 бит/с, разрешаются прерывания.

После завершения инициализации аппаратной части, на экране появляется текст, изображенный на рис. 2, и вызывается функция инициализации сети SMPL_Init(sCB). Параметр sCB представляет собой указатель на функцию вызова, выполняющуюся в обработчике прерываний (ISR) при получении посылки точкой доступа.

Функция обратного вызова sCB фильтрует принятые пакеты в зависимости от их идентификатора канала связи для того, чтобы определить источник посылки и различить запрос на подключение к сети нового конечного устройства. Нулевой идентификатор канала связи означает запрос на подключение. Если запрос принят, точка доступа присваивает подключившемуся конечному устройству очередной идентификатор в диапазоне от 0x01 до 0x1D. Это означает, что протокол SimpliciTI поддерживает сеть из 30 конечных устройств, подключенных к точке доступа. Однако, Wireless Sensor Monitor v1.02 позволяет подключить не более восьми конечных устройств. В соответствии с идентификатором канала связи, функция обратного вызова sCB определяет и инкрементирует соответствующий семафор sPeerFrameSem или sJoinSem для их обработки в теле основной программы. В коде программы точки доступа также используется семафор sSelfMeasureSem, который устанавливается таймером А, чтобы каждую секунду измерять и отображать собственные значения температуры и напряжения точки доступа. Таким образом, ходом программы после инициализации сети управляют три семафора. Функция sCB возвращает определенное значение. Если это значение больше нуля - функция обратного вызова обработала принятое сообщение. Функция обратного вызова sCB в файле demo_AP.c возвращает ноль, потому что программа оставляет принятое сообщение в буфере для обработки его приложением.

Семафор sJoinSem в соответствии с кодом в файле demo_AP.c устанавливается, когда конечное устройство вызывает функцию SMPL_Init(). Подключение к сети является побочным эффектом инициализации, так как не существует специального запроса на подключение. Не существует таких функций, как SMPL_Join() или SMPL_JoinListen(). Если семафор sJoinSem установлен в функции обратного вызова точки доступа, и AP установила число каналов связи меньше максимально возможного (определяется в файле smpl_config.dat), AP вызывает функцию SMPL_LinkListen(). Программа не возвращается из функции SMPL_LinkListen() до момента успешного установления канала связи. Очень важно, чтобы функция SMPL_LinkListen() вызывалась только тогда, когда пользователь знает, что другое устройство в сети посылает запрос с помощью SMPL_Link(). После установления канала связи увеличивается число устройств, распознаваемых точкой доступа, и семафор sJoinSem устанавливается для другого устройства.

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

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

 

Конечное устройство (ED)

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

В момент включения конечное устройство инициализируется, затем раз в секунду измеряет температуру и напряжение батареи и передает их значения в сеть (рис. 4).

 

 

Рис. 4. Блок-схема алгоритма работы конечного устройства

 

Параметр точки доступа, передаваемый в функцию SMPL_Init(), является указателем типа void на несуществующую функцию обратного вызова, которая должна была бы использоваться при приеме сообщения. Но в рассматриваемом приложении конечное устройство не принимает сообщения, а только передает. Если бы точка доступа принимала сообщение, она делала бы это следующим образом: в случае, если конечное устройство «спит» и «просыпается» для приема сообщения от точки доступа, оно должно вызывать функцию SMPL_Receive() для проверки наличия сообщений в выходном буфере точки доступа; в случае, если конечное устройство всегда в активном режиме и отслеживает принятые сообщения, точка доступа должна использовать функцию обратного вызова, сходную с функцией sCB в файле demo_AP.c.

 

Производительность системы

Необходимый объем памяти для приложения приведен в таблице 1. Компиляция программного кода производилась с использованием среды разработки IAR Embedded Workbench for MSP430 KickStart v.5.10 с оптимизацией Balanced ® Low.

Таблица 1. Объем памяти, требуемый для проекта Wireless Sensor Monitor v1.02

Сетевые устройства Flash/ROM, байт ОЗУ, байт Точка доступа 9922 724 Конечное устройство 6616 395

На рис. 5 изображена осциллограмма потребляемого тока в момент приема/передачи данных. На осциллограмме присутствует смещение напряжения 6,8 мВ, вызванное погрешностью измерения. При этом погрешность измерения тока при использовании резистора с сопротивлением 5 Ом составляет 1,3 мА. Из-за этого не получится измерить потребляемый ток в те моменты, когда устройство находится в режиме низкого энергопотребления, ожидается, что в этом режиме MSP430 в сумме с CC2500 потребляют 1,3 мкА (900 нА [MSP430] + 400 нА [CC2500]).

 

 

Рис. 5. Осциллограмма потребляемого тока ED в момент передачи данных

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

Таблица 2. Энергопотребление при выполнении отдельных функций   Аппаратная часть Потребляемый ток Режимы энергосбережения MSP430 LPM0 1,1 мА MSP430 LPM3 900 нА СС2500 sleep state 400 нА Активный режим MSP430 8 МГц = DCO = SMCLK, 3 В 2,7 мА 10-бит АЦП MSP430 fADC10CLK = 5 МГц, ADC10ON = 1, REFON = 1, REFOUT = 0, ADC10DIV = 0x4 (ADC10CLK/5) 850 мкА Режимы CC2500 Idle 1,5 мА Прием (RX) (слабый входной сигнал, DEM_DCFILT_OF = 0,250 kbps) 18,8 мА Передача (TX) (250 kbps, дБ выходная мощность) 21,3 мА Программная часть Время выполнения, мкс Осциллятор Время старта XOSC 30 Счетчик со сквозным переносом Время до CHP_RDY Hi ® Lo 150 PLL Калибровка частоты синтезатора 809 Измерение температуры ADC10REFON + время стабилизации 130 LPM0 + синхронизация + выборка температуры (30 мкс) + преобразование (13 циклов ADC10CLK) 44 Измерение напряжения ADC10 2.5 В REFON + время стабилизации 130 LPM0 + синхронизация + выборка напряжения (30 мкс) + преобразование (13 циклов ADC10CLK) 22 FIFO Подготовка посылки для передачи 140 Запись сообщения в TX FIFO 110 Режимы RX/TX Режим RX 2560 Передача сообщения 800 Примечание: Значения приведены для MSP430F2274 и CC2500. Значения приведены для MSP430F2274 и CC2500.

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

 

 

Рис. 6. Осциллограмма тока потребления ED во время передачи

1. «A» - Запуск XOSC (осциллятора CC2500).

2. «B» - Истечение времени таймера. Установки в конфигурационном регистре определяют: как много раз счетчик должен переполниться после успешного запуска XOSC до передачи сигнала готовности (отрицательный перепад на выводе CHP_RDY). В этом случае требуется 64 истечения времени таймера или 150 мкс.

3. «С» - IDLE ® режим RX + калибровка PLL. После запуска XOSC, CC2500 по умолчанию переходит в режим ожидания IDLE. В соответствии с протоколом SimpliciTI функция пробуждения переводит CC2500 в режим приема RX после инициализации в IDLE. При переходе из режима IDLE в режим приема или передачи, ФАПЧ частотного генератора, использующаяся при модуляции/демодуляции в момент приема и передачи, автоматически калибруется в соответствии с установками в конфигурационных регистрах радиочастотного трансивера. Эту конфигурацию нужно осуществлять регулярно, и она длится 809 мкс.

4. «D» - режим приема. Перед передачей данных нужно убедиться, что канал свободен (другие устройства не осуществляют передачу). Это осуществляется при помощи алгоритма CCA (Clear Channel Assessment). CCA проверяет, принимает ли радиочастотный трансивер в данный момент какое-нибудь сообщение, а также оценивает уровень RSSI на превышение заданного порога. После завершения CCA радиочастотный трансивер может переходить в режим передачи.

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

Вручную;Интегрировав кривую напряжения, полученную с помощью осциллографа.

Сначала определим энергопотребление вручную, отдельно для MSP430 и для радиочастотного трансивера.

При расчете потребляемого тока нужно также учесть ток в режиме низкого энергопотребления конечного устройства.

Ток в режиме «сна» = 1,3 мкА ╢ (период передачи- время работы приложения)= 1,3 [мкА] ╢ (1 [с] - 4,7 [мс])= 1,29 мкАс

Средний потребляемый ток приложения также можно выразить следующим образом:

Средний потребляемый ток= (ток в режиме «сна»+ ток в режиме передачи)/период передачи = (1294 [нАс]+ 85170 [нАс])/1[с]= 86,46мкАДля сравнения вычислим потребляемый ток вторым способом, интегрировав кривую напряжения, полученную с помощью осциллографа. Врезультате получим значение 465 мкВс. В это значение входит ток смещения.Средний потребляемый ток = ((измеренное напряжение- (ошибка измерения ╢ время работы приложения)) / 5 Ом + ток в режиме «сна»)/период передачи = ((465 [мкВс] - (6,8 [мВ]╢ 4,7 [мс]))/5+ 1,29 [мкАс])/1 [c]= 87,9мкА

Из-за небольших упрощений при вычислении потребляемого тока, а также из-за погрешности измерения результаты отличаются на 1,6%. Вычислим время работы приложения от двух батареек типа ААА 1000 мА/час, предположив, что напряжение каждой из батареек постоянно до момента полной разрядки:

Время работы = номинальный_ток/средний_ток

С использованием результатов полученных первым способом:

= 1000 [мАчас]/0.08646[мА]= 11566 [час]/24 [час/день]= 481,9 [день]/365 [день/год]= 1,32лет= 1год 3 месяца 25 дней

С использованием результатов полученных вторым способом:

= 1000 [мАчас]/0.0879 [мА]= 11376 [час]/24 [час/день]= 474 [день]/365 [день/год]= 1,29 лет= 1 год 3 месяца 18 дней

На рис. 7 изображена зависимость времени «жизни» батарейки от интервала передачи.

 

 

Рис. 7. Зависимость времени «жизни» батарейки от интервала передачи

Чтобы минимизировать энергопотребление, разработчик должен всегда:

Максимально возможно увеличить интервал передачи сообщений;За время одной посылки передать максимально возможный объем информации.

Используя этот пример и доступные бесплатно коды программ проекта Wireless Sensor Monitor v1.02, пользователь может без особого труда разработать недорогое, простое в использовании беспроводное приложение.

Таблица 3. Ожидаемое энергопотребление   Трансивер Потребляемый ток, мА Время выполнения, мкс Ампер в секунду, нА•с Запуск XOSC 2,7 300 810 Счетчик таймера 1,75 150 262 Калибровка ФАПЧ 7,5 809 6068 Режим приема 18,8 2,56 48 128 Режим передачи 12,3 800 17 040     Всего 72 308 MSP430 Потребляемый ток, мА Время выполнения, мкс Ампер в секунду, нА•с Активный режим 2,7 4,634 мс 12 512 Режим LPM0 1,1 66 73 ADC10 850 326 277     Всего 12 862     MSP430 + CC2500 85 170

 

Литература

1. eZ430-RF2500 User's Guide (SLAU227).

2. SimpliciTI Developer's Notes Measuring Power Consumption With CC2430 and Z-Stack (SWRA144).

3. TI Delivers SimpliciTITM Network Protocol for Simple Low-Power RF Networks (SC-07149).

4. MSP430F22x2, MSP430F22x4 Mixed Signal Microcontroller, Rev. B (SLAS504).

5. CC2500 Single-Chip Low-Cost Low-Power RF Transceiver, Rev. A (SWRS040).

6. Random Number Generation Using the MSP430 (SLAA338).

Получение технической информации, заказ образцов, поставка - e-mail: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript

 

 

 

Вернуться к содержанию номера







Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.