目前市场上设备中运行的蓝牙协议有三个版本 —— 分别是版本 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)、主机控制接口...