目前市场上设备中运行的蓝牙协议有三个版本 —— 分别是版本 1.1、1.2 AFH 和 2.0+EDR。这没给开发人员带来任何问题,因为新版本的协议与以前的版本兼容。表 1 显示了目前可用的蓝牙版本的一些相似性与区别。
表 1. 蓝牙协议版本 版本 原始数据速率 通信范围(英尺) 说明
Bluetooth 1.1 1 Mbps 30-300 市场上部署得最广泛的蓝牙版本。
Bluetooth 1.2 AFH 1 Mbps 30-300 包含高级频率跳跃技术,可以与 WiFi 网络更好地并存。
Bluetooth 2.0+EDR 3 Mbps 30-300 包含增强数据速率技术,可以用更高的速度传输数据。
现在,让我们回顾一下控制蓝牙设备的固件/软件:栈。
蓝牙协议栈
蓝牙栈的目的是什么呢?栈是控制蓝牙设备的软件(和固件)。图 1 显示了协议栈的细节。
图 1. 蓝牙协议栈
栈的最底层是 HCI,即主机控制器接口(Host Controller Interface)。这一层顾名思义就是主机(计算机)和控制器(蓝牙设备)之间的接口。可以看到,其他所有的层都要经过 HCI。
HCI 上面的一层是 L2CAP,即逻辑链接控制器适配协议(Logical Link Controller Adaptation Protocol)。这一层充当其他所有层的数据多路复用器。
接下来一层是 BNEP,即蓝牙网络封装协议(Bluetooth Network Encapsulation Protocol)。使用 BNEP,可以在蓝牙上运行其他网络协议,例如 IP、TCP 和 UDP。
RFCOMM 称作虚拟串口协议(virtual serial port protocol),因为它允许蓝牙设备模拟串口的功能。
OBEX 协议层是在 RFCOMM 层上面实现的,如果想把数据以对象(例如文件)的形式传输,那么 OBEX 很有用。
SDP 是服务发现协议(Service Discovery Protocol)层,用于在远程蓝牙设备上寻找服务。
最后两层是 AVCTP 和 AVDTP,用于蓝牙上音频和视频的控制 和 发布。AVCTP 和 AVDTP 是蓝牙协议中增加的相对较新的层;如果想控制媒体播放器的功能或者想以立体声播放音频流,则要使用它们。
发送文件:RFCOMM 还是 OBEX?
我们先来看看栈中用来发送数据的两个简单协议 RFCOMM 和 OBEX,并比较使用它们传送文件的优势和不足。
可以采用 RFCOMM 或 OBEX 在蓝牙设备之间发送和接收文件。但是,如果想发送和接收流数据,则 RFCOMM 是更好的选择,就像使用传统的串口一样。在现实世界中,如果想使用传统的串口应用程序,并让它能使用蓝牙,就应当使用 RFCOMM。如果要在蓝牙设备之间发送简单的文本字符串(例如在聊天应用程序中),那么使用 OBEX 可能没有太大优势。在这种情况下,应当使用 RFCOMM 或 L2CAP。
另一方面,如果想发送对象数据(例如文件),则 OBEX 最合适。使用 OBEX 不仅可以发送数据,而且还能发送关于负载的上下文或元数据。例如,在使用 OBEX 发送文件时,还能够发送关于文件的其他有用信息,例如文件名称、文件类型、文件尺寸或者其他任何对文件进行描述的内容。
那么,既然已经决定了使用蓝牙时通过 OBEX 发送对象数据文件,那么我们来看看使用 Java 语言对蓝牙设备进行控制的官方库。
(转载USB数码 http://www.usbuse.com)
分享到:
相关推荐
2. 蓝牙协议栈:该部分涵盖了蓝牙协议栈的详细信息,包括蓝牙协议栈的架构、蓝牙协议栈的层次结构、蓝牙协议栈的协议等。 3. 蓝牙设备的_profile_和_service_:该部分涵盖了蓝牙设备的_profile_和_service_,包括...
蓝牙协议栈是实现蓝牙功能的核心组件,它包括了一系列层次化的协议,使得不同设备之间能够有效地进行通信。本文将深入探讨蓝牙协议栈的各个层面,以帮助硬件工程师和嵌入式软件工程师更好地理解和应用这项技术。 1....
蓝牙协议栈是实现这种无线通信的核心,对于初学者来说,理解其工作原理和组件至关重要。本篇文章将深入探讨蓝牙协议,帮助初学者建立起对蓝牙技术的全面认识。 蓝牙协议体系结构基于OSI模型的简化版本,主要包括...
蓝牙协议是无线通信技术的一种,主要用于短距离、低功耗的设备之间进行数据传输。英文版的蓝牙协议文档通常包含了详细的规格定义和技术细节,对于理解蓝牙技术的工作原理和开发相关应用至关重要。虽然这里没有提供...
《蓝牙协议5.1:开启智能连接新时代》 蓝牙技术,作为无线通信领域的重要组成部分,已经深入到我们日常生活的各个角落。随着科技的发展,蓝牙协议也在不断迭代升级,最新的Core_v5.1版本便是其中的佼佼者。本文将...
《蓝牙协议中文版 Blue Tooth Specification》是针对蓝牙开发者的重要参考资料,旨在帮助他们更深入地理解蓝牙协议的工作原理和开发规范。 蓝牙协议栈分为多个层次,包括物理层(PHY)、链路层(LL)、主机控制接口...
1. **蓝牙协议栈**:蓝牙协议栈由一系列层次结构的协议组成,包括物理层(PHY)、链路层(L2CAP)、逻辑链路控制和适配协议(LMP)、主机控制器接口(HCI)、服务发现协议(SDP)、蓝牙管理协议(GAP)和各种应用层...
《蓝牙协议文档Bluetooth Core Spec》是定义蓝牙技术核心规范的关键文档,涵盖了蓝牙经典(bt)和低功耗蓝牙(BLE)以及最新的蓝牙Mesh网络技术。这份文档对于理解蓝牙协议栈的开发至关重要,以下将详细介绍其中涉及...
蓝牙协议栈,也被称为Bluetooth stack,是实现蓝牙无线通信技术的核心软件组件。它是一系列复杂的协议和算法的集合,使得不同设备之间能够通过短距离无线通信进行数据交换和交互。对于蓝牙初学者来说,理解蓝牙协议...
### 蓝牙协议及其源代码分析 #### 1.1 蓝牙概述 **1.1.1 蓝牙技术的诞生与发展** 蓝牙技术最初由瑞典电信设备制造商爱立信在1994年提出,旨在解决当时便携式电子设备之间短距离无线通信的问题。该技术名称源自10...
本资料包包含"官网蓝牙协议栈"的中英文手册,是学习蓝牙技术的重要资源。 蓝牙协议栈由多个层次构成,包括物理层(Physical Layer, PHY)、链路层(Link Layer, LL)、主机控制接口(HOST Controller Interface, HCI)、...
《 lwlibs 蓝牙协议栈在MTK平台上的移植实践》 lwlibs是一个轻量级的蓝牙和TCP/IP协议栈,它为开发者提供了一种高效且灵活的网络通信解决方案。在本文中,我们将深入探讨 lwlibs 在MTK(MediaTek)平台上的移植...
**Frontline蓝牙协议分析工具详解** 在无线通信领域,蓝牙技术是一种广泛应用的短距离无线通信标准,尤其在物联网(IoT)设备中占据重要地位。本文将深入探讨"Frontline蓝牙协议分析工具",它是蓝牙学习爱好者进行...
本资料《蓝牙协议中文详解》旨在帮助开发者和爱好者深入理解蓝牙协议栈的各个层次,以便更有效地开发和集成蓝牙设备。 蓝牙协议体系结构主要由核心规范、配置文件和应用规范组成。核心规范定义了蓝牙的基础通信技术...
### 蓝牙协议规范3.0概览 蓝牙技术作为一种短距离无线通信技术,在现代生活中扮演着极其重要的角色,广泛应用于手机、电脑、汽车、医疗设备等多种领域。蓝牙协议3.0+HS(High Speed)是蓝牙技术的一个重要版本,它...
在本压缩包中,重点是BSA(Bluetooth Software Architecture)的蓝牙协议包,它为开发者提供了在Linux系统和Qt环境下实现蓝牙功能的工具和接口。 **BSA(Bluetooth Software Architecture)** 是蓝牙软件开发的一个...
BLE4.0低功耗蓝牙协议在物联网、智能家居、健康监测等领域有着广泛的应用。 首先,BLE4.0协议的主要组成分为两大部分,HOST层和CONTROLLER层。HOST层主要负责包括高级协议栈、应用接口和相关控制逻辑,而CONTROLLER...
蓝牙协议是一种无线通信标准,广泛应用于短距离通信设备之间,如手机、耳机、电脑等。其规范涵盖了从底层硬件到高层应用的多个层次,确保设备间高效、安全地传输数据和语音。以下是对蓝牙协议各层及其功能的详细介绍...