藍牙配置文件和協議(總則)

從本篇開始,會陸續介紹一些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)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章