Беспроводной удлинитель последовательного порта на базе радиоканала Bluetooth
А.В. Ескин, В.А. Жмудь, В.Г. Трубин ФГБОУВПО НГТУ, Новосибирск, Россия
Аннотация: Рассматриваются основные аспекты работы с преобразователями сигналов TTL RS232 в Bluetooth, построенных на базе микросхемы BC417 серии BlueCore4-Ext™ фирмы Cambridge Silicon Radio. 4
Ключевые слова: Bluetooth, HC-05, HC-04, передача данных, последовательный порт, UART, УАПП, AT команды, радиоканал, программное обеспечение.
ВВЕДЕНИЕ
Наметившаяся, в последнее время, тенденция более широкого использования беспроводных технологий с использованием радиосвязи при организации передачи данных между электронными устройствами делает практически нереальным их прямое внедрение в радиолюбительской практике из-за большой сложности протоколов передачи данных. Но к счастью, существуют более легкие в реализации решения делающие этот тип связи простой, удобной и доступной по цене.
Таким примером могут служить, получившие широкое распространение, модули (Bluetooth serial interface module) построенные на микросхемах BC417 серии BlueCore4-Ext™ [1] фирмы Cambridge Silicon Radio. Эти модули выпускает китайская фирма Guangzhou HC Information Technology [2] по вполне приемлемой цене, что делает эти модули доступными не только для производителей устройств, но и для рядового радиолюбителя. Существенное упрощение заключается в скрытии специфики радиопротокола от конечного пользователя. Вся работа по обмену данными происходит по более простому и привычному проводному интерфейсу, в данном случае - TTL RS232.
ОПИСАНИЕ МОДУЛЕЙ HC^
Существуют несколько разновидностей модулей. Между собой внешне они практически не отличаются друг от друга. Всё отличие скрыто
4 Работа выполнена по заданию Министерства образования и науки РФ, проект №7.599.2011, Темплан, НИР № 01201255056.
внутри — в записанной во встроенную Flash память программе.
Конструкция модуля такова, что ему необходим дополнительный адаптер (Bluetooth adapter), который имеет в своём составе источник питания на 3,3 вольта, светодиоды, отображающие текущий режим работы устройства и иногда кнопку для выбора режима работы. Этот адаптер может быть покупной или сделан самостоятельно по рекомендуемой производителем схеме [3]. Иногда можно отказаться от адаптера, но тогда следует использовать навесной монтаж для подключения его к источнику 3,3 вольта и модулю UART микроконтроллера или преобразователю TTL уровней в RS232 для подключения к персональному компьютеру. Такое решение не очень надежно и требует бережного отношения. Также, в продаже можно найти уже собранный модуль с адаптером, в котором основные управляющие выводы выведены на штыревую линейку типа PLS. Модуль монтируется на адаптер по SMT технологии, используя позолоченные контакты на торце платы.
Внешний вид модуля представлен на рисунке 1, а внешний вид модуля с покупным адаптером представлен на рисунке 2.
Рис. 1 - Внешний вид модуля без адаптера
Рис. 2. Внешний вид модуля с адаптером
Как видно из рисунков на плате модуля располагаются две микросхемы в корпусе BGA: одна из них это микросхема BC417 (управляющая микросхема Bluetooth) [4], а вторая это Flash память объёмом 8 Мбит, которая хранит программу для BC417 (MX29LV800CBXBI-70G
[5], но могут быть и другие подобные).
В основном, эти устройства можно разделить, по типу записанной программы, на два вида: с возможностью изменения его роли (работа в режиме ведущего - master или ведомого - slave) или без этой возможности. Модули маркированные как HC-04-M, HC-04-S, HC-06-M и HC-06-S имеют фиксированную роль, которая не может быть изменена в процессе использования (буква в маркировке M - master, S - slave). Роль модулей маркированных как HC-03 и HC-05 в процессе эксплуатации может быть изменена путём подачи так называемых AT команд. Master устанавливает процесс связи, от него идут основные команды по настройке в режиме связи по Bluetooth. О том, как изменить роль устройства будет рассказано далее. Кроме этого, модули различаются по назначению. HC-03 и HC-04 применяются в промышленных целях, а HC-05 и HC-06 используются для бытового применения.
Все различия между разными типами модулей заключаются в настройках, в то время как характеристики остаются одинаковыми для всех. Здесь приведём наиболее важные из них
[6][7]:
• уровень мощности сигнала по II классу Bluetooth v2.0 устройств (может достигать расстояния в 10 метров);
• напряжение питания может находится в диапазоне 3,1... 4,2 вольта;
• ток потребления в режиме установления связи может изменяться в пределах 30... 40 мА;
• ток потребления в режиме передачи данных составляет 8 мА;
• размеры (длина х ширина х высота) 27 х 13 х 2 мм;
• диапазон рабочих температур минус 25... +75 0С;
• встроенная антенна на 2,4 ГГц для связи по Bluetooth;
• предусмотрена возможность для подключения внешней антенны.
Рассмотрим имеющиеся выводы модуля. Их расположение и наименование приведено на рисунке 3.
Все выводы можно условно разделить на 7 групп. Первая группа (выводы с 1 по 4) это выводы TTL совместимого RS232 для связи с микроконтроллером или персональным компьютером. Вторая группа (выводы с 5 по 8) это выводы для передачи звука в цифровом виде по методу Pulse Code Modulation (PCM). Третья группа это два аналоговых входа / выхода (9 и 10) которые могут быть подключены либо к
внутреннему 8 битному АЦП, либо к внутреннему 8 битному ЦАП. Четвёртая группа включает в себя выводы питания и сброса (номера с 11 по 13 и 21, 23). Следующая, пятая группа, служит для подключения к USB разъёму линии USB_D-(15) и USB_D+(20). Шестая представляет собой SPI интерфейс (выводы с 16 по 19), в том числе предназначенный для перепрограммирования встроенной Flash памяти. И наконец, седьмая группа это порты ввода вывода общего назначения (выводы с 22 по 23).
Рис. 3. Наименование и расположение выводов модуля HC
Все перечисленные выводы соединены с одноимёнными выводами микросхемы BC417, но их назначение в данном модуле изменено записанной программой. Так полностью заблокирован доступ к выводам второй, третьей и пятой групп. Среди портов ввода-вывода общего назначения хотелось бы отметить некоторые из них. Рассмотрим, для примера, только выводы модулей HC-03, HC-05. Линия PIO11 является входом и предназначен для установки текущего режима работы модуля. Если на нём низкий уровень сигнала, то модуль находится в режиме обмена данными по каналу Bluetooth, а если высокий, то в режиме настройки AT командами через UART интерфейс. Настройка AT командами через Bluetooth канал не предусмотрена. PIO8 служит для подключения внешнего светодиода и имеет три режима работы:
1. выдача прямоугольных импульсов с коэффициентом заполнения 0,5, частотой 1 Гц в режиме настройки AT командами;
2. выдача прямоугольных импульсов с
коэффициентом заполнения 0,5, частотой 2 Гц в режиме установки связи по каналу Bluetooth.
3. выдача импульсов с частотой 2 Гц, но изменённой скважности (моргание) в режиме обмена данными по каналу Bluetooth;
PIO9 является выходом и отображает состояние процесса соединения двух устройств друг с другом по каналу Bluetooth. Если устройства не образовали пару, то на выводе низкий уровень сигнала, а если образовали, то высокий. Обычно на Bluetooth адаптерах вывод PIO8 подключен к светодиоду, а вывод PIO11 выводится на кнопку или на внешнюю ножку и именуются «Key».
Часто схема Bluetooth адаптеров не очень сложна, она похожа, в основном, на рекомендуемую производителями модулей HC [3].
ПЕРЕДАЧА ДАННЫХ ПО BLUETOOTH
Для пояснения методики установления связи по беспроводному каналу Bluetooth рассмотрим работу Bluetooth модуля в режиме «эха» (получения отправленной информации). При этом будем рассматривать ситуацию, когда модуль находится в режиме Slave, а все операции по установлению связи происходят на компьютере, который является Master. Поэтому здесь не будет рассмотрено подключение к модулям HC-04-M и HC-06-M. Остальные модули имеют режим Slave заданный по умолчанию на заводе.
Для подключения нам понадобится модуль bluetooth для персонального компьютера (bluetooth dongle), если персональный компьютер не имеет встроенного.
Теперь следует подключить bluetooth dongle к компьютеру, либо включить встроенный. Если это первое включение bluetooth dongle, то следует установить необходимые драйвера согласно инструкции производителя. При этом следует соединить выводы TX и RX Bluetooth адаптера HC-0x друг с другом. Если используется bluetooth адаптер, то вывод Key можно не куда не подключать, так как он в свободном состоянии переводит устройство в режим обмена данными по bluetooth, что нам и нужно. Далее на HC-0x подаём напряжение питания (стандартно нужно подать 3,3 вольта). В некоторых Bluetooth адаптерах есть две линии питания 5 вольт и 3,3 вольта. Здесь можно подать питание на вывод 5 вольт, так как внутри имеется встроенный преобразователь напряжения из 5 в 3,3 вольта.
Если модуль подключать со стороны TTL RS232 не самого на себя, а к другому устройству, без адаптера, то могут возникнуть проблемы в устойчивости передачи данных. Здесь может помочь применения подтягивающего
сопротивления на линии RX соединяемого с модулем устройством.
Теперь необходимо настроить программное обеспечение компьютера. Для этого в системе необходимо создать виртуальный
последовательный COM-порт. После
подключения и установки драйвера на bluetooth dongle в области уведомлений операционной системы Windows 7 должен появится значок (для Windows XP создаётся пункт «Устройства Bluetooth»} в панели управления). Для примера, на рисунке 4 приведено изображение такого значка в области уведомлений.
Рис. 4 - Значок "Устройства Bluetooth" в области уведомления Windows7
Щёлкаем левой кнопкой мыши по этому значку, чтобы установить связь по Bluetooth. Должно появится контекстное меню, как показано на рисунке 5.
Рис. 5 - Контекстное меню значка Bluetooth устройств.
В этом меню выбираем пункт «Добавить устройство». В окне мастера добавления устройства система проведёт сканирование устройств Bluetooth и предложит на выбор имеющиеся поблизости устройства. Здесь следует выбрать что-то вреде HC-Ох (имя Вашего Bluetooth модуля) и нажать «Далее». На рисунке 6 для примера демонстрируется подключение к модулю HC-05.
Рис. 6 - Подключение к модулю НС-05
После этого мастер предложит на выбор три варианта подключения. Нас будет интересовать «Введите код образования пары устройства», как приведено на рисунке 7.
Рис. 7 - Выбор пункта "Введите код образования пары устройства"
Щелчок по этому пункту переводит нас на следующий шаг мастера, в результате чего должно появится окно изображённое на рисунке 8.
Здесь введём ключ 1234 из документации на Ваш модуль, как показано на рисунке 8, (как правило у всех модулей НС, по умолчанию этот код одинаков). Затем нажимаем клавишу «Далее».
Дальше система сама осуществит подключение к модулю НС-0х, выполнив все необходимые пункты, и создаст в системе набор виртуальных СОМ-портов. Если всё пройдёт успешно, то появится окно как на рисунке 9.
Рис. 8 - Ввод кода образования пары
Рис. 9 - Успешное добавления устройства
Для того, чтобы определить установился ли виртуальный COM порт и его номер следует повторно щёлкнуть левой кнопкой мыши в области уведомления на значке Bluetooth или зайти в панель управления (Windows XP) для того, чтобы показать установленные устройства. Далее необходимо, нажав правой кнопкой мыши, в контекстном меню устройства HC, выбрать пункт «Свойства». Перейти на вкладку «Службы», проверить установлена ли галочка напротив «Последовательный порт (SPP) «Dev B»». На этой же вкладке можно определить номер COM порта, который будет использоваться для передачи данных по каналу Bluetooth.
Несколько слов о типах виртуальных COM-портов Bluetooth. Существуют два вида: исходящие и входящие порты. Исходящий COM порт используется в режиме когда компьютер является Master, а входящий — когда Slave.
В данной конфигурации (подключение к модулю HC-05, находящемуся в режиме Slave) компьютер является Master, поэтому используется исходящий COM порт. Из-за того, что модуль HC-05 способен работать не только в Slave режиме, но и в Master система определила два COM порта: исходящий и входящий.
Иногда могут возникнуть проблемы при подключении к HC модулю (адаптеру). Устройство может не подключиться используя правильный код доступа. Здесь проблема заключается в несовместимости некоторых bluetooth dongle с запрограммированной в модуль версией программы. Поэтому нужно быть очень внимательным при выборе этих устройств.
Следующим шагом будет открытие или установка программы-терминала позволяющей работать с COM портом. Здесь подойдёт любая, лишь бы она поддерживала работу с номерами COM порта выше 9. Часто система определяет виртуальный COM порт именно с такими номерами. В Windows XP, например есть стандартная программа Hyper Terminal, а в Windows 7 можно воспользоваться бесплатной программой Terminal [8] или подобной. Открыв окно этой программы необходимо задать номер исходящего порта определённый ранее. При этом скорость передачи данных не играет роли, так как поток данных передаются по каналу Bluetooth, который работает по другим принципам. Всё, теперь можно попробовать отправить какой-нибудь символ и убедиться в получении «эха».
Здесь может возникнуть вопросы: «Почему скорость передачи данных не важна?» и «Как тогда согласовать два устройства?». Ответ здесь простой — никак. Так как порт виртуальный, а физически данные передаются по каналу Bluetooth, то настройки свойственные для последовательного канала здесь не играют ни какой роли. Но всё-таки согласование параметров с подключённым к HC модулю TTL RS232 устройством необходимо. Для этого на общие настройки передачи данных настраиваются TTL RS232 устройство и HC модуль, а не компьютер.
НАСТРОЙКА МОДУЛЯ В РЕЖИМЕ AT КОМАНД
Настроить параметры передачи данных и изменить роль HC модуля, а также многое другого можно посредством AT команд. Этот режим доступен только со стороны интерфейса TTL RS232, дистанционно по каналу Bluetooth данный режим не работает.
Для упрощения пояснения рассмотрим изменение настроек HC модуля с программы-терминала персонального компьютера.
Нам понадобится HC модуль (или уже собранный адаптер), преобразователь TTL RS232 в USB (или в COM, если у компьютера выведен COM порт) и соединительные провода.
Теперь необходимо подключить
преобразователь к модулю (адаптеру). Для этого соединим вывод TX преобразователя с выводом RX HC модуля. Также соединим RX преобразователя с TX модуля.
Существуют два режима AT команд: AT mode 1 и AT mode 2. Перевести модуль в режим AT mode 1 можно после того как на устройство подано напряжение питания и следом за этим на вывод PIO11 подан сигнал высокого уровня (3,3 вольт). При этом параметры передачи данных установятся в значения согласно прописанным настройкам (по умолчанию 9600 бод / секунду, 1 стоп бит, без контроля чётности).
Для активации режима AT mode 2 необходимо, до того как подать напряжение питания, соединить вывод PIO11 с выводом 3,3
вольта (ни в коем случае с выводом 5 вольт, иначе можно вывести из строя модуль!) и уже потом подать питания. В этом случае параметры передачи данных будут 38400 бод / секунду, 1 стоп бит, без контроля чётности.
Устройство будет находится в выбранном режиме AT команд сколь угодно долго пока на выводе PIO11 буде присутствовать высокий уровень сигнала. Для первого знакомства предпочтителен режим AT mode 2, так как известны параметры передачи данных.
Используя созданный виртуальный COM порт преобразователем TTL RS232 USB или реальный COM порт, в случае преобразователя TTL RS232 в COM, следует подключиться к модулю HC, задав необходимые параметры передачи данных в программе-терминале.
Все команды передаются в текстовом виде, чувствительны к регистру и должны быть введены заглавными буквами. Каждая команда начинается с комбинации символов AT и должна заканчиваться символами возврата каретки (\г <0xD>) и перевода на новую строку (\n <0xA>). Поэтому удобней будет настроить программу-терминал в режим работы с добавлением в конце строки символа CRLF. Если производится запрос параметров, то в конце строки до CRLF символа ставится вопросительный знак. Если происходит подача команды, то в конце строки ни чего не ставится. В случае успешного выполнения команды в ответе модуль возвращает OK. Если по каким-то причинам возникла ошибка, то на экран будет выведено сообщение вида ERROR:(<код ошибки>), где <код ошибки> номер ошибки описанный в [9]
Итак, приведём некоторые основные AT команды (их подробное описание и перечень можно найти в [9]).
Команда AT позволяет протестировать канал связи на правильность установки параметров передачи данных.
Команда AT+VERSION? возвращает текущую версию программы записанной внутри модуля.
Команда AT+ORGL сбрасывает настройки в состояние по умолчания. Основным из них: установка в режим Slave (модули HC-03, HC-05), параметры передачи данных (частота 9600 или 38400 бод / секунду, в зависимости от модуля, 1 стоп бит без контроля чётности), пароль для установления связи по bluetooth - 1234.
Команда AT+NAME? Позволяет узнать имя модуля.
Команда AT+ROLE? Позволяет узнать текущую роль устройства (для модулей HC-03, HC-05). Если написать AT+ROLE=0 или AT+ROLE=1, то можно установить роль в Slave или Master соответственно.
По команде AT+UART? \можно получить сведения по текущим настройкам параметров передачи данных. А если, скажем AT+UART=115200,0,0, то можно установить
параметры передачи данных с частотой 115200 бод / секунду с одним стоп битом и без контроля чётности (подробнее можно посмотреть в [9]).
ИЗМЕНЕНИЕ ПРОГРАММЫ МОДУЛЯ
В модулях HC заложена ещё одна очень интересная особенной, недокументированная производителем. Эта возможность по перепрограммированию встроенной Flash памяти. Изменить программу можно используя выводы SPI интерфейса (шестая группа, выводы с 16 по 19). Производитель микросхемы BC417 Cambridge Silicon Radio предоставляет платную среду BlueLab, которая позволяет написать свою программу для BC417 и отладить её.
К сожалению, эта программа не доступна рядовому радиолюбителю, так как для получения её необходимо пройти регистрацию на сайте [10], но при этом необходимо иметь почтовый ящик зарегистрированный не на общедоступных сайтах (таких, например, как mail.ru, gmail.com и т.п.). Это существенно сужает круг возможных потребителей этой продукции до фирм имеющих свой сайт. Если же вы сотрудник какой-либо фирмы, то эта программа позволит вам использовать весь заложенный в BC417 функционал.
ВЫВОДЫ
1. Модули китайской фирмы Guangzhou HC Information Technology позволяют добавить радиоканал к Вашему устройству с минимальными затратами времени и денег.
2. Модуль с завода готов к применению -включается в работу без изменений в настройках. Для большинства применений не требует дополнительных настроек, то есть принцип «включай и используй».
3. В модуль заложена большая гибкость путём изменения настроек AT командами.
4. Производитель не закрыл доступ к возможности изменять программу, что предоставляет практически не ограниченные возможности по изменению функциональности модуля.
ЛИТЕРАТУРА
[1] BlueCore4-Ext™ URL:
http://www.usconverters.com/downloads/CSR-BC417-datasheet.pdf (дата обращения 5.06.2013).
[5] MACRONIX INTERNATIONAL CO., LTD
MX29LV400C T/B MX29LV800C T/B MX29LV160C T/B URL:
http://www.macronix.com/QuickPlace/hq/PageL ibrary4825740B00298A3B.nsf/h Index/DBAC A1C90564EBB248257639003A563A/$File/MX 29LV800C%20T-
B,%203V,%208Mb,%20v2.6.pdf (дата обращения: 5.06.2013).
[6] Guangzhou HC Information Technology Co., Ltd. Product Data Sheet Module Data Sheet HC 05 URL: http://silabs.org.ua/bc4/hc05.pdf (дата обращения 5.06.2013).
[7] Guangzhou HC Information Technology Co., Ltd. Product Data Sheet Module Data Sheet HC 06 URL: http://etang.co.uk/datasheet/hc06/Bluetooth_HC -06_datasheet%20by%20cn.pdf
[8] Terminal. Com port development tool URL: https://sites.google.com/site/terminalbpp/ (дата обращения 5.06.2013).
[9] HC-03/05 Embedded Bluetooth Serial Communication Module AT command set Last revised: April, 2011 URL:
http://elecfreaks.com/store/download/datasheet/ Bluetooth/HC-0305 serail module AT commamd set 201104 revised.pdf (дата обращения 5.06.2013).
[10] CSR Support Home Page URL: https://www.csrsupport.com/ (дата обращения 5.06.2013).
Алексей Викторович Ескин -
ведущий инженер ООО «КБ Автоматика», E-mail: [email protected]
Вадим Аркадьевич Жмудь -
заведующий кафедрой Автоматики НГТУ, профессор, доктор технических наук, автор более 200 научных статей, включая 10 патентов и 6 учебных пособий. Область научных интересов и компетенций - теория автоматического управления, электроника, лазерные системы, оптимизация, измерительная техника. E-mail: [email protected]
http://www.csr.com/products/29/bluecore4-ext
(дата обращения 5.06.2013)
[2] Guangzhou HC Information Technology Co., Ltd. URL: www.wavesen.com (дата обращения 5.06.2013).
[3] HC Serial Bluetooth Products User Instructional Manual URL: http://www.mcu-turkey.com/wp-content/uploads/2013/01/HC-Serial-Bluetooth-Products-201104.pdf (дата обращения: 5.06.2013).
[4] Single Chip Bluetooth® v2.0+EDR System Production Information Data Sheet For BC417143B-IQN-E4 BC417143B-IRN-E4 July 2005 URL:
Виталий Геннадьевич Трубин - зав. лаб. кафедры Автоматики НГТУ, директор ООО «КБ Автоматика». http://www.sibindustry.ru/firm.asp?t=0& prm=9607&moid=0&tabindex=0 Автор 18 научных статей. Область интересов - разработка специализированной электроники. E-mail: [email protected]