NB-IoT: 10 лет на одной батарейке
Многие слышали о том, что основным преимуществом NB-IoT является низкое энергопотребление, но слова «низкое энергопотребление» сами по себе мало о чем говорят, и это самое потребление надо с чем-то сравнивать. Чтобы проверить это свойство на практике, возьмем модули компании SIMCom. Сначала рассмотрим энергопотребление SIM800C, а потом сравним полученные значения с характеристиками SIM7020E/G (SIM800C и SIM7020 совместимы pintopin, за исключением некоторых выводов, поэтому есть смысл рассматривать именно эти модули).
Как можно управлять энергопотреблением SIM800C?
- Выключить модуль физически (Power Off).
- Перевести модуль в режим минимальной функциональности (модуль теряет регистрацию в сети).
- Перевести модуль в режим низкого энергопотребления без потери регистрации в сети (Sleep).
Казалось бы, для достижения максимальной продолжительности жизни батарейки наиболее оптимальным будет режим № 1 — выключение модуля. Многие производители оборудования так и делают, если речь идет о GSM/GPRS-технологии, однако этот подход не всегда оправдан. Дело в том, что при подаче питания на модуль и включении его при помощи PowerKey устройство «тестирует» батарейку (или блок питания), искусственно нагружая ее током 2 А, то есть каждое включение модуля приводит к небольшому разряду батарейки. Максимальное потребление модуля в режиме передачи данных в условиях плохого покрытия может составлять до 2 А. Если блок питания не сможет обеспечить требуемой силы тока, то произойдет падение напряжения и модуль выключится (перезагрузится) изза низкого напряжения питания. Для того чтобы этого избежать, модуль сразу же после включения тестирует блок питания на способность обеспечить необходимую ему мощность. После успешного включения модуль начинает процедуру регистрации в сети.
Теперь рассмотрим режим № 2 — режим минимальной функциональности с потерей регистрации в сети. Разница с режимом 1 заключается в том, что модуль не выключается (а следовательно, и не включается, в связи с чем мы каждый раз не нагружаем батарейку током в 2 А), но в данном режиме модуль уже частично функционирует, а значит, потребляет энергию аккумулятора. В зависимости от режима (CFUN = 0 или CFUN = 4) модуль потребляет 0,6 или 0,64 мА соответственно.
Общим для этих двух режимов является то, что каждый раз, когда мы либо включаем, либо «пробуждаем» модуль, он не имеет регистрации в сети, а следовательно, каждое такое пробуждение сопровождается поиском сети, что само по себе процедура достаточно энергоемкая. Сколько именно будет потреблять модуль в момент регистрации и как долго она будет продолжаться, зависит лишь от качества сети.
Режим № 3 — режим низкого энергопотребления без потери регистрации в сети (Sleep). Здесь модуль находится в спящем режиме, но изредка просыпается для обмена служебной информацией с сетью. В этом случае модуль все еще в сети (может принимать звонки и СМС), но потребление снижается до 0,9–1,5 мА в зависимости от параметра BSPAMFRMS (он задается сетью, и мы не можем на него влиять). Естественно, что при получении СМС или входящего звонка модуль автоматически выходит из спящего режима.
Таким образом, устройства, выполненные на базе GSM-модемов, могут находиться в трех состояниях:
- Модем выключен. Для нормальной работы необходимо его включить (пиковое потребление 2 А) и зарегистрировать в сети.
- Модем в режиме минимальной функциональности с потерей регистрации в сети и потреблением 0,6–0,64 мА. Для нормальной работы модем необходимо разбудить и зарегистрировать в сети.
- Модем в режиме Sleep без потери регистрации в сети и потреблением 0,.9–1,5 мА. Для нормальной работы необходимо всего лишь разбудить модем.
Несложно догадаться, что разработка автономного устройства на основе GSM/GPRS-модуля — это поиск баланса между выключенным модулем и модулем в режиме пониженного энергопотребления с регистрацией в сети. Например, если устройство должно передавать данные раз в неделю, то оставлять его включенным на все это время, пусть даже и с потреблением 0,9 мА, не имеет смысла, но, с другой стороны, если вам надо передавать данные раз в 4 ч, то и выключать модуль не следует, поскольку включение модуля и его последующая регистрация в сети отберет у устройства больше энергии, чем пребывание в режиме Sleep.
С GSM разобрались. Теперь поговорим о NB-IoT:
- NB-IoT-модуль потребляет меньше энергии просто потому, что данная технология изначально разрабатывалась для M2M-устройств и автономных датчиков. Максимальный ток VBAT SIM7020E/G составляет 500 мА, а при наличии 1000-мкФ конденсатора пиковые токи блока питания снизятся до 320 мА (можно сравнить с током 2 А у SIM800C).
- NB-IoT-модуль имеет несколько режимов работы, а значит, и несколько сценариев энергопотребления. В дополнение к стандартным режимам, имевшим аналоги в GSM/GPRS-сети, добавлено несколько новых режимов работы, отвечающих за пониженное энергопотребление.
Стандартные режимы работы модуля SIM7020E
LTE Sleep
В этом режиме энергопотребления модуля снижено до минимального значения, но он будет принимать пейджинг-сообщения и СМС. Для перехода в Sleep необходимо соблюдение нескольких условий, таких как, например, отсутствие USB/USART-активности.
Энергопотребление: 236 мкА.
LTE Idle
Модуль включен, подключен к сети и готов к обмену данными.
Энергопотребление: 5,6 мА.
LTE Standby
Модуль готов к приему либо передаче данных, но в данный момент нет такой активности. Энергопотребление модуля будет зависеть от настроек сети.
LTE Data Transmission
Происходит обмен данными с сетью. Энергопотребление зависит от настроек сети (уровень сигнала, uplink/downlink, data rates и т. д.). Усредненные значения потребления энергии приведены в таблице 1.
Режим |
23 дБм |
10 дБм |
0 дБм |
LTEFDD B1 |
134 мА |
42 мА |
32 мА |
LTEFDD B3 |
116 мА |
44 мА |
31 мА |
LTEFDD B5 |
116 мА |
35 мА |
25 мА |
LTEFDD B8 |
128 мА |
35 мА |
25 мА |
LTEFDD B20 |
113 мА |
34 мА |
26 мА |
LTEFDD B28 |
126 мА |
38 мА |
27 мА |
Дополнительные режимы работы модуля SIM7020E
Режим минимальной функциональности
Для перевода модуля в режим минимальной функциональности без снятия питания используются AT-команды AT+CFUN=0 и AT+CSCLK=1. В этом режиме SIM-карта и RF-часть отключены, но UART и USB доступны пользователю. Энергопотребление в этом режиме значительно ниже, чем в стандартных режимах работы, но для перехода в стандартные режимы работы требуется регистрация в сети.
Flight Mode (режим полета)
AT-команда AT+CFUN=4 используется для перевода модуля в Flight mode. RF-часть отключена, но UART и USB доступны пользователю. Энергопотребление в этом режиме значительно ниже, чем в стандартных режимах работы.
PSM Mode
Режим работы с наименьшим энергопотреблением. LDO и DCDC внутри модуля отключены, питание подается только на RTC (Real Time Clock). Весь функционал, за исключением RTC, отключен. В режиме PSM вывод RTC_GPIO0 изменит свое состояние с логической 1 на логический 0. Выйти из этого режима можно либо по RTC_EINT, либо при помощи PWRKEY.
Энергопотребление: 3,4 мкА.
Power Off
В этом режим можно перейти подачей команды AT+CPOWD либо при помощи вывода PWRKEY (притягивание вывода к «земле»). Питание модуля выключено, ПО выключено, UART и USB недоступны.
Как видно из приведенных выше данных, мы действительно можем получить 5–10 лет работы NB-IoT-модуля от одной 5-Вт батарейки. Но как же получаются такие цифры, ведь физику пока еще никому не удалось обмануть?
Ответ прост: устройство не потребляет энергию только тогда, когда оно выключено. На этом и основаны оба режима: и режим PSM, и режим eDRX. И если все устройство полностью мы отключить не можем, то RF-часть — запросто. Потеряем ли мы при этом регистрацию в сети? Нет!
Для проверки регистрации в сети существует процедура пейджинга. Сеть посылает «пинг» на устройство, и если устройство на него ответило, то считается, что оно в сети и начинается отсчет времени до нового «пинга». Что происходит с RF-частью между этими посылками, сеть, грубо говоря, не интересует, и если на это время отключить RF-часть, то можно сэкономить чутьчуть энергии. Примерно так и работает режим Sleep.
eDRX
Стандартное время между сообщениями пейджинга равно 2,56 с. С точки зрения энергосбережения выходить на связь каждые 3 с слишком накладно, и с Rel13 внедрили новую «фишку» — режим extended discontinuous reception, или eDRX. Суть его заключается в том, что и сеть, и модуль, совершая обмен пейджинговыми сообщениями, договариваются о том, когда они снова выйдут на связь.
Время, в течение которого модуль слушает эфир и обменивается информацией с сетью, называется Paging Time Window (PTW) и в свою очередь также разделено на отрезки, длина которых называется DRX. По окончании PTW модуль отключает RF-часть и не взаимодействует с сетью. Сумма первого и второго отрезков времени называется eDRX cycle (рис. 1).
Для перехода в режим eDRX модуль должен сообщить сети о желании работать в режиме eDRX и передает в сеть желаемые значения PTW и eDRX cycle, а сеть либо принимает эти значения, либо «навязывает» модулю свои (значения PTW и eDRX cycle, предлагаемые сетью, всегда имеют более высокий приоритет, нежели значения, предлагаемые модулем), либо вообще запрещает модулю переходить в режим eDRX (были случаи, когда оператор на момент тестирования сети временно отключал энергосберегающие режимы).
Процедуры согласования режимов работы называются Attach request и Attach accept.
В настоящее время модуль SIM7020 может работать со значениями PTW, находящимися в диапазоне 1,28–20,48 с, в то время как eDRX cycle может составлять 5,12–10485,76 с (что равно примерно 3 ч). Но параметры реальной сети могут быть как меньше, так и больше этих значений, и до начала тестирования режима eDRX мы настоятельно рекомендуем пообщаться с оператором и обговорить установленные рамки, а также узнать о поддержке eDRX/PSM конкретной базовой станцией.
Энергопотребление модуля в режиме eDRX приведено в таблице 2.
PTW |
eDRX |
DRX |
Энергопотребление |
10,24 с |
20,48 с |
1,28 с |
230 мкА |
10,24 с |
20,48 с |
2,56 с |
130 мкА |
20,48 с |
81,92 с |
2,56 с |
95 мкА |
20,48 с |
162,84 c |
2,56 с |
77,5 мкА |
40,96 c |
655,36 c |
2,56 с |
69 мкА |
Естественно, что чем большее значение eDRX cycle мы установим, тем меньшее интегральное потребление получим, но надо учитывать то, что между PTW модуль отключает RF-часть и достучаться до него в это время будет невозможно. Другими словами, если установить eDRX cycle на 3 ч, запустить режим eDRX, подождать пару минут и потом послать запрос на прибор, то ответ будет лишь спустя 3 ч (оборудование провайдера зачастую может накапливать пакеты и пересылать их модулю в моменты PTW, так что нет необходимости синхронизовать время, но, опятьтаки, ответ от модуля придет лишь после начала PTW).
Как уже отмечалось выше, режим с PTW, равным 20,48 с, и eDRX cycle, равным 162,8 с, обеспечивает интегральное потребление 77,5 мкА. Хотите получать/передавать данные чаще — будет большее потребление, хотите меньшее потребление —задержка между сеансами обмена данными будет продолжительнее, но надо помнить, что выбор всегда за вами и чудес не бывает (и, напоминаем, 0,07 мА — это при том, что модуль «в сети»).
PSM
Если же надо еще снизить энергопотребление и устройство работает в основном «в одну сторону» (например, счетчик воды, который только отправляет данные и не принимает ничего взамен), то существует режим PSM (Power Save Mode) с током потребления 3,4 мкА.
Режим PSM во многом схож с режимом eDRX, но в отличии от режима eDRX ориентирован больше на передачу данных (из модуля в сеть), чем на прием (из сети в модуль). Временнáя диаграмма работы модуля в режиме PSM приведена на рис. 2.
Процедуры подключения так же, как и в режиме eDRX, называются Attach request и Attach accept, а синхронизация — TAU (Tracking Area Update).
После синхронизации с сетью (TAU) модуль переходит в режим LTE Idle, длительность которого задается таймером T3324 (Active Timer). В этот момент модуль может принимать данные из сети. По окончании данного периода модуль отключает RF-часть и переходит в режим сверхнизкого энергопотребления, в котором будет пребывать до следующей процедуры TAU. Период процедуры TAU определяется таймером T4312 (TAU Timer). Если необходимо разработать устройство с ультранизким энергопотреблением и феноменальным сроком службы, то хорошая новость заключатся в том, что максимальное значение таймера T4312 может составлять аж 35 712 000 с (или 413 дней). Значения таймеров T3324 и T4312 задаются при помощи соответствующих АТ-команд, но, как и в случае с eDRX, модуль должен согласовать эти значения с сетью, а вы, соответственно, с оператором мобильной связи.
Также следует отметить, что как в PSM-режиме, так и в режиме eDRX устройство всегда может выйти из режима Sleep по команде управляющего микроконтроллера, передать данные (то есть перейти в режим LTE Data Transmission) и снова заснуть, так что в экстренных случаях задержка важных данных будет минимальной.
Подведем итоги:
- Среднее/максимальное потребление модуля SIM7020 в режиме передачи данных (LTE Data Transmission) снизилось в несколько раз (минимум в 4 раза) по сравнению c SIM800C (было 2 А, стало 500 мА).
- Среднее потребление в режиме Sleep снизилось в несколько раз (было 0,9–1,5 мА, стало 236 мкА).
- Появились режимы eDRX и PSM, позволяющие оставаться в сети, но надолго выключать RF-часть модуля (именно об этих режимах говорят производители, когда заявляют время жизни устройства 5–10 лет от одной батарейки).
- Время пробуждения синхронизировано с сетью, так что модуль вообще не тратит энергию на синхронизацию с удаленным сервером и тратит минимум энергии на обмен данными с сетью.
- Хотя модули SIM7020/SIM7000 дороже своих «старших братьев» (SIM800C/SIM800), но операторы мобильной связи уже предлагают специальные NB-IoT-пакеты, так что суммарная стоимость приобретения и дальнейшей эксплуатации этих модулей будет ниже, чем у GSM/GPRS-предшественников.