您的位置:首页 > 其它

蓝牙基础及应用 && 蓝牙耳机用到的协议

2010-04-15 18:21 393 查看
Bluetooth的一个很重要特性,就是所有的Bluetooth产品都无须实现全部的Bluetooth规范。为了更容易的保持Bluetooth设备之间的兼容,Bluetooth规范中定义了Profile。Profile定义了设备如何实现一种连接或者应用,你可以把Profile理解为连接层或者应用层协议。




(1)蓝牙主机控制器模块Bluetooth Host Controller作为蓝牙的底层,是典型的硬件实现,应用程序(或在蓝牙上添加的服务)不能直接控制。蓝牙的HCI有UART和USB两种,因为前者简洁效率高,所以以前者居多。框图如下:




(2)蓝牙主机模块允许应用程序通过蓝牙连接发送/接受数据,或者配置连接参数:

· RFCOMM允许应用程序将蓝牙连接模拟为串口进行操作。这样可以支持传统的协议。

· 逻辑连接控制和适配协议The Logical Link Control And Adaptation Protocol (L2CAP) 它用来控制多用户的连接,处理报文的分割和组合。这是应用程序的常用选择。

· 服务发现协议The Service Discovery Protocol (SDP)用来定位和描述蓝牙设备提供或者可用的服务。应用程序主要在设置和另外的蓝牙设备通信时使用它。

· 主机控制接口The Host Controller Interface (HCI)驱动包装了和硬件通信的高层模块。

(3)关于蓝牙profile:比如,如果一家公司希望它们的Bluetooth芯片支援所有的Bluetooth耳机,那么它只要支持HeadSet Profile即可,而无须考虑该芯片与其它Bluetooth设备的通讯与兼容性问题。如果你想购买Bluetooth产品,你应该了解你的应用需要哪些Profile来完成,并且确保你购买的Bluetooth产品支持这些Profile。

在所有的Profile中,有四种是基本的Profile,这些Profile会被其它的Profile使用。它们是:

GAP Profile: Generic Access Profile,该Profile保证不同的Bluetooth产品可以互相发现对方并建立连接。

SDAP Profile: Service Discovery Application Profile,通过该Profile,一个Bluetooth设备可以找到其它Bluetooth设备提供的服务,以及查询相关的信息。

SPP Profile: Serial Port Profile,模拟串口通讯。

GOEP Profile: Generic Object Exchange Profile,通用对象交换。这个Profile的名字有些费解,它定义的是数据的传输,包括同步,文件传输,或者推送其它的数据。你可以把它理解为内容无关的传输层协议,可以被任何应用用来传输自己定义的数据对象。

另外,Bluetooth还定义了9种应用(usage)Profile。

CTP Profile: Cordless Telephone Profile,无绳电话。

IP Profile: Intercom Profile,这是在两个设备之间建立语音连接,换句话说,把两个昂贵的兰牙设备变成廉价的对讲机。

HS Profile: HeadSet Profile,用于连接耳机。

DNP Profile: Dial-up Networking Profile,用于为PC提供拨号网络功能。

FP Profile: Fax Profile,传真功能。

LAP Profile: LAN Access Profile,使用PPP协议建立局域网。

OPP Profile: Object Push Profile,用于设备之间传输数据对象。

FTP Profile: File Transfer Profile,用于文件传输。

SP Profile: Synchronization Profile,用于不同的Bluetooth设备同步,保持数据的一致性。

A2DP: 全名是Advanced Audio Distribution Profile 蓝牙音频传输模型协定! A2DP是能够采用耳机内的芯片来堆栈数据,达到声音的高清晰度。有A2DP的耳机就是蓝牙立体声耳机。

(4)对于蓝牙测试的APK,一版需至少完成一下三个功能 :

A,双向搜索连接;

B,蓝牙通话、音乐;

C,双向传输文件;

===================================================================================================

在蓝牙中,常使用HFP/HSP/A2DP这几个协议连接蓝牙耳机,进行通话听音乐等操作,那它们之间有什么关系和区别呢?Android蓝牙菜单中对耳机设备的描述会分为手机音频和媒体音频,他们的含义、对应的蓝牙协议又是哪些呢?

(1)HFP(Hands-free Profile)和HSP(Headset Profile)都是为了实现蓝牙通话而制定,所实现的功能都和蓝牙通话相关。基本所有的蓝牙耳机、车载蓝牙都会支持这两个协议。

HSP仅实现了最基本的通话操作:接听电话、挂断电话、调节音量、声音在手机/蓝牙耳机之间切换。

HFP在功能上是对HSP的扩展,除了上述功能以外,还包括控制三方通话、来电拒接、耳机端来电显示等高级功能,不过实现的方式,如用于控制的AT CMD完全不一样。

在Android设计上并没有将上述两个协议分开显示,而是均表述为“手机音频”,在使用的时候优先连接HFP,只有在对方仅支持HSP或HFP连接失败的时候才会尝试HSP。

(2)而A2DP(Advanced Audio Distribution Profile)仅用于立体声音乐传输,如在音乐播放器中播放mp3时就会走A2DP。一般双耳的蓝牙耳机、车载蓝牙都支持A2DP,少数单耳的耳机也有可能会实现A2DP。和HSP/HFP相比,A2DP传输速度快、音质好,但实时性会略差(理论上,实际上用户也感觉不出来)。在Android中表述为“媒体音频”



参考文章:http://blog.csdn.net/btooth/archive/2006/07/15/924542.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: