下载此文档

原理解析之蓝牙协议栈和语音网关3.doc


文档分类:IT计算机 | 页数:约2页 举报非法文档有奖
1/2
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/2 下载此文档
文档列表 文档介绍
◆蓝牙耳机的工作原理
下面重点讲述下蓝牙耳机的工作原理:
关于音频流的蓝牙传输可以通过两个方式:
1) 通过PCM接口来传送
2)通过模拟UART来传送
下面分别来讲述:
1)通过PCM接口来传送
通过音频播放器(eg: Media Player)来打开音频文件,调用Audio驱动,音频文件通过解码后,由PCM输出到Host端蓝牙模块的PCM输入端,接着,经过蓝牙模块的处理后,由RF无线模块发送给Client 端蓝牙设备.
Client 端蓝牙设备经由无线接收模块后,滤波,稳压,经微处理芯片处理后,直接由Speaker播放.
2)通过模拟UART来传送
通过设置注册表【HKEY_LOCAL_MACHINE\Services\BTAGSVC】   IsEnabled =1 使得系统引导时自动加载语音网关(AG)服务.
首先,通过手动配置建立Host端蓝牙设备与Client端蓝牙设备ACL链接(面向无连接的异步链路),接着在Applicaiton或Audio Driver中调用 IOCTL_AG_OPEN_AUDIO,重新建立Host端蓝牙设备与Client端蓝牙设备SCO链接(面向连接的同步链路),接着AG自动发送waveOutMessage((HWAVEOUT)i, WODM_BT_SCO_AUDIO_CONTROL, 0, TRUE); 从而建立了Audio至蓝牙芯片之间的通道,也即,实现了音频流到蓝牙模块的传送.
然后,经由主机端蓝牙模块将音频流打包经由RF模块发送出去.
客户端蓝牙耳机接收到无线音频包后,滤波,稳压,经微处理芯片处理后,由PCM传送给音频编解码器芯片,最后,由Speaker播放.
下面这段段码是建立Host端蓝牙设备与Client端蓝牙设备SCO链路
HANDLE h = CreateFile(L"BAG0:",0,0,NULL,OPEN_EXISTING,0,NULL);  
    if (INVALID_HANDLE_VALUE == h) {  
        wprintf(L"Error calling CreateFile on Audio Gateway.\r\n");  
        return 0;  
    }  
 
if (onaudio==1) {  
                wprintf(L"Opening Bluetooth audio...\n");  
                  
                BOOL fStatus = DeviceIoControl(h,IOCTL_AG_OPEN_AUDIO,NULL,0,NULL,0,NULL,NULL);  
                if (FALSE == fStatus) {  
                    wprintf(L"Operation failed: %d.\n", GetLastError());  
                }  
                else {  
                    wprintf(L"Operation essful.\n");      

原理解析之蓝牙协议栈和语音网关3 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数2
  • 收藏数0 收藏
  • 顶次数0
  • 上传人zbfc1172
  • 文件大小16 KB
  • 时间2018-06-17