蓝牙配置文件和协议(总则)

来源:互联网 发布:吉首大学网络 编辑:程序博客网 时间:2024/05/21 08:56

从本篇开始,会陆续介绍一些Bluetooth的profile和protocol,作为入门级的读物,具体详细的内容请参考:


Bluetooth SIG

Bluetooth Wiki


如何使用蓝牙设备这样的说明就交由上述网站完成了,本站则致力于阐明各式协议(Protocol)及配置文件(Profile)的技术规范这样的内容。

首先,作为开篇的作品,将针对蓝牙协议层的结构进行概述说明。

Host和Controller

协议层的堆栈结构如上图所示。
虽然主要的结构这里都画出来了,但是也有还没表示出来的部分。

标记为Controller的部分,对应于蓝牙芯片部分。
个人电脑(PC)上用的USB适配器就属于此Controller。

标记为Host的部分,装载有可对Controller进行控制的软件。
如果对比PC上用的USB适配器的话,Host就是属于PC那一部分。

对于头戴式耳机和鼠标等有特定用途的情况,主要使用那些提供单芯片(含Host和Controller)的硬件产品。
为了实现小型化和削减成本,也销售名为HID配置文件,HSP/HFP配置文件专用的芯片。

HCI (Host Contoroller Interface)

本文仅讨论Controller以上的Host部分,所以先从HCI开始说明。

HCI是为了在Controller和Host之间进行通信用的协议。
和其他是为了与对方设备进行通信的协议不一样,仅有HCI是用作设备内部的通信的。
用在从Host到Controller进行传输的命令(Command),用在从Controller到Host进行传输的事件(Event)--二者之间的数据传送就是这样通过数据包(Packet)通信完成的。

HCI协议通过名为UART和USB的物理总线进行通信。
这些物理总线通过各种协议来进行通信,所以实际上HCI也正是在这些协议之上进行通信的。
对于包含配置文件在内的单芯片产品来说,一般认为其HCI部分是通过软件方式来进行通信的。

L2CAP (Logical Link Control and Adaptation Protocol)




L2CAP是为了对复数个链接进行管理的协议。
除了对若干个对方设备的链接进行管理之外,对同一个设备的若干个链接也进行管理。
对同一个设备的若干个链接进行管理的意思是说,比方同时打开了用作SDP通信的信道和用作RFCOMM通信的信道,为了这些信道彼此互不干扰而将其彼此区分而进行了管理。

SDP (Service Discovery Protocol)

使用蓝牙技术可以享受各种各样的服务,例如头戴式耳机,车载免提电话,拨号入网,输入设备,图像传送,音乐传送等等。
但是,这并不意味着所有的设备就可以支持所有的服务了。
SDP就是用来对对方设备究竟支持何种服务而进行检索的协议。

RFCOMM

RFCOMM是模拟RS232进行串口通信的协议。
它提供对RS232的各管脚信号的传送,以及复数端口的管理等功能。

有很多配置文件都使用了RFCOMM协议。
这些配置文件有SPP(Serial Port Profile), DNP(Dial-up Networking Profile), HSP(HeadSet Profile), HFP(Hands Free Profile), LAP(LAN Access Profile),以及包括OPP(Object Push Profile)在内的、使用OBEX协议的一些配置文件。

OBEX (Object Exchange Protocol)

OBEX是用作进行对象交换的协议,红外线通信也使用了此协议。
通过OBEX将HTTP的字符串以二进制方式进行传输,使得通信量得到了减少,所以感觉上就像是无线版的HTTP一样。
OPP(Object Push Profile), SYNC(Synchronization Profile), FTP(File Transfer Profile),BIP(Basic Imaging Profile)等配置文件使用了此协议。

配置文件(Profile)

配置文件(Profile)并不是协议(Protocol),它决定了如何提供/使用相应的服务。

尽管不能支持同样的配置文件的话肯定是无法进行通信的,但是由于在配置文件中,也划分了提供服务方和使用服务方两种不同的角色,所以也有必要加以注意。
比如在拨号上网的情况下,某一方是Dial-up Networking Profile中的网关(Gateway)侧(也即拨号上网的服务的提供方),如果另一方不支持数据终端(Data terminal)侧(也就是拨号上网服务的使用方)的话,也无法进行通信。

另外在配置文件中存在缺省功能和选项(Option)功能,配置文件也有可能不支持选项功能的实现。
比如虽然支持Object Push Profile,但是可能并不支持作为选项功能的文件推送(Push)传输。

下面列出了具有代表性的几种配置文件。

Generic Access Profile (GAP)

           提供了作为蓝牙设备基本功能的设备检索和安全性相关服务

Service Discovery Application Profile

           能检索为对方设备提供了何种服务

Serial Port Profile (SPP)

           将RS232的串口通信进行了无线化

Dial-up Networking Profile (DNP)

           进行拨号连接

LAN Access Profile (LAP)

           和对方设备进行LAN连接

FAX Profile

           通过无线方式使用FAX服务

Generic Object Exchange Profile (GOEP)

           本配置文件并非作为个体而被使用,而是定义了Object Push Profile等使用OBEX协议的对象交换类配置文件的共通内容

Object Push Profile (OPP)

           提供了类似于名片、日历、文件等对象的推送(Push)传输,以及名片的交换传输服务

File Transfer Profile (FTP)

           进行文件的收发传输

Synchronization Profile (SYNC)

           进行类似于PDA和PC内容的同期传输等文件同期处理

Headset Profile (HSP)

           利用头戴式耳机进行语音通话

Hands Free Profile (HFP)

           在Headset Profile中追加了用于电话通话的功能

Human Interface Device Profile (HID)

           将鼠标、键盘等输入设备的通信进行无线化

Basic Imaging Profile (BIP)

           进行图像的收发传输

Hardcopy Cable Replacement Profile (HCRP)

           对打印电缆提供的功能以无线方式进行置换

Basic Printing Profile (BPP)

           提供无打印机驱动的简易打印服务

Personal Area Network Profile (PAN)

           提供对若干个蓝牙设备进行构建网络的服务

Advanced Audio Distribution Profile (A2DP)

           提供音乐传输服务

Audio/Video Remote Control Profile (AVRCP)

           在传输影音内容时提供操控服务(也即远程遥控)

除了这里列举的种类以外,还有其他各式配置文件可供使用。

其他协议

上面介绍的协议,作为具有共通性的代表种类在大多数配置文件中得到了运用。
除此之外,也有为配置文件提供专用协议的情况。
比如在A2DP中有所谓AVDTP(Audio/Video Distribution Transport Protocol),在AVRCP中有所谓AVCTP(Audio/Video Control Transport Protocol)专用协议。

(其中,大内容参考:http://article.yeeyan.org/view/jianermei/49981)


原创粉丝点击