Специальные возможности пользовательских интерфейсов Bluetooth модулей Bluegiga позволяюют работать с ними, как начинающим разработчикам, так и опытным, профессиональным программистам.
Процесс интеграции технологии Bluetooth, во вновь разрабатываемые изделия требует достаточно больших вложений. Это обусловлено крайне сложной программной реализацией стека протокола Bluetooth.
Модули фирмы Bluegiga состоят из полностью законченной аппаратной части Bluetooth и встроенного программного обеспечения.
ПО включает в себя профили и API операционной системы uCLinux, JAVA аплетов для взаимодействия Man-to-Machine, TCP/IP стэк, серверов WEB и Telnet и др. Кроме этого, модули имеют в своем составе процессор и встроенную память, предназначенную для согласования исполнения пользовательских приложений на той же платформе.
Базовые Bluetooth модули Bluegiga семейств WRAP 2022-ххх WT11, 12, 32 поставляются с прошивкой полного программного обеспечения Bluetooth, позволяющего сразу запустить модуль в работу с помощью простых команд. При этом нет необходимости в использовании дополнительных программ поддержки Bluetooth.
Для того чтобы начать работать с внешним устройством, достаточно прописать соответствующие значения в командных строках.
Благодаря гибкости архитектуры изделий и программного обеспечения модули Bluegiga обеспечивают быструю интеграцию конечного изделия в любую существующую сеть или систему автоматизации и значительно ускоряют разработку и процесс инсталляции элементов пользовательского программного обеспечения системы в разнообразные контролируемые устройства, такие как телеметрическое оборудование, медицинские приборы, промышленные системы, торговые машины.
В стандартной схеме, показанной на рисунке 1, стек протокола Bluetooth, представляет собой сложную структуру, которую непросто реализовать даже очень опытным программистам.

Рис. 1. Структура стандартного стека протокола Bluetooth
Известно, что найти бесплатную подробную информацию о программной реализации стека протокола Bluetooth в изделиях ведущих мировых производителей практически невозможно. Коммерческие версии подобной документации стоят десятки тысяч долларов.
Естественно, что разработчики могут самостоятельно подробно ознакомиться с технологией Bluetooth. Однако, для этого необходимо детально изучить два фундаментальных документа: "Specification of the Bluetooth System - Core" и "Specification of the Bluetooth System - Profiles", объем которых превышает тысячу страниц.
В подавляющем большинстве всех предлагаемых в настоящее время Bluetooth модулях реализованы три нижних уровня стека протокола Bluetooth, показанные на рисунке 1. Поэтому остальные уровни разработчикам приходится реализовывать самостоятельно. Последнее представляет собой сложную и дорогостоящую процедуру.
Продукция Bluetooth используется для беспроводной связи между устройствами, имеющими различные внешние интерфейсы и работающими в разных стандартах. Поэтому перед системными интеграторами стоит достаточно сложная задача согласования этих устройств и Bluetooth модулей.
Решение этой задачи, предлагаемое фирмой Bluegiga, основано на «платформе беспроводного удаленного доступа» - WRAP (Wireless Remote Access Platform). Идея заключается в том, что пользователям предлагается самим выбрать один из двух вариантов загружаемого в модуль программного обеспечения.
Bluetooth модули Bluegiga выпускаются в двух основных конфигурациях.
В базовой конфигурации модуль поставляется с уже установленным интерфейсом ASCII. Программный продукт ASCII представляет собой интерфейс, разработанный фирмой Bluegiga, который позволяет реализовать следующие опции:
• L2CAP;
• Baseband;
• LMP;
• SDP;
• RFCOMM;
• Profiles;
• Customer applications;
• Bluetooth Radio;
• HCI (UART, USB);
• Audio.
Управление модулем осуществляется при помощи простых символьных команд, аналогично тому, как это делается при работе с обычными модемами через AT команды.
При этом нет необходимости в использовании дополнительных спе-циальных программ поддержки Bluetooth.
В данном варианте программно реализованы все уровни стека протокола Bluetooth, показанные на рисунке 1.
Кроме того, в моделях с ASCII также поддерживаются два профиля стека протокола Bluetooth: профиль последовательного соединения (Serial Port Profile) и профиль обнаружения услуг (Service Discovery Profile). Это дает возможность пользователю устанавливать беспроводное последовательное соединение между двумя Bluetooth модулями и осуществлять обмен данными между ними при помощи набора простых команд интерфейса ASCII.
Например, чтобы получить список Bluetooth - устройств, находящихся в зоне действия модуля Bluegiga, достаточно набрать в командной строке терминальной программы – команду "INQUIRY time". По этой команде на экран выводится список всех Bluetooth - устройств, которые были обнаружены в зоне действия модуля.
Параметр «time» задает время поиска. Чтобы в течение 3 секунд найти в радиусе 100 м другие Bluetooth устройства нужно набрать 'INQUIRY 5 NAME'.
Ниже приведен пример результата выполнения команды - INQUIRY 5 NAME
INQUIRY_PARTIAL 00:07:80:bf:bf:01 001f00
INQUIRY_PARTIAL 00:07:80:80:05:65 920300
INQUIRY_PARTIAL 00:07:80:80:32:e0 920300
INQUIRY 3
INQUIRY 00:07:80:bf:bf:01 001f00
INQUIRY 00:07:80:80:05:65 920300
INQUIRY 00:07:80:80:32:e0 920300
NAME 00:07:80:bf:bf:01 "AI bf:01"
NAME 00:07:80:80:05:65 "WRAP AS"
NAME 00:07:80:80:32:e0 "WRAP THOR"
В качестве другого примера, поясняющего работу модуля с поддержкой ASCII, можно привести команду 'CALL < bd_addr > 1101 RFCOMM'. С помощью этой команды модуль будет пытаться соединиться через SPP с устройством, адрес которого < bd_addr >. Если соединение будет успешно установлено, то пользователь получит соответствующее уведомление и модуль автоматически переключится в Data mode.
В этом режиме все данные поступающие через UART будут переда-ваться в прозрачном режиме по Bluetooth каналу.
В текущей версии интерфейс ASCII, загруженный по умолчанию в модули, поддерживает 10 основных команд.
Кроме того в модулях Bluegiga есть модели с ASCII, поддерживаю-щим GPIO.
Установки UART могут быть изменены пользователем в зависимос-ти от задачи (Baud rate, Data bits, Stop bit, HW handshaking).Также можно выбирать различные протоколы H4, BCSP, USB.
Следует особо отметить, что использование интерфейса ASCII, накладывает определенные ограничения на использование возможностей технологии Bluetooth.
Модули, в которые загружено ПО интерфейса ASCII поддерживают только одно асинхронное соединений, в то время как модули, в которые загружено ПО, реализующее три низших уровня стека протокола Bluetooth могут поддерживать до семи одновременных асинхронных соединений.
В другом варианте, модули Bluegiga поставляются с интерфейсом HCI (Host Controller Interface). В этом случае необходимая поддержка портов определяется самим заказчиком и зависит от типа хоста внешнего сопрягаемого устройства. В таких модулях управление может быть реализовано также и с помощью HCI команд через UART или USB.
Вариант HCI представляет собой программную реализацию трех нижних уровней стека протокола Bluetooth (Bluetooth Radio, Baseband, LMP - см. рисунок 1). Этот вариант предоставляет пользователям значительно больше возможностей для управления Bluetooth модулем при помощи команд интерфейса хост - контроллера (Host Controller Interface).
Однако, в этом варианте появляются и дополнительные сложности. Например, для того чтобы установить беспроводное последовательное соединение между двумя устройствами и передавать данные между ними, разработчику необходимо программно реализовать верхние, более сложные уровни стека протокола Bluetooth, такие как L2CAP, RFCOMM, SDP.
В таблице 1 приведены основные достоинства и недостатки ПО интерфейса ASCII и ПО интерфейса хост-контроллера (HCI).
Окончательный выбор ПО, которое будет загружено в модуль, остается за конечным пользователем и определяется в зависимости от задач, которые должно выполнять, разрабатываемое изделие.
При этом очень важным является тот факт, что стоимость ПО уже заложена в стоимость самого Bluetooth модуля.

Для решения сложных специальных задач, предусматривающих написание собственных нестандартных программ пользователя, существует программно - аппаратный комплекс Bluelab Professional Casira. Этот профессиональный комплекс с программным обеспечением CSR позволяет редактировать программы, записанные во Flash модулей и писать новые управляющие программы.