3G-модули SIMCom: осваиваем на примерах. Часть 2

№ 2’2012
PDF версия
Во второй части статьи рассмотрены отправка/прием мультимедийных сообщений MMS, отправка/чтение почты по протоколам SMTP и POP3, обмен файлами по протоколу FTP/FTPS, работа со встроенным GPS-приемником, цифровым аудиоинтерфейсом и другие возможности 3G-модулей SIMCom

Первая часть статьи.

Отправка/прием мультимедийных сообщений MMS

Программное обеспечение 3G-модулей SIMCom позволяет отправлять и принимать мультимедийные сообщения (MMS), которые поддерживают все современные мобильные телефонные аппараты. MMS используют, когда возможностей простого сообщения SMS недостаточно и требуется передать удаленной стороне аудио- или видеоконтент. Получателем сообщений MMS может быть как мобильное устройство, так и электронный почтовый адрес. Причем получателей одного сообщения может быть несколько.

Широкий перечень соответствующих АТ-команд 3G-модулей позволяет весьма гибко настраивать параметры приема и отправки сообщений через ММS: добавлять в сообщения рисунок, аудио- и видеозапись, приложение типа SDP и/или файл определенного типа, корректировать текст тела и тему сообщения. Поддерживаемые типы файлов: txt, htm, html, jpg, jpeg, gif, png, mid, midi, wav, amr, mp3, mpeg, mpg, mp4, 3gpp и 3gp.

Тексты тела и темы сообщения могут быть представлены в форматах UCS2, UCS2 big endian или UTF8 (по умолчанию). Чтобы сменить один формат на другой, нужно перед передачей текста на модуль подать коды \xFF\xFE (2 байта), \xFE\xFF (2 байта) или \xEF\xBB\xBF (3 байта) соответственно. Так, применив кодировку UCS2, можно отправить через MMS русскоязычное сообщение.

Существуют ограничения на размер вложений и текстов:

  • тема сообщения 1–40 байт;
  • тело сообщения 1<определяет оператор> байт;
  • рисунок, аудиозапись, видео, иные приложения — 1<определяет оператор> байт;
  • до восьми файлов.

Информацию об ограничениях можно получить при помощи АТ-команды AT+CMMSDOWN=?.

Ниже приведен пример отправки MMS-сообщения с двумя фотоснимками на номер мобильного телефона и адрес электронной почты. В зависимости от выбранного оператора сотовой связи некоторые настройки, приведенные в АТ-логе, могут отличаться.

AT+CGSOCKCONT=1,»IP»,»mms»  // Настройка PDP- контекста
OK
AT+CMMSCURL=»mmsc:8002»  // Адрес MMS-центра оператора
OK
AT+CMMSPROTO=1,»10.10.10.10»,8080 // Адрес и порт прокси, протокол HTTP
OK
AT+CMMSSENDCFG=6,3,0,0,2,4 // Параметры MMS
OK
AT+CMMSEDIT=1 // Начать редактирование сообщения
OK
AT+CMMSDOWN=»TITLE»,16 // Задать тему сообщения
>MT-System SIMCOM
OK
AT+CMMSDOWN=»TEXT»,57,»MMS_TEXT.txt» // Задать тело сообщения
>This is the test MMS message from 3G module for MT-System
OK
AT+CMMSDOWN=»FILE»,1,»19800106_012328.jpg» // Вложить рисунок
OK
AT+CMMSDOWN=»FILE»,1,»19800106_012403.jpg» // Вложить второй рисунок
OK
AT+CMMSRECP=»XXXXXXXXXXX» // Мобильный номер получателя
OK
AT+CMMSRECP=batuev.b@mtgroup.ru // E-mail адрес получателя
OK
AT+CMMSSAVE=1 // Сохранить сообщение в ячейке 1
+CMMSSAVE:1
OK
AT+CMMSSEND // Отправить сообщение
OK
+CMMSSEND: 0 // Сообщение отправлено

При приеме MMS модуль подает в порт URC-сообщение, в котором содержится URL-адрес нового сообщения в MMS-центре. Пример того, как реализовать прием фотографии при помощи MMS с сохранением его в файловую систему модуля, показан ниже.

AT+CGSOCKCONT=1,»IP»,»mms»
OK
AT+CMMSCURL=»mmsc:8002»
OK
AT+CMMSPROTO=1,»10.10.10.10»,8080
OK
AT+CMMSSENDCFG=6,3,0,0,2,4
OK
+WAP_PUSH_MMS: «+7XXXXXXXXXX»,»MTECH57904839-1»,»http://mmsi:8002/1795050047»,»11/12/15,10:34:21+16»,0,17717
+WAP_PUSH: 0,,153
07919712999090F044088177777797000411215101431261880605040B8423F0F806266170706C69636174696F6E2F766E642E7761702E6D6D732D6D65737361676500AF848DD8C3938C82984D5445434835373930343833392D31008D908918802B37393231343430313837392F545950453D504C4D4E008A808E02453588048102010383687474703A2F2F6D6D73693A383030322F3137393530353030343700
AT+CMMSEDIT=0 // Отключить режим редактирования
OK
AT+CMMSRECV=http://mmsi:8002/1795050047 // Принять MMS-сообщение
OK
+CMMSRECV: 0
AT+CMMSSAVE=0 // Сохранить сообщение в ячейке 0
+CMMSSAVE:0
OK
AT+CMMSVIEW=0 // Просмотреть информацию
о сообщении
+CMMSVIEW:0,»+7XXXXXXXX»,»+7XXXXXXXXXX»,,,»2011-12-15 10:34:19»,»»,17601
0,»SP_A0059.jpg»,7,17096
1,»SMIL.TXT»,30,369
OK
AT+FSCD? // Текущая папка в файловой системе
+FSCD: C:/
OK
AT+CMMSSNATCH=0,0,»SP_A0059.jpg» // Копировать файл в папку C:/ модуля
OK
AT+FSLS // Просмотреть сохраненные файлы
+FSLS: FILES:
SP_A0059.jpg
OK

В этом примере файл просто копируется в файловую систему из внутренней буферной ячейки модуля. Содержимое сообщения MMS может также выводиться в бинарном виде в последовательный порт при помощи АТ-команды AT+CMMSREAD=<index>, где <index> — индекс файла в MMS-сообщении (см. ответ +CMMSVIEW).

AT+CMMSREAD=0 // Прочитать файл с индексом 0
+CMSS:»SP_A0059.jpg»,17096 // Имя и размер файла
 // Вывод содержимого файла
OK

Отправка/чтение почты (SMTP, POP3)

3G-модули поддерживают протоколы SMTP (Simple Mail Transfer Protocol, простой протокол передачи почты) и POP3 (Post Office Protocol, v3, почтовый протокол для осуществления динамического доступа к почтовому ящику). Применяя несложный набор АТ-команд, при помощи 3G-модуля можно принимать и отправлять электронную почту при условии наличия регистрации в сети сотового оператора.

Отправляемые письма могут иметь до 10 вложений (файлов) суммарным объемом до 10 Мбайт. Поддерживается три типа адресата: простой адресат, адресат в копии и в скрытой копии. Одному письму возможно задавать до пяти адресатов каждого типа. АТ-лог для отправки электронного письма на адрес simcom@mt-system.ru:

AT+CGSOCKCONT=1,»IP»,»internet» // Настройки PDP-контекста
OK
AT+SMTPSRV=»smtp.rambler.ru»,25 // Настройка почтового сервера
OK
AT+SMTPAUTH=1,»xxx»,»XXX» // Логин и пароль почтового ящика
OK
AT+SMTPFROM=»xxx@rambler.ru»,»some one» // Поле «От кого»
OK
AT+SMTPRCPT=0,0,»simcom@mt-system.ru»,»simcom» // Адрес получателя
OK
AT+SMTPSUB=»Test message» // Поле «Тема»
OK
AT+SMTPBODY=»Message body» // Текст письма
OK
AT+FSCD=C:/Picture // Текущая папка
+FSCD: C:/Picture/
OK
AT+FSLS // Файлы в текущей папке
+FSLS: FILES:
19800106_000728.jpg
19800106_001157.jpg
OK
AT+SMTPFILE=1,»19800106_000728.jpg» // Приложить файл к письму
OK
AT+SMTPSEND // Инициировать отсылку
+SMTP: OK // Связь с сервером установлена
OK
+SMTP: SUCCESS // Письмо отправлено удачно

Прием электронного письма с почтового сервера, как и его отправка, также реализуется посредством небольшого набора АТ-команд:

AT+CGSOCKCONT=1,»IP»,»internet» // Настройка PDP-контекста
OK
AT+POP3SRV=»pop3.rambler.ru»,»xxx»,»XXX»,110// Настройка почтового сервера
OK
AT+POP3IN // Открытие сессии
+POP3: SUCCESS
OK
AT+POP3NUM // Количество писем на сервере
+POP3: 1410, 336769312
OK
AT+POP3LIST=1410 // Размер письма номер 1410
+POP3: 1410, 42317
OK
AT+POP3HDR=1410 // Прочитать заголовок письма
From:<batuev.b@mt-system.ru>
Date: Thu, 15 Dec 2011 16:57:38 +0400
Subject: test message for 3G module
OK
AT+FSLOCA=0 // Сохранять письмо на диск C:/
OK
AT+POP3GET=1410,3 // Скачать письмо номер 1410
OK
+POP3: SUCCESS
C:/Email/800106042650/, EMAIL000.TXT
AT+POP3READ // Прочитать письмо
From:< batuev.b@mt-system.ru >
To:<xxx@rambler.ru>
Subject: test message for 3G module
Date: Thu, 15 Dec 2011 16:57:38 +0400
The body of message
OK
AT+POP3OUT // Закончить сессию
+POP3: SUCCESS
OK
AT+FSCD=C:/Email/800106042650 // Перейти к папке с письмом
+FSCD: C:/Email/800106042650/
OK
AT+FSLS // Папка с письмом и вложениями
+FSLS: FILES:
800106042650.eml
Antenna.JPG
EMAIL000.TXT
OK

Наличие у 3G-модулей SIMCom встроенного стека протоколов SMTP и POP3 может значительно упростить и ускорить процесс разработки сложной системы, где требуются передача разноформатных файлов и простой, доступный интерфейс пользователя. Пользователь такой системы может осуществлять управление сложной сетью при помощи любого компьютера или смартфона, имеющего доступ в Интернет, и получать отчеты о работе системы на электронный ящик в форме текста, звуковых файлов, фото, видео или файла любого другого формата.

 

Обмен файлами по протоколу FTP/FTPS

В системах удаленного сбора и архивации данных на едином сервере удобно применять стандартный протокол передачи файлов FTP. 3G-модули SIMCom поддерживают протоколы FTP и FTPS (или FTP+SSL). Последний является защищенной версией протокола FTP, в которой передача данных и команд происходит по шифрованному каналу протокола SSL. Это гарантирует безопасную передачу данных между 3G-модулем и FTPS-сервером, что немаловажно для систем с высокими требованиями к безопасности информационного канала.

Соответствующие АТ-команды модулей предоставляют набор инструментов для полноценной работы с удаленным FTP/FTPS-сервером. При помощи АТ-команд можно задавать адрес FTP-сервера, порт, режим (активный/пассивный), тип (ASCII/binary), логин и пароль, а также осуществлять операции скачивания/загрузки файла на FTP-сервер, перечисления файлов и папок на FTP-сервере.

Файл с FTP-сервера может быть загружен с сохранением в файловую систему модуля или выведен напрямую в его последовательный порт. В последнем случае рекомендуется позаботиться о том, чтобы никакие асинхронные URC-сообщения не поступали на последовательный порт, через который выводится содержимое файла с FTP-сервера. В противном случае целостность файла может нарушиться. Чтобы избежать этого, нужно предварительно применить команду AT+CATR (см. систему команд соответствующего модуля).

Также имеется возможность загрузить на FTP-сервер файл, находящийся в файловой системе модуля, или файл, полученный по последовательному порту. Система команд для работы с FTPS-сервером также позволяет удаленно создавать/удалять директории и удалять файлы.

Ниже приведен простой пример загрузки файла из файловой системы модуля на FTP-сервер с последующей его загрузкой и выводом в последовательный порт модуля.

AT+CFTPSERV=»simcomftp.com» // FTP-сервер
OK
AT+CFTPPORT=21 // FTP-порт
OK
AT+CFTPUN=»USER» // Логин
OK
AT+CFTPPW=»PASSWORD» // Пароль
OK
AT+CFTPMODE=1 // Пассивный режим
OK
AT+CFTPTYPE=I // Бинарный тип
OK
AT+CGSOCKCONT=1,»IP»,»internet» // Настройка PDP-контекста
OK
AT+FSCD=C:/Picture // Задать текущую директорию
+FSCD: C:/Picture/
OK
AT+FSLS // Список доступных файлов
+FSLS: FILES:
19800106_000728.jpg
19800106_001157.jpg
OK
AT+CFTPPUTFILE=»/19800106_000728.jpg»,1 // Загрузить на FTP-сервер файл из папки “C:/Picture”
OK
+CFTPPUTFILE: 0 // Удачное окончание выгрузки файла
AT+CFTPGET=»/SIM5215&SIM5216/SIM5215_Specification_V1102.pdf» // Скачать с FTP-сервера
OK
+CFTPGET: DATA,1460 // Вывод содержимого файла в последовательный порт
+CFTPGETFILE: 0 // Удачное окончание скачивания файла

 

Встроенный GPS-приемник

Аппаратно-программные ресурсы 3G-модулей обладают широким набором коммуникационных и мультимедийных функций, что значительно упрощает разработку и стоимость конечного изделия. В случае навигационных решений, где требуется наличие GPS-приемника, могут использоваться модули SIM5218 и SIM5320, в которых навигационный блок GPS-интегрирован в чипсет. Блок GPS в модулях синхронизирован с работой основных функций и для управления имеет свой набор АТ-команд.

Несмотря на то, что GPS не является основной функцией 3G-модулей, GPS-блок имеет приемлемые характеристики, соответствующие современному уровню. Характеристики GPS-блоков модулей SIM5218 и SIM5320 приведены в таблице 1.

Таблица 1. Характеристики GPS-блоков модулей SIM5218 и SIM5320

Характеристика

SIM5218

SIM5320

Количество каналов

12

12

Чувствительность слежения, дБм

–157

–156

Чувствительность захвата (холодный старт), дБм

–144

–145

Точность, м (CEP50)

2

1,5

TTFF, с

Горячий старт

1

1

Холодный старт

35

40

Период обновления координат, с

1

1

Формат сообщений

NMEA-0183

NMEA-0183

Потребление тока (WCDMA/GSM Sleep Mode), мА

100

80

Типы поддерживаемых антенн

пассивная/активная

Встроенный источник для питания активной антенны

2,7 В

нет

Для работы блока GPS требуется лишь подключить спутниковую GPS-антенну к антенному интерфейсу модуля. SIM5320 может работать как с активными, так и с пассивными антеннами. Однако для работы модуля с активными антеннами требуется внешний источник питания. Его подключение удобно тем, что имеется свобода выбора напряжения питания антенны — как известно, коэффициент усиления активной GPS-антенны зависит от напряжения питания.

На рис. 1 показаны примеры схем подключения пассивной и активной GPS-антенны. Согласующая цепочка П-типа (C1, L1 и L2) опциональна и не требуется при хорошем согласовании с антенной 50 Ом. Питание на активную антенну подается через фильтрующий элемент L3, при этом обязателен разделительный конденсатор C2, чтобы оградить ВЧ-вход модуля от постоянной составляющей тока питания антенны.

Схемы подключения GPS-антенны к модулю SIM5320

Рис. 1. Схемы подключения GPS-антенны к модулю SIM5320:
а) пассивная антенна;
б) активная антенна

SIM5218 имеет встроенную цепь питания активной антенны на напряжение 2,7 В. К этому модулю активную или пассивную антенну можно подключить напрямую, без разделительного конденсатора C2 и фильтрующего элемента L3.

Навигационные решения модуль предоставляет в форме стандартных NMEA-сообщений. В зависимости от настроек они могут выводиться на порт USB по профилю SimTech HS-USB NMEA 9000 (рис. 3 в [1]) или на последовательный порт UART-модуля. Выбор порта для вывода NMEA-сообщений осуществляется АТ-командой:

AT+CGPSSWITCH=1 // Вывод NMEA-сообщений через порт USB
OK

или

AT+CGPSSWITCH=2 // Вывод NMEA-сообщений через порт UART
OK
Настройка вступит в силу после перезагрузки модуля. Чтобы начался вывод NMEA-сообщений в выбранный порт, нужно включить блок GPS:
AT+CGPS=1 // Включить блок GPS
OK
После того как блок GPS будет включен, на выходе выбранного порта можно наблюдать поток NMEA-сообщений:
$GPGSV,4,1,16,04,19,045,46,23,05,005,42,10,18,068,41,02,50,091,37*7B
$GPGSV,4,2,16,05,04,118,35,31,37,299,33,25,76,213,27,12,49,132,*7E
$GPGSV,4,3,16,14,00,250,,29,48,236,,32,,,,24,,,*7C
$GPGSV,4,4,16,18,,,,22,,,,11,,,,17,,,*71
$GPGGA,132909.9,5953.835260,N,03015.160448,E,1,06,1.3,23.1,M,0,M,,*47
$GPVTG,NaN,T,,M,0.0,N,0.0,K,A*42
$GPRMC,132909.9,A,5953.835260,N,03015.160448,E,0.0,,110811,,,A*49
$GPGSA,A,3,02,04,05,10,23,31,,,,,,,2.2,1.3,1.8*38
$PSTIS,*61

По умолчанию после перезагрузки модуля блок GPS находится в выключенном состоянии, и для его включения необходимо повторно подать команду AT+CGPS=1. Однако блок GPS может включаться не только по АТ-команде, но и в автоматическом режиме, сразу после включения модуля. Для этого однажды перед выключением нужно подать команду AT+CGPSAUTO=1.

Не всегда в приложениях применяется USB-интерфейс, и вся работа с 3G-модулем ведется только через порт UART. В этом случае текущие координаты можно получать при помощи АТ-команды:

AT+CGPSINFO // Получить текущие координаты (формат GPRMC)
+CGPSINFO:5953.833914,N,03015.157845,E,110811,132538.9,16.3,0.0,0
OK

 

Управление аппаратными интерфейсами

3G-модули SIMCom имеют набор аппаратных интерфейсов, каждый из которых может быть использован для управления или контроля внешних элементов. В таблице 2 приведен перечень аппаратных интерфейсов 3G-модулей.

Таблица 2. Аппаратные интерфейсы 3G-модулей

Интерфейс

SIM5215

SIM5216

SIM5320

SIM5218

GPIO

In, Out, Interrupt

In, Out, Interrupt

In, Out, Interrupt

In, Out, Interrupt

I2C

1

1

1

1

SPI

Нет

Нет

1

Нет

ADC, бит

1×8

1×8

2×12

1×8

Регулируемый LDO-выход

1,5–3,05 В; 250 мА

Токовый выход

Нет

Нет

0,5–5 В; 150 мА

Нет

Как видно из таблицы 2, все 3G-модули поддерживают интерфейс порта ввода/вывода. Каждый модуль поддерживает вывод и чтение логических уровней, а также формирование прерывания по изменению состояния входного сигнала.

Ниже приведен пример АТ-лога для чтения состояния ножки GPIO2 и вывода лог-уровней на ножку GPIO3. Отметим, что состояние выходов может сохраняться после перезагрузки модуля.

AT+CGDRT=2,0,0 // Настроить GPIO2 как вход
OK
AT+CGGETV=2 // Прочитать состояние ножки GPIO2
+CGGETV: 0
OK
AT+ CGDRT=3,1,0 // Настроить GPIO3 как выход
OK
AT+CGSETV=3,1,1 // Вывести на GPIO3 лог-единицу с сохранением состояния после перезагрузки
OK
AT+CGSETV=3,0,1 // Вывести на GPIO3 лог-ноль с сохранением состояния после перезагрузки
OK

Функция формирования событий реализуется по прерыванию на ножке GPIO0 порта ввода/вывода. Прерывание настраивается при помощи одной АТ-команды. При наступлении соответствующего изменения на ножке GPIO в последовательный порт генерируется сообщение. Ниже приведен пример того, как настроить прерывание по спадающему и нарастающему фронту.

AT+CGPIO=1,0,0 // Настроить прерывание по спадающему фронту
OK
GPIO[0] Interrupt Alarm!value:0
AT+CGPIO=1,1,0 // Настроить прерывание по нарастающему фронту
OK
GPIO[0] Interrupt Alarm!value:1

Во всех 3G-модулях выведен последовательный интерфейс I2C, а в SIM5320 дополнительно и SPI, работа с которыми предельно проста. Они могут применяться для управления внешними устройствами, такими, например, как память, гироскоп, ЖК-дисплей и проч.

Для управления интерфейсом I2C выделено всего две команды — чтение и запись регистров внешнего устройства (см. в системе команд +CRIIC и +CWIIC). Скорость тактирования — до 400 кбит. Линии тактирования SCL и данных SDA подтянуты внутри модулей к 2,6 В через сопротивление 2,2 кОм, поэтому дополнительные резисторы снаружи модуля не требуются.

В модуле SIM5320, в отличие от SIM5215/16/18, имеется еще один последовательный интерфейс — SPI с максимальной частотой тактирования 26 МГц. Модуль исполняет роль мастера, т. е. инициирует все транзакции всегда первым. Логические уровни шины (MOSI, MISO, CLK, CS) — 1,8 В,
поэтому для сопряжения с ведомыми устройствами формата 3,3 В потребуется высокоскоростная цепь согласования. Работа SPI-интерфейса регулируется набором команд, приведенных ниже:

AT+CSPISETCLK=1,0,1 // Задать алгоритм тактирования
OK
AT+CSPISETCS=1,0 // Настройка CS - Chip Select
OK
AT+CSPISETF=960000,10000000,0 // Настройки частоты тактирования CLK
OK
AT+CSPISETPARA=16,0,1 // Настройки транзакций
OK
AT+CSPIW=0x0F,0x8624,2 // Запись двух байт в регистр по адресу 0x0F
OK
AT+CSPIR=0x0F,2 // Чтение двух байт из регистра по адресу 0x0F
+CSPIR: 0x8624
OK

Наличие встроенного аналого-цифрового преобразователя во всех 3G-модулях может снять необходимость установки внешнего АЦП, удешевить и/или упростить конечное изделие в целом. В модулях SIM521/16/18 имеется по одному 8-битному АЦП, а в SIM5320 — два 12-битных АЦП, характеристики которых приведены в таблице 3.

Таблица 3. Характеристики АЦП в 3G-модулях SIM5ХXX

Параметр

SIM5215/16

SIM5320

SIM5218

Разрешение, бит

8

12

8

Диф. нелинейность, МЗБ

–4…+4

–0,75…+0,75

Интегральная нелинейность, МЗБ

–8…+8

–1,5…+1,5

Погрешность преобразования, МЗБ

–2,5…+2,5

–2,5…+2,5

Погрешность смещения, МЗБ

–4..+4

–3…+3

Входное напряжение, В

0–2,2

0–2,65

Входное сопротивление, кОм

2

1

Входная емкость, пФ

53

12

Время включения, мкс

9,6–19,2

5

На рис. 2 приведен пример схемы включения АЦП для измерения температуры при помощи терморезистора в качестве термочувствительного элемента.

Схема включения АЦП для измерения температуры

Рис. 2. Схема включения АЦП для измерения температуры

В этом примере используется некое опорное напряжение Vопорное, которое, кстати, можно получить непосредственно с отдельного вывода 3G-модуля VREG_AUX. Этот вывод обеспечивает напряжение в диапазоне 1,5–3,05 В с допустимым током нагрузки до 250 мА у SIM5215/16 и SIM5320, и до 150мА — у SIM5218. Управление напряжением VREG_AUX осуществляется при помощи двух АТ-команд. Ниже приведен пример того, как это сделать.

AT+CVAUXS=1 // Открыть вывод VREG_AUX
OK
AT+CVAUXV=45 // Задать напряжение 2,25 В (45×50 мВ)
OK

Также вывод VREG_AUX можно использовать для питания светодиодной подсветки с регулированием яркости свечения. Пример схемы подключения светодиодной нагрузки показан на рис. 3.

Схема включения VREG_AUX для питания светодиодной подсветки

Рис. 3. Схема включения VREG_AUX для питания светодиодной подсветки

Эта схема справедлива, если диапазон выходного напряжения будет достаточен для обеспечения рабочих токов. Для питания подсветки белого цвета будет правильнее применить токовый выход, который поддерживается модулем SIM5320. Он требует внешнего питающего напряжения 0,5–5 В, выходной ток задается АТ-командой AT+CLEDITST (см. систему команд SIM5320) в диапазоне 0–150 мА с градацией в 15 уровней. Схема подключения токового выхода приведена на рис. 4.

Схема включения токового выхода

Рис. 4. Схема включения токового выхода

Пользуясь аппаратными возможностями 3G-модулей SIMCom, можно значительно ускорить и упростить процесс разработки, кроме того, это всегда путь к уменьшению количества внешних электронных компонентов, что ведет к снижению стоимости конечного изделия и повышению его конкурентоспособности.

 

Цифровой аудиоинтерфейс

Все 3G-модули SIMCom имеют аналоговые аудиоинтерфейсы для подключения динамика и микрофона. Одновременно с этим в перечне внешних интерфейсов имеется цифровой аудиоинтерфейс PCM (Pulse Code Modulation, импульсно-кодовая модуляция). Интерфейс PCM может применяться для передачи оцифрованного аналогового сигнала во время голосового соединения с удаленным абонентом.

Поддерживаемые форматы кодировки и их описание приведены в таблице 4.

Таблица 4. Характеристики PCM-интерфейса

Режим PCM

Дискретизация

Частота тактирования

Режим

Формат

Слот

Auxiliary

8 кГц

128 кГц

Master

A-law(8 бит); u-law(8 бит); linear(16 бит)

0

Primary

8 кГц

2,048 МГц

Master/Slave

0–15

PCM в 3G-модулях реализован в виде аппаратного и программного интерфейса. Аппаратный выведен на ножки модуля (см. полное описание соответствующего модуля); он предназначен для подключения к внешнему кодеку или устройству, поддерживающему соответствующий формат кодировки. Например, на рис. 5 приведена схема совместной работы SIM5320 и Bluetooth-модуля со встроенной антенной производства Bluegiga WT11i. Модуль WT11i поддерживает профиль аудиогарнитуры.

Подключение аудиогарнитуры Bluetooth к 3G-модулю

Рис. 5. Подключение аудиогарнитуры Bluetooth к 3G-модулю

Приведем пример АТ-лога для настройки аппаратного PCM-интерфейса для работы с внешним аудиокодеком:

AT+CSDVC=4 // Выбрать аудиоканал (PCM)
OK
AT+CPCM=1,0 // Переключить GPIO в режим PCM с заданным режимом
OK
AT+CPCMFMT=0 // Выбрать формат u-law
OK

Программный PCM-интерфейс подразумевает передачу потока PCM-данных не через аппаратный интерфейс, а через последовательный интерфейс USB в профиле виртуального порта SimTech HS-USB Diagnostics 9000 (для SIM5320 и SIM5218) или SimTech HS-USB NMEA 9000 (для SIM5215/16). Так, можно реализовать голосовую диспетчерскую связь с применением компьютера или ноутбука (рис. 6), подключив 3G-модуль по стандартному USB-интерфейсу. При этом модуль может одновременно выступать в качестве модема для выхода в Интернет при помощи профиля стандартного модема, как это было показано ранее.

Передача голосового потока по USB-интерфейсу

Рис. 6. Передача голосового потока по USB-интерфейсу

На стороне компьютера понадобится лишь специальное программное обеспечение, которое будет производить кодирование и декодирование голосового потока.

Пример АТ-лога для установления голосового соединения с применением программного PCM-интерфейса:

AT+DSWITCH=1 // Переключить порт в режим данных
OK
ATDXXXXXXXXXX // Установить голосовую связь
OK
VOICE CALL: BEGIN // Голосовая связь установлена
AT+CPCMREG=1 // Разрешить передачу голосового потока в порт
OK
VOICE CALL: END: 000030 // Голосовая связь прекращена
NO CARRIER
AT+CPCMREG=0 // Остановить передачу голосового потока в порт
OK
AT+DSWITCH=0 // Переключить порт в диагностический режим
OK

 

Lua: программирование 3G-модулей

Lua — мощный и простой язык программирования, созданный в 1993 г. группой инженеров бразильского университета Pontifical Catholic University of Rio de Janeiro. По синтаксису он очень напоминает C/C++. Независимые исследования показали, что Lua является самым быстродействующим среди интерпретируемых (скриптовых) языков программирования.

Модули SIM5215/16/18 могут исполнять сложные пользовательские скрипты Lua размером до 3,5 Мбайт, чего вполне достаточно, чтобы реализовать внушительный функционал. Lua-скрипты должны загружаться во внутреннюю память модуля (ветка C:/) в виде текстового файла с расширением *.lua. Программный код запускается по АТ-команде AT+CSCRIPTSTART. Для этого потребуется внешний микроконтроллер. Если основную часть программного кода возложить на 3G-модуль, то можно ограничиться дешевым микроконтроллером с минимальными ресурсами. Однако если файлу скрипта присвоить имя autorun.lua, то программный код исполняется без АТ-команды. В этом случае внешний микроконтроллер может вообще не понадобиться.

Для задач, где важно высокое быстродействие исполняемого кода, можно производить компиляцию файлов *.lua при помощи команды AT+CSCRIPTCL. На выходе получится бинарный файл формата *.out, который и можно будет запустить к исполнению командой AT+CSCRIPTSTART.

Программный код может обрабатывать различные события с задаваемым приоритетом, в том числе по таймеру (до 10 таймеров). Управлять работой модуля из-под Lua-скрипта можно как при помощи АТ-команд, так и при помощи API-функций, встроенных в модуль.

Кроме базовых API (настройка приоритетов, работа с памятью и проч.), 3G-модули дополнительно поддерживают следующие встроенные библиотеки:

  • SIO — самая главная. Является мостом между пользовательским кодом и модулем. Позволяет посылать модулю AT-команды и принимать от него ответы.
  • GPIO — для прямой работы с портами ввода/вывода без применения АТ-команд.
  • UART — для прямой работы с последовательным портом UART.
  • I2C — для работы с шиной I2C в качестве мастера.
  • AUDIO — для управления аудиоинтерфейсом модуля.
  • GPS — для работы с навигационным блоком GPS в модулях SIM5320 и SIM5218.
  • NET — для опроса состояния сети.
  • FTP — для работы с удаленным FTP-сервером.
  • ADC — для прямой работы с АЦП.
  • PCM — для настройки GPIO-портов в режим PCM.
  • BIT — библиотека побитовых операций.
  • ATCTL — для приема и передачи данных по UART или USB.

Для написания кода можно воспользоваться свободно распространяемым текстовым редактором NotePad++, который распознает грамматику языка Lua (рис. 7).

Настройка текстового редактора NotePad++ для работы с Lua

Рис. 7. Настройка текстового редактора NotePad++ для работы с Lua

На рис. 8 приведен пример Lua-кода для управления портами ввода/вывода.

Пример Lua-кода для управления портами GPIO

Рис. 8. Пример Lua-кода для управления портами GPIO

Отметим, что код не зависит от аппаратного исполнения модуля и может быть портирован c одного модуля на другой, например с SIM5215 на SIM5218 и наоборот. Это дополнительное преимущество линейки модулей SIM52XX к тому, что они имеют одинаковый системный разъем и распиновку. Таким образом, пользователь может провести разработку на низкоскоростном модуле SIM5215 и, при необходимости, заменить его в будущем на более развитой модуль SIM5218, затратив при этом минимум времени и средств.

 

«ЭРА-ГЛОНАСС»/eCALL

Система «ЭРА-ГЛОНАСС» — глобальный российский проект, аналог европейской системы eCall, призванный сократить число жертв ДТП благодаря быстрому оповещению спасательных служб о фактах аварий на дорогах (рис. 9). Предположительно «ЭРА-ГЛОНАСС» позволит сократить время реагирования на аварии со стороны служб спасения на 30%. Для реализации этого проекта необходимо, чтобы автомобили были оснащены специальным техническим средством — терминалом «ЭРА-ГЛОНАСС», который может интегрироваться в состав автомобиля на этапе его производства или как дополнительное оборудование на сервисе у официального дилера автопроизводителя.

Принцип работы системы «ЭРА-ГЛОНАСС»

Рис. 9. Принцип работы системы «ЭРА-ГЛОНАСС»

Оператором системы является федеральный сетевой оператор ОАО «Навигационно-Информационные Системы» (НИС). Старт проекта «ЭРА-ГЛОНАСС» назначен на конец 2013 г.

Как работает система? Наличие в автомобиле терминала «ЭРА-ГЛОНАСС» при возникновении ДТП обеспечит исполнение «золотого правила одного часа» за счет мгновенной передачи координат места происшествия и условий аварии (вид транспорта, тип топлива, количество пассажиров и проч.). При возникновении ДТП данные
о происшествии в автоматическом или ручном режиме передаются по голосовому каналу при помощи тонального модема (in-band modem) на номер экстренной службы спасения 112. За мгновения при помощи несложного набора АТ-команд 3G-модуль SIM5320 осуществляет формирование минимального набора данных (МНД или Minimal Set of Data, MSD) и дозвон до диспетчера экстренной службы с передачей МНД.

AT+CECALLCFG=1,4,2,»WM9VDSVDSYA123456»,12,1,1,1,1 // Настроить МНД
OK
AT+CECALLPOS=»48.300333»,»11.617367»  // Задать координату
OK
AT+CECALLTIME=0 // Текущее время — системное
OK
AT+CECALLS=112,1,0 // Инициировать звонок
OK
AT+CECALLTRIG // Отправить МНД
+ECALL:IVS RX
OK

 

Обновление программного обеспечения 3G-модулей

SIMCom всегда внимательно относится к рекомендациям и пожеланиям, исходящим от разработчиков GSM-оборудования. В связи с этим программное обеспечение (ПО) постоянно расширяется и доводится до совершенства. Так, чтобы протестировать нововведения, разработчику может потребоваться обновить программное обеспечение модуля, уже у него имеющегося.

В 3G-модулях SIMCom на выбор разработчика реализовано два способа обновления ПО:

  • по интерфейсу USB (требуется подключение к ПК);
  • при помощи SD-карты памяти, если поддерживается текущее ПО и имеется интерфейс SD/MMC-карты.

Для того чтобы обновить ПО модуля по интерфейсу USB, на ПК должны быть предварительно установлены USB-драйвера. Также потребуется специальная программа для ПК QDL версии V3.0 или выше.

После включения модуля, подсоединенного к ПК через USB-интерфейс, в диспетчере устройств должно определиться несколько устройств (рис. 3, [1]). После запуска программы QDL_V3.0.exe окно программы будет выглядеть так, как показано на рис. 10.

Программа для обновления ПО 3G-модулей SIMCom

Рис. 10. Программа для обновления ПО 3G-модулей SIMCom

Перед нажатием кнопки Start нужно указать путь к файлам ПО на жестком диске ПК, нажав кнопку Browse. Обновление ПО будет завершено в течение 2–3 минут, и на экране ПК отобразится информационное окно (рис. 11).

Сообщение об окончании процесса обновления ПО модуля

Рис. 11. Сообщение об окончании процесса обновления ПО модуля

Второй способ обновления ПО — с использованием SD-карты памяти с записанными программными файлами. Для этого нужно иметь возможность контролировать ножки GPIO0, GPIO1, POWER_ON/RESET. Пример схемы для реализации такого способа обновления ПО приведен на рис. 12.

Схема подключения модуля для реализации обновления ПО при помощи SD-карты памяти

Рис. 12. Схема подключения модуля для реализации обновления ПО при помощи SD-карты памяти

Алгоритм обновления ПО следующий:

  • вставить SD-карту памяти с файлами ПО в SD-слот;
  • шунтировать ножку GPIO0 модуля на «землю»;
  • перезагрузить модуль, выключив и включив его сигналом POWER_ON, или сбросить сигналом RESET;
  • если уровень сигнала GPOI1 высокий, то освободить ножку GPIO0;
  • процесс обновления ПО начнется и закончится, когда сигнал GPIO1 перейдет в низкий уровень;
  • модуль автоматически перезагрузится.

Чтобы защитить модуль от случайного бесконечного перепрограммирования, файлы ПО автоматически удаляются с SD-карты при завершении процесса обновления.

Этот способ интересен тем, что он позволяет с легкостью произвести массовое удаленное обновление ПО 3G-модулей. Например, есть необходимость в обновлении программного обеспечения модулей в 10 конечных устройствах. Новое ПО может быть загружено при помощи АТ-команд модуля с почтового сервера по протоколу POP3 и записано на внешнюю SD-карту памяти. Далее хост, управляющий модулем, должен всего лишь установить ножку GPIO0 в логический ноль, перезагрузить 3G-модуль и освободить ножку GPIO0 (Z-состояние).

 

Вывод

В двух частях данной статьи мы рассмотрели подавляющее большинство программно-аппаратных возможностей 3G-модулей SIMCom и показали, что их использование позволяет быстро разработать сложное функциональное устройство с минимальными внешними компонентами.

Литература
  1. Б. Батуев. 3G-модули SIMCom: осваиваем на примерах. Часть 1 // Беспроводные технологии. 2012. № 1.
  2. http://www.mt-system.ru/catalog/dokumentacija-na-gsm-modemy-simcom
  3. http://www.mt-system.ru/catalog/linejka-modemov-i-terminalov
  4. http://www.mt-system.ru/catalog/otladochnye-i-demonstracionnye-sredstva
  5. http://www.mt-system.ru/catalog/besprovodnye-reshenija/bluetooth/kompanija-bluegiga/bluetooth-modul-wt11i
  6. http://www.lua.org
  7. http://www.nis-glonass.ru/projects/era_glonass/

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

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