Реализация автоматического соединения Bluetooth-устройств при помощи модулей LM Technologies
Компания LM Technologies (Лондон, Великобритания) является ведущим производителем изделий, предназначенных для замены кабеля беспроводным соединением. При этом основной упор LM Technologies делает на передачу данных посредством технологии Bluetooth. Модули компании ориентированы на широкий круг приложений, включая системы промышленной автоматизации, медицинское оборудование, охранные комплексы, торговые автоматы и M2M-приложения.
LM Technologies разрабатывает для Bluetooth-модулей собственное программное обеспечение, а также использует их в своих законченных продуктах, таких, например, как адаптеры LM048 и LM058.
Характеристики модулей LM Technologies
Основные параметры модулей LM072 и LM780, а также адаптера LM048 приведены в таблице 1.
Параметр |
LM072 |
LM780 |
LM048 |
Стандарт |
Bluetooth 2.0+EDR |
Bluetooth 2.1+EDR |
Bluetooth 2.0+EDR |
Поддерживаемые профили |
SPP, HSP/HFP, HID, DUN |
SPP, HID |
SPP |
Дальность передачи, м |
100 |
25 |
100 |
Выходная мощность, дБм |
18 (класс 1) |
4 (класс 2) |
18 (класс 1) |
Чувствительность приемника, дБм |
–88 |
–88 |
–86 |
Напряжение питания, В |
3,0–3,6 |
3,0–5,5 |
5,0–6,0 |
Температурный диапазон, °C |
–20…+75 |
–10…+70 |
–20…+75 |
Размеры, мм |
28,2×15×2,8 |
26,9×15,2×2,0 |
34×36×13 |
Модуль LM072 (рис. 1а) не требует использования внешних компонентов, за исключением антенны [1]. LM780 (рис. 1б) имеет встроенную антенну и не требует использования внешних компонентов [2].
В отличие от более дорогих Bluetooth-модулей, оснащенных встроенными кодеками и способных передавать потоковое аудио или видео, LM072 и LM780 предназначены исключительно для передачи телеметрической информации. Оба модуля реализуют профиль последовательного порта (SPP), который позволяет организовать «прозрачный» беспроводной канал между двумя устройствами, ранее связанными проводным последовательным интерфейсом. Встраиваемый Bluetooth-модуль осуществляет преобразование потока данных, поступающих по проводному асинхронному последовательному каналу, в беспроводной поток в соответствии с профилем последовательного порта. На удаленной стороне в качестве приемопередатчика Bluetooth можно использовать штатный Bluetooth-адаптер персонального компьютера или второй встраиваемый модуль [6].
Профиль последовательного порта предполагает выполнение следующих операций с устройствами Bluetooth:
- обнаружение;
- установление соединения;
- передача данных в режиме «прозрачного» канала.
Ведомый Bluetooth-модуль (Slave) при включении питания находится в состоянии «доступный для обнаружения». Ведущий модуль (Master) при включении питания начинает поиск ведомых устройств и при нахождении свободного ведомого устройства пытается присоединиться к нему. Ведомый запрашивает PIN-код, ведущий отвечает. Если PIN-коды совпадают, то устройства обмениваются своими адресами, образуют пару и могут выполнять обмен данными. Таким образом, установление соединения может быть выполнено автоматически, без участия пользователя. Модули LM072 и LM780 могут иметь статус как Master, так и Slave. Статус модуля задается пользователем или управляющим микроконтроллером при помощи AT-команд.
Если необходимо обеспечить беспроводной доступ к уже законченному изделию с интерфейсом RS-232, то оптимальным решением будет использование адаптера LM048 (рис. 2). Благодаря наличию у адаптера разъема DB9 его подключение является предельно простым. LM048 обеспечивает передачу данных со скоростью 1200–921600 бод. Адаптер можно использовать с устройствами как DTE (Data Terminal Equipment), так и DCE (Data Сommunication Equipment). Для этого корпус LM048 снабжен переключателем, позволяющим попарно менять назначение контактов TxD/RxD и CTS/RTS. Адаптер может получать питающее напряжение от внешнего блока питания 5 В, от USB-порта ПК, а также от 9-го контакта разъема DB9 [3].
Интеграция Bluetooth-модулей в приложения
Интеграция модулей LM Technologies в конечное изделие не представляет никаких сложностей. Если в процессе передачи данных планируется использовать аппаратный контроль потока, то необходимо распаять семь контактов модуля; если контроль потока не требуется — пять. Остальные выводы можно оставить неподключенными. Схема подключения модуля LM780 представлена на рис. 3. Подключение LM072 полностью аналогично, за исключением номеров выводов модуля. RF-сигнал модуля LM072 следует вывести на внешнюю антенну.
Преимуществом модулей и адаптеров LM Technologies является поддержка AT-команд, которые используются для задания начальных настроек модуля и для управления соединением. Таким образом, введение небольшой управляющей программы, алгоритм которой рассмотрен ниже, позволяет реализовать автоматическое соединение между Bluetooth-устройствами, минимизировав участие конечного пользователя в этом процессе.
При помощи набора AT-команд можно изменять статус устройства (Master или Slave), PIN-код, параметры обмена по последовательному интерфейсу, настройки автоматического соединения с удаленным устройством и т. д. [4]. Полный перечень управляющих AT-команд приведен в таблице 2.
Тип команды |
Код команды |
Краткое описание |
Тестовые команды |
AT |
Проверка связи с модулем |
AT+VER |
Запрос версии прошивки |
|
AT+ENQ |
Запрос всех текущих настроек модуля |
|
Сброс настроек |
AT+RESET |
Восстановление заводских настроек и сброс модуля |
Настройки последовательного интерфейса |
AT+BAUD |
Выбор скорости передачи данных по последовательному интерфейсу. Поддерживаются скорости передачи от 1200 до 921 600 бод |
AT+STOP |
Выбор количества стоповых бит (1 или 2) |
|
AT+PAR |
Выбор варианта контроля четности (none, odd, even) |
|
AT+FLOW |
Управление контролем потока (сигналы RTS/CTS) |
|
AT+ECHO |
Управление функцией «эхо» (отображение получаемых модулем управляющих команд) |
|
AT+RESP |
Разрешение/запрещение ответа модуля на управляющие команды |
|
Настройки соединения |
AT+ROLE |
Выбор статуса модуля (Master/Slave) |
AT+ADDR |
Запрос Bluetooth-адреса модуля |
|
AT+FIND |
Поиск Bluetooth-устройств в зоне видимости модуля. Поиск выполняется в течение 1 мин., отображается максимум восемь устройств |
|
AT+RSSI |
Запрос величины RSSI (Received Signal Strength Indication — уровень мощности принимаемого сигнала) текущего Bluetooth-соединения |
|
AT+NAME |
Выбор имени модуля, под которым он будет виден другим Bluetooth-устройствам |
|
AT+DCOV |
Разрешение/запрещение обнаружения модуля другими Bluetooth-устройствами |
|
AT+PIN |
Выбор PIN-кода, которым обмениваются два Bluetooth-устройства в процессе установления соединения |
|
AT+CONN |
Установление соединения с заданным Bluetooth-устройством |
|
AT+DROP |
Сброс текущего соединения |
|
AT+BOND |
Выбор адреса Bluetooth-устройства, с которым будет разрешено установление соединения. Соединение со всеми остальными Bluetooth-устройствами будет запрещено |
|
AT+ACON |
Разрешение/запрещение автоматического установления соединения при включении питания |
|
Прочие команды |
+++ |
Переход в режим конфигурирования из режима передачи данных. Промежуток между отправкой каждого символа «+» должен составлять 800–1000 мс |
AT+ESC |
Разрешение/запрещение обработки последовательности «+++» |
|
AT+AUTO |
Переход в режим передачи данных из режима конфигурирования |
|
AT+RCFG |
Разрешение/запрещение конфигурирования модуля со стороны удаленного устройства |
|
AT+SLEEP |
Разрешение/запрещение автоматического перехода в режим энергосбережения |
Все AT-команды можно условно разделить на две категории: команды начальной настройки модуля и команды установления соединения. К первому типу относятся команды изменения параметров обмена по интерфейсу UART, выбор статуса и имени модуля (Master/Slave), разрешение обнаружения модуля другими Bluetooth-устройствами и т. п. Все эти параметры достаточно установить один раз, после чего они будут сохранены в энергонезависимой памяти модуля и будут использоваться при последующих включениях. Это удобно в случае, когда ограничена возможность управления Bluetooth-модулем в составе конечного изделия. При таком варианте имеет смысл задать все начальные настройки, подключив модуль к компьютеру, после чего интегрировать модуль в конечное устройство. Подключение к ПК легко осуществить при помощи конвертера USB–TTL [5], для этого достаточно распаять контакты модуля VCC, GND, RESET, RX и TX. В операционной системе компьютера конвертер распознается как виртуальный COM-порт, через который можно отправить модулю все необходимые команды.
Ниже приведен пример последовательности команд для конфигурирования модуля:
AT+STOP1 OK AT+PAR0 OK AT+FLOW- OK AT+BAUD14 OK AT+ROLES OK AT+NAME=LM780 OK AT+DCOV+ OK AT+PIN=1111 OK
В примере задаются следующие параметры обмена по интерфейсу UART: один стоповый бит, контроль четности и аппаратный контроль потока выключены, скорость передачи 19 200 бод. Последующими командами устанавливается статус и имя модуля, разрешается его обнаружение другими Bluetooth-устройствами и задается PIN-код.
Команды второго типа необходимы для управления установлением соединения с удаленным устройством. Рассмотрим последовательность команд для соединения в ручном и автоматическом режимах. В первом случае пользователь или внешний микроконтроллер самостоятельно дает модулю команду выполнить поиск устройств и выбирает требуемое устройство из списка. Для этого необходимо сначала запретить автоматическое соединение при помощи команды AT+ACON-. После этого изменим статус модуля на Master и выполним поиск Bluetooth-устройств командой AT+FIND?. По этой команде модуль будет выполнять поиск в течение 1 мин., после чего отобразит список первых восьми найденных устройств:
AT+ACON- OK AT+ROLEM OK AT+FIND? OK Inquiry Results: 1 Serial Adapter 0012-6F-231C0F 2 ORG-CEF12A0AB42 001E-3D-EDACE4 3 Thror 28D1-AF-27AC06 4 BT007Si 000B-0D-04B2D7 Inquiry End. 4 Device(s) Found AT+CONN1 OK CONNECT «0012-6F-231C0F»
После завершения поиска можно установить Bluetooth-соединение с нужным устройством командой AT+CONNn, где n — номер устройства в списке. В случае успешного соединения модуль вернет адрес удаленного устройства и перейдет в режим передачи данных. После этого все отправляемые по последовательному интерфейсу символы будут передаваться по радиоканалу удаленному устройству. Чтобы вернуться в режим конфигурирования, необходимо передать модулю последовательность символов «+++». В этом случае пауза перед каждым символом «+» должна составлять 800–1000 мс.
Соединение также можно установить, не выполняя поиск устройств. В этом случае в команде AT+CONN указывается Bluetooth-адрес удаленного устройства:
AT+CONN=00126F231C0F OK CONNECT «0012-6F-231C0F»
В автоматическом режиме Bluetooth-соединение между устройствами будет происходить сразу после включения питания без участия пользователя или внешнего микроконтроллера. Для перехода в автоматический режим следует дать модулю команду AT+ACON+. Для защиты соединения можно задействовать проверку PIN-кода или командой AT+BOND задать адрес уникального устройства, с которым будет разрешено установление соединения. Эти два варианта защиты могут быть использованы совместно:
AT+PIN=1234 OK AT+BOND=00126F231C0F OK AT+ACON+ OK CONNECT «0012-6F-231C0F»
После получения команды AT+ACON+ модуль перезапустится и попытается установить соединение с удаленным устройством.
При первом включении модулей следует обратить внимание на то, что аппаратный контроль потока по умолчанию включен. Следовательно, если выводы UART_CTS и UART_RTS модуля не были задействованы, то отправляемые с ПК команды не будут отображаться в окне терминала. В этом случае следует дать модулю команду AT+FLOW- для отключения контроля потока (эта команда также не будет отображена). Все настройки модулей LM Technologies, установленные по умолчанию, перечислены в таблице 3.
Код команды |
Параметр |
Значение |
AT+BAUD |
Cкорость передачи данных по интерфейсу UART |
19200 бод |
AT+STOP |
Количество стоповых бит |
1 |
AT+PAR |
Контроль четности |
None |
AT+FLOW |
Аппаратный контроль потока |
Включен |
AT+ECHO |
Функция «эхо» |
Включена |
AT+RESP |
Ответ на команды |
Разрешен |
AT+ROLE |
Статус устройства |
Slave |
AT+ADDR |
Имя устройства |
Serial Adapter |
AT+PIN |
PIN-код |
1234 |
AT+DCOV |
Обнаружение другими устройствами |
Разрешено |
AT+BOND |
Сопряженное устройство |
Не задано |
AT+ACON |
Автоматическое соединение |
Разрешено |
AT+ESC |
Обработка последовательности «+++» |
Включена |
AT+RCFG |
Конфигурирование модуля со стороны удаленного устройства |
Разрешено |
AT+SLEEP |
Переход в режим энергосбережения |
Запрещен |
Примеры применения модулей и адаптеров компании LM Technologies
Рассмотрим несколько практических вариантов применения Bluetooth-модулей. В каждом примере нашей целью будет настроить автоматическое соединение двух устройств после включения питания, минимизировав участие пользователя в этом процессе.
Простейший случай: необходимо установить Bluetooth-соединение между двумя компьютерами (рис. 4), которые ранее были соединены последовательным кабелем. В этом случае удобнее всего использовать адаптеры LM048. При помощи AT-команд один LM048 следует предварительно сконфигурировать как Master, другой — как Slave. Присоединив их к COM-портам компьютеров, можно установить соединение как в ручном, так и в автоматическом режимах, используя приведенные выше последовательности управляющих AT-команд.
Следующий вариант: нужно соединить оснащенное Bluetooth-модулем устройство и, например, ноутбук (рис. 5). При этом ноутбук имеет встроенный или внешний Bluetooth-адаптер, которым мы не можем управлять программно (нет доступа к исходным кодам соответствующего драйвера). Если в оснащенном Bluetooth-модулем устройстве предусмотрен способ ввода информации (клавиатура, сенсорный дисплей и т. п.), удобно настроить автоматическое соединение именно с его стороны. Встроенному Bluetooth-модулю следует присвоить статус Master, адаптеру ноутбука — статус Slave. Используя устройство ввода, можно выполнить поиск или сразу ввести требуемый Bluetooth-адрес, с которым будет выполняться соединение при включении питания.
Наиболее сложным представляется случай, при котором оснащенное Bluetooth-модулем изделие не имеет какого-либо устройства ввода (рис. 6).
В этом случае для автоматического установления соединения с ПК или ноутбуком можно предложить следующий алгоритм:
- При первом соединении, когда удаленному устройству не известен адрес компьютера, Bluetooth-модуль изделия должен иметь статус Slave. Встроенный в ПК Bluetooth-адаптер в этом случае будет работать как Master (рис. 7).
- Со стороны ПК устанавливаем соединение с удаленным устройством вручную. После установления соединения Bluetooth-модуль отправляет по интерфейсу UART сообщение с Bluetooth-адресом компьютера:CONNECT «xxxx-xx-xxxxxx».
Этот адрес должен быть сохранен управляющим микроконтроллером устройства.
- Используем сохраненный Bluetooth-адрес для установления соединения со стороны удаленного устройства. Для этого управляющий микроконтроллер должен отправить Bluetooth-модулю следующие команды:
AT+ROLEM OK AT+BOND= xxxxxxxxxxxx OK AT+ACON+ OK
В результате Bluetooth-модуль изменит статус на Master и будет автоматически устанавливать соединение с компьютером при включении питания. На стороне ПК при этом следует разрешить входящие Bluetooth-подключения (компьютер при последующих соединениях будет работать как Slave).
Таким образом, несложная ручная настройка потребуется только при первом установлении соединения. Эта настройка сводится к пересылке Bluetooth-адреса компьютера удаленному устройству, чтобы адрес мог быть сохранен управляющим микроконтроллером. При всех последующих включениях пользователь должен будет только включить питание устройства. Если компьютер при этом будет находиться в зоне радиовидимости, то соединение будет установлено автоматически. Никаких действий от пользователя не потребуется до тех пор, пока не возникнет необходимость установить соединение с другим ПК. Для этой цели в конструкции оснащенного Bluetooth-модулем устройства следует предусмотреть способ очистки сохраненного Bluetooth-адреса (например, специальную кнопку). Чтобы вернуться к исходному состоянию, управляющий микроконтроллер должен отправить Bluetooth-модулю следующие команды:
AT+ACON- OK AT+BOND- OK AT+ROLES OK
Таким образом автоматическое установление соединения будет выключено, Bluetooth-модуль очистит сохраненный адрес и изменит свой статус на Slave. После этого, повторив пункты 1–3 описанного алгоритма, можно будет установить соединение с любым другим Bluetooth-устройством.
Как видно из предложенного алгоритма автоматического установления соединения, для его реализации требуется изменение статуса Bluetooth-модуля (Master/Slave) в процессе работы. Возможность такого изменения при помощи AT-команд является большим преимуществом Bluetooth-модулей компании LM Technologies перед более простыми и дешевыми моделями, которые поставляются с неизменяемыми настройками.
Заключение
LM072 и LM780 хорошо подходят для широкого круга приложений, в которых требуется заменить кабельное соединение двух устройств беспроводным доступом. Низкая цена, легкость интеграции в конечное изделие и удобный командный интерфейс делают эти модули оптимальным выбором для таких задач.
- Datasheet LM072 Bluetooth Class 1 Module. LM Technologies Ltd. 2010.
- Datasheet LM780 Bluetooth Class 2 Module. LM Technologies Ltd. 2010.
- Datasheet LM048 Bluetooth Class 1 Serial Adapter. LM Technologies Ltd. 2010.
- AT Command Manual v1.4. LM Technologies Ltd. 2011.
- Datasheet TTL to USB Serial Converter Range of Cables. FTDI. 2008.
- http://www.wless.ru/