什么是Profile磁携?
眾所周知褒侧,藍牙中有很多的profile,我們接觸和學(xué)習(xí)藍牙相關(guān)的開發(fā)不可避免的需要弄懂什么是Profile ,但它對于新手而言似乎沒那么容易弄懂谊迄,即使是有經(jīng)驗者也很難形象的描述profile的含義闷供,這里我嘗試寫下自己的理解,以便記錄和總結(jié)统诺,日后有新的理解不斷更新歪脏。
Profile中文譯名有很多,比如配置文件粮呢,剖面婿失,應(yīng)用協(xié)議,輪廓等鬼贱,每一種翻譯代表了一種對于profile的不同理解移怯,以我個人的理解來說香璃,可能中文中并沒有那么合適的詞與之對應(yīng)这难,但我覺得** 剖面 **這個說法可能更貼切一點。
因為profile其實是藍牙對應(yīng)于每一個具體的應(yīng)用場景以及每一種應(yīng)用的不同的協(xié)議棧葡秒,也就是說它其實是實現(xiàn)某種功能對應(yīng)的自下而上的協(xié)議的組合姻乓。類似于對于橫向協(xié)議的縱向組合。
這里我們不得不簡單的介紹一下藍牙的協(xié)議棧組成結(jié)構(gòu)眯牧。
以上是藍牙協(xié)議棧的概要結(jié)構(gòu)示意圖蹋岩,我們大致的看一眼,會覺得他是不符合OSI和TCP/IP的網(wǎng)絡(luò)模型的学少。
- 無線電層也就相當(dāng)于OSI模型中的物理層剪个,他主要負(fù)責(zé)無線傳輸和調(diào)制解調(diào)。
- 鏈路控制或者叫做基帶層版确,負(fù)責(zé)控制時間槽以及數(shù)據(jù)幀的組裝扣囊。
- 鏈路管理負(fù)責(zé)設(shè)備之間邏輯信道的建立,例如電源管理绒疗、配對侵歇、加密和服務(wù)質(zhì)量。
- HCI接口層是連接上下的管道吓蘑,一般來說惕虑,接口以上的部分由藍牙設(shè)備實現(xiàn),以下的部分由藍牙芯片來實現(xiàn)。
- L2CAP層可以攜帶變長的幀溃蔫,以及提高可靠性健提。發(fā)送數(shù)據(jù)包的剖面通常需要使用該協(xié)議。
- 在上面是具體的類似于應(yīng)用層的協(xié)議酒唉,完成特定的功能矩桂。
- profile剖面對應(yīng)的則是垂直的條形快,他們各自定義了實現(xiàn)特定功能所包含的協(xié)議切片痪伦,一個特定的剖面侄榴,例如GATT就只包含需要的協(xié)議,而不包含那些不需要的网沾。
藍牙有什么Profiles ?
藍牙中有很多的Profile, 我沒有找到確切的資料總共有多少種profile,但我們常見的莫過于那幾種癞蚕,而且porile之間也并非平行的關(guān)系,他們是相互依賴組合構(gòu)成的辉哥,存在明顯的層級關(guān)系的桦山。
上圖是一個層級劃分,所有的profile都是直接或間接依賴于GAP的醋旦,都是GAP的superset,然后是用于構(gòu)成多數(shù)Application profile的generic profile恒水,這里有四種:
- ** 通用接入剖面(GAP,General Access Profile)**:定義兩個藍牙單元如何發(fā)現(xiàn)對方并建立連接饲齐,保證兩個藍牙單元钉凌,無論其生產(chǎn)廠商及進行的應(yīng)用,可以通過藍牙交換信息從而發(fā)現(xiàn)個單元支持何種應(yīng)用捂人。所有藍牙單元都必須支持GAP以保證基本的互操作性和共存性御雕。
- ** 服務(wù)發(fā)現(xiàn)應(yīng)用剖面(SDAP,Service Discovery Application Profile)**:定義如何發(fā)現(xiàn)藍牙單元支持的業(yè)務(wù)滥搭,該剖面可以用來搜索已知的特定業(yè)務(wù)酸纲,也可以用來進行普通業(yè)務(wù)瀏覽搜索。
- 串行端口剖面(SPP瑟匆,Serial Port Profile):定義如何在兩個設(shè)備之間建立虛擬串行端口闽坡,并用藍牙將其連接。采用串行端口剖面可在藍牙單元上仿真基于RS-232控制信令的串行線纜愁溜,該剖面可保證高達128kbit/s的數(shù)據(jù)速率疾嗅。
- ** 普通對象交換剖面(GOEP,General Object Exchange Profile)**:定義處理對象交換的應(yīng)用需采用的協(xié)議和程序祝谚,基于GOEP的應(yīng)用模型(如文件傳輸宪迟、同步等)假定鏈路和信道已經(jīng)建立如GAP所述,GOEP描述從一個藍牙設(shè)備Push數(shù)據(jù)到另一個藍牙設(shè)備的程序交惯,還規(guī)定如何在兩個單元之間Pull數(shù)據(jù)次泽。
其他剖面成為應(yīng)用剖面穿仪,主要面向各個應(yīng)用。
為什么設(shè)計那么多Pofiles 意荤?
自從開始接觸藍牙啊片,我就有一個疑問,就是為什么藍牙有那么多的profile,以至于他把自己的協(xié)議棧弄得如此的復(fù)雜 玖像? 而不像其他的網(wǎng)絡(luò)協(xié)議一樣只負(fù)責(zé)為通信實體提供信道紫谷,將其他的交給應(yīng)用去做呢?
至今我仍然沒有找到很好的資料去解釋這一問題捐寥,但我們可以大概的從此類問題通用的角度去考慮笤昨, 我們有幾個不錯的角度:
1. 組織架構(gòu)
這里借用《計算機網(wǎng)絡(luò) 第五版》中的一段話:
真的有必要分清楚所有應(yīng)用的細(xì)節(jié),并且為每一種應(yīng)用提供不同的協(xié)議棧嗎握恳?也許沒有這個必要瞒窒。但是,由于存在多個不同的工作組乡洼,他們分別負(fù)責(zé)設(shè)計標(biāo)準(zhǔn)的不同部分崇裁,因此,每個工作組都只關(guān)注特定的問題束昵,從而形成了自己的profile.ni可以把這個看成是Conway法則在起作用拔稳。或許藍牙標(biāo)準(zhǔn)根本不用25個協(xié)議棧锹雏,兩個就可以了巴比,一個用于文件傳輸,另外一個用于流式實時通信逼侦。
這里他的觀點是因為藍牙興趣小組是各自為戰(zhàn)的匿辩,因此缺少必要的協(xié)同而導(dǎo)致的藍牙協(xié)議棧的分裂腰耙,最終形成了幾十個協(xié)議棧并存的局面榛丢。
也就是最初各個協(xié)議的標(biāo)準(zhǔn)可能是由各個公司自己研發(fā),最終經(jīng)過藍牙標(biāo)準(zhǔn)組織認(rèn)定的挺庞。
2. 歷史發(fā)展
由于組織架構(gòu)的原因晰赞,各個公司組織將自己設(shè)計的通信標(biāo)準(zhǔn)納入到了藍牙標(biāo)準(zhǔn)中去,形成了特有的profile式的協(xié)議棧結(jié)構(gòu)选侨,后來隨著技術(shù)發(fā)展掖鱼,新的事物新的技術(shù)不斷出現(xiàn),當(dāng)需要為藍牙標(biāo)準(zhǔn)添加新的場景的時候援制,就只能遵循現(xiàn)有的藍牙技術(shù)框架戏挡,不斷地為其添加profile。
3. 頂層設(shè)計
雖然沒有任何材料的佐證晨仑,但是我覺得藍牙協(xié)議棧的問題可能不僅僅是組織架構(gòu)問題和松散興趣聯(lián)盟話語權(quán)的妥協(xié)褐墅,我始終覺得一個得以流行全世界的一種技術(shù)拆檬,一定經(jīng)過了一定指向性和預(yù)見性的頂層設(shè)計的,一定是經(jīng)過利弊權(quán)衡后的結(jié)果妥凳,而絕非簡單的Conway法則的必然呈現(xiàn)竟贯。
我能夠想到的就是對比于其他的網(wǎng)絡(luò)協(xié)議核心的特點就是** 協(xié)議棧定制性 **, 而相對于其他的而言就是通用性和擴展性的上的缺陷,我們來從概念上思考一下逝钥,我們可以猜測到一下的優(yōu)點:
(1) 避免了通用性帶來的資源浪費和設(shè)計冗余屑那,定制化可以針對特定的應(yīng)用優(yōu)化通信流程,幀結(jié)構(gòu)等提高傳輸效率艘款,穩(wěn)定性和節(jié)省成本持际。
(2) 分散設(shè)計帶來的設(shè)計成本的減少,拼接式的協(xié)議棧構(gòu)最大程度的接納每一種場景設(shè)計而避免了協(xié)議并入的沖突哗咆,減少了各個企業(yè)成員之間的協(xié)同成本选酗,提高了設(shè)計效率。
(3) 特定的終端不必要僅僅需要實現(xiàn)特定的profile即可實現(xiàn)目的岳枷,適用于功能單一而且低功耗終端芒填。
(4) 減小了企業(yè)的設(shè)計成本和難度,利于藍牙技術(shù)的推廣空繁。
(5) 推動了場景標(biāo)準(zhǔn)化殿衰,打通設(shè)備和應(yīng)用阻隔。
當(dāng)然以上的很多都是我自己的猜測盛泡,需要更多的資料去論證闷祥,先記錄下來,以后不斷修正傲诵。
對于各profile的應(yīng)用和未來的思考
2011年之前我們還拿著諾基亞凯砍,用著每月30M的2G網(wǎng)絡(luò),不得不使用手機藍牙和朋友們交換照片拴竹,mp3悟衩,電子書,可是當(dāng)智能機時代栓拜,4G網(wǎng)絡(luò)座泳,家庭WIFI的到來,很少人再用藍牙去傳輸一個小小的文件了幕与,甚至我們都使用其他的任何局域自組網(wǎng)技術(shù)挑势,直接走Internet來傳輸了。隨著時代合計數(shù)的進步啦鸣,很多的藍牙profile必然會被拋棄潮饱,而留下的將會是特定化用途的不可取代的profile。
其實很多的藍牙技術(shù)我們生活中也很少能夠見到诫给,以有限的未來來看香拉,我覺的能夠保存不錯的活躍度的profile有兩種:
- 跟無線耳機音箱有關(guān)的饲漾,handsfree,A2DP,AVRCP等。這些profile用于處理電話缕溉,音頻等相關(guān)的場景考传。
- GATT based profile。該profile是藍牙低功耗標(biāo)準(zhǔn)证鸥,隨著以后智能化穿戴設(shè)備和各種隨身傳感器的興起僚楞,BLE將會是藍牙的一個突破口。
以我自己的觀點來看枉层,在近幾年泉褐,我們主要會以藍牙作為個人自組網(wǎng)的連接方式,而WIFI會作為室內(nèi)或者家庭的組網(wǎng)方式鸟蜡。
當(dāng)然未來的事情誰也說不準(zhǔn)膜赃,我們在過去的幾年里見識過,預(yù)見不了未來并不意味著沒必要去想象未來揉忘,只有做好準(zhǔn)備跳座,他來的時候,你才會淡定的說泣矛,你和我想的差不多疲眷。
參考
Bluetooth spec 4.2
《計算機網(wǎng)絡(luò) 第五版》
《藍牙協(xié)議及其實現(xiàn)》