将音频从GSM模块路由到蓝牙免提设备

时间:2010-04-18 14:46:11

标签: embedded bluetooth windows-ce

我有一个具有以下设置的系统: Bluetooth connected to GSM module using the PCM lines and GSM module connected to the AC97 codec using analog lines http://www.freeimagehosting.net/uploads/4a0c9bc0b2.png
我用:

  • Windows CE 6 R3
  • Microsoft的蓝牙堆栈,包括所有配置文件
  • 摩托罗拉H500
  • 音频网关服务已启动并正在运行(通过services list中的cmd进行检查)
  • GSM模块功能正常 - 我可以设置拨出电话和接听电话。
  • 蓝牙功能正常 - A2DP配置文件播放音乐到摩托罗拉耳机(现在不能记住模型)

我想使用耳机设备进行对话。我已将所有蓝牙组件都包含在目录中。

我使用我编写的应用程序与设备配对。建立连接后,我将设备地址和耳机配置文件的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芯片通过PCM接口为某个SCO连接路由音频。

所以我的问题如下:

  1. 我倾向于相信我不需要BTScoSnd和AudioGateway驱动程序,但我不确定。有人能证实吗?
  2. 如何在Windows CE下发送BT控制器特定命令的固件?

1 个答案:

答案 0 :(得分:2)

终于解决了......

除其他事情我做错了,我设置蜂窝模块使用错误的PCM接口(它有2个)。所以现在我有一个可以工作的耳机连接(嘈杂,但有效)。

最后,我启动了AG并运行了BTScoSnd驱动程序。我与耳机配对,BTScoSnd驱动程序与设备创建SCO链接。然后我给蜂窝模块命令将所有音频转移到正确的 PCM接口,然后我在耳机中同时输入音频和输出音频。所有链路处理均由BT控制器(基于BluetoothCore4 CSR的芯片)完成,该控制器默认配置为将SCO连接路由到PCM接口而不通过HCI层。

根据耳机和Hands-free profile specifications需要AG。

我还需要将固件设置为正确的配置。为此,我使用了Linux的BCCMD工具。使用Windows CE驱动程序通过HCI执行此操作需要很长时间才能实现。