Модули A-серии от SIMCom Wireless Solutions: обзор возможностей и создание пользовательских приложений

№ 2’2020
PDF версия
Рефарминг частот, а также высокая загруженность сетей GSM все чаще заставляет разработчиков М2М-устройств смотреть на решения, которые позволяют обмениваться информацией и в рамках других технологий. И здесь есть три альтернативы: 3G-сети, теряющие свою актуальность, сети LTE NB-IoT, которые пока имеют ограниченное покрытие и подходят не для всех применений, а также полноценные сети четвертого поколения (LTE). До последнего времени, несмотря на свою универсальность, 4G-модули были не самым доступным решением. Исправить это призваны новые решения SIMCom Wireless Solutions: A7670E и A7600E.

LTE без 3G

Основные характеристики указанных решений приведены в таблице. Первое, что бросается в глаза, — наличие только технологии LTE и связанных с GSM частот, то есть отсутствие 3G. Обусловлено это двумя факторами.

Таблица. Характеристики решений A7670E и A7600E

 

A7670E

A7600E

 

A7670E

A7600E

Поддерживаемые технологии и частоты

LTE-FDD: B1/B3/B5/B7/B8/B20

LTE-TDD: –

LTE-TDD: B38/B40/B41

GSM/GPRS/EDGE: 900/1800 МГц

Корпус

24×24 мм QFN

30×30 мм LCC

Напряжение питания

3,4–4,2 В

Рабочий диапазон температур

–40…+85 °С

Напряжение логических выводов

1,8 В

Пропускная способность

LTE Cat.1

DL/UL 10/5 Мбит/c

Интерфейсы управления

UART (до 3,6 Мбит/c), USB (комбинация устройств: АТ-порт, модемный, диагностический, RNDIS)

Прочие интерфейсы

USIM, UART, I2C, ADC

USIM, SPI, UART Debug, I2C, SDIO, GPIO, ADC

Аудиоинтерфейс

PCM

Обновление ПО модуля

USB или FOTA (по воздуху)

Совместимые решения

SIM800/SIM800F (GSM)

SIM5300E (3G)

SIM7060R/G (NB-IoT)

SIM7070E/G (NB-IoT)

SIM5320E/SIM5360E (3G)

SIM7600E/E-L1C (LTE Cat. 1)

SIM7600E-H / E-H1C (LTE Cat. 4)

Прочее

SMS, DTMF, голосовые вызовы (обычные и VoLTE)

Первый — актуальность 3G как технологии. Заняв промежуточное положение между GSM и LTE, сейчас технология уже мало интересует consumer-рынок (мобильные телефоны), а следовательно, и производителей чипсетов, что справедливо и для операторов сотовой связи, поскольку большинство их абонентов мигрируют в 4G. Общая тенденция такова, что покрытие сетей 3G деградирует, и в итоге они будут сворачиваться. Это подтверждают примеры США и Северной Европы.

Во-вторых, отсутствие 3G позволило реализовать модуль в компактном корпусе (речь о A7670E). В каждом из решений используются две ключевые для сотовой связи технологии: GSM, которая, несмотря на утрату актуальности, все равно остается сегодня наиболее распространенной сетью, и как основная — LTE, которая в будущем станет основной технологией, поскольку на ее базе возможно организовать работу всех типов абонентского оборудования, как с точки зрения скорости, так и принципов работы. Это единственная на текущий момент сеть, покрытие которой только расширяется.

Что это значит для пользователя? Уверенность в том, что данное решение будет работать в каждой точке, где есть покрытие сети (GSM или LTE имеется на любой базовой станции), а также актуальность в обозримом будущем, ведь пока альтернатив LTE не существует.

Оба решения выполнены на одной и той же аппаратной платформе, и в целом их возможности и характеристики совпадают. Но есть и ряд отличий.

Первое — отсутствие диапазона LTE-TDD в A7670E. Для каких-то применений это может стать ограничением (скажем, если данные частоты требуются по ТЗ), но для фактической работы это не столь критично, так как данные частоты не являются образующими покрытие, в отличие от частот LTE-FDD.

Второе отличие — разница в форм-факторах, следствием чего становятся доступные пользователю интерфейсы, а также совместимые решения. Модуль A7670E выполнен в компактном корпусе 24×24 мм QFN. Это позволяет организовать общее посадочное место для модулей GSM, 3G и NB-IoT [3] с таким же форм-фактором. Решение совместимо с ними в части основных АТ-команд и по всем ключевым выводам. При создании совместимого дизайна с GSM-модулями SIM800x необходимо учесть разницу в логических уровнях: 2,8 В против 1,8 В у всех остальных; но это легко решить применением буферной микросхемы с опорным напряжением от вывода VDD_EXT модуля.

В свою очередь, A7600E выполнен в традиционном для 3G и LTE SIMCom Wireless Solutions форм-факторе 30×30 мм с торцевыми контактами. Это делает его полностью совместимым с актуальными LTE-решениями линейки SIM7600x [4] как по посадочному месту, так и по АТ-командам. Несмотря на полную совместимость, у него есть отличия в плане использования хостом в режиме RNDIS, этот момент будет дополнительно рассмотрен далее.

 

Программная часть

Модуль унаследовал стеки и протоколы от модулей линейки SIM7500x и SIM7600x, то есть при переходе с этих решений никаких изменений в программную часть вносить не потребуется. Между модулями A7670E и A7600E также нет различий с точки зрения программной части. На текущий момент в модуле доступны:

  • TCP и UDP: клиент/сервер; прозрачный/непрозрачный режим;
  • FTP-клиент; скачивание/выгрузка файлов;
  • HTTP-клиент;
  • MQTT-клиент; издатель/подписчик;
  • SSL-шифрование для всех указанных выше протоколов, поддержка сертификатов;
  • LBS — получение времени и координат по БС;
  • проигрывание аудиофайлов;
  • CMUX;
  • FOTA;
  • NTP;
  • сканирование Wi-Fi.

Также присутствуют и стандартные возможности: PPP, голосовые вызовы, VoLTE, СМС и т. д. Обновить ПО можно через USB или по воздуху (FOTA): в модуль скачивается разностный файл, подается команда на выполнение обновления, после окончания модуль перезагружается и готов к работе с новым ПО внутри.

Наряду с традиционным подключением по UART модули данного класса нередко подсоединяют к хосту по USB. Это помогает обойти скоростные ограничения, накладываемые UART (не более 3,6 Мбит/c), использовать модуль в режиме сетевой карты (RNDIS), а также позволяет обойтись без CMUX (передачу данных и АТ-команды можно разнести по разным виртуальным портам/устройствам).

При подключении к USB модуль определяется как составное устройство, содержащее комбинацию, показанную на рис. 1 (пример для Windows).

Комбинация USB-устройств

Рис. 1. Комбинация USB-устройств

Назначение портов следующее:

  • SimTech HS-USB AT Port 9011 — порт для подачи АТ-команд;
  • SimTech HS-USB Modem 9011 — модемный порт; в Linux он определяется просто как еще один COM-порт. Поднять PPP-соединение по USB можно только через него;
  • SimTech HS-USB Diagnostics 9011 — порт, предназначенный для снятия диагностической информации, а также обновления ПО;
  • Remote NDIS based Internet Sharing Device — RNDIS-устройство, в Linux определяется как USB-адаптер.

Поднятие соединения через PPP — стандартная задача, для указанных решений разницы с другими модулями сотовой связи нет. А вот при использовании с адаптером в режиме RNDIS есть особенности и потребуется подать ряд команд для работы:

AT+CPIN?
+CPIN: READY //проверка готовности сим-карты
OK
AT+CGREG?
+CGREG: 0,1 //проверка регистрации в сети передачи пакетных данных
OK
AT+CGDCONT=1, «IP»,»internet» //задаем APN, при наличии USER/PWD — дополнительно задать через команду AT+CGAUTH
OK
AT+DIALMODE=0 //активируем автоподнятие соединения, параметр сохраняется при перезагрузках
OK
AT+CGCONTRDP
+CGCONTRDP: 1,5,»internet «,»100.69.189.13»,»»,»10.78.83.245»,»10.78.62.245»,»»,»»,0,0
OK //проверка, что IP получен и можно продолжать работу

После выполнения этих команд модуль готов к передаче данных. В случае Windows требуется активировать адаптер (если был включен, то выключить и включить снова). Для Linux — подать:

udhcpc -I usb0

Обозначение адаптера может иметь другой номер — это зависит от конфигурации оборудования в системе. Затем хост получает IP и выход в сеть.

С точки зрения скорости для данных модулей не должно быть отличий в PPP и RNDIS, поскольку в первом случае максимальные скорости будут заведомо меньше предельных для протокола (~20 Мбит/c), а во втором, где модуль выступает в роли своеобразного роутера, мощностей внутри вполне достаточно для обработки потока в 10 и 5 Мбит/c на скачивание и выгрузку соответственно. Что и подтверждается тестами в реальных сетях.

Особо отмечу, что для Windows требуются специальные драйверы — их можно получить через дистрибьютора («МТ-Системс»). Для Linux, в общем случае, специальных драйверов не требуется, модуль автоматически распознается как составное устройство: три COM-порта и одно RNDIS-устройство.

 

Сканирование Wi-Fi-сетей

Уникальной возможностью модулей, которая была упомянута выше, является сканирование точек доступа Wi-Fi. Данная возможность в первую очередь нужна для так называемой Wi-Fi Location, когда видимые точки доступа с известными координатами и уровень сигнала от них используются для определения положения самого устройства.

Для работы данного функционала в модуле должно быть актуальное ПО, а также сотовая антенна, в которой присутствует диапазон B40 (2300 МГц). Собственно, от качества работы на этих частотах и будет зависеть качество сканирования. Если все условия выполнены, то далее все сводится к последовательности команд:

AT+CWSTASCAN=1
OK
AT+CWSTASCAN?
+CWSTASCAN: 1
OK
AT+CWSTASCAN
+CWSTASCAN:
f4:83:cd:d8:24:c8,Uno,-52
80:89:17:10:e6:23,Dos,-58
14:2d:27:24:98:61,Tres,-58
...
OK

Как видно из лога, модуль возвращает связку MAC, отображаемого имени и уровня сигнала. Непосредственное местоположение модуль не возвращает, но эти данные могут быть использованы или в сочетании со сторонними БД (содержащими информацию по положению точек доступа) или для indoor-навигации, когда положение Wi-Fi-точек заведомо известно.

 

Написание пользовательских приложений

Как и многие другие модули SIMCom Wireless Solutions, A7600E и A7670E поддерживают возможность написания пользовательских приложений, которые выполняются в RTOS модуля. В случае А-серии технология называется OpenSDK. Как и прежде, алгоритм работы следующий: пользовательская программа компилируется, сформированный файл помещается в файловую систему модуля (при необходимости заливается специальное ПО для работы с OpenSDK), при следующем запуске модуль начинает выполнение программы. Разумеется, при взаимодействии со средой разработки есть ряд особенностей, поэтому далее рассмотрим состав SDK, процесс компиляции, заливки и отладки пользовательских приложений.

Ниже будет описан SDK, который имеется на текущий момент, со временем его состав может меняться, обрастая новым функционалом и возможностями. Для получения актуального SDK обращайтесь с запросом напрямую к дистрибьютору («МТ-Системс»).

Архив с SDK состоит из следующих каталогов:

  • DOC — документация: описание API, структуры SDK, доступные ресурсы, описание процесса компиляции, процедур заливки ПО и дебага, разбор демопримера;
  • DRIVERS — драйверы для USB и UART;
  • OPEN SDK — непосредственно сам SDK;
  • TOOLS — утилиты для дебага и заливки ПО в модуль.

Доступные пользователю функции и их описание содержатся в APIs Programming User Guide: функции работы с ОС (таски, семафоры, мьютекс и т. д.), периферией (GPIO, UART, SPI и т. д.), работы с сетью (статусы, звонки и смс), а также для абсолютно всех стеков и протоколов указанные ранее (TCP, FTP, SSL и т. д.). Отмечу, что в случае стеков речь идет именно об API-функциях. Тем не менее есть возможность обработки АТ-команд с помощью виртуального UART внутри приложения, если это требуется.

Сам SDK также состоит из нескольких каталогов:

  • sc_app — директория с исполняемым файлом и самой программой:
  • файл makefile.mk — задает каталог(и) для компиляции. По умолчанию там указаны каталоги application и demo для сборки примера all-in-one;
  • simcom_application — all-in-one-пример, компилируется по умолчанию;
  • simcom_demo — демофайлы с примерами: периферия, работа с системой, внутренней памятью, стеками, протоколами и т. д.;
  • simcom_lib — библиотеки.
  • sc_config — файлы, необходимые для сборки.
  • sc_sdk_images — образы прошивок для различных модулей A-серии (которые используются при сборке).
  • sc_tool — инструменты для работы с компилятором (используется GCC); при условии сборки из командной строки (как будет показано ниже) никаких действий от пользователя по настройке не требуется.

Поскольку по умолчанию собирается общий демопроект, в данном случае мы не будем вносить изменения в make и соберем все в исходном виде. Простейшим способом компиляции проекта является командная строка (но при желании работу с SDK можно перевести в Eclipse или прочие редакторы) — для этого необходимо перейти в каталог с SDK и запустить build.bat с нужными параметрами. Синтаксис выглядит следующим образом:

bulid.bat<module><part> [option]
<module> - модуль, для которого предназначена сборка “A7600E_LNSE” или “A7670E”
<part> — “all” (полная сборка), “image” (ПО), “app” (пользовательский код) и “clean” (для очистки)
[option] — может использоваться вместе с part с указанием “clean”

Важный момент: для сборки образа на ПК должен быть установлен Python версии 3.8.5 или более поздней. Как пример для A7600E:

bulid.bat A7600E_LNSE all clean //очищаем SDK
bulid.bat A7600E_LNSE all //компилируем и собираем образ прошивки

В результате в корне SDK появится директория target и в ней будет два архива: SC_A7600E_LNSE_16M_A0_16MB ПО модуля + app-часть и SC_A7600E_LNSE_16M_CUSTOMER_APP_ONLY — только app-часть. Это именно прошивки, готовые для заливки, сам пользовательский файл находится в директории build.

Сформированные на прошлом шаге архивы распаковывать не требуется. Для заливки прошивки в модуль можно воспользоваться как утилитой, идущей с SDK (работа с ней описана в Debug and Download Guide), так и стандартной утилитой для обновления ПО модуля. Общее для них одно — модуль должен быть подключен к ПК с Windows по USB. В случае если модуль с заводским ПО, необходимо выбирать архив, содержащий обе части, при последующих обновлениях достаточно заливать только app-часть.

После обновления модуль необходимо перезагрузить, затем он начинает выполнять программу. Демопрограмма от SIMCom содержит почти все примеры из директории simcom_demo и объединяет их в одном интерфейсе. Для проверки необходимо подключиться к аппаратному UART (не USB) на скорости 115 200 и отправить любой символ; в ответ будет выдано меню, показанное на рис. 2. В качестве примера продемонстрирована отправка СМС, цветом указана информация, подаваемая пользователем.

Внешний вид демопримера и отправка СМС

Рис. 2. Внешний вид демопримера и отправка СМС

Такая разбивка на подпункты упрощает изучение демопримеров, поскольку показывает каждый шаг правильного алгоритма работы с использованием api. Следует отметить, что в данный демопример вошла только часть программ из директории simcom_demo, поэтому для полного понимания работы OpenSDK рекомендуется изучить и остальные.

Отдельно отмечу пункт 16 из демопримера — это OTA, то есть обновление по воздуху. При работе устройств «в полях» может возникнуть потребность внести изменения в код программы, без непосредственного подключения. Эту задачу поможет решить данная функция — пользовательская часть кода помещается в память модуля (сам файл может быть получен по любому из протоколов, имеющихся в модуле), после чего с помощью api проверяется целостность и начинается обновление.

Немаловажный вопрос — отладка приложения. Она производится с помощью диагностического порта модуля и утилиты CATStudio. Подробная инструкция по работе с утилитой представлена в Debug and Download Guide. Здесь же только отмечу, что при работе необходимо выбрать порт диагностики как источник информации (по умолчанию утилита может задать произвольный), указать путь к файлу БД (он находится в папке sc_sdk_images, A7600E_LNSE_16M — для A7600E) и далее отфильтровать данные, идущие от приложения, фильтром CUSTLOG. За выдачу отладочной информации в самом коде отвечает функция sAPI_Debug.

Каждый из модулей обладает различными интерфейсами, которые доступны пользователю:

  • A7600E: SDCx1, USB, UART (7 pin), SPI, UART (Tx/Rx), I2C, SDIO, PCM, GPIOx15, ADCx2, CLK, LDO 3 В/400 мА, LDO 1,8 В/50 мА;
  • A7670E: LDO 1,8 В/50 мА, USB, UART (7 pin), UART (Tx/Rx)x2, I2C, PCM, GPIOx10, ADC.

Если говорить о ресурсах, то для пользователя доступно несколько мегабайт Flash и RAM, но лишь часть из них может быть занята непосредственно самим приложением (речь о Flash в первую очередь). Как я писал ранее, эти цифры зависят от конкретной версии SDK и приводятся в специальном файле. Но в целом можно сказать, что не каждый функционал может быть полностью перенесен на модуль. С другой стороны, простые задачи вроде обработки данных и отправки их на сервер (телеметрия статичных и движущихся объектов, например) модуль вполне способен выполнять. Также данная технология станет хорошим подспорьем, если требуется разгрузить хост от ряда задач, для упрощения взаимодействия или удешевления устройства.

 

Заключение

Модули A7600E и A7670E открывают новые возможности для разработчиков М2М-устройств. Сделав их максимально доступными, SIMCom Wireless Solutions открыла возможность применения полноценных LTE-решений даже в самых массовых устройствах, где конечная стоимость является одним из важнейших факторов. Наличие двух самых актуальных на данный момент технологий — GSM и особенно LTE — позволяет забыть о необходимости модернизации устройств в ближайшей перспективе. Совместимость с популярными форм-факторами гарантирует преемственность и универсальность. Наличие среды разработки открывает новые возможности организации работы устройств.

Литература
  1. simcom.com
  2. mt-system.ru
  3. Новинский Д., Тучкин В. Актуальные LTE-решения SIMCom Wireless Solutions: переход на модули нового поколения // Беспроводные технологии. 2019. № 1.
  4. Новинский Д. Высокоскоростные LTE-решения SIMCom Wireless Solutions // Беспроводные технологии. 2020. № 1.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *