蓝牙已确确实实的来到人们的生活当中。我们曾经怀疑“身边会有多少蓝牙设备可以连接”,现在我们想的却是“我和你的蓝牙设备连接效果会怎么样”。
直到最近,蓝牙音频传输都较为简单。蓝牙规范只定义了一种传输机制,对于更复杂的应用几乎没有选择余地。如今,蓝牙规范1.2以及一种新的高品质音频协议的发布,使得一度单调的蓝牙音频功能变得丰富起来。由于所有的数字音频传输都是建立在数据流的基础之上,所以可用的传输方式在传输机制、编码方法、数据速率、数据包长度以及检错/纠错等方面都有所不同。
蓝牙技术是一种基于数据包、时隙为625毫秒的跳频协议。在每两个进行配对通讯的蓝牙设备中,一个是连接的主设备,另外一个是从设备。一般来说,在接收到来自主设备的一个数据包后的时隙内,从设备就向主设备传送数据。蓝牙技术规定了音频数据传输的两个基本机制。
最初的蓝牙音频传输机制是同步定向连接(SCO)信道,它支持数据速率为64kbps的全双工传输。在没有射频干扰的情况下,SCO的音质可接近标准移动电话的音质。这个结果也在预料之中,因为在蓝牙技术的发展本身就带有应用于蓝牙耳机的思想。SCO数据在指定的时隙内传输,既保证了带宽,又为数据包在确定的时间内到达提供了保障。
蓝牙设备采用逻辑链路控制和适配协议(L2CAP)来传输不同步数据。逻辑链路控制和适配协议将所有不同步的数据传输多路复用到有效的蓝牙带宽上,其中包括串行数据(例如AT命令与响应)、服务发现数据、以及用于提供音频和视频流信道的等时数据。
蓝牙规范1.2提高了蓝牙设备的服务质量(QoS),并大大改善等时数据的效用。这些改善使应用程序能够为传输数据流请求带宽和延迟保证。
选择正确的SCO信道
SCO信道在可自定义功能方面提供的东西很少。比特率是固定的,当确定了三个编码解码器后,实际上只有一个连续可变斜率增量(CVSD)被用到。其它的编码解码器(A-Law和L-law)虽然提供更好的音质,但它却跟CVSD一样没有容错性。由于SCO信道只提供有限的检错/纠错功能,并且没有数据包重发功能,所以CVSD是一种更安全的选择。
SCO提供了全双工的音频。蓝牙连接中的主设备发送一个数据包给从设备,而从设备在接下来的时隙中给予响应。尽管能够对特定的包类型作出选择,这个特定的包类型还是象征性地被留在了蓝牙芯片组内的连接管理固件中。蓝牙技术定义了传输SCO的四个包类型(见表)。
不论是由芯片组来选择,或者是由系统设计者来选择,在选择SCO包类型时都需要折衷考虑。HV1数据包较其它类型的数据包具有更好的纠错效果,但它在蓝牙1.1规范中却要占用整个带宽。HV3数据包类型不提供检错功能,但却只占用每6个时隙中的2个。于是蓝牙设备能够在保持SCO连接的同时再建立其它连接,这在SCO数据采用HV1数据包时是不可能的。图2是一个SCO的时序图。
最理想情况下,包类型不会影响音频质量,在所有的三种情况下所传输的数据完全相同。HV1和HV2数据包允许对一些误码进行纠正。但一般情况下误码不会明显降低音频质量。音质差极有可能是因为数据包丢失造成的。
一个蓝牙数据包由一个访问码,一个起始码和一个有效荷载组成。当1/3前向纠错码和检错码对起始码进行保护时,低信号强度或本地干扰可能会造成到达的数据包中的起始码无效。在种情况下,这个数据包就会被丢弃,因为没有SCO数据包的重发请求机制,数据包就这样丢失。
如果连接使用HV1数据包,数据丢失得就会较少,因此在一个丢失的数据包中,音频弹跳能量就越少。如果同样是因为带宽窄或者是短时间的干扰造成数据包的丢失,HV1可以比HV2或者HV3数据包提供更好的音质。当然这也并非一成不变,因为HV1传输数据包更多,所以在嘈杂环境中数据包丢失的可能性也会更高。
蓝牙规范1.2加入了在本地干扰存在情况下改进SCO音质的功能。IEEE-802.11b就是一个很好的例子,它在ISM(工业、科学及医学机构用带宽)带宽中占用大约22MHZ的带宽,或蓝牙频谱中的22个信道。
蓝牙技术使用的79个信道之间的间隔为1MHZ。蓝牙1.2版本加入了自适应跳频(AFH)技术,它可以让已配对的蓝牙设备避免会产成冲突的信道。配对的两个设备可以实时生成一个信道图,或被提供给来自上层软件的无线信号。后一种模式使同时包含有蓝牙和802.11b节点的设备能更好地共存。设备的软件为蓝牙模组提供了一个新的频率图,以防止蓝牙设备使用被802.11b节点占用范围内的信道。由于干扰造成的数据包丢失变少,所以音质得到改善。AFH采用的跳频算法只需20个良好信道就能工作。减少工作信道对AFH不利的是,来自附近蓝牙连接的干扰的可能性会随之增加。
扩展SCO信道
扩展SCO信道是蓝牙1.2版本中的另一项新增功能,它可在信道参数上提供更大弹性,并允许重发损坏的数据包。这些扩展功能与AFH结合在一起,能在音频传输方面比蓝牙1.1版本的标准SCO信道有更好的表现。
举个最简单的例子,虽然采用新类型的数据包,eSCO信道与SCO信道的工作方式非常相似。音频数据以单间隙包进行传播,这些数据包包含1到30个数据字节,但是eSCO做了两项改进。第一,在数据包中加入CRC码以检验数据的有效性(这在HV3SCO数据包中是没有的)。第二,如果接收设备检测到数据包有错,可以请求重新发送出错的数据包。这取决于信道是如何设置的,因为信息帧必须被保留下来,以便于重新发送。
不利之处是重发数据包的会增加收发设备的功率消耗。采用AFH能将这种影响降至最低。如果数据包丢失是因为固定带宽的干扰,如802.11b等引起的,AFH可让蓝牙设备避免已知的不良信道以减少数据重发。设计者们还需要考虑到数据延迟问题,因为重新发送的数据要比计划到达时间至少晚1.2ms。
正如前面提到的,由于丢失或损坏数据的可能性较大,SCO信道采用了CVSD音频编码。其它编码解码器能提供较好的保真度,但在接收到有错数据时表现很差。有了eSCO更好的数据完整性,就有可能采用其它编码器来改善音质而无需提高64kbps的基本数据速率。.SCO数据固定数据速率为64kbps,具有对称、支持全双工的特点。采用eSCO会增加两个多时隙的数据包,并支持不对称的数据速率。事实上,根本没有数据需要传输。如果一条eSCO信道是单向的,例如语音博物馆向导(audiomuseumguide),接受设备在接收到一个数据包后回发一个很小的叫做NULL的包以表示确认。基于协商的参数,利用多时隙数据包,eSCO信道上的数据速率可能高至288kbps,这使支持包括视频传输在内的高阶编码解码器成为可能。
有意思的是,eSCO所拥有这些丰富选项,反而成为有效应用其功能的最大障碍。信道选项,比如数据速率和编码解码器,必须在应用层得到协商。负责制定采用了SCO连接的协议规范的各蓝牙工作小组,都在开发一种以便能将eSCO集成到这些协议中去的方法。
一个推荐的解决方法就是分阶段引入这些特色功能。第一阶段将eSCO限定在一个64kbps的CVSD信道,这跟SCO信道限制硬件和软件上的支持具有同样效果。有了这样的经验,更多的功能将被引入。如果这样显得太过谨慎,别忘了有消息声称“大约有55个不同的配置在采用eSCO的情况下达到了对称的64kbps。
有关宽带语音的规范目前正在开发中,其背后的驱动力正是3G移动通信技术中一个类似技术的衍生。假如大量蓝牙产品以移动电话耳机配件,车载免提套件附件为目标市场,那么电话与配件间的音频连接质量至少要达到移动电话网与移动电话之间连接质量。有关蓝牙宽带语音规范的细则还未出炉,但将采用eSCO作为其传输机制这点已很清楚。
高级的音频分布式传输协议
顾名思义,最近采用的音频分布式传输协议(A2DP)正是为了高品质音频数据的传输而设计的。单向的音频流可能用到任一种编码解码器。但为保证互操作性,A2DP强制指定了一个编码解码器。正如数据源和编码解码器所指定的,数据流中可以包含一个单一的音频信道或者混合立体声编码。
前面提到,蓝牙技术提供同步和非同步数据的传输业务。A2DP采用一个加载于L2CAP层上的等时数据信道。在A2DP和L2CAP之间是音/视频分布式传输协议。该协议层定义了音频和视频流的传输机制。
A2DP和AVDTP对数据流的解码、传输及解码等作出了规定。另外还有一个协议能够控制数据流所包含的内容,这个协议就是音视频遥控协议,它规定了执行一个遥控设备所需的基本元素。
将这些元素集于一身,用户可将带蓝牙功能的数字音频播放器带到他们的汽车中去,并很好的利用汽车内置音响系统,以在享受播放器的同时对播放器进行控制。蓝牙具有的充足带宽,支持高品质带立体声编码的音频流,可带给用户带来高保真无线音频。随着这些功能或小发明被迅速移植到电子助理设备中,像移动电话或者PDA等都将成为很好的音频源。目前A2DP已在无线立体声耳机和家用音响系统中的遥控音箱等设备中被采用。
基于应用的考虑
我们知道,蓝牙技术为音频数据的传输提供了多个选择。具体选择哪一种则首先考虑应用。如果应用基于标准的蓝牙协议,那么该协议会规定什么类型的音频传输机制是可用的。
对于功能较简单的蓝牙设备,比如单声道手机耳机,简单的SCO音频信道就可以。除非处于特别环境,所有的SCO音频数据包类型都可以在这样的设备上使用,而把准确选择留给蓝牙芯片的连接管理代码。
如果蓝牙耳机支持更高质量的音频,如宽带语音,则必须加入合适的编码解码器和eSCO。需要注意的是,协议层编码必须对信道特性协商进行控制,这点与SCO信道在协议层无须协商有所不同。
如果两个设备就一组eSCO参数不能达成一致,那么这两个设备必须能够退而采用SCO信道。这个附加的协商功能增加了编码的复杂性,更增加了在互操作难度。制造商在开发含有eSCO功能的蓝牙产品时,在产品的互操作性测试上下了不少功夫,其中包括与完全不支持eSCO的基于蓝牙1.1的产品之间的测试。
测试的操作环境也必须考虑到很多因素。如果存在已知干扰,如802.11b节点,结合使用自适应跳频技术和eSCO的数据包重发机制,可大大减少数据包的丢失并提高音质。如果设备同时具有802.11b和蓝牙节点,设计者应该注意软硬件中的传输机制以实现共存。
通过软件设置蓝牙信道屏蔽可以避免被本地802.11b占用的频率。这就使AFH软件无须通过实际操作就能得知那些不良信道。也有其它机制试图轮流给每个设备指定传输时间,这个方案在处理对时间要求不紧迫的数据时效果较好,但在面对同步或者等时数据流的却没有多大价值。由于这些特性在各芯片生产商间各有不同,感兴趣的设计者应从他们首选的供应商那里弄清楚哪些是可用的。
对编码解码器的选择应多加注意。对于SCO和eSCO信道,在面对可能有缺陷的数据时,CVSD将可以接受的音质与鲁棒性结合起来。采用不同的编码解码器能在同样的数据速率下改善音质,但必须考虑到数据稳定性和设备的互操作性。
如果应用要求高品质的单向音频通路,A2DP将是合理的选择。这也再次提醒设计者在选择编码解码器时须多加注意。对于专用的成对设备则可采用任意的编码解码器,比如扬声器,它只需连接到其配对节点(音源)上。如果设备将与多种设备配对使用,最好的选择就是采用默认的编码解码器。