Дизайн и разработка решения для гарнитуры TWS

2021-03-10 11:27:52 fandoukeji

С наступлением эры всенаправленной мобильной связи легкие и компактные продукты Bluetooth становятся все более популярными. В последние годы гарнитуры и аудиошлюзы Bluetooth TWS быстро развивались и стали ярким пятном в области Bluetooth. Гарнитура Bluetooth TWS и аудиошлюз могут обеспечить быстрое и стабильное голосовое соединение в пределах 10 метров. Аудиошлюз - это не только беспроводной терминал, он напрямую подключается к гарнитуре Bluetooth TWS для звонков. Его более важная функция - служить точкой доступа для наушников и увеличивать расстояние до модулей GSM, стационарных голосовых терминалов и другого оборудования.


Bluetooth - это технология беспроводной связи ближнего радиуса действия 214 ГГц с рабочим диапазоном частот, который можно свободно использовать во всем мире. Он использует недорогие беспроводные соединения ближнего действия вместо кабельных соединений, тем самым обеспечивая существующие сети передачи данных и небольшие периферийные устройства Интерфейс обеспечивает унифицированное соединение. Bluetooth HeadSet использует технологию Bluetooth для реализации беспроводной связи между Bluetooth-гарнитурами TWS и аудиошлюзами (например, мобильными телефонами), тем самым обеспечивая ответ на звонки по мобильному телефону в режиме громкой связи. В модели Bluetooth HeadSet сначала необходимо уточнить две роли: одна - это AG (AudioGateway), который действует как аудиошлюз, который может использоваться как для аудиовхода, так и для аудиовыхода; другая - HS (HeadSet), которая является Bluetooth-гарнитура TWS, которая является устройством, используемым в качестве удаленного аудиовхода и вывода Bluetooth, и предоставляет некоторые методы дистанционного управления.


1. Процесс разработки гарнитуры TWS

При разработке гарнитуры Bluetooth TWS (Bluetoothheadset, HS) и аудиошлюза (AG) мы приняли полностью встроенную программу разработки Bluetooth британской компании CSR и разработали с использованием чипа BlueCore22External Bluetooth в качестве ядра. CSR предоставляет разработчикам несколько основных профилей базовой прошивки (брандмауэра) для реализации функций стека основных протоколов Bluetooth. Основное внимание в нашей работе уделяется прошивке профиля гарнитуры и использованию предоставленных снизу вверх API-интерфейсов приложений для написания приложений для гарнитур и аудиошлюзов, которые подходят для реальных нужд и соответствуют спецификации Bluetooth, и объединяют их с аппаратным обеспечением. Полностью реализовать все функции HS / AG. Чтобы написать встроенную программу Bluetooth на ПК, требуется среда кросс-компиляции Linux. Соответствующее программное обеспечение для отладки, моделирования и загрузки Bluetooth основано на операционной системе Windows. Решением этого противоречия является использование программного обеспечения Cygwin, которое предоставляет системную библиотеку Unix на основе Win32API, которая может имитировать среду Linux, работающую на платформе Windows. Введите команду makebc02 в Cygwin, прикладная программа и соответствующая прошивка будут скомпилированы в файл загрузки .xdv и через параллельный порт ПК к интерфейсу SPI чипа, наконец, все программное обеспечение будет встроено во флэш-память устройства. Модуль Bluetooth.


Дизайн и разработка решения для гарнитуры TWS

2. Разработка аппаратного обеспечения Bluetooth-гарнитуры TWS.

Микросхема Bluetooth BlueCore22External от CSR полностью совместима со спецификациями Bluetooth V1.1 и V1.2, интегрированной радиочастотой, процессором основной полосы частот, микроконтроллером и 32 КБ ОЗУ, а внешняя флэш-память объемом 8 МБ используется для хранения стека протоколов Bluetooth и прикладных программ. Радиоинтерфейс модуля Bluetooth обеспечивает 64 Кбит / с PCM по закону A, ИКМ по μ-закону и CVSD (инкрементная модуляция с непрерывным изменяющимся наклоном) три метода кодирования сжатия, поэтому в соответствии с методом кодирования, выбранным программным обеспечением, соответствующий кодек с производительностью выше 64 Кбит / с должен быть принятым. Мы применяем полностью встраиваемый метод разработки: все программные стеки и приложения Bluetooth работают на одном чипе, взаимодействуя с пользователями с помощью кнопок и светодиодов.


В-третьих, архитектура программного обеспечения TWS Bluetooth-гарнитуры.

Архитектура протокола Bluetooth использует многоуровневый подход, включая базовый протокол Bluetooth и некоторые специализированные протоколы. Профиль гарнитуры определяет протокол спецификации Bluetooth, используемый в приложениях HS и AG, и указывает некоторые сообщения и процедуры в спецификации Bluetooth, которые можно рассматривать как продольный участок стека протоколов. Моногарнитура и аудиошлюз полностью совместимы с профилем гарнитуры в спецификации Bluetooth, и их программные системы в основном одинаковы, но программы на уровне приложений разные.


Среди них основная полоса частот, управление каналом (LMP), протокол управления и адаптации логических каналов (L2CAP) и протокол поиска услуг (SDP) являются основными частями стека Bluetooth, которые выполняют скачкообразную перестройку частоты, разборку и сборку фрейма данных, а также поток данных. фильтрация и такие функции, как передача, управление каналом, качество обслуживания (QoS), мультиплексирование протоколов и обнаружение услуг. Протокол эмуляции последовательного кабеля (FCCOMM) обеспечивает возможности замены кабеля и предоставляет услуги для расширенных услуг, которые используют последовательные линии в качестве механизмов передачи.


Основная полоса Bluetooth поддерживает соединения как ACL (асинхронное соединение без установления соединения), так и соединения SCO (ориентированное на синхронное соединение 2) на одном и том же радиочастотном канале. ACL используется для асинхронной передачи данных, а SCO подходит для синхронной передачи голоса. Между HS и AG прикладная программа полагается на соединение RFCOMM на основе ACL для отправки и получения AT-команд, выполнения ответа на вызов, обмена MIC, параметров усиления громкости динамика и других операций управления. Голосовой поток на основе SCO напрямую отправляется на передачу в основной полосе частот верхним уровнем, что также является ключом к обеспечению обработки голоса в реальном времени.


Согласно регламенту профиля, HS и AG могут инициировать создание ACL. После того, как ACL успешно установлен, SCO может быть установлен в любое время. Может случиться так, что AG инициирует SCO инициативно, или после получения AT + AKPD (указывающего, что кнопка TALK на гарнитуре срабатывает) от HS, AG отвечает, чтобы установить SCO, но, по сути, только AG имеет право окончательно решить, когда создавать SCO. Аналогичным образом, удаление ACL и SCO также является обязанностью AG.

深圳TWS耳机PCBA设计

В-четвертых, программная реализация процесса создания связи Bluetooth.

Программа приложения bluetooth запускается на виртуальной машине в чипе, принимает сообщение (сообщение), чтобы проложить путь. Планировщик (schedular) отвечает за сбор событий сообщений и запуск соответствующей функции задачи.


4.1 Инициализация


Сначала инициализируйте функцию библиотеки гарнитуры, зарегистрируйте соответствующую службу гарнитуры в SDP и установите тип устройства (classofdevice). Если есть сопряженное устройство, приложение отправляет сообщение CM_ADD_SM_DEVICE_REQ, чтобы зарегистрировать его как доверенное устройство в диспетчере ссылок, что упрощает этапы аутентификации обеих сторон и ускоряет установление связи.


4.2 Сопряжение


Запрос на сопряжение CM_PAIR_REQ переводит устройство в режим сопряжения, а затем может запросить адрес Bluetooth другой стороны и обменять личный идентификационный номер (PIN) для аутентификации. Аутентификация успешна только в том случае, если PIN-коды, вводимые устройствами на обоих концах, одинаковы. Наконец, ключ связи (linkkey), используемый для связи, генерируется на основе PIN-кода, адреса Bluetooth и случайного числа, а также PsStore () вызывается функция, чтобы сохранить его на Flash в следующий раз. Используется при подключении.


4.3 подключение


Любая сторона может запросить установление RFCOMM-соединения в качестве ведущего или ведомого устройства. Стоит отметить, что только AG может затем выдать CM_SCO_CONNECT_REQ, чтобы запросить установление соединения SCO. Если обе стороны получают правильный статус, значит голосовая связь подключена.


В-пятых, принципиальная схема системы гарнитуры TWS Bluetooth.

Основные функциональные модули системы Bluetooth показаны на рисунке 1. Его функциональные модули включают антенный блок, контроллер связи, управление связью и программные функции.

图1 蓝牙系统的基本功能模块

5.1 Технические характеристики беспроводной связи


Антенна Bluetooth представляет собой микрополосковую антенну, а беспроводной интерфейс Bluetooth разработан на основе стандартной мощности беспроводной передачи 0 дБм, что соответствует требованиям к диапазону ISM Комиссии США по связи (FCC). Применение технологии расширенного спектра позволяет увеличить мощность до 100 дБм, что может удовлетворить потребности разных стран. В Японии, Испании и Франции из-за относительно узкой полосы частот, предписываемой местными правилами, это может быть реализовано путем внутреннего программного преобразования.


5.2 Технические характеристики Bluetooth Baseband


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


(1) Установление сетевого соединения; (2) Тип канала и тип пакета: Тип канала определяет, какой режим пакета может использоваться на конкретном канале, а технология основной полосы частот Bluetooth поддерживает два типа канала: Тип SCO, ориентированный на синхронное соединение (в основном используется для голоса) и асинхронный ACL без подключения (в основном используется для пакетных данных). (3) Исправление ошибок: контроллер основной полосы частот использует три метода исправления ошибок: кодирование с прямым исправлением ошибок (FEC) со скоростью 1-3, и автоматическое повторение передачи данных (ACL). (4) Аутентификация и шифрование: часть основной полосы частот Bluetooth предоставляет пользователям механизмы защиты и конфиденциальности информации на физическом уровне. Аутентификация основана на алгоритме «запрос-ответ». Аутентификация - это ключевая часть системы Bluetooth. Она позволяет пользователям устанавливать доверенный домен для личных устройств Bluetooth, например, позволяя только собственному ноутбуку владельца общаться через собственный мобильный телефон владельца. Шифрование используется для защиты связанной личной информации. Ключ управляется верхним уровнем программы. Протоколы и приложения сетевой передачи могут предоставить пользователям надежный механизм безопасности.


Шесть, структура стека протоколов модели приложения HeadSet.

Стек протоколов Bluetooth имеет многоуровневую структуру, как показано на рисунке 2.

图2 蓝牙协议栈

Ниже кратко описаны функции каждого уровня:


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


Уровень LC (LinkControl) отвечает за ответы на команды LM верхнего уровня (например, выполнение команд LM для установления канала передачи пакета данных и поддержания связи) во время передачи пакета пакетов данных.


Уровень LM (LinkManager) - это протокол уровня управления каналом стека протоколов Bluetooth. Он отвечает за преобразование команд HCI верхнего уровня в операции, которые может принимать основная полоса, установление каналов ACL (данные) и SCO (голос) и создание устройство Bluetooth переходит в состояние энергосбережения. Режим работы и т. д.


ME (ManagementEntity) - это управляющий объект, функция которого заключается в обнаружении удаленных устройств и установлении с ними соединений, а также в предоставлении интерфейсов API для прикладного уровня и других системных уровней, которым необходимо управлять пикосетью Bluetooth.


SE (SecurityManager) и ME работают вместе, позволяя приложениям устанавливать аутентификацию и шифрование. Настоящая аутентификация и шифрование реализуются аппаратно.


Протокол управления логическим каналом (L2CAP) использует концепцию каналов для установления разных путей между различными приложениями устройств Bluetooth, но поддерживает только ссылки ACL. Основная функция - обеспечить мультиплексирование протоколов для высокоуровневого прикладного уровня, позволяя им совместно использовать канал передачи данных низкого уровня. Он также выполняет операции группирования и повторной сборки для больших пакетов данных, которые превышают поддержку нижнего уровня, и в то же время обеспечивает управление качеством службы верхнего уровня.


Протокол бизнес-поиска (SDP) является чрезвычайно важной частью. Он позволяет клиентам SDP запрашивать служебную информацию с сервера SDP. Сервер ведет список записей службы, в котором описаны характеристики службы, относящиеся к серверу. Клиент может запросить служебную информацию, службу и характеристики службы из записи сервера, отправив запрос SDP, и установить соединение между двумя или более устройствами Bluetooth после запроса.


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


Уровень управления HeadSet: он в основном реализует функции, определенные профилем HeadSet, такие как регулировка громкости MIC (микрофона) аудиошлюза, регулировка громкости SPK (динамика), установление и отключение каналов SCO и передача звука.


Уровень приложения аудиопорта: это некоторые функции, зависящие от приложения. На уровне приложения гарнитуры должны быть реализованы следующие функции приложения:


(1) Аудиосвязь может быть установлена при получении вызова от AG, а аудиосвязь может быть отключена после завершения вызова. (2) Вызов удаленной стороне может быть инициирован, а аудиосвязь также может быть отключена после завершения вызова. (3) Передача аудиосвязи. (4) Регулятор громкости удаленного AG.

蓝牙TWS耳机设计开发商

Семь, создание связи Bluetooth HeadSet

Когда аудиошлюз AG Bluetooth принимает вызов и инициирует соединение с HS, чтобы сделать голосовую связь прикладного уровня надежной, стек протоколов Bluetooth должен установить надежную линию связи. Согласно работе стека протоколов Bluetooth, построение цепочки от нижнего до верхнего уровня обычно включает в себя следующие процессы:


(1) Установите ACL или ссылку на уровне основной полосы частот; (2) Установите ссылку на уровне L2CAP; (3) Выполните процесс запроса SDP; (4) Установите ссылку на уровне RFCOMM; (5) После Связь RFCOMM установлена, подключитесь Передайте некоторые AT-команды уровня управления HeadSet через канал RFCOMM; (6) Установите канал SCO; (7) Выполните аудиосвязь между Bluetooth HS и AG в соответствии с действием уровня приложения. Процесс построения стека протоколов Bluetooth подробно обсуждается ниже.


7.1 Создание ACL или ссылки на уровень основной полосы частот


Когда AG принимает вызов, он сначала устанавливает связь ACL с HS. HS и AG должны быть связаны заранее, или HS, которая находилась в неактивном состоянии, должна быть пробуждена. Это делается через процесс страницы.Когда процесс страницы используется для установления ACL, AG определяется как роль Master, поэтому AG сначала инициирует запрос и получает адрес Bluetooth HS, запрашивая AG. Затем AG инициирует пейджинговый процесс для запрашиваемой HS под управлением прикладного уровня.Когда ответ, возвращенный HS, получен, связь ACL между AG и HS была успешно установлена.


После того, как ссылка ACL установлена, ее можно использовать для передачи сигналов вызова. Отправка сигнала вызова завершается AT-командой RING. Сигнал вызова также может быть отправлен по каналу SCO.


7.2 Установите ссылку на уровень L2CAP


После подключения ACL создайте ссылку L2CAP. AG сначала отправляет сигнализацию запроса соединения по сигнальному каналу, запрашивая установление L2CAP с меткой канала 0x0040 (0x0001 ~ 0x003F зарезервирован для протокола и не может быть динамически распределен, 0x0040 ~ 0xFFFF может быть свободно распределен), PSM (Protocol Service Multiplex) ) этого канала Используйте) знак 0001, когда другая сторона возвращает сигнал ответа линии, это указывает на то, что канал 0x0040 был установлен. Затем настройте этот канал.После настройки канала вы можете использовать этот канал L2CAP с CID 0x0040 для запроса SDP.


7.3 процесс запроса SDP


Для выполнения процесса запроса SDP используйте канал L2CAP с CID 0x0040. Во-первых, AG отправляет пакет запроса SDP по этому каналу L2CAP, и пакет запроса SDP запрашивает, имеет ли сервер HS SDP требуемую услугу. Если запрос выполнен успешно, на ссылке ACL создается еще одна ссылка L2CAP с меткой 0x0041. PSM этого канала - 0003, который используется для передачи потоков данных RFCOMM. В то же время отключите канал L2CAP с меткой 0x0040, используемый для запроса SDP.


7.4 Установите ссылку на уровне RFCOMM


После того, как канал L2CAP с CID 0x0041 установлен, следует процесс установления цепочки RFCOMM, как показано на рисунке 3. Сначала устанавливается канал управления. Инициатор установления соединения AG отправляет кадр SABM по каналу, который требует установления канала 0 на уровне RFCOMM. Если ответчик HS хочет установить соединение, он возвращает кадр UA , что указывает на то, что канал RFCOMM канала 0 установлен. Этот канал является каналом управления, используемым для передачи кадров UIH, которые несут управляющие сообщения и команды. Если отвечающая HS не хочет устанавливать соединение, она возвращает кадр DM.


Во-вторых, устанавливается канал данных. Во-первых, согласовываются параметры канала передачи данных. PN-параметры команды согласования включают приоритет канала, который должен быть установлен Channel1, максимальную длину кадра и т. Д. канал передачи данных Channel1 установлен.

图3 RFCOMM的建链过程

После того, как канал данных уровня RFCOMM построен, передаются команды управления уровня управления HeadSet. То есть кадр UIH используется для передачи AT + CKPD = 200 и других команд по каналу передачи данных Channel 1. После получения ответа OK от другой стороны может быть установлена связь SCO.


7.5 Установить связь SCO


Во время инициализации HCI отправляет команду WRITE_VOICE_SETTING для установки состояния звука. При получении запроса от AG на установление канала SCO, если HS позволяет это, отправьте полученную команду HCI. После завершения команды канал SCO, передающий звук signal is После того, как он построен, голосовая связь может осуществляться в это время.


Восьмой, конструкция конечного автомата уровня приложения Bluetooth.

После того, как канал связи стека протоколов установлен, можно осуществлять связь на уровне приложений. На прикладном уровне работает главный конечный автомат, как показано на рисунке 4. В соответствии с действиями пользователя и командами, отправленными AG, процесс приложения HS будет выполняться между состояниями. Связь ACL между HS и AG в состоянии ожидания может быть, но канал RFCOMM не установлен, и канал SCO для аудиосигналов отсутствует. Когда AG отвечает на внутренние события или запросы пользователя, он инициирует запрос на установление связи. Когда HS получает запрос на установление связи, HS и AG начинают создавать связи ACL, L2CAP и RFCOMM. После того, как канал RFCOMM установлен, AG отправляет одну или несколько команд инструкции вызова AT + RING, которые информируют пользователей HS о прибытии звукового канала для входящих вызовов. В это время статус изменится на статус звонка входящего вызова.

图4 应用层主状态机运行

Состояние вызывного сигнала входящего вызова. В это время аудиошлюз AG установил канал ACL и RFCOMM с HS, а HS получил сигнал вызова, который указывает, что аудиошлюз требует установления канала SCO. не отвечает на звонок, аудиошлюз. Канал RFCOMM будет завершен, и состояние вернется в состояние ожидания. Если пользователь нажимает кнопку Bluetooth на HS, это означает, что пользователь принимает запрос на аудиосвязь входящего вызова В это время HS отправит AG управляющую команду AT + CKPD. Между ними будет установлено соединение SCO, и статус будет передан статусу канала.


Статус вызова Когда пользователь HS нажимает кнопку Bluetooth на HS, пользователь отправляет запрос на вызов аудиошлюза. В это время HS сначала устанавливает связь ACL, а затем делает запрос SDP к аудиошлюзу. Если запрос SDP успешен, HS открывает канал RFCOMM, связанный с AG, и отправляет AT-команду + CKPD, чтобы запросить установление звукового канала SCO. Когда канал SCO установлен, состояние будет переведено в состояние подключения, если канал SCO не может быть установлен, состояние будет переведено в состояние ожидания.


Состояние связи В состоянии связи установлены ACL, L2CAP, RFCOMM, выполнен запрос SDP, и аудиовызов готов. Если пользователь обращается к HS, голос будет передан в AG через канал SCO, а голос будет передан на дальний конец через AG.


Состояние отключения связи Отключение связи может быть завершено нажатием кнопки Bluetooth на HS, или оно может быть вызвано внутренними событиями AG или вмешательством пользователя. Независимо от причины, это, по сути, результат разрыва связи AG. Если HS отправляет запрос на отключение и отправляет AT-команду + CKPD на аудиошлюз, чтобы запросить аудиошлюз на отключение, аудиошлюз отключит канал SCO и канал RFCOMM. Когда RFCOMM отключен, состояние переходит в состояние ожидания. Ссылка ACL может быть в отключенном состоянии или в связанном состоянии.


Девять, реализация Bluetooth HeadSet

Возьмем, к примеру, решение Bluetooth компании Motorola: компания Motorola имеет большой опыт в области передовых радиочастотных технологий. Решение Bluetooth от Motorola может использовать UART, RS232, USB или SPI для подключения к основному процессору, а основной процессор может обрабатывать такие функции, как стек по протоколу Bluetooth и интерфейс главного контроллера через эти интерфейсы; и это решение Bluetooth является отвечает за выполнение следующих остальных функций стека (интерфейс главного контроллера, протокол программы управления каналом, основная полоса частот и радиочастота). И использует 32-разрядное процессорное ядро Motorola MCORETM для вычислений с сокращенным набором команд (SISC), которое содержит очень гибкий набор периферийных устройств, который подходит для множества различных встроенных приложений Bluetooth.


подводить итоги


В последние годы быстрое развитие мобильной связи, портативных компьютеров и Интернета увеличило спрос на различные передачи данных и информации, помимо телефонной связи. Технология «Bluetooth» соединяет различные портативные компьютеры и сотовые мобильные телефоны с помощью беспроводных цепей, так что компьютеры и средства связи более тесно интегрированы, так что люди могут обмениваться и передавать данные в любое время и в любом месте.