低功耗藍牙開發(fā)技術(shù)概述——基本概念和體系結(jié)構(gòu)
本文引用地址:http://cafeforensic.com/article/201710/366775.htm
1、術(shù)語
在低功耗藍牙方面工作的人們都使用他們自己的術(shù)語來描述一些技術(shù)特征和規(guī)范,下面介紹幾個相關(guān)術(shù)語:
自適應(yīng)跳頻(Adaptive Frequency Hopping, AFH):一種使用某個頻率子集的技術(shù),使設(shè)備可以避免其他非自適應(yīng)技術(shù)使用該頻率(比如Wi-Fi接入點)。
體系結(jié)構(gòu)(architecture):低功耗藍牙的設(shè)計方案。
頻段(band):參看無線頻段(radio band)。
跳頻(frequency hopping):兩個設(shè)備之間使用多個頻率通信。某一時刻只用一個頻率,各頻率按照確定的順序依次使用。
層(layer):系統(tǒng)中實現(xiàn)一個具體功能的部分,例如物理層負責無線電操作。系統(tǒng)中每一層是根據(jù)上層或下層抽象而來的。鏈路層并不需要知道有關(guān)無線電功能的所有細節(jié);邏輯鏈路控制層和適配層(L2CAP)不需要知道關(guān)于鏈路層如何工作的所有細節(jié)。這一抽象概念對于管理復(fù)雜系統(tǒng)而言至關(guān)重要。
主設(shè)備(master):微微網(wǎng)中協(xié)調(diào)與其他設(shè)備的操作的一臺復(fù)雜設(shè)備。
微微網(wǎng)(piconet):單詞pico和network兩個單詞的縮寫,表示非常微小的網(wǎng)絡(luò),一個微微網(wǎng)包括唯一的一個主設(shè)備以及一個或多個從設(shè)備,之設(shè)備負責協(xié)調(diào)與本微微網(wǎng)中的所有其他從設(shè)備的操作。
無線頻段(radio band):無線電波通過頻率或波長進行劃分。不同的無線電波具有不同的規(guī)則和使用方法。
從設(shè)備(slave):與主設(shè)備一起工作的簡單設(shè)備。
Wi-Fi:一種為高傳輸率而設(shè)計的補充無線技術(shù),用于計算機等復(fù)雜設(shè)備的互聯(lián)網(wǎng)接入。
2、非對稱性設(shè)計
所有的低功耗藍牙體系結(jié)構(gòu)的設(shè)計都是非對稱的,目的是為了讓能源更少的設(shè)備負擔更少的事情。
對《低功耗藍牙開發(fā)權(quán)威指南》的個人理解,畫了如下的低功耗藍牙體系層析結(jié)構(gòu)圖
3、客戶端——服務(wù)器架構(gòu)
采用純客戶端——服務(wù)器架構(gòu),服務(wù)器僅僅作為數(shù)據(jù)存儲,并不關(guān)心客戶端是誰??蛻舳丝梢灾苯渔溄拥椒?wù)器,或者可以從地球的另一側(cè)通過互聯(lián)網(wǎng)網(wǎng)關(guān)鏈接。客戶端——服務(wù)器網(wǎng)關(guān)模式也可以用于支持從客戶端到網(wǎng)關(guān)的互聯(lián)網(wǎng)安全,網(wǎng)關(guān)可執(zhí)行訪問控制、防火墻和客戶端授權(quán)等操作,之后再向客戶端授予網(wǎng)關(guān)外部的訪問權(quán)限。
客戶端——服務(wù)器架構(gòu)的主要優(yōu)點是將客戶端和服務(wù)器二者劃分開,當系統(tǒng)的不同部分位于不同的設(shè)備上時,這種劃分必不可少,就愛那個其中一部分作為服務(wù)器,另一部分作為客戶端,系統(tǒng)中二者之間的關(guān)系隨之確定下來。
4、面向服務(wù)的架構(gòu)
客戶端——服務(wù)器架構(gòu)之上進一步抽象是面向服務(wù)器的范式。這是一種將服務(wù)器中的信息組織成服務(wù)的模型。該服務(wù)ikeyi被發(fā)現(xiàn)、進行交互或用做已知語義,這意味著該服務(wù)具有確定的行為,在給定形同的條件時,總會產(chǎn)生相同的結(jié)果。
這種范式最成功的互聯(lián)網(wǎng)系統(tǒng)的基礎(chǔ),如SOAP、REST、COBRA、RPC、Web服務(wù)等。
?。?)、正式合約
一個服務(wù)之所以被視為服務(wù)。是因為其在公開的功能以及如何工作兩個方畫提供了正規(guī)的描述。正式合約的一個好處在于, 一個服務(wù)的實例很容易被另一個服務(wù)的實例所代替。只要兩個服務(wù)的實例具有相同的功能和行為,這種情況就有可能發(fā)生。在低功耗藍牙中。這些正式合釣位手服務(wù)規(guī)范之中。并為藍牙SIG所來用。這些規(guī)范也有相應(yīng)的測試規(guī)范。以確保實施行為的有效性。
(2)、松耦合
在面向?qū)ο蟮能浖校瑔为毜南到y(tǒng)組件是指被設(shè)計成邊界效應(yīng)的獨立對象。那些發(fā)生在組件之間的相互作用可以被明地定義和測試。將依賴關(guān)系減少最低限度,使修改服務(wù)的實現(xiàn)時不會帶來意想不到的邊界效應(yīng)。從而降低風險。
?。?)、抽象化
服務(wù)抽象是十分重要的設(shè)計原則,如果違背該原理可能造成嚴重的后果。假如不利用抽象化,而讓客戶端掌握服務(wù)的所有實現(xiàn)細節(jié)。那么客戶端使用該服務(wù)的方式將會嚴重制約服務(wù)的演化。
?。?)、可重用性
可重用性的概念多年來一直是面向?qū)ο蠓椒ㄋ谕脑O(shè)計目標。但是,真正意義上的可重用性是令服務(wù)適用于多種不同應(yīng)用的一種能力。如果未經(jīng)認真思考, 設(shè)計的服務(wù)往往僅能完成某一種工作。而在良好的設(shè)計方案中,服務(wù)可以與具體的實現(xiàn)過程相互獨立。這意味著該服務(wù)能夠在其他應(yīng)用程序中快速、輕松地獲得重用。藍牙技術(shù)聯(lián)盟為應(yīng)對這一姚戰(zhàn)設(shè)立了一個工作組,該工作組的唯一工作就是找尋通用的功能,對其需求進行抽象以實現(xiàn)有效的重用。
(5)、無狀態(tài)
為了讓眾多客戶端支持服務(wù)擴展。服務(wù)器不能保存任何客戶端的狀態(tài)數(shù)據(jù)。服務(wù)器或許可以定義一個服務(wù)用來記住客戶端已經(jīng)告訴它們的所有信息。使客戶端在后續(xù)請求時不必重復(fù)這些信息。但該方法的同題在于,這些信息占用了大量的內(nèi)存。且依賴于客戶端和服務(wù)器二者之間同步的共享狀態(tài)信息。這將導(dǎo)致服務(wù)器完全依賴客戶端的正確操作,而這樣的假設(shè)無疑站不住腳。
因此,狀態(tài)信息存儲在服務(wù)器上。但是它們均為服務(wù)器狀態(tài),而非客戶端狀態(tài)。這意味著,無論任無狀態(tài)的設(shè)計目標是刪除客戶端和服務(wù)器之間所有交互狀態(tài)。
(6)、可組合性
這一沒計目標鼓勵服務(wù)器之間相互組合。
?。?)、自治
自治的情況可以單獨執(zhí)行任務(wù),而不用去管周邊發(fā)生的事情。
(8)、可發(fā)現(xiàn)性
想要使用服務(wù)就必須能夠發(fā)現(xiàn)服務(wù),可發(fā)現(xiàn)性通常是通過一個單獨的、與服務(wù)交互的協(xié)議來實現(xiàn)的。低功耗藍牙采用不同的方法:使用同一協(xié)議實現(xiàn)發(fā)現(xiàn)以及服務(wù)交互,該協(xié)議稱為”屬性協(xié)議“。
5、低功耗藍牙的體系結(jié)構(gòu)
它分成三個基本部分:控制器、主機和應(yīng)用程序。
控制器:通常是一個物理設(shè)備,能夠發(fā)送和接受無線電信號,病懂得如何就這些信號翻譯成攜帶信息的數(shù)據(jù)包。
主機:通常是一個軟件棧,管理兩臺或多臺設(shè)備之間如何通信及如何利用無線電同時提供幾種不同的服務(wù)。
應(yīng)用程序:則使用軟件堆棧,進而是控制器來實現(xiàn)用戶實例。
低功耗藍牙體系機構(gòu)圖如下所示:
在控制器內(nèi)既有物理層和鏈路層,又有直接測試模式和主機控制器接口(HCI)層的下半部。在主機內(nèi)包含了三個協(xié)議:邏輯鏈路控制和適配協(xié)議(L2CAP)屬性協(xié)議(Attribute Protocol)和安全管理器協(xié)議(Security Manager Protocol),此處還包括通用屬性規(guī)范(GATT)、通用訪問規(guī)范(GAP)和模式(MODE)。
?。?)、控制器:
控制器與外界通過天線相連,與主機通過主機控制接口(HCI)相連。
控制器中的物理層:采用2.4G無線電,輸出0和1的信號。
控制器中的直接測試模式:直接測試模式允許測試者讓控制器的物理層發(fā)送一系列的數(shù)據(jù)包和接收一系列的數(shù)據(jù)包,直接測試模式不經(jīng)能量化測試,還能用于執(zhí)行線性測試和校準無線電。
控制器中的鏈路層:它是的低功耗藍牙體系中最復(fù)雜的一部分,負責廣播、掃描、建立和維護鏈接,以及確保數(shù)據(jù)包按照正確的方式組織。鏈路層的信道分為兩種,廣播信道和數(shù)據(jù)信道。
主機控制接口下半部:提供了一個與控制器通信的標準接口,由60%以上的藍牙控制器能使用HCI接口它允許主機將命令和數(shù)據(jù)包發(fā)送給控制器。已經(jīng)定義的物理接口有USB、SDIO、兩個UART的變種
?。?)主機:
主機做的事情比較多,主機構(gòu)建了主機控制器接口的上層部分。
主機中的邏輯鏈路層和適配協(xié)議:L2CAP是低功耗藍牙的復(fù)用層。定義了兩個基本的概念,L2CAP信道和L2CAP信令。信道是一個雙向數(shù)據(jù)通道,沒喲個信道都是獨立的。在低功耗藍牙中只使用固定信道,一個用于信令信道,一個用于安全管理器,還有一個用于屬性協(xié)議。
主機中的安全管理協(xié)議:定義了一個簡單的配對和密匙分發(fā)協(xié)議,配對是一個獲得對方信任的過程采用認證的方式實現(xiàn),當兩臺設(shè)備在未來的某一時刻重連時,他們可以享用先前分發(fā)的密匙進行加密,從而迅速認證彼此的身份。
主機中的屬性協(xié)議:定義了訪問對端設(shè)備上的數(shù)據(jù)的一組規(guī)則。
主機中的通用屬性規(guī)范:定義了屬性的類型及其使用方法。
主機中的通用訪問規(guī)范:定義了設(shè)備如何發(fā)現(xiàn)、鏈接,以及為用戶提供有用信息,它還定義了設(shè)備之間如何建立長久的關(guān)系——綁定。
?。?、應(yīng)用層:
定義了上種類型:特性(characterustic)、服務(wù)(service)和規(guī)范(profile)。
應(yīng)用層中的特性:采用已知格式、以通用唯一識別碼(UUID)作為表示的一個小塊數(shù)據(jù),由于特征要求能夠重復(fù)使用,因而設(shè)計時沒有涉及行為,特性被定義為計算機的可讀格式。
應(yīng)用層中的服務(wù):服務(wù)是人類可讀的一組特征及其相關(guān)的行為規(guī)范,只定義了位于服務(wù)器上的相關(guān)特性和行為,而不定義客戶端的行為。服務(wù)有兩種類型,首要服務(wù)和次要服務(wù),一個服務(wù)是首要服務(wù)還是次要服務(wù)取決于服務(wù)的定義,首要服務(wù)表征一個給定的設(shè)備主要做些什么。正是通過這些服務(wù),用戶才了解到該設(shè)備是做什么的。次要服務(wù)是那些協(xié)助主要業(yè)務(wù)或其他次要服務(wù)的服務(wù)。
應(yīng)用層中的規(guī)范:是用例或應(yīng)用懂得最終體現(xiàn)。規(guī)范是藐視一個或多個設(shè)備的說明,每一個設(shè)備提供一個或多個服務(wù),規(guī)范描述了如何發(fā)現(xiàn)和鏈接設(shè)備,從而微微每個設(shè)備確定了拓展結(jié)構(gòu),規(guī)范還描述的客戶端的行為,用于發(fā)現(xiàn)服務(wù)和服務(wù)特性,規(guī)范和服務(wù)之間是一種多對多的映射關(guān)系。
評論