Новые LTE Cat.1 решения SIMCom Wireless Solutions
Обзор
За прошедшее время, благодаря сочетанию самых актуальных технологий и стоимости, модули A7670E и A7600E хорошо зарекомендовали себя там, где недостаточно только поддержки 2G. На данный момент альтернатив в бюджетном сегменте для них нет. Модули 3G в чистом виде почти полностью пропали, к тому же, как и решения со всеми технологиями, они менее доступны. Что касается технологии NB-IoT, в текущем виде она имеет ряд недостатков: необходимость использования специальных SIM-карт, низкие скорости обмена, задержки при передаче, ограниченное покрытие, исключительно стационарные применения.
Учитывая популярность таких решений, в том числе среди массовых устройств, логично было ожидать продолжения. При разработке SIMCom Wireless Solutions сделали ставку на три направления: большую доступность, совместимость и расширенный функционал. Так и появились три решения — A7682E, A7672E-LASE и A7672E-FASE. Их основные характеристики приведены в таблице.
|
A7682E |
A7672E-LASE |
A7672E-FASE |
Корпус |
19,6×19,6 мм LGA |
24×24 мм LCC/LGA |
|
Сотовая связь |
LTE Cat.1, GSM |
||
Навигационный приемник |
– |
GPS/ГЛОНАСС, есть вывод 1pps |
|
Bluetooth Low Energy |
– |
Bluetooth v 5.0 |
|
Макс. скорость, Мбит/с |
10/5 (скачивание/выгрузка) |
||
Среда разработки |
Open SDK |
||
Стеки и протоколы |
TCP/IP/IPV4/IPV6/Multi-PDP/FTP/FTPS/HTTP/HTTPS/DNS/MQTT RNDIS/PPP/ECM |
||
Интерфейсы |
USB/UART/I2C/GPIO/ADC |
USB/UART/I2C/GPIO/SPI/LCD (SPI)/Camera (SPI)/ADC |
|
Поддержка двух SIM-карт (DSDS) |
+ |
||
Аналоговое аудио |
+ |
||
Диапазон напряжения, В |
3,2–4,2 |
||
Температурный диапазон |
–40…+85 °С |
||
Обновление ПО модуля |
USB или по воздуху (FOTA) |
||
Совместимые решения |
2G: SIM800C/SIM868x LPWA: SIM7022/SIM7020E/SIM7080G |
2G: SIM800/SIM800F LPWA: SIM7070x/SIM7060x LTE: A7670E |
Все модули построены на новой аппаратной платформе и уже находятся в массовом производстве. Программная часть модулей одинаковая и совпадает с остальными LTE-решениями от SIMCom Wireless Solutions. В отличие от ранее вышедших A7670E и A7600E, модули обладают аналоговым аудиоинтерфейсом, что устраняет необходимость использования аудиокодека. Другая особенность — возможность работы с двумя SIM-картами одновременно в режиме DSDS.
A7682E — самый компактный LTE-модуль во всей линейке SIMCom Wireless Solutions. Кроме габаритов, его отличает возможность создания общего посадочного места с самым доступным и массовым 2G-решением — SIM800C, а также модулем со встроенной навигацией (SIM868x) и различными решениями NB-IoT в корпусах 15,7×17,6 мм. Следует отметить, что? в отличие от совместимых модулей, A7682E имеет большие размеры корпуса. Унификация посадочного места обеспечивается тем, что совпадают его LGA-контакты. С точки зрения отличий выделяются два аспекта: различные логические уровни — 2,8 В (только у 2G-решений) против 1,8 В, а также отличие в синтаксисе ряда команд. Тем не менее данные отличия несложно учесть при разработке. Более подробное описание того, как организовать общее посадочное место, содержится в документах Compatible Design [2, 3].
В первую очередь модуль предназначен для устройств, где нужна компактность и не требуется встроенная навигация. С другой стороны, его можно рассматривать как самый доступный LTE-вариант, в том числе для массовых устройств бюджетного сегмента с 2G. Даже если в данный момент модулей второго поколения достаточно, необходимо держать в голове общие тенденции развития сотовых сетей и то, что рано или поздно все сведется к 4G в том или ином виде.
Модуль A7672E выполнен в традиционном для производителя форм-факторе 24×24 мм, поэтому он совместим со всеми решениями в данном корпусе. При создании общей платы нужно учитывать те же особенности, что были упомянуты выше. Наряду с LCC-контактами по периметру у модуля присутствует ряд внутренних контактов, на которые выведен интерфейс второй SIM-карты, LCD, камера и вывод Backup для навигации.
Как видно из таблицы, модуль существует в двух версиях. A7672E-LASE является аналогом A7670E — в нем предусмотрена только сотовая часть. С точки зрения назначения и возможных применений он дублирует A7682E с поправкой на корпус.
В A7672E-FASE добавлена поддержка встроенного навигационного приемника GPS/Глонасс, а также Bluetooth Low Energy (BLE v5.0). Это открывает широкие возможности для применения в устройствах транспортной телематики, поскольку модуль будет выполнять двойную функцию. В свою очередь BLE позволяет создать канал общения с другими устройствами или с пользователем. Таким образом, модуль наиболее универсален с точки зрения поддерживаемых функций.
Большинство возможностей и особенностей данных модулей было рассмотрено в статье, посвященной их предшественникам — A7670E и A7600E [1]. Поэтому далее рассмотрим те из них, что ранее были недоступны или претерпели изменения.
Новые возможности
Две SIM-карты
Оба решения поддерживают работу двух SIM-карт одновременно в режиме Dual Sim Dual Standby (DSDS). Данный режим предполагает использование общего тракта одновременно двумя SIM-картами по очереди, благодаря чему обе они могут быть зарегистрированы в сети и способны принимать входящие звонки или SMS одновременно, независимо от того, какая из них активна. Основное ограничение состоит в том, что пакетные данные могут одновременно передаваться только по одной из них.
Тем не менее работа в таком режиме освобождает пользователя от необходимости ставить коммутатор, переключающий SIM. Кроме очевидной возможности получать сообщения и звонки по обеим картам, можно мгновенно переключаться между операторами, например в случае пропадания сигнала, или выбирать того, который обеспечивает лучший уровень сигнала в данной точке.
Для работы используются три основные команды:
AT+DUALSIM=x //задает режим работы: 0 — DSDS (обе карты могут зарегистрироваться в CS/PS, в IMS только одна), 1 — Dual SIM Single Standby (одновременно в сети регистрируется только одна карта), 3 — extra DSDS (обе карты могут зарегистрироваться в CS/PS/IMS)] AT+SWITCHSIM=x //задает “основную” SIM-карту (0 — SIM1; 1 — SIM2). Все команды, поданные по умолчанию, будут относиться к ней; значение сохраняется при перезагрузках AT+BINDSIM=x //переключает канал АТ-команд на SIM1 (0) или SIM2 (1). Т. е. после подачи данной команды с указанием, к примеру, параметра “1” все подаваемые далее команды будут относиться ко второй SIM-карте
Таким образом, команда SWITCHSIM полезна для задания основной SIM, по которой идет обмен пакетными данными. Для проверки статуса, обработки звонков и смс по другой карте можно использовать AT+BINDSIM.
Навигационный приемник
В A7672E навигационная часть независимая, за счет чего возможны два режима работы: когда навигационная часть полностью соединена с сотовой (all-in-one) или когда она подключается к внешнему источнику и MCU (standalone). Схема подключения в обоих режимах приведена в Hardware Design [2, 3].
Следует отметить, что для навигационной части требуется довольно узкий диапазон питающих напряжений 1,7–1,9 В. Для вывода Backup, предназначенного для сохранения информации об эфемеридах и времени, требуется 1,4–3,6 В. Чтобы не устанавливать дополнительную цепь питания, есть возможность запитать приемник от вывода VCC_1V8 (#15).
Первый режим интересен для тех случаев, когда требуется вести всю работу через один UART, или для обработки навигационных данных внутри пользовательского приложения. В этом режиме навигационный UART соединяется с UART3, питание берется с модуля, а управление включением производится с помощью GPIO. Ниже приведен пример АТ-лога для работы в этом режиме:
AT+CGNSSPWR=1 //включаем навигацию OK +CGNSSPWR: READY! //дожидаемся подтверждения запуска AT+CGPSCOLD //делаем холодный старт (если требуется) OK AT+CGNSSPORTSWITCH=1,0 //команда задает куда выдавать NMEA-данные — в аппаратный UART (1) или AT-порт USB-комбинации (0). Первый параметр отвечает за обычные данные, второй — за сырые (RAW) OK AT+CGPSFTM=1 //эту команду можно использовать для теста, она создает прозрачный канал, выдавая NMEA-данные напрямую OK +GPGSV:... //данные идут … AT+CGPSFTM=0 //отключаем OK AT+CGNSSINFO //команда служит для однократного получения текущего состояния: количества спутников, координат, времени, скорости, DOP и т. д. +CGNSSINFO:... OK AT+CGNSSINFO=1 //параметр позволяет задать период автоматической выдачи, в данном случае — каждую секунду OK +CGNSSINFO:...
Другое преимущество этого режима — более простой процесс получения эфемерид с сервера (AGPS) для ускорения старта. Для этого достаточно подать команду AT+CAGPS, и модуль все сделает автоматически.
К недостаткам данного режима относится зависимость работы навигационной части от работы сотовой, поскольку источник питания навигации (LDO) функционирует только при включенном модуле. Поэтому для ряда применений оправдано использование внешнего питания. Аналогичная ситуация и с работой через общий UART: чтобы получать данные непрерывно, потребуется подключить последовательный порт навигации напрямую к контроллеру.
Сканирование Wi-Fi-сетей
Как было упомянуто в ранее вышедшей статье [1], за счет близости частот LTE к 2,4 ГГц модуль способен сканировать и отображать параметры окружающих Wi-Fi-точек доступа. Эффективность данного метода напрямую зависит от применяемой LTE-антенны — она должна быть достаточно широкополосной, чтобы, кроме частот для сотовой связи, захватывать и указанный выше диапазон.
У новых модулей этот функционал был расширен за счет возможности конфигурирования процесса сканирования:
AT+CWSTASCANEX=1,3,4,25,0 //задаем настройки сканирования //параметры: отображение уровня сигнала, количество раундов сканирования, макс. количество выдаваемых bssid, тайм-аут сканирования, приоритет для сканирования OK AT+CWSTASCANEX //запуск сканирования +CWSTASCANEX: 58:8B:F3:6A:F7:08,13,-86 //BSSID, номер канала, уровень сигнала 64:EE:B7:9D:52:BE,1,-96 OK
Полученная таким образом информация может быть использована для навигации внутри объектов или в качестве дополнительного канала получения сведений о местоположении.
OpenSDK
Как и ранее, модуль поддерживает выполнение пользовательского ПО внутри прошивки. Сам процесс не поменялся и был описан ранее [1]. Тем не менее есть и ряд нововведений, связанных с обновленной платформой.
Для модулей A7672E и A7682E поставляется отдельный комплект разработки, хотя и совпадающий по структуре и взаимодействию с ним. Как и прежде, для всех функций модуля есть дублирующие api, а также ряд возможностей, недоступных без применения среды разработки.
Все возможности сведены в демопримеры, большинство из которых уже были описаны ранее. Среди новых:
- GPS
Пример предназначен для работы с навигационным приемником в режиме all-in-one, когда он управляется сотовой частью. Сам пример довольно нагляден — выбирая последовательно пункты, производят настройку нужных параметров: скорости, навигационных систем, выдаваемых сообщений и т. д. Также доступно несколько режимов выдачи данных и A-GPS для ускорения старта.
- BLE
Пример посвящен Bluetooth Low Energy. На момент написания статьи там приведены api только для режима GATT-сервера, но в ближайшее время будут добавлены функции сканирования и подключения к другим BLE-устройствам.
- CAM
У модуля есть возможность подключения камеры по интерфейсу SPI. Из ограничений — поддерживаются камеры не более 0,3 Мп и только режим фото.
В приведенном примере модуль делает снимки с возможностью отображения на дисплее.
- LCD
У модуля есть возможность подключения внешнего дисплея по SPI-интерфейсу. Пример охватывает возможные настройки и режимы отображения.
Таким образом, для пользователя открывается еще больше возможностей для применения модуля в качестве не периферийного, а центрального устройства. Внутри пользовательского ПО модуль теперь может не только передавать данные и обмениваться по различным интерфейсам, но и получать информацию о текущем времени и местоположении, а также фиксировать и отображать информацию с помощью камеры и дисплея.
Bluetooth Low Energy
Одно из главных отличий от ранее вышедших решений и других LTE-модулей — поддержка спецификации Bluetooth 5.0 модулями A7672E-FASE. Следует отметить, что на текущий момент в модуле реализован только функционал Bluetooth Low Energy и не все возможности самой спецификации поддерживаются модулем в принципе. Однако потенциал на расширение есть, и со временем появятся новые функции.
Тем не менее даже поддержка BLE уже открывает широкие возможности для обмена данными между модулем и другими устройствами. В отличие от дискретного BLE-модуля или чипа модуль обладает следующими преимуществами:
- экономия места на печатной плате;
- отсутствие затрат на обвязку, необходимости размещать на плате что-то, кроме Bluetooth-антенны;
- доступность, поскольку он является частью модуля;
- простота освоения и взаимодействия: вся работа ведется с помощью АТ-команд.
Поскольку данный функционал ранее не был доступен для LTE-модулей, рассмотрим работу в трех основных режимах: сканирование, сервер, клиент.
Сканирование BLE-устройств
Базовый функционал, позволяющий получать основные параметры окружающих BLE-устройств, а также данные, необходимые в дальнейшем, для подключения к этим устройствам в качестве клиента.
Кроме поиска нужного GATT-сервера, данную функцию можно использовать для устройств, транслирующих информацию в виде адвертов.
Последовательность действий следующая:
AT+BLEPOWER=1 //включаем Bluetooth OK AT+BLECREG //регистрируем GATT клиента +BLECREG: 0,ABCDEF00 // id клиента, id пользователя OK AT+BLESCAN=0,1 //запускаем сканирование: 0 — id клиента, 1 — старт +BLESCANRST: 0,0,»1c:fd:67:fd:9f:e7»,182,»1EFF06000109200627165702485B482E99777EA45F6B4046 4F778835AEFE64» … +BLESCANRST: 0,23,»63:b2:fc:19:0e:8f»,183,»02011A1A0947616C6178792054616220412028382E30222C203230313929» //параметры: client index, server index (по которому идет подключение в режиме клиента), адрес, RSSI, содержимое адверта AT+BLESCAN =0,0 //останавливаем сканирование OK
Сканирование является циклическим, поэтому, если какое-то из устройств поменяет содержимое адверта, оно появится в обновленном виде в выдаче. Это актуально для применений, не использующих прямое подключение.
BLE-клиент
Работая в данном режиме (central/gatt client/master), модуль подключается к периферийным (gatt server/slave), взаимодействуя с их сервисами и характеристиками. Для теста использовался смартфон с утилитой nRF Connect в режиме сервера.
После того как нужное устройство было обнаружено в результатах сканирования, появляется возможность подключения:
AT+BLECGDT=23 //есть возможность запросить тип устройства (Classic/LE/Dual) +BLECGDT: 23,3 OK AT+BLECCON=23 //подключаемся по индексу сервера OK +BLECCON: 0,»63:b2:fc:19:0e:8f» //id соединения, MAC-адрес +BLEMTU: 0,185 //id соединения, размер MTU для данного соединения AT+BLECSS? //запрос всех сервисов +BLECSS: 23,0,0x1801 //id сервера, id сервиса, его UUID +BLECSS: 23,1,0x1800 +BLECSS: 23,2,0x1111111100001000800000805F9B34FB +BLECSS: 23,3,0x2222222200001000800000805F9B34FB OK AT+BLECSS=2 //запрос uuid для отдельного сервиса +BLECSS: 23,2,0x1111111100001000800000805F9B34FB OK AT+BLECGC? //запрос всех характеристик; также можно запросить данные только для одной +BLECGC: 0,0,32,0x2A05 //id сервиса, id характеристики, свойства характеристики, UUID +BLECGC: 1,1,2,0x2A00 +BLECGC: 1,2,2,0x2A01 +BLECGC: 1,3,2,0x2AA6 +BLECGC: 2,4,22,0x3333333300001000800000805F9B34FB +BLECGC: 2,5,42,0x4444444400001000800000805F9B34FB OK AT+BLECGD? //запрос всех дескрипторов; также можно запросить данные только для одного +BLECGD: 4,0,0x2902 //id характеристики, id дескриптора, uuid +BLECGD: 5,1,0x2902 OK
Выше шла речь о свойствах характеристик. Этот параметр представляет собой сумму чисел, которые определяют параметры характеристики: трансляция (1), чтение (2), запись без подтверждения (4), запись (8), нотификация (16), индикация (32), запись с аутентификацией (64), расширенные опции (128). Для примера: характеристика с id “4”, обладает свойствами чтения, записи без подтверждения и нотификации, то есть 2 + 4 + 16 = 22.
Отдельно следует отметить работу с нотификациями (notify) и индикацией (indicate). Оба механизма выполняют функцию асинхронного оповещения: notify — без подтверждения (то есть оно может не дойти), indicate — с подтверждением со стороны клиента. У характеристик с id 4 и 5, указанных выше, заданы параметры notify и indicate соответственно. После изменения значения характеристики на стороне сервера, при активном соединении, на модуль сразу поступают уведомления в виде асинхронных сообщений:
+BLECNTY: 0,4,»33333333» //нотификация: id соединения, id характеристики, новое значение +BLECIND: 0,5,»44444444» //индикация: id соединения, id характеристики, новое значение
Далее рассмотрим непосредственное взаимодействие с характеристиками — чтение и запись.
AT+BLECRC=4 //чтение, параметр — id характеристики OK +BLECRC: 0,4,»33333333» // id соединения, id характеристики, значение AT+BLECWC=4,0,»3333» //запись: id характеристики, 0 — тип записи (без подтверждения), значение OK
Аналогичный функционал чтения и записи доступен и для дескрипторов с помощью команд AT+BLECRD и AT+BLECWD.
Если соединение будет оборвано, модуль известит пользователя с помощью асинхронного сообщения “+BLEDISK: …”. Стандартная же процедура прекращения обмена выглядит следующим образом:
AT+BLECDISC=0 //закрываем соединение, id соединения OK +BLECDISC: 0,»63:b2:fc:19:0e:8f» AT+BLECDREG=0 //прекращаем работу GATT-клиента: id клиента, id пользователя +BLECDREG: 0,ABCDEF00 OK AT+BLEPOWER=0 //выключаем BLE-часть OK
BLE-сервер
Модуль также может выступать и в роли периферийного (GATT-сервер) устройства. Пример инициализации модуля в данном режиме:
AT+BLEADDR? //запрос MAC-адреса +BLEADDR: «5c:46:b0:03:40:54» OK AT+BLEHOST? //запрос отображаемого имени; эта же команда позволят его задать +BLEHOST: SIMCOM BLE,»5c:46:b0:03:40:54» OK AT+BLEPOWER=1 //включаем BLE-часть OK AT+BLESREG //Регистрируем GATT-сервер +BLESREG: 0,ABCDEF00 //id сервера, uuid OK AT+BLESSAD=0,»1111»,30,1,4 //добавляем сервис: id сервера, uuid, фиксированный параметр, основной (primary), фиксированный параметр +BLESSAD: 0,ABCDEF00,1111,1,4,0 //первый параметр — id сервиса OK AT+BLESSCAD=0,»AAAA»,4,58,3 //добавляем характеристику: id сервиса, uuid, фиксированный параметр, свойства характеристики (являются суммой отдельных параметров, описывались ранее), разрешение (permission:0 — запрет, 1 — чтение, 2 — запись, 3 — чтение и запись) +BLESSCAD: 0,ABCDEF00,AAAA,0,0 //первый параметр — id характеристики OK //для того чтобы убрать характеристику, используется команда AT+BLESSCRM=<id характеристики> AT+BLESSDAD=0,»2222»,4,0 //id характеристики, uuid, фиксированный параметр, разрешения +BLESSDAD: 0,AAAA,2222,0,0 OK AT+BLESLSTART=0 //старт трансляции адверта +BLESLSTART: 0,ABCDEF00 OK +BLESCON: 1,ABCDEF00,64:af:2a:13:fb:44,1 //к модулю подключился клиент: статус подключения (подключен), uuid GATT-сервера, MAC-адрес клиента, id соединения +BLEMTU: 1,185 //id соединения, размер MTU для данного соединения
Реализованная конфигурация GATT-сервера со стороны клиента представлена на рис. 1.
Далее запишем и прочитаем характеристику, а также направим уведомления на модуль (indicate и notify):
+BLESWREQ: ABCDEF00,1,0,»64:af:2a:13:fb:44»,17,5555,0,0,0 //запрос на запись характеристики: uuid GATT-сервера, id соединения, id текущей транзакции (запроса), MAC-адрес клиента, тип запроса, записываемое значение, параметры запроса на запись AT+BLESRSP=1,»3333WWWW» //подтверждение записи со значением; для записи в hex значение в скобках дополнительно требуется поместить в форму HEX{…} +BLESRSP: 0,ABCDEF00,1,1 OK //успешно +BLESRREQ: ABCDEF00,1,0,»64:af:2a:13:fb:44»,17,184,0 //запрос на чтение характеристики: uuid GATT-сервера, id соединения, id текущей транзакции (запроса), MAC-адрес клиента, параметры запроса AT+BLESRSP=0,»3333RRRR» //подтверждение запроса на чтение со значением +BLESRSP: 0,ABCDEF00,1,1 OK //успешно
Также есть возможность отправить индикацию или нотификацию удаленной стороне:
AT+BLESIND=0,»7777» //индикация: id характеристики, значение OK +BLESIND: 0,ABCDEF00,1,17 //первый параметр “0” — успешно AT+BLESNTY=0,»8888» //нотификация: id характеристики, значение +BLESNTY: 0,ABCDEF00,1,17 //первый параметр “0” — успешно OK
Обновленные значения характеристики приведены на рис. 2.
Завершается работа с BLE в обратном порядке:
AT+BLESLSTOP=0 //прекращаем работу GATT-сервера +BLESLSTOP: 0,ABCDEF00 OK +BLESCON: 0,ABCDEF00,64:af:2a:13:fb:44,1 //если были подключены клиенты, они отсоединяются AT+BLEPOWER=0 //выключаем BLE-часть OK
Ранее был приведен пример для записи с подтверждением. Если используется запись без подтверждения, будет выдаваться лишь следующее URC:
+BLESWREQ: ABCDEF00,1,0,»4d:e8:f2:13:48:69»,17,5555,0,0,0
Резюмируя описанное, можно сказать, что модуль поддерживает все основные режимы работы Bluetooth Low Energy, что позволяет использовать его в любой конфигурации оборудования.
Заключение
Модули A7672E и A7682E — это самый доступный способ добавить поддержку технологии LTE в конечные устройства. Продолжая популярную А-серию модулей сотовой связи, они предоставляют пользователям еще больше возможностей: более компактные габариты, Bluetooth Low Energy, встроенную навигацию и расширенные возможности для пользовательского кода. Немаловажно и то, что данные решения сделаны с учетом возможности применения их с основными 2G-решениями в линейке. Это гарантирует преемственность и простоту перехода.
- Новинский Д. Модули A-серии от SIMCom Wireless Solutions: обзор возможностей и создание пользовательских приложений //Беспроводные технологии. 2020. № 2.
- simcom.com
- mt-system.ru