Операционная система Open AT для управления интеллектуальными модемами
Введение
В настоящее время практически все устройства, работающие в M2M-индустрии (machine-to-machine), так или иначе имеют в своем составе модемы для передачи данных. Для разработчиков M2M-оборудования наиболее интересными являются GSM-модемы, использующие для передачи данных сотовые сети GSM-операторов. Изначально предполагалось, что модем — это оконечное оборудование, выполняющее роль только передачи данных, а формирование самих данных и их обработку осуществляет терминал. Таким образом, модем является одним из периферийных устройств, подключаемых к оборудованию. Сегмент M2Mоборудования является очень динамичным по своему развитию, и в этой динамике хорошо прослеживаются тенденции к минимизации устройств. В этой ситуации на первый план выходит задача расширения функциональности модемов, их возможность самостоятельно обрабатывать данные и работать автономно, без внешнего процессора.
Интеллектуальные модемы AirPrime
Беспроводные GSM-модемы серии AirPrime от компании Sierra Wireless выполнены на основе беспроводных микропроцессоров WMP (Wireless MicroProcessor) и поставляются с предустановленной полноценной операционной системой (ОС) реального времени Open AT, которая осуществляет управление модемом. Таким образом, разработчики получают возможность реализации собственных пользовательских приложений. В результате GSM-модем становится интеллектуальным устройством, способным заменить управляющий микропроцессор.
Для примера давайте рассмотрим устройство, которое будет выполнять следующие действия:
- собирать данные с подключенных к нему датчиков;
- выводить информацию на ЖК-экран;
- управляться с помощью подключенной клавиатуры;
- передавать данные по беспроводному каналу;
- управляться с помощью голосового меню, по GSM-каналу.
В классической схеме выбирается микропроцессор, к которому через интерфейсы SPI подключаются датчики, через GPIO — клавиатура, через I2C — ЖК-экран. Через UART подключается беспроводной модем, краткая схема показана на рис. 1. Далее реализуется программное обеспечение дляработы устройства. Та часть программного ядра, которая отвечает за работу с датчиками, экраном и клавиатурой, достаточно прозрачна, понятна для реализации и имеет стандартные решения. Другая же часть, отвечающая за работу с модемом и реализующая канал для передачи данных и голосовое меню, достаточно специфична. Она зависит от возможностей самого модема, например возможности декодирования DTMF и наличия поддержки сетевых протоколов (TCP/IP, FTP, HTTP, SMTP, POP3). Также необходима реализация работы с модемом со стороны контроллера в виде нескольких потоков, обрабатывающих различные задачи: передача данных по GPRS, работа голосового меню. Все это ложится на плечи разработчика.
Ядро модемов серии AirPrime выполнено на основе высокопроизводительного процессора ARM9 и операционной системы Open AT. Часть ресурсов ОС задействована на работу с GSM-радиочастью и обработкой GSM-стека, которые имеют самый высокий приоритет при работе системы. Остальная часть открыта для использования пользовательскими приложениями.
В новой концепции модем уже выступает не просто модулем для передачи данных. Так как модули AirPrime снабжены интерфейсами UART, SPI, I2C, GPIO, то всю предлагаемую схему можно выполнить через подключение датчиков, клавиатуры и экрана к модему (рис. 2).
Open AT поддерживает набор библиотек для декодирования DTMF, воспроизведения аудиофайлов различных форматов, например таких как AMR. Также ОС имеет необходимый инструментарий для работы с портами вводавывода и многозадачностью (подробнее о самой операционной системе и ее возможностях будет рассказано далее). Таким образом, разработка программного ядра устройства значительно упрощается, экономятся время и ресурсы разработчика.
Ядро модемов серии AirPrime выполнено на основе высокопроизводительного процессора ARM9 и операционной системы Open AT. Часть ресурсов ОС задействована на работу с GSM-радиочастью и обработкой GSM-стека, которые имеют самый высокий приоритет при работе системы. Остальная часть открыта для использования пользовательскими приложениями.
В новой концепции модем уже выступает не просто модулем для передачи данных. Так как модули AirPrime снабжены интерфейсами UART, SPI, I2C, GPIO, то всю предлагаемую схему можно выполнить через подключение датчиков, клавиатуры и экрана к модему (рис. 2). Open AT поддерживает набор библиотек для декодирования DTMF, воспроизведения аудиофайлов различных форматов, например таких как AMR. Также ОС имеет необходимый инструментарий для работы с портами вводавывода и многозадачностью (подробнее о самой операционной системе и ее возможностях будет рассказано далее). Таким образом, разработка программного ядра устройства значительно упрощается, экономятся время и ресурсы разработчика.
Интеллектуальные модули, выполненные на основе беспроводного микропроцессора WMP, входят в серии AirPrime и Airlink.
- AirPrime:
- серия WMP — WMP50/100/120/150;
- серия Q26 — Q2686RD, Q2687RD, Q26Extreme;
- SL6087.
- Корпусные модемы Airlink:
- Серия GL — GL6100, GL6110;
- Серия FXT — Fastrack Xtend GPRS/EDGE/ HSPA/CDMA.
Sierra Wireless предоставляет целый программный комплекс для работы с беспроводными модемами, в который входят пять компонентов:
- Операционная система Open AT — многозадачная (до 64 задач) ОС реального времени, предоставляющая набор интерфейсов для программного управления GSM-модулем — ADL (Application Development Layer).
- Набор библиотек для расширения функциональных возможностей, операционной системы. Включает в себя пять библиотек:
- TCP/IP Plug-In;
- Internet Plug-In;
- Security Plug-In;
- Lua Scripting Plug-In;
- Location Plug-In.
- Developer Studio — интегрированная среда разработки программного обеспечения под ОС Open AT, выполненная на основе Eclipse и включающая в себя редактор кода, компилятор GCC, загрузчик ПО, менеджер проектов.
- Firmware — встраиваемое программное ядро, работающее в беспроводном модуле. Оно включает в себя GSM/GPRS/EDGE/3G — беспроводной стек, выполненный непосредственно для работы в режиме M2M и автоматизации приложений, а также AT-парсер для управления модулем через AT-интерфейс. АТ-интерфейс поддерживает версию ITU V.25 ter и 3GPP 27.007.
- AirVantage — сервисы интеллектуальных устройств, позволяющие проводить удаленный мониторинг модема, получать данные о состоянии сети, интернет-трафика, количества звонков и СМС, проводить удаленное обновление операционной системы и пользовательской программы.
Аппаратно-программная архитектура Open AT
Общая структура Open AT состоит из четырех частей (рис. 3).
- На самом нижнем уровне находится аппаратная часть — центральный процессор и RF.
- Open AT Firmware — операционная система, исполняемая на модуле и имеющая все необходимые инструменты для управления аппаратной частью модуля. В свою очередь она делится на три слоя:
- BSP (Board Support Package) — пакет драйверов, поддерживающий работу с аппаратной частью центрального процессора WMP100. Сюда входят группа BSP Device, работающая со всеми интерфейсами модема, такими как SPI, UART, GPIO и т. д.; BSP System — набор драйверов, организующий работу с памятью и аппаратными таймерами; группа драйверов BSP GSM&Audio, организующая взаимодействие с радиочастью модуля, отвечающей за работу в сети GSM, и аудиочастью.
- Операционная система, контролирующая работу беспроводного модуля и отдельно исполняемого GSM-стека, обрабатывающего данные из сети GSM.
- Firmware application — приложение, работающее на модуле и реализующее интерфейс для управления модемом.
- ADL-уровень — Applicaton Development Layer, программный интерфейс для работы пользовательского приложения с GSM-модулем. Также в нем реализована работа с многозадачностью, таймерами, прерываниями.
- Open AT плагины — программные библиотеки, расширяющие программную функциональность модуля: например, реализована работа с сетевыми протоколами FTP, HTTP, SMTP, POP3, криптографические алгоритмы, алгоритмы определения GSM-глушения.
На рис. 4 представлена диаграмма задач, выполняемых на беспроводном микропроцессоре WMP100.
Разработчику доступны следующие уровни:
- Low level Interrupt handlers — обработчик прерываний низкого уровня;
- High level interrupt handlers — обработчик прерываний высокого уровня;
- Open AT.Applications — уровень пользовательского приложения. Обработчик прерывания первого уровня Open AT (Open AT Interrupt handler Level 1) имеет приоритет выше, чем приоритет ядра Open AT. В нем можно сделать обработку внешних прерываний; внутренних прерываний таймера; прерываний DSP (Audio).
Время прерываний и вызовов задач составляет:
- для Open AT Interrupt handler Level 1 менее 600 мкс;
- Open AT Interrupt Task handler — 1–10 мс;
- Open AT Application Task (s) — примерно 10 мс.
Таким образом, мы получаем очень гибкий механизм работы с прерываниями и задачами для управления внешними устройствами, который может быть реализован только с помощью ОС реального времени.
Взаимодействие пользовательского приложения с ОС
Управлять GSM-модулем можно в трех режимах:
- через АТ-интерфейс, соответствующий описанному в документах 3GPP, в этом случае требуется использование внешнего контроллера;
- через пользовательское приложение, которое исполняется на модуле и взаимодействует с операционной системой;
- в кооперативном режиме, в котором управление происходит как через АТ-интерфейс, так и через пользовательское приложение одновременно.
Пользовательское приложение в виде исполняемого файла загружается во флеш-память модуля. После этого оно стартует автоматически при запуске модуля вместе с операционной системой.
Приложение управляет беспроводным модемом двумя способами: через ADL (Applicaton Development Layer) и набор плагинов. ADL-слой может взаимодействовать с ядром модуля, непосредственно вызывая те или иные интерфейсы, или через AT-парсер (рис. 5). Также пользовательское приложение может воспользоваться библиотекой плагинов, которые, в свою очередь, работают с ADL-уровнем.
ADL-уровень содержит различные группы интерфейсов для доступа ко всем функциям операционной системы:
- Интерфейс АТ-команд, содержащий набор функций для работы с парсером АТкоманд.
- Интерфейсы для доступа к оперативной и флеш-памяти, а также интерфейс для работы с секретной областью памяти, доступ к которой осуществляется только через специальные ключи, генерируемые криптографическими алгоритмами, что позволяет регламентировать доступность хранимых данных.
- Набор интерфейсов, позволяющих работать с различными портами, имеющимися на модуле для обмена данными с другими устройствами: GPIO, SPI, I2C, АЦП, ЦАП и др.
- Сервис для стандартной работы с SIM-картами, а также Open SIM Access, позволяющий работать с несколькими SIM-картами, подключенными к портам UART, I2C, SPI, USB.
- На уровне ADL реализован интерфейс для работы со списками, организация данных в виде которых очень востребована в приложениях.
- Также в состав ADL входит сервис для работы со звуковыми данными, такими как DTMF, тоны, PCM-файлы и AMR/AMR-WB.
Все модули серии AirPrime на основе микропроцессора WMP имеют внешний аппаратнонезависимый сторожевой таймер, который следит за работой модуля в целом и перегружает его в исключительных ситуациях, например, во время зависания модуля или входа в бесконечный цикл. Для управления сторожевым таймером также существует отдельный сервис, позволяющий настроить его в зависимости от работы приложения.
Имея доступ к ADL через предоставляемые API, мы получаем очень мощный инструмент для построения как самых простых приложений, реализующих работу тех или иных функций, так и сложных многозадачных приложений для обработки данных, имеющих звуковые меню, поддерживающих самостоятельно соединение с сервером и контролирующих работу внешних устройств.
Интегрированная среда разработки Developer Studio
Разработку пользовательского приложения под ОС Open AT можно вести как на языке C, так и на C++, используя объектноориентированную модель. Для разработки приложений компанией Sierra Wireless выпущена интегрированная среда разработки Developer Studio, которая включает в себя все необходимое для создания, компиляции, загрузки и отладки приложений. Среда разработки выполнена на основе Eclipse, поэтому пользовательский интерфейс удобен и интуитивно понятен. В состав Developer Studio входят: редактор исходных текстов; менеджер проектов; компилятор, по умолчанию это свободно распространяемый GCC (GNU C Compiler), также есть возможность добавить платные версии коммерческих компиляторов ADC и ARM RVDS; менеджер загрузки приложений, включающий в себя командную строку и трейсер для загрузки и трассировки приложений; отладчик для пошаговой отладки приложения; менеджер обновлений для периодической загрузки обновлений. При этом сама среда разработки бесплатная и доступна для загрузки с сайта компании-производителя.
Плагины Open AT
Помимо стандартного набора сервисов, входящих в состав Open AT, Sierra Wireless предоставляет ряд библиотек, так называемых плагинов, являющихся дополнительным расширением для ADL. На данный момент поддерживается 5 плагинов:
- TCP/IP Plug-In;
- Internet Plug-In;
- Location Plug-In;
- Security Plug-In;
- Lua Scripting Plug-In.
TCP/IP-плагин входит в базовую конфигурацию GSM-модуля и представляет собой реализацию TCP/IP-стека. С ним можно работать как в приложении, подключив его в студии разработчика, так и через интерфейс АТ-команд, загрузив приложение WIPSoft. С помощью программы WIPSoft можно гарантированно создать одновременно 4 серверных сокета и 8 клиентских. Этот показатель очень важен при разработке мультисокетных систем. Internet-плагин предоставляет библиотеку для работы с сетевыми протоколами POP3, HTTP, FTP, SNMP.
Плагин Internet содержит библиотеку WIPlib для работы на уровне прикладного приложения, а также приложение WIPSoft, реализующее АТ-парсер для работы с Internet-плагином на уровне АТ-команд. Все это освобождает разработчика от собственной реализации работы с этими протоколами, тем самым ускоряя и упрощая процесс разработки сетевых приложений.
Плагин Location создан специально для управления GPS-модулем XM0110 через GSM-модуль, подключенный по интерфейсу UART (рис. 6), тем самым исключая из связки внешний микропроцессор. Плагин включает библиотеку API, позволяющую приложению:
- управлять работой GPS-модуля, переключать его в различные режимы, контролируя мощность и энергопотребление;
- получать данные в виде NMEA-строки или PVT-структуры (Position-Velocity-Time);
- получать данные о положении по трем осям координат, информацию о последней позиции, спутниках, статусе GPS-приемника.
Управлять GPS-модулем с помощью плагина Location можно как в режиме АТ-команд, так и в пользовательском приложении. В режиме АТ-команд требуется внешний микропроцессор, подключенный к GSM-модулю.
Для защиты данных, передаваемых по беспроводному каналу, во избежание воздействия помех на GSM-модуль и искажения сигнала был создан плагин Security. Он содержит в себе инструменты для определения влияния помех на модуль, различные криптографические библиотеки для шифрования данных и поддержки криптографических протоколов. В состав плагина входят следующие группы:
- Jamming Detection — ряд функций для определения степени глушения радиопередачи. Используя их, можно определить степень глушения радиоканала и предпринять какие-либо меры для сигнализации об этом действии или для защиты объекта, попавшего под воздействие глушения.
- Защищенный режим работы приложения. В этом режиме можно контролировать команды +WOPEN и +WDWL, служащие для запуска, остановки, удаления и установки приложения и данных во флеш-память, тем самым предотвращая вмешательство посредством АТ-команд в приложение, запущенное на модуле.
- Группы для работы с криптографическими сетевыми протоколами SSL 3.0/SSL 2.0 и протоколом с шифрованием HTTPS.
- Крипто-библиотека, в которой реализованы основные криптографические алгоритмы для шифрования данных.
- Open SIM Access — интерфейс для работы с несколькими SIM-картами, подключенными к различным портам ввода-вывода.
Плагин Lua включен для поддержки одноименного интерпретируемого языка программирования. Плагин включает в себя компилятор, виртуальную машину, библиотеки и интерактивное ядро для создания и исполнения приложений в ОС Open AT. Менеджер для работы с проектами Lua включен в среду разработки Developer studio, что позволяет в ней создавать, компилировать и загружать файлы Lua на беспроводной модуль. Сам язык Lua является свободно распространяемым, с открытыми исходными текстами на С. По возможностям, идеологии и реализации язык ближе всего к JavaScript, однако Lua отличается более мощными и более гибкими конструкциями.
Заключение
Рассмотрев ОС Open AT и окружающие ее компоненты, можно сделать вывод, что модемы от компании Sierra Wireless снабжены мощным программным ядром, позволяющим реализовывать многоуровневые и многозадачные системы, требующие надежности работы и быстроты исполнения. Такие модемы идеально подходят для применения в таких областях, как контроль и мониторинг автотранспорта, разработка авторекеров и навигаторов, контроль за энергоресурсами, системы АСКУЕ, «Умный дом» и т. д. — тоесть, именно там, где от модуля требуется не только передавать данные, но и управлять процессом, поддерживать связь, обрабатывать данные, в случае внештатных ситуаций сигнализировать об опасности.
- AirPrime WMP100-150 Technical Specification and Customer Design Guidelines
- TRAINING COURSEWARE «Open AT® Software Suite v2.0»
- Ле Бодик Г. Технологии и службы мобильной передачи данных. М.: Техносфера. 2008.