蓝牙基础及应用 && 蓝牙耳机用到的协议
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
(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
相关文章推荐
- 蓝牙基础及应用 && 蓝牙耳机用到的协议
- Spring AOP & AspectJ之基础应用
- 实战 linux蓝牙编程之(八) hci 协议 应用编程实现
- 证书的应用之一 —— TCP&SSL通信实例及协议分析(中)
- JAVA_SE基础——5.第一个Java程序HelloWorld&注释的应用
- [转]微软:C#和CLI将应用“社区承诺协议”&&[转] Mono 这只猴子招惹了谁?
- Ajax基础教程---1.3 Web应用的发展历程 CGI->applet->JavaScript->flash ->DHTML->AJAX
- 【原创 Hadoop&Spark 动手实践 12】Spark MLLib 基础、应用与信用卡欺诈检测系统动手实践
- BlueTooth: 蓝牙技术应用-蓝牙耳机有关资料汇集
- 主题:四,android四大组件基础介绍及打电话,发短信简单应用 &单元测试
- OC转Swift之基础篇(四)--协议&扩展
- [蓝牙] 2、蓝牙BLE协议及架构浅析&&基于广播超时待机说广播事件
- 蓝牙BLE基础:CC2541通信系列之模拟SPI协议
- 重学Python - Day 03 - python基础 -> while循环实例 + Continue && break的应用 + 列表的初步学习
- 证书的应用之一 —— TCP&SSL通信实例及协议分析(上)
- Win8.1 & WP8: 蓝牙Rfcomm应用
- 二分图的基础与基本应用:POJ 1469&&POJ 3041&&HDU 2255&&HDU1533
- 证书的应用之一 —— TCP&SSL通信实例及协议分析(下)
- 证书的应用之一 —— TCP&SSL通信实例及协议分析(下)
- CoreBluetooth应用_蓝牙连接>>收集心跳数据