Маршрутизация аудио с модуля GSM на устройство Bluetooth HandsFree - PullRequest
4 голосов
/ 18 апреля 2010

У меня есть система со следующей настройкой: Bluetooth подключен к модулю GSM с использованием линий PCM, а модуль GSM подключен к кодеку AC97 с помощью аналоговых линий http://www.freeimagehosting.net/uploads/4a0c9bc0b2.png
Я использую:

  • Windows CE 6 R3
  • Стек Microsoft от Microsoft, включая все профили
  • Motorola H500
  • Служба Audio Gateway запущена и работает (проверено с помощью services list in cmd)
  • GSM модуль работает - я могу устанавливать исходящие звонки и отвечать на звонки.
  • Bluetooth работает - профиль A2DP воспроизводит музыку на наушники Motorola (модель сейчас не помню)

Я хочу вести разговор с помощью гарнитуры. Я включил все компоненты Bluetooth в каталог.

Я соединяюсь с устройством, используя приложение, которое написал. После установления соединения я сохраняю адрес устройства и GUID профиля гарнитуры в [HKEY_LOCAL_MACHINE\Software\Microsoft\Bluetooth\AudioGateway\Device\1], чтобы AG мог знать, что к нему подключено устройство.

Я также установил [HKEY_LOCAL_MACHINE\Software\Microsoft\Bluetooth\AudioGateway\MapAudioToPcmMode] на 0, чтобы BTD.dll знал, что не вступает во владение соединениями SCO.

В моем чипе BT (Wi2Wi) написано, что PCM работает с соединением SCO, но не через обычный стек HCI. Поэтому сейчас я пытаюсь понять, как сказать чипу BT, чтобы маршрутизировать аудио для определенного соединения SCO через интерфейс PCM.

Итак, мои вопросы таковы:

  1. Я склонен полагать, что мне не нужны драйверы BTScoSnd и AudioGateway, но я не уверен. Кто-нибудь может это подтвердить?
  2. Как отправить прошивку для конкретных команд контроллера BT под Windows CE?

1 Ответ

2 голосов
/ 03 мая 2010

Окончательно решено ...

Помимо всего прочего, я настроил сотовый модуль на работу с неверным интерфейсом PCM (у него 2 таких). Так что теперь у меня есть подключение гарнитуры, которое работает (шумно, но работает).

В конце концов, у меня запущен AG и работает драйвер BTScoSnd. Я соединяюсь с гарнитурой, а драйвер BTScoSnd создает связь SCO с устройством. Затем я даю сотовому модулю команду переадресовать все аудиосигналы на правильный PCM-интерфейс, а затем у меня есть и аудиовход, и аудиовыход в гарнитуре. Вся обработка канала выполняется контроллером BT (микросхема BluetoothCore4 на основе CSR), который по умолчанию настроен на маршрутизацию соединений SCO к интерфейсу PCM без прохождения уровня HCI.

AG требуется в соответствии с гарнитурой и спецификациями профиля громкой связи .

Мне также нужно было установить правильную конфигурацию прошивки. Для этого я использовал инструмент Linux BCCMD. Выполнение этого через HCI с использованием драйвера Windows CE заняло слишком много времени.

...