1.设备的状态
设备上电之后,系统会用相应的状态标志来描述设备的状态
- Limbo:逻辑上关,物理上开,可以理解为手机安装了电池但是没有开机,这个状态下是不能处理任务的,所以上电之后首先要做的就是开机
- Connectable:可连接状态,能够被其他设备连接,处于page scanning
- Connectable Discoverable:能够被发现,同时可以连接
- Connected:已经建立连接
2.一些缩写代表的含义
没有写或者留下占位的都是有待解决的,如果有人了解的话能否告知。
- SCO:面向同步连接,Hfp的语音走的是SCO
- ACL:异步无连接链路,在主从设备之间以分组交换方式传输数据,可以支持异步应用也可以支持同步应用。
- SBC:一种编码格式,SBC一般的音频格式,蓝牙传输在不支持AAC,aptx的时候都用SBC传输,音质一般,现在80%都是这种格式
- AAC:当蓝牙支持AAC格式的文件,手机也支持AAC传输时,音质比SBC好很多,普通人听的出来这种区别
- APTX:是蓝牙传输的一种无损格式,由csr推广,在设计初期,要支持APTX,就必须要购买这个软件费用,并且aptx并不是大多数手机都支持,一般支持的手机在背后都有aptx的logo ,所以虽然效果好,但是真正可以支持的设备端其实不多
- SPP:蓝牙串行端口基于SPP协议(Serial Port Profile),能在蓝牙设备之间创建串口进行数据传输,俗称蓝牙串口
- RFCOMM:一个基于欧洲电信标准协会ETSI07.10规程的串行线性仿真协议。此协议提供RS232控制和状态信号,如基带上的损坏,CTS以及数据信号等,为上层业务(如传统的串行线缆应用)提供了传送能力。RFCOMM是一个简单传输协议,其目的为了解决如何在两个不同设备上的应用程序之间保证一条完整的通信路径,并在它们之间保持一通信段的问题。
- SDP:服务搜索协议(SDP)提供了应用发现可用服务以及确定可用服务特点的方法
- L2CAP协议:逻辑链路控制和适配协议(Logical Link Control and Adaptation Protocol),是蓝牙系统中的核心协议,负责适配基带中的上层协议。它同链路管理器并行工作,向上层协议提供定向连接的和无连接的数据业务。这个上层具有L2CAP的分割和重组功能,使更高层次的协议和应用能够以64KB的长度发送和接收数据包。它还能够处理协议的多路复用,以提供多种连接和多个连接类型(通过一个空中接口),同时提供服务质量支持和成组通讯。逻辑链路控制和适配协议(L2CAP)是基带的上层协议,可以认为它与LMP并行工作,它们的区别在于当业务数据不经过LMP时,L2CAP为上层提供服务。L2CAP向上层提供面向连接的和无连接的数据服务,它采用了多路技术、分割和重组技术、群提取技术。L2CAP允许高层协议以64K字节收发数据分组。虽然基带协议提供了SCO和ACL两种连接类型,但L2CAP只支持ACL。
- HCI:主机控制器接口
- OBEX:
- SWAT:
- TDL:
- TPS:
- CVC:
上一张蓝牙协议栈的简图:第一次画的,软件还没破解,画的不好看。
3.CSR的工程文件介绍
3.1 Project 文件
- xiw:xIDE的工作空间,一个工程有一个对应的工作空间
- xip:VM 文件,比如我们说的的speaker就是这个指的这个
- mak:工程的makefile文件,功能举例如下
- 能够将语音提示文件拷贝到芯片的文件系统中
- 占位
- 占位
- xml:定义了可以被更新的属性的文件
说明:一个工作空间只能有一个VM文件,但是可以包含多个dsp工程,以满足产品的需求,后面会介绍dsp工程的记录
3.2 配置文件
- 占位
4.蓝牙的音频源来源以及流向
4.1 数据来源
对于蓝牙来说最重要的应用就是打电话听音乐,那么这些音频来源有哪些呢?
- 有线音频:PCM Audio , I2S Audio
- USB 音频:usb作为音乐的输入源
- FM 接收:使用收音机的功能
- Bluetooth SCO:
- SCO and ESCO packet types are supported,参考上面的缩写定义,ESCO是SCO的增强版
- Buletooth A2DP:这个数据怎样走?
- SBC:工程自带的编解码方式
- MP3:需要DSP支持
- AAC:需要DSP支持
- aptX:需要DSP支持
- APT-X Low Latency:低延迟音频编解码器
- Speech Recognition:语音识别
- SPDIF Input:
4.2 音频输出
- 有线音频: PCM,I2S
- SPDIF:
5. 其他介绍
AG–该设备为音频(特别是手机)的输入/输出网关。
HF–该设备作为音频网关的远程音频输入/输出机制,并可提供若干遥控功能。
- hfp的介绍:蓝牙免提应用框架(HFP)是基于串口框架(SPP)来定义的,它通过在FRCOMM层传输AT控制指令来实现手机通话的免提功能。HFP中定义了两种设备角色,音频网关(AG)和免提设备(HF)。其中AG是指音频输入输出的网关设备,典型的音频网关主要有蓝牙手机;HF是指可以收发音频并遥控AG的设备,典型的免提设备主要有蓝牙耳机和蓝牙车载免提。具体的免提过程:首先AG和HF要基于ACL链路建立起RFCOMM连接,并通过AT命令完成一些基本的信息交互,例如HF端需要把本地的麦克风和扬声器的增益值通知AG端,而AG端需要把本地所支持的服务通知HF。任务完成后,二者之间相当于建立起一条服务及链路。在服务级链路建立完成之后,一旦AG检测到有与源端用户通话的过程,将主动建立与HF端的SCO语音链路连接。语音链路完成连接后,AG即采用CVSD编码格式将通话进行转移至HF读啊,用户即可通过HF端的扬声器和麦克风与源端用户进行通话。
- *