Функционал Bluetooth в GSM-модулях серии SIM800x
В сегменте М2М-решений компания SIMCom Wireless Solutions, один из мировых лидеров в области разработки и производства модулей GSM-GPS/ГЛОНАСС, 3G и LTE, в настоящее время предлагает уже завоевавшую популярность серию SIM800x, представляющую собой хорошо продуманную линейку 2G-модулей. Помимо достаточно внушительного традиционного функционала, эта линейка имеет еще и поддержку Bluetooth 3.0 на уровне чипсета. Наличие Bluetooth — основное отличие новой серии модулей от линейки SIM900x, жизненный цикл которой заканчивается в 2016 г. У модулей 800-й серии имеются и другие функциональные отличия, обусловленные использованием современных чипсетов от компании Media Tek Inc., но появление поддержки Bluetooth — наиболее значимое из них.
Bluetooth
Спецификации Bluetooth входят в протокол передачи данных стандарта IEEE 802.15.1, первые версии которого были созданы в 2002 г., и находят применение во множестве уже привычных нам изделий, от беспроводных гарнитур и клавиатур до телеметрии сложных многофункциональных устройств, состоящих из множества автономных узлов и блоков, состояние каждого из которых необходимо оперативно контролировать. В частном случае это могут быть мобильные телефоны, планшеты, компьютеры, ноутбуки и даже кондиционеры и холодильники. Для этой технологии характерна высокая совместимость при организации беспроводных соединений между сопрягаемыми устройствами. При этом модульные решения в значительной степени экономят время и средства, затрачиваемые на разработку законченного изделия.
Протокол Bluetooth в модулях серии SIM800x реализован до уровня приложений. Для работы с ними пользователю предоставляется простой и гибкий интерфейс в виде АТ-команд. Разработчик может управлять реализованными Bluetooth-приложениями, не вникая глубоко в их технологические нюансы и принцип работы. При этом работа над реализацией аппаратной части сводится к простой «двухходовке»: подключи антенну и подай питание, и модуль (требуемый функционал) будет готов к работе.
Bluetooth-протоколы и профили модулей 800-й серии
Bluetooth имеет многоуровневую архитектуру, состоящую из основного протокола, протоколов замены кабеля, протоколов управления телефонией и заимствованных протоколов. Фактически, спецификация Bluetooth определяет только пять уровней: физический (RF), базовый (baseband, комбинация аппаратных и программных функций), протоколы управления каналом LMP (Link Management Protocol — аутентификация, инициализация соединений и шифрование) и L2CAP (Logical Link Control and Adaptation Protocol — отвечает за процедуры формирования и сборки пакетов), сетевой уровень и уровень приложений (профилей). Профилем называется набор возможностей и/или функций устройства, реализуемых посредством Bluetooth. Доступ клиента к устройству предоставляется на уровне профилей (рис. 1).
К популярным профилям, наиболее широко востребованным в самых различных приложениях и поддерживаемым (или поддержка которых может быть реализована) модулями 800-й серии, относятся:
- SPP (Serial Port Profile) — профиль, позволяющий осуществить замену стандартного порта беспроводным. SPP является базовым для DUN, FAX, HSP и AVRCP.
- OPP (Object Push Profile) — базовый профиль передачи данных с инициацией со стороны отправляющего устройства («клиент»), предоставляющий возможность отправки и получения изображений, файлов и пр.
- HFP (Hands-Free Profile) (AG and HF roles) — профиль передачи одноканального аудио. Используется для связи телефона и беспроводной гарнитуры.
- A2DP (Advanced Audio Distribution Profile) — передача двухканального потока аудио к любому беспроводному устройству. Используется, в основном, при подключении беспроводной гарнитуры к удаленному устройству.
- AVRCP (Audio/Video Remote Control Profile) позволяет управлять медиафункционалом бытового оборудования (ТВ, аудиоустройства, смартфоны, планшеты и т. д.).
- DUN (Dial-up Networking Profile) — стандартный профиль для предоставления доступа в Интернет. Базируется на SPP, включает в себя команды PPP и AT, определенные в спецификации ETSI 07.07.
- PBAP (Phone Book Access Profile) позволяет получить или отправить данные из телефонной записной книги устройств/устройства.
Чтобы задействовать тот или иной профиль, необходимо установить сопряжение между устройствами (если оно не было установлено ранее), после чего следует установить соединение по требуемому профилю и начать работу. Встречная работа с устройствами Bluetooth 4.0 LE (Low Energy) модулями 800-й серии не поддерживается.
Реализация Bluetooth в модулях SIM800x
Компания MediaTek реализовала поддержку технологии Bluetooth 3.0 на уровне ядра в двух популярных сериях чипсетов собственной разработки — МТ6260 и МТ6261. Обе серии используются компанией SIMCom Wireless Solutions в GSM-модулях линейки SIM800x. В модулях на чипсете МТ6261 отсутствует поддержка CSD (модули SIM800C, SIM800C-DS, SIM800F и SIM868), это их основное функциональное отличие от модулей на чипсете MT6260 (SIM800, SIM800H). В части, касающейся поддержки функционала Bluetooth, упомянутые чипсеты идентичны.
Технология Bluetooth 3.0 совместила в себе:
- поддержку Bluetooth 2.0 с низким энергопотреблением и скоростью передачи данных до 3 Мбит/с;
- использование спецификаций стандарта 802.11, в теории обеспечивающее возможность передачи данных с существенно более высокой скоростью (передача файлов большого объема).
Заметим, что использование в Bluetooth 3.0 методов передачи стандарта 802.11 не влечет за собой их совместимость со спецификациями технологии IEEE802.11(b/g/n) и устройствами Wi-Fi, функционирующими в том же частотном диапазоне.
Приведенные далее примеры работы с технологией Bluetooth посредством модулей производства компании SIMCom Wireless Solutions будут рассматриваться применительно к устройствам SIM800C. Существует две аппаратные версии этих модулей — с 24 и 32 Мбит flash-памяти. Обе они имеют версии предустановленного производителем ПО с поддержкой Bluetooth. В контексте статьи будут рассмотрены версии ПО с поддержкой Bluetooth в части, касающейся работы с этим функционалом. По умолчанию, во всех модулях 800-й серии, во всех версиях встроенного ПО он отключен. Его включение производится командой
AT+BTPOWER=1.
Класс излучения и антенны
К выбору Bluetooth-антенны для разрабатываемого устройства стоит подойти столь же серьезно, как и к выбору GSM-антенны. Прежде всего, следует определиться с максимальным расстоянием, на котором предполагается связываться посредством этой технологии с другими устройствами. Класс мощности передатчиков Bluetooth модулей SIM800x соответствует приблизительно значению 1,5, при этом их максимальная выходная мощность составляет 10 дБм (номинальное значение — 7,5 дБм). То есть максимальная дальность бесперебойной связи, при отсутствии препятствий в зоне прямой видимости и использовании антенн с круговой диаграммой направленности, составит около 25 м. Если установление связи на предельных значениях этой дистанции не предусматривается, можно использовать решение, в котором антенна разведена непосредственно на плате. Если же требуется связь на расстоянии более 25 м, рекомендуется использовать направленные антенны, имеющие заметно более высокие коэффициенты усиления излучаемого сигнала.
АТ-команды
Для работы с Bluetooth в модулях SIM800x используются специализированные для этого функционала АТ-команды. Для всей этой серии они являются унифицированными. Ниже приведены основные из них:
- AT+BTPOWER — включение/выключение Bluetooth;
- AT+BTPAIRCFG — конфигурирование настроек подключения;
- AT+BTSCAN — сканирование доступных для соединения устройств;
- AT+BTVIS — включение/выключение обнаружения модуля серии SIM800x;
- AT+BTPAIR — управление сопряжением устройств, оснащенных Bluetooth;
- AT+BTGETPROF — просмотр доступных профилей подключенного устройства;
- AT+BTACPT — подтверждение запроса на подключение;
- AT+BTCONNECT — установление соединения с устройством;
- AT+BTSPPCFG — конфигурирование профиля SPP.
SIM800x и SPP
Рассмотрим установление беспроводного соединения для модуля SIM800C32 (см. листинг). В качестве удаленной стороны выступает компьютер, оснащенный Bluetooth USB-адаптером. Настройка режимов соединения по профилю SPP доступна посредством команды AT+BTSPPCFG.
AT+CGMR // получение версии предустановленного ПО модуля Revision:1418B04SIM800C32_BT_EAT OK AT+BTPOVER=1 // включение функции Bluetooth OK AT+BTPAIRCFG? // проверка текущей конфигурации модуля +BTPAIRCFG: 0 OK AT+BTPAIRCFG=1 // перевод конфигурации модуля в режим ввода пароля вручную удаленной стороной при сопряжении устройств OK AT+BTSCAN=1 // сканирование доступных устройств OK +BTSCAN: 0,1,"WIRELESS",00:0f:3d:5f:4f:04,-45 // найденное устройство является удаленным компьютером с подключенным USB-Bluetooth-адаптером +BTSCAN: 1 // сканирование завершено AT+BTPAIR=0,1 // установить сопряжение OK +BTPAIR: 1,"WIRELESS",00:0f:3d:5f:4f:04 // установлено сопряжение +BTCONNECT: 1,"WIRELESS",00:0f:3d:5f:4f:04,"AVRCP" // тестовый запрос с удаленного устройства +BTCONNECT: 2,"WIRELESS",00:0f:3d:5f:4f:04,"HFP" // тестовый запрос с удаленного устройства AT+BTGETPROF=1 // получить список доступных профилей удаленного устройства +BTGETPROF: 8,"AVRCP(Target)" // доступен профиль AVRCP +BTGETPROF: 7,"HFG" // доступен профиль HFG +BTGETPROF: 4,"SPP" // доступен профиль SPP OK +BTCONNECT: 2,"WIRELESS",00:0f:3d:5f:4f:04,"SPP" // запрос со стороны удаленного устройства на установление соединения, используя доступный профиль SPP AT+BTACPT=1 // подтверждение на установление соединения OK +BTCONNECT: 3,"WIRELESS",00:0f:3d:5f:4f:04,"SPP" // соединение установлено +BTSPPDATA: 3,13,HELLO SIMCom! // с удаленного устройства отправлен набор символов "HELLO SIMCom!" AT+BTSPPSEND=12 // отправка на удаленную сторону 12 байт информации (с модуля на компьютер) >HELLO WORD! // символ ">" является приглашением к отправке. После ввода 12-го символа не требуется дополнительных действий SEND OK +BTDISCONN: "WIRELESS",00:0f:3d:5f:4f:04,"SPP" // соединение разорвано удаленной стороной
При этом команда AT+BTPAIR=0,1 задает активный способ сопряжения модуля с удаленным устройством. В этом примере модуль выступает в роли сервера, а инициатором создания пары является ПК. На стороне ПК должен быть активирован исходящий Bluetooth COM-порт. Для этого в окне настроек переходим в пункт меню Start->Settings->Control Pannel->Bluetooth Devices->COM ports->Add, выбираем тип Outgoing и активируем кнопку Browse. ПК выполнит поиск доступных Bluetooth-устройств и покажет их в соответствующем окне (рис. 2).
Выбираем наше устройство — SIM800С — и нажимаем кнопку OK. В меню Add COM Port появятся два порта: port0 и port1. Выбираем port0 и ожидаем завершения процедуры установки COM-порта, по окончании которой ПК должен соединиться с SIM800С. Появится диалоговое окно, в котором следует ввести произвольный пароль длиной от четырех до 16 цифр.
На стороне SIM800С нужно принять соединение устройств и подтвердить пароль:
+BTPAIRING: "WIRELESS",00:0f:3d:5f:4f:04 // запрос на соединение AT+BTPAIR=2,0000 // принять запрос на соединение OK +BTPAIR: 1"WIRELESS",00:0f:3d:5f:4f:04 // подтверждение образования пары с указанием пароля
В результате в диспетчере устройств ПК появится новый COM-порт, который можно открыть при помощи любой терминальной программы. Как только терминальная программа попытается получить доступ к COM-порту, на стороне SIM800С появится соответствующее сообщение с запросом на соединение. Необходимо его принять. Лог со стороны SIM800С:
+BTCONNECTING: "00:0f:3d:5f:4f:04","SPP" // запрос на соединение AT+BTACPT=1 // принять соединение OK +BTCONNECT: 1,"WIRELESS",00:0f:3d:5f:4f:04,"SPP"// подтверждение соединения
Когда ПК закрывает COM-порт, на стороне SIM800C выводится сообщение:
+BTDISCONN: "WIRELESS",00:0f:3d:5f:4f:04,"SPP"
Повторное соединение можно открывать, не проходя процесс образования пары, если она не была разорвана, например, самим модулем SIM800С (AT+BTUNPAIR).
Когда SIM800С закрывает порт (см. следующий лог на стороне SIM800С), на стороне ПК порт просто становится недоступным. Выглядит это так, как будто отключили кабель RS232. Данные шлются, но ответа не будет. Его придется закрыть на стороне ПК:
AT+BTDISCONN=1 // закрыть соединение OK +BTDISCONN: "WIRELESS",00:0f:3d:5f:4f:04,"SPP") // подтверждение о закрытии соединения
Модуль может выступать и в роли клиентского устройства (инициатор создания пары — модуль). При этом он ведет себя как пассивная (клиентская) пара:
AT+BTPAIR=1,1 // задается сопряжение с пассивной парой (одно устройство BT) OK +BTPAIR: 2,"WIRELESS",00:0f:3d:5f:4f:04 // установка сопряжения +BTCONNECT: 2,"WIRELESS",00:0f:3d:5f:4f:04,"A2DP" // тестовые запросы с удаленного устройства +BTCONNECT: 1,"WIRELESS",00:0f:3d:5f:4f:04,"HFP(AG)" +BTCONNECT: 3,"WIRELESS",00:0f:3d:5f:4f:04,"AVRCP"
Аналогичным образом можно установить соединение между устройствами по профилю SPP в прозрачном режиме, сделав модуль серии SIM800x невидимым.
Изменения в AT-логе:
AT+BTSPPCFG //команда активирует добавление новой записи `TT` и имени входа в строку ответа на запрос Пример: AT+BTSPPCFG=TT,2 //настройка режима запроса TT +BTSPPCFG: TT,1 OK
Если SIM800С выступает как SPP клиент, то:
AT+BTSPPCFG=MC,0 //muti-connect необходимо отключить AT+BTSPPCFG=TT,1 // включить режим ТТ, по умолчанию он отключен AT+BTCONNECT=1,4 // установить соединение SPP +BTCONNECT: 1,<dev_name>,<dev_addr>,"SPP" //сообщение о выполнении команды CONNECT //сообщение-индикатор о запуске режима ТТ
После этого могут быть получены и переданы данные в прозрачном режиме. Для выхода из режима TT следует послать в канал управления/данных последовательность «+++»:
OK // отклик на эту команду
Если SIM800С выступает как SPP-сервер, то режим TT будет активен только при выполнении приведенных ниже условий:
- TT режим был включен;
- удаленное устройство послало последовательность SIMCOMSPPFORAPP в качестве самой первой команды после установления SPP.
Отклик на эту последовательность будет выглядеть так:
CONNECT SIMCOMSPPFORAPP
Если первый пакет данных, посылаемый от Bluetooth-клиента, не «SIMCOMSPPFORAPP», то будет установлено соединение SPP в так называемом «АТ-канальном режиме». В этом режиме Bluetooth-клиент может отправить только разрешенные управляющие AT-команды на Bluetooth-сервер, но не может отправить туда недействительные AT-команды или просто данные, так как в этом случае не будет какого-либо ответа от Bluetooth-сервера. В свою очередь, Bluetooth-сервер не сможет передавать данные или AT-команды Bluetooth-клиенту.
В качестве послесловия к рассмотренным примерам можно отметить сравнительно небольшой набор используемых команд и относительную простоту их восприятия теми, кто только начинает работать с технологией Bluetooth. Как вариант, профиль SPP может использоваться для дистанционной настройки контроллера в тех случаях, когда другие аппаратные интерфейсы заняты либо затруднен (или нежелателен) физический доступ к устройству.
SIM800x и A2DP
Ниже приведен пример АТ-лога, обеспечивающего выполнение процедуры подключения беспроводной гарнитуры к модулю SIM800C32:
AT+CGMR // получение версии предустановленного ПО модуля Revision:1418B04SIM800C32_BT_EAT OK AT+BTPOVER=1 // включение функции Bluetooth OK AT+BTSCAN=1 // сканирование доступных устройств OK +BTSCAN: 0,1,"HM5000",04:18:0f:c3:ff:48,-68 // найдено устройство Bluetooth-гарнитура +BTSCAN: 1 // сканирование завершено AT+BTPAIR=0,1 // установить сопряжение с первым устройством из списка найденных OK +BTPAIR: 1,"HM5000",04:18:0f:c3:ff:48 // установлено сопряжение +BTCONNECT: 1,"HM5000",04:18:0f:c3:ff:48,"HFG" // разовый тестовый запрос с удаленного устройства на установление соединения, не требует подтверждения ATD+7**********; // совершаем исходящий голосовой вызов абонента OK +ESPEECH: 1,1,0 // Bluetooth-гарнитура автоматически подключилась //РАЗГОВОР +ESPEECH: 0,1,0 // на Bluetooth-гарнитуре была нажата клавиша завершения вызова RING // входящий вызов +ESPEECH: 1,1,0 // на Bluetooth-гарнитуре была нажата клавиша ответа на вызов //РАЗГОВОР +ESPEECH: 0,1,0 // на Bluetooth-гарнитуре была нажата клавиша завершения вызова +BTDISCONN: "HM5000",04:18:0f:c3:ff:48,"HFG" // Bluetooth-гарнитура выключена
В ходе тестирования специалистами техподдержки отмечено высокое качество связи при полном отсутствии шумов в реализуемом аудиоканале. Также стоит отметить поддержку возможности отправить в модуль команды для инициации принудительного ответа на входящий вызов, возможность управления громкостью голосового вызова, а также корректную работу модуля с функционалом клавиши отбоя/завершения вызова беспроводной гарнитуры.
Реализация
В качестве примера наиболее массового применения встроенного Bluetooth-функционала GSM-модулей в клиентских устройствах можно привести его использование производителями терминалов мониторинга транспортных средств для поддержания обратной голосовой связи с водителем. Теперь для инсталляции такого устройства в автомобиль не требуются дополнительные отверстия в панели приборов для подключения гарнитуры. При этом беспроводное подключение позволяет отказаться от использования проводов, что повышает как техническую надежность решения, так и безопасность дорожного движения.
Энергопотребление
В таблице приведены усредненные данные по энергопотреблению модулей SIM800х в различных режимах работы Bluetooth.
Статус Bluetooth |
Потребление SIM800х, мА |
Сканирование |
41 |
Сопряжение |
25 |
Соединение |
27 |
Рабочий режим (установлено соединение, нет активной передачи данных) |
22 |
Передача данных |
36 |
Отладочные средства
Разработчики могут протестировать работу модулей SIM800x в соответствии с приведенными в настоящей статье примерами, используя специализированные отладочные комплекты производства компании SIMCom Wireless Solutions.
Отладочный комплект состоит из двух основных компонентов: многофункциональной материнской платы и мезонинной платы, на которой распаян тот или иной модуль. На рис. 3 представлен модуль SIM800C на мезонинной плате, устанавливаемый на общую для всей линейки модулей материнскую плату. Каждый из указанных компонентов отладочного комплекта можно приобрести отдельно.
Те, у кого остались отладочные платы для модулей 900-й серии (версий SIM900-EVB_V2.01 и позже), могут использовать их для работы со всеми модулями 800-й серии, приобретая последние в исполнении на переходном мезонине — SIM800x-TE.
Исключением из этого унифицированного отладочного комплекса является анонсированный летом 2016 г. еще один модуль этой линейки — SIM868, миниатюрный беспроводной четырехдиапазонный комбо-модуль в корпусе LCC/LGA, поддерживающий обмен данными и работу в сетях сотовой связи стандартов GSM/GPRS (2G) и прием сигналов со спутников GPS/ГЛОНАСС (GNSS).
Отличительные особенности SIM868 — это высокая чувствительность ВЧ-тракта и поддержка различных дополнительных возможностей, таких как детектирование/генерация DTMF, запись/воспроизведение аудиофайлов, встроенные протоколы POP3, SMTP, MMS, FTP, HTTP, SSL и др. Поддерживается GPRS multi-slot class 12 (↨85,6 кбит/с). В качестве дополнительных возможностей в модуле предусмотрена поддержка Bluetooth 3.0 или одновременная работа двух SIM-карт (Dual Standby).
В модуле присутствуют интерфейсы 2×UART (GSM/GPRS)+1×UART(GNSS), USB, GPIO, ADC, SD, I2C, RTC, аналоговые аудиоинтерфейсы. Габариты устройства 15,7×17,6×2,3 мм; напряжение питания 3,4–4,4 В; диапазон рабочих температур –40…+85 °C.
Работа с этим модулем требует использования специализированной отладочной платы.
Наличие, состав и стоимость отладочных комплектов можно уточнить, отправив запрос в техническую поддержку по беспроводным решениям (wireless@mt-system.ru). Обновленные версии встроенного ПО модулей и подробная инструкция по их обновлению также предоставляются пользователям по отдельному запросу.
* * *
Компания SIMCom Wireless Solutions предлагает разработчикам и пользователям функционально полную линейку 2G-модулей, позволяющую решать довольно широкий спектр задач по созданию оборудования, использующего для передачи данных и осуществления вызовов возможности сетей сотовой связи. При этом встроенный на уровне чипсета функционал Bluetooth уже не выглядит экзотикой, речь, скорее, о новых реалиях, с учетом которых теперь следует воспринимать модули этого класса, решая самый разнообразный круг прикладных задач с их использованием. При этом реализация Bluetooth в текущих и перспективных решениях не представляет собой сколь-нибудь сложной задачи.