Power management - CC2530

Управление питанием для CC2530

Document Number: SWRA248 Version 1.2

Скачать оригинал (eng)

Документ, описывающий флаги компиляции и интерфейс управления питанием для платформы CC253x

 

 

 

 

 

 

 

 

 

Содержание

1. ЦЕЛЬ ...............................................  1
2. ОПРЕДЕЛЕНИЯ ............................................... 1
3. ЧТО ТАКОЕ УПРАВЛЕНИЕ ПИТАНИЕМ? .................................................. 1
4. КАК РАБОТАЕТ РЕЖИМ Z-STACK? .................................................. 1
5. ОСОБЕННОСТИ ТАЙМЕРЕ СНА ............................................. 4
6. ОСОБЕННОСТИ ПРИМЕНЕНИЯ ........................................ 4
7. ОСОБЕННОСТИ ОБОРУДОВАНИЯ ............................................. 5
 

1. Цель

В этом документе описываются концепции управления питанием для Texas Instruments CC2530 для использования приложением, основанным на стеке протоколов Z-Stack ™ ZigBee компании Texas Instruments. Устройства управления питанием обычно используются устройствами с питанием от батареи для продления срока службы батареи за счет использования различных режимов сна в периоды бездействия.

2. Определения

В этом документе используются следующие термины:
MAC - программное обеспечение Media Access Control, которое реализует функции связи IEEE 802.15.4.
MCU - Micro Controller Unit - процессор 8051, встроенный в SoC CC2530 на плате CC2530EB.
OSAL - Operating System Abstraction Layer - независимый от платформы обработчик задач, поставляемый с Z-Stack.
Sleep - режим работы MCU, в котором определенные функции отключены для снижения энергопотребления. CC2530 предоставляет три различных режима ожидания, два из которых используются Z-Stack.
End-Device - Конечное устройство - устройство ZigBee, которое подключается к сети без возможностей маршрутизации и, как правило, отключает приемник в режиме ожидания. Для этого требуется, чтобы его родитель содержал сообщения до тех пор, пока конечное устройство не проверит его сообщения.

3. Что такое управление питанием?

Управление питанием используется конечными устройствами с батарейным питанием для минимизации потребления энергии между короткими периодами радиосвязи. Обычно конечное устройство отключает потребляющие энергию периферийные устройства и переходит в режим ожидания в течение периодов простоя. Z-Stack обеспечивает два режима ожидания, обозначенные как ТАЙМЕРНЫЙ TIMER sleep и ГЛУБОКИЙ DEEP sleep. Таймер сна используется, когда система должна проснуться, чтобы выполнить действие, связанное с запланированной задержкой. Глубокий сон используется, когда в будущем не запланировано никаких действий, требующих внешнего раздражителя (такого как нажатие кнопки), чтобы разбудить устройство. Режим ожидания TIMER обычно снижает энергопотребление до нескольких миллиампер, а режим DEEP - до нескольких микроампер. Примеры спящих конечных устройств включают датчики, которые периодически просыпаются, чтобы сообщить о своих показаниях, и устройства дистанционного управления, которые просыпаются, чтобы отправить сообщение, когда пользователь нажимает кнопку. Общей характеристикой этих типов устройств является то, что они проводят большую часть своего времени в режиме ожидания, сводя к минимуму потребление энергии.

4. Как Z-Stack управляет спящими режимами?

Управление питанием используется конечными устройствами с питанием от батареи для минимизации энергопотребления между короткими периодами запланированной активности (TIMER sleep) или длительными периодами бездействия (DEEP sleep). Системная активность отслеживается в главном цикле управления OSAL после того, как каждая задача завершает свою обработку. Если ни у одной задачи нет запланированного события и включена возможность управления питанием, система решит, стоит ли спать. Для перехода устройства в спящий режим необходимо выполнить все следующие условия:
  • Спящий режим включен с помощью опции компиляции POWER_SAVING
  • Дескриптор узла ZDO указывает «RX выключен во время простоя». Это делается путем установки RFD_RCVC_ALWAYS_ON в FALSE в f8wConfig.cfg.
  • Все задачи Z-Stack «согласны», чтобы обеспечить энергосбережение
  • Задачи Z-Stack не имеют запланированной активности
  • MAC не имеет запланированной активности

Проекты конечных устройств End-Device в пакете Z-Stack по умолчанию настраиваются без управления питанием. Чтобы включить эту функцию, опция компиляции POWER_SAVING должна быть указана при сборке проекта. Как показано ниже, этот параметр помещается в поле «Defined symbols» на вкладке «Preprocessor» параметров компилятора C / C ++:

 

Чтобы снизить энергопотребление до минимальных уровней, конечное устройство должно отключить как можно больше электронных схем, прежде чем перейти в режим ожидания. Это включает в себя периферийные устройства, радиоприемник и передатчик, а также значительную часть самого MCU. Чтобы избежать потери сообщений во время сна, родительский компьютер конечного устройства должен хранить свои сообщения до тех пор, пока конечное устройство не выполнит их опрос. Родительское устройство «знает», что конечное устройство будет запрашивать сообщения, когда функции в запросе ассоциации конечного устройства отключили CAPINFO_RCVR_ON_IDLE. В проектах Z-Stack настройки по умолчанию для возможностей устройства указываются в структуре ZDO_Config_Node_Descriptor, расположенной в файле ZDConfig.c. Конечное устройство по умолчанию задает только CAPINFO_DEVICETYPE_RFD, указывая на то, что оно работает от батареи и выключит свой приемник в режиме ожидания:

 

Решение о попытке сбережения энергии принимается в конце основного цикла OSAL. Если были проверены все задачи Z-Stack, и ни одна из них не имела какой-либо обработки, опция компиляции POWER_SAVING определяет, будет ли вызвана функция osal_pwrmgr_powerconserve ():

 

На этом этапе еще две проверки выполняются перед попыткой войти в спящий режим. Во-первых, проверяется, что переменная pwrmgr_device установлена ​​как аккумуляторное устройство. Этот параметр устанавливается после подключения устройства к сети - примеры см. В ZDApp.c. Во-вторых, проверяется переменная pwrmgr_task_state, чтобы увидеть, что ни одна задача не «удержала» энергосбережение. Этот механизм позволяет каждой задаче Z-Stack отключать спящий режим во время критических операций. Когда оба эти условия выполнены, желаемое время ожидания определяется следующим временем истечения таймеров OSAL. Если время следующего истечения больше нуля и меньше MIN_SLEEP_TIME, выбирается режим TIMER_SLEEP. В этом режиме системный таймер настраивается для обеспечения прерывания «пробуждения» для события таймера, которое должно истечь первым. MIN_SLEEP_TIME, определенный в hal_sleep.c, используется для предотвращения «короткого перебоя» сна. Режим DEEP_SLEEP выбирается, когда нет запланированных событий или таймеров Z-Stack; поэтому следующий срок действия равен нулю, что обеспечивает максимальную экономию энергии:

 

Макрос OSAL_SET_CPU_INTO_SLEEP вызывается для запуска процесса ожидания. Для CC2530 этот макрос вызывает функцию halSleep (), которая выполняет последовательность выключения MAC, выключения периферийных устройств,