SIM7020E:
работа с NB-IoT на практике

№ 02’2018
PDF версия
Стандарт NB-IoT, который в ближайшей перспективе должен потеснить GSM-модули в стационарных решениях с небольшим объемом передаваемых данных, сегодня доступен для тестирования у основных операторов сотовой связи. Уже сейчас можно проверить работу устройств на базе NB-IoT-модулей, чтобы к моменту массового развертывания сетей иметь на руках действующее решение.

Введение

NB-IoT-модуль SIM7020E

Рис. 1. NB-IoT-модуль SIM7020E

Компания SIMCom Wireless Solutions, мировой лидер в области модулей сотовой связи и навигации, предлагает ряд решений для данного стандарта. Одно из них — модуль SIM7020E (рис. 1), обзор которого был приведен в ранее вышедшей статье [1]. Компактный корпус 15,7×17,6 мм, пониженный диапазон питающих напряжений 2,1–3,6 В (потребление в режиме PSM составляет 5 мкА), поддержка различных частотных диапазонов, а также возможность написания пользовательских приложений предусматривают на его базе реализацию малогабаритных, бюджетных и энергоэффективных устройств. При работе в сетях данного стандарта есть ряд особенностей в части алгоритма АТ-команд, которые отличают данные решения от модулей стандарта GSM. В статье приведен обзор наиболее типичного алгоритма применения NB-IoT модуля — регистрация в сети NB-IoT, выход в сеть и обмен данными по протоколам TCP и UDP.

 

Активация контекста и регистрация в сети

Первый этап работы — регистрация в сети и активация контекста для обеспечения передачи данных. Для успешной регистрации в сети NB-IoT-модулю требуется знать APN. Следует иметь в виду, что APN для регистрации в сети и активации контекста могут различаться. В общем случае APN для регистрации берется модулем из SIM-карты или таблицы операторов внутри прошивки. Исходя из этого инициализация выглядит следующим образом [2, 3]:

AT+CPIN? //проверка готовности SIM-карты
+CPIN: READY //готова
OK
AT+CSQ //запрос уровня сигнала
+CSQ:22,0
OK
AT+CGREG? //Наличие регистрации в сети оператора
+CGREG: 0,1
OK
AT+CGACT? //проверка активации контекста
+CGACT:1,1 //контекст активирован автоматически
OK
AT+COPS? //запрос информации об операторе
+COPS: 0,0,”oper_name”,9 // oper_name — указание на оператора, 9 — стандарт NB-IoT
OK
AT+CGCONTTRDP // APN и IP-адрес в сети
+CGCONTTRDP: 1,5,”context_apn”,”xxx.xxx.xxx.xxx” //успешно получен IP
OK

Если по какой-то причине информация об APN в модуле отсутствует (на SIM-карте и в памяти) и модуль не может зарегистрироваться в сети (+CGREG: 0,0), его необходимо задать вручную (проверить его наличие можно командой AT*MCGDEFCONT?):

AT+CFUN=0 //отключение ВЧ-части
+CPIN: NOT READY
OK
AT*MCGDEFCONT=”IP”,”APN_REG” //заданиеAPN
OK
AT+CFUN=1 //включение ВЧ-части
OK
AT+CGREG? //Наличие регистрации в сети оператора
+CGREG: 0,1
OK
Для деактивации контекста и прекращения работы необходимо реализовать следующий алгоритм:
AT+CGACT=0,1 //деактивируем контекст #1
OK
AT+CGACT? //Запрос статуса
+CGACT:1,0 //деактивировано
OK
AT+CGCONTRDP // APN и IP-адрес в сети
OK //ответ ОК указывает, что IP модулю не присвоен и взаимодействие с сетью прекращено

 

Работа с TCP-стеком модуля

SIM7020E поддерживает работу в качестве TCP-клиента как в прозрачном, так и непрозрачном режимах. Модуль позволяет обмениваться данными одновременно по нескольким сокетам (до пяти) по протоколам TCP и/или UDP.

Алгоритм взаимодействия с модулем при работе в непрозрачном режиме следующий:

AT+CSOC=1,1,1 //создаем первый сокет: 1 — IPv4, 1 — TCP, 1 — IP
+CSOC:0 //id сокета
OK
AT+CSOC=1,2,1 //создаем второй сокет: 1 — IPv4, 2 — UDP, 1 — IP
+CSOC:1 //id сокета
OK
AT+CSOSENDFLAG=1 //выдавать подтверждение отправки
OK
AT+CSOCON=0,xxxx,”yyy.yyy.yyy.yyy” //соединение с TCP-сервером: xxxx — порт, “…” — IP-адрес
OK
AT+CSOCON=1,zzzz,”yyy.yyy.yyy.yyy” //соединение с UDP-сервером: zzzz — порт, “…” — IP-адрес
OK
AT+CSOSEND=0, 0, ”Hello” //отправка данных на TCP-сервер: 0 — id сокета, 0 — размер передаваемых данных (требуется только для передачи Hex/ASCII), “…” — данные
OK
SEND:0,5 //5 байт успешно отправлены через нулевой сокет
+CSONMI:0,5,48656c6c6f //получены данные с удаленной стороны: 0 — id сокета, 5 — размер, данные
AT+CSOSEND=1, 10, ”48656c6c6f” //отправка данных на UDP-сервер: 0 — id сокета, 10 — размер передаваемых данных), “…” — данные
OK
SEND:1,5 //5 байт успешно отправлены через первый сокет
AT+CSOCL=0 //закрываем нулевой сокет (TCP)
OK
AT+CSOCL=1 //Закрываем первый сокет (UDP)
OK

Итоговый алгоритм работы со встроенным TCP/UDP-стеком модуля в виде блок-схемы представлен на рис. 2.

Алгоритм работы с TCP/UDP-стеком модуля

Рис. 2. Алгоритм работы с TCP/UDP-стеком модуля

Наряду с TCP, UDP, а также HTTP-протоколами, которые являются довольно громоздкими, в модуле предусмотрен ряд специализированных, предназначенных для IoT-решений. Это LWM2M, CoAP и MQTT. Их основные особенности и преимущества рассмотрены в [1]. Все они реализованы внутри SIM7020E, алгоритм работы с ними приведен в [4].

 

Заключение

Несмотря на отличия при работе в NB-IoT, принципиально модуль должен пройти все те же стадии, что и в GSM: регистрацию в сети, активацию контекста и организацию подключения. Главной особенностью сетей NB являются режимы энергосбережения eDRX и PSM — их применение рассматривалось в статье [5]. Текущий функционал модуля позволяет интегрировать его в любую М2М-разработку, где требуется компактное, энергоэффективное, бюджетное и функциональное решение, способное реализовать широкий круг задач. Все это делает SIM7020E оптимальным для применения в качестве устройства передачи данных счетчиков, систем телеметрии, промышленных модемов, датчиков и других устройств.

Литература
  1. Новинский Д. SIM7020E: NB-IoT-модуль в знакомом форм-факторе // Беспроводные технологии. 2018. № 1.
  2. SIM7020 Series AT Command Manual.
  3. SIM7020 Series TCPIP Application Note.
  4. SIM7020 Series MQTT (LWM2M/COAP/HTTP) Application Note.
  5.  Батуев Б. SIM7000E/SIM7000E-N: применение энергосберегающих режимов PSM и eDRX в сети NB-IoT // Беспроводные технологии. 2017. № 2.

Добавить комментарий

Ваш адрес email не будет опубликован.