Особенности применения GSM-модулей и беспроводных процессоров Sierra Wireless
Модули Sierra Wireless/Wavecom прекрасно работают в качестве обычных GSM/GPRS-модемов, но только с использованием технологии Open AT их потенциал раскрывается полностью. Open AT - мощный инструмент, позволяющий пользователю создать приложение, которое будет выполняться в модуле, не требуя никаких дополнительных внешних элементов (микроконтроллера или процессора с обвязкой). Функционал такого приложения может быть практически неограниченным - от приема-передачи SMS и данных по GSM/GPRS до организации обмена через интерфейсы RS-232, по шинам I2C и SPI, а также ввода-вывода через линии GPIO и ADC.
Инструменты для разработки приложений Open AT (рис. 1) свободно доступны после несложной процедуры регистрации на сайте http://www.sierrawireless.com.
Рис. 1. Среда разработки
В комплекте поставляются примеры программ и необходимая документация. Большинство примеров написано с использованием библиотеки ADL, дающей пользователю возможность высокоуровневого доступа ко всем необходимым ресурсам модема - памяти, портам ввода-вывода и даже управлению вычислительной мощностью/потреблением процессорного ядра. Большое количество примеров применения можно найти на сайте Sierra Wireless (табл. 1). Примеры применения (application Notes) поясняют различные аппаратные и программные аспекты и рассчитаны на разработчиков разной степени подготовки. Примеры сопровождаются исходными текстами кода и принципиальными схемами.
Таблица 1. Список примеров применения Wavecom
Наименование | Уровень сложности |
Снижение эффекта эха для серии Q26 и WMP Acoustic Echo Cancellation for Q26_WMP Series | Средний |
Добавление контрольной суммы к бинарному файлу при работк с Linux Adding Checksum to a binary file using Linux | Повышенный |
Диагностирование антенны Antenna Diagnosis | Средний |
Антенный ключ Antenna Switch | Средний |
Конструкция аудиофильтра для серии Q26 Audio Filter Design for Q26_WMP Series APN and tool | Повышенный |
Автоматическое соединение посредством TCP-сокета Auto TCP Socket Data connection | Средний |
Интерфейс Bluetooth, версия 3 Bluetooth Interface v3 | Средний |
Возможности CMUX, версия 3 CMUX Feature v3 | Повышенный |
Управление вызовом с помощью клавиатуры Call Management with Keypad | Начальный |
Блокировка Ячейки Cell Lock | Начальный |
Вычисление контрольной суммы для ОС Х4х Checksum calculation algorithm for OS X4x series | Повышенный* |
Среда разработки Open AT® 3: создание новой мелодии Open AT® 3: Creation of new Melody | Начальный |
Функционал DOTA_Open AT® v2.1x DOTA_Open AT® v2.1x | Начальный |
Функционал DOTA_Open AT® v3.0x DOTA_Open AT® v3.0x | Начальный |
Организация питания от двух источников энергии Dual Power Supply | Средний |
Пример подключения двух СИМ-карт Dual SIM Application Note | Средний |
Вариант зарядки внешней батареи External Battery Charging Solution | Средний |
Библиотека математики с плавающей точкой Floating Point Arithmetic Library | Начальный |
Графическое ядро и драйвер ЖКИ Graphical Engine & LCD Driver | Средний |
Организация режима «Громкой связи» Hands Free Speaker Phone | Средний |
Включение питания на модулях новой серии Q24 New Q24 Series Power On | Начальный |
Среда разработки Open AT® 3: усовершенствованные методы компиляции Open AT® 3: Advanced Compilation | Повышенный |
Советы по компиляции приложения Open AT Open AT® Application Compilation Tips | Средний |
Среда разработки Open AT® 3: распределение памяти Open AT® 3: Memory Mapping | Начальный |
Библиотека генерации периодических импульсов Open AT® 3: Periodic Pulse Generation Library | Повышенный |
Среда разработки Open AT® 3: управление исполнением программы Open AT® 3: Using Flow Control Manager | Повышенный |
Пример применения решения C-GPS Opus I Opus I C-GPS Application Note | Начальный |
Пример применения решения Opus III C-GPS Opus III C-GPS | Начальный |
Пример приема и отправки MMS MMS Sample Application | Средний |
Использование PPP в среде Linux PPP using Linux | Начальный |
Различные режимы потребления энергии Power Consumption Modes | Повышенный |
Включение режима пониженного энергопотребления с помощью Open AT Power Down Mode Activation Using Open AT® | Начальный |
Пример использования Q52 в режиме слежения с помощью API Open AT Q52 Omni Tracking Application Note | Средний |
Пример использования RTC RTC Open AT® API usage | Начальный |
Загрузка данных с помощью SMS SMS Data download | Начальный |
Прием и отправка факсов, версия 2 Sending Receiving Faxes v2 | Начальный |
Использование COM PC-карт для скоростного обмена данными Serial Cards for High Speed Transfer | Начальный |
Временная синхронизация NTP – SNTP Time Synchronisation (NTP – SNTP) | Начальный |
Настраиваемая антенна диапазона 900/1800 МГц в виде проводников печатной платы Tunable PCB Antenna 900/1800 | Повышенный* |
Настраиваемая антенна диапазона 850/1900 МГц в виде проводников печатной платы Tunable PCB Antenna 850/1900 | Повышенный* |
Исподьзование FCM flow в приложении Open AT Using FCM flow in an Open AT® Application | Повышенный |
Использование TCP и UDP в среде разработки Open AT® Using TCP and UDP in OpenAT® | Повышенный |
Управление дежурным таймером сброса Watchdog timer reset | Средний |
Отладка беспроводных процессоров WMP с помощью JTAG WMP Family JTAG Debug Application Note 001-002 | Средний |
Общие документы по применению (старый формат представления) | |
Создание библиотеки в среде разработки Open AT® 2.x Creating an Open AT 2.x Library | Начальный |
Модифицированные AT-команды и API-интерфейс для UART2 Modified AT commands and API Interfaces for UART2 | Начальный |
Организация режима «Громкой связи» в среде OS 6.43 OS 6.43 Hands Free Audio | Средний |
Среда разработки Open AT® 3: компиляция Open AT® 3: Compilation | Начальный |
Конфигурация TCP/IP параметров в среде разработки Open AT® Open AT® TCP/IP Parameter Configuration | Начальный |
Портирование задачи Open AT из библиотеки WM в библиотеку ADL Porting Open AT application from WM library to ADL library | Средний |
Режим «Dead Reckoning» в Q2501 Q25 Dead Reckoning | Начальный |
Пошаговая инструкция для создания DWL-файла для Open AT ADL задачи Steps to create a DWL file for Open AT ADL application | Начальный |
Приостановка и возобновление задачи Open AT с помощью режима прерываний Suspending & resuming Open AT applications with interrupt mode | Начальный |
Интерфейс USB 1.1 USB 1.1 Interface | Средний |
Интерфейс USB 2.0 USB 2.0 Interface | Средний |
Использование AT-команд для GPRS, PLMN, AEC, Battery & USSD AT implementation of GPRS, PLMN, AEC, Battery & USSD | Начальный |
* Предоставляется на условиях подписания соглашения о нераспространении. |
Начинающему разработчику приложения Open AT потребуется некоторое усилие, чтобы привыкнуть к особенностям новой для него архитектуры. Прежде всего, приложение Open AT выполняется процессорным ядром модуля в режиме кооперативной многозадачности. Это накладывает определенные ограничения на структуру разрабатываемого приложения. Так как монопольный захват процессора на длительное время может привести к срабатыванию сторожевого таймера и перезагрузке всего модуля, требуется более творческий подход в организации длительных циклов ожидания какого-либо события, или инициализации больших массивов и структур данных.
Например, часто встречающаяся ошибка - попытка инициализации в цикле относительно небольшого количества (нескольких десятков) ячеек flash-памяти. Казалось бы, общее время выполнения цикла невелико, но почему-то удается проинициализировать только первый десяток-другой ячеек, а на обращение к остальным ячейкам выдается код ошибки. Причина в том, что доступ к flash-памяти недостаточно быстрый, и требуется разнесение обращений к каждой последующей ячейке как раз на время, требуемое для завершения операций над предыдущей. Вставлять циклы ожидания, как отмечалось выше, небезопасно. Правильней будет завести в приложении циклический таймер с периодом срабатывания в несколько десятков или сотен миллисекунд и выполнять инициализацию очередной ячейки в его обработчике.
Прежде чем использовать в своем приложении доступ к линиям GPIO, следует убедиться в том, что они вообще могут быть доступны программным способом.
Некоторые линии GPIO могут выполнять различные функции (мультиплексироваться) в зависимости от конкретного типа модуля и его настроек - например, в модуле Q2686 линии GPIO14 и GPIO15 задействуются как сигналы CT103/TXD2 и CT104/RXD2 при работе с UART2, и использовать их под свои нужды без отключения UART2 невозможно. Разумеется, также невозможно использовать линии GPI для вывода, а линии GPO - для ввода.
Если линия GPIO доступна для работы и на ввод, и на вывод, убедитесь, что правильно сконфигурировали направление (ввод либо вывод) перед обращением к ней.
При работе с UART (RS-232) следует помнить, что принимаемые данные будут поступать в обработчик не байт за байтом, а различного размера порциями, но не более 120 байт за раз. Происходит это вследствие внутренней буферизации входного потока в ОС модуля, и логику обработки поступаемых в приложение данных следует строить с учетом этой особенности.
Большим подспорьем при отладке приложения Open AT являются так называемые трейсы (traces) - отладочные сообщения (рис. 2), выводимые при помощи специальных макросов TRACE и DEBUG с уровнем 1 в программе TMT (Target Monitoring Tool).
Рис. 2. Программа TMT
Можно включить другие уровни, получив, таким образом, возможность наблюдать за богатым внутренним миром модуля - процессами запуска и остановки таймеров, ввода-вывода, выделения и освобождения памяти и так далее. Помимо группы CUS4, куда относится вывод TRACE и DEBUG, есть и другие группы, которые могут оказаться полезными при поиске проблем в приложении. Программа TMT позволяет снимать и записывать в файл отладочные сообщения, которые могут впоследствии анализироваться специалистами Wavecom при разборе особенно сложных случаев. Для снятия трейсов может использоваться USB-интерфейс (для Q268x) или второй последовательный порт беспроводного процессора.
О «железе»
При использовании готовых (корпусированных) модемов или модулей Sierra Wireless/Wavecom следует соблюдать рекомендованные условия применения - температурный диапазон, требования к источнику питания. Если вы собираетесь использовать модуль в своем изделии, внимательно изучите документацию на конкретную модель, в частности, документ под названием CDG (Customer Design Guidelines). Этот документ дает рекомендации и общие соображения по применению модулей Sierra/Wavecom, включая конкретные примеры решений и типовые схемы узлов, в частности:
- по построению радиочастотной части,
- по разводке печатной платы,
- по подключению аналоговых (микрофон, динамик) и цифровых (UART, GPIO, клавиатура и т.д.) цепей,
- по чертежам и посадочным габаритам модуля,
- по тестированию и загрузке (обновлению) программного обеспечения.
Очень важно соблюсти все требования к источнику питания (минимальное и максимальное напряжение, возможность выдерживать значительные по силе кратковременные выбросы потребляемого тока, допустимый уровень пульсаций), так как это впоследствии избавит разработчика от плохо обнаруживаемых и на первый взгляд бессистемных сбоев в работе спроектированного устройства.
Дополнительный способ проверки правильности схемотехники - это заказ бесплатной услуги анализа схемы на Sierra Wireless. Результатом анализа является документ, в котором по пунктам перечисляются найденные ошибки, отклонения от допустимых режимов, «опасные» места с точки зрения потенциальных проблем по ЭМС. Имея огромный опыт работы с GSM-продуктами, инженеры Sierra Wireless помогут найти оптимальное решение и избежать лишних шагов при производстве прототипов изделия. Информация может быть предоставлена в виде электрических принципиальных схем и топологии печатной платы в каких-либо широко распространенных форматах: например, можно просто конвертировать чертежи в файлы PDF. Экспертный анализ выполняется в срок от нескольких дней до двух недель.
О прошивке
Время от времени Sierra Wireless выпускает обновления прошивок для своих модемов.
Как правило, это обусловлено накопившейся критической массой исправлений и полезных дополнений, достаточно большой, чтобы выпустить очередное обновление.
Не стоит гнаться за модой и ставить себе самую последнюю вышедшую прошивку. Сперва изучите список того, что было исправлено в новой версии, обычно список таких исправлений есть в прилагающемся к обновлению документе Release Notes. Если в этом списке есть и ваша проблема (или похожая на нее) - обновляйтесь. Если нет - подумайте еще раз. Вполне возможно, что вместе с исправлениями прошлых ошибок в новом обновлении могли затесаться какие-либо новые. И хотя вероятность этого крайне мала, все же оцените - стоит ли игра свеч?
Обновить прошивку в модеме очень просто - в любой программе-эмуляторе терминала с помощью команды AT+WDWL по протоколу XMODEM. Процедура обновления может занять несколько минут, при этом прерывание процесса крайне нежелательно. Впрочем, если это все же произошло, и модем перестал подавать признаки жизни, ничего страшного - модем всегда можно восстановить с помощью утилиты DwlWin.
Общие соображения
АТ-команды - это первое, с чем сталкивается любой разработчик, который ранее никогда не работал с GSM-технологиями. Несмотря на то, что полное описание AT-команд занимает сотни страниц, для начала практической работы необходимо изучить и понять, как работают два-три десятка ключевых команд. Для тех, кто только начинает знакомиться с азами передачи информации c помощью GSM, большим подспорьем может оказаться программа Expresso. Expresso автоматически обнаруживает подключенный к ПК GSM-модуль (рис. 3), позволяет «в один клик» прочитать основные параметры устройства, отправить СМС или совершить голосовой звонок.
Рис. 3. Программа Expresso
В специальном окне можно видеть все отправляемые на модуль AT-команды, связанные с тем или иным действием пользователя. Имеется также возможность набора AT-команд в обычном текстовом виде. Доступная бесплатная версия программы позволяет работать с модемами Fastrack Go и Fastrack Supreme, модулями серии Q26 и WMP100.
Если вы столкнулись с проблемой - нештатным поведением модема или модуля, либо реакцией, отличающейся от описанной в документации, то, прежде всего, попробуйте ее решить, исходя из здравого смысла и житейского опыта:
- проверьте питание, при возможности- замените источник питания на более мощный;
- проверьте антенну. Если с антенной все в порядке, убедитесь в наличии хорошего покрытия оператора сотовой связи. Можно для этой цели использовать команду AT+CSQ, или ее вариант в циклическом режиме AT+CCED=1,8. Может оказаться, что слабого сигнала базовой станции AT+ хватает на прием SMS или голосовой звонок, но для надежной работы GPRS его недостаточно- убедитесь, что SIM-карта вставлена и не требует PIN-кода (или же он введен правильно), что на счете достаточно средств и включена услуга передачи данных. Если есть возможность, попробуйте поставить другую SIM-карту, а еще лучше- SIM-карту другого оператора.
Если вы разрабатываете приложение Open AT, то:
- внимательно читайте документацию;
- изучайте примеры, входящие в пакет Open AT ;
- неплохой способ создания своего приложения- взять подходящий пример и его творчески переработать;
- ответственно относитесь к результатам, возвращаемым вызовами API Open AT (ADL и WIP);
- если вы еще не зарегистрировались на сайте http://www.sierrawireless.com, сделайте это. Форум разработчиков- неоценимый источник информации практически по всем аспектам применения продукции Sierra Wireless/Wavecom;
- еще раз проштудируйте документацию.
Если проблему устранить не удается, тогда смело обращайтесь в службу поддержки. Максимально подробно опишите, в чем именно состоит проблема, присовокупив как можно более детальное описание модема (модуля) с указанием версии прошивки, настроек и условий, при которых проблема возникла, а также действий, которые предпринимались для ее решения.
Неплохо также приложить исходный текст приложения или его проблемной части. Хорошо, если проблема будет воспроизводима, но это необязательно.
Будьте уверены, вам ответят.
Получение технической информации, заказ образцов, поставка - e-mail: wireless.vesti@compel.ru
Ваш комментарий к статье | ||||