躺雨沒的學習筆記——藍芽概述 (1.1)BR/EDR概述
Agenda:
(168頁)藍芽無線技術是一種短距離無線通訊系統,目的是取消連線在主電子裝置與外設之間的電線。藍芽無線技術的主要特點是:健壯性(抗干擾),低功耗、低成本。核心規範中的一些技術是可選的,意思是,各個產商實現的藍芽晶片所支援的功能可能會有差別。
藍芽無線技術有兩種:
藍芽無線技術 |
描述 |
Basic Rate (BR)/ Enhanced Data Rate (EDR) |
市面上的使用基礎速率技術的藍芽裝置一般支援增強速率,雖然增強速率是可選功能。增強速率還支援AMP(Alternate Media Access Control and Physical )控制器,能進一步提高位元速率。基礎速率(BR)的位元速率為721.2 kb/s,增強速率的位元速率為 2.1 Mb/s,如果增強速率有AMP控制器,速率可達54 Mb/s |
Low Energy (LE) |
LE技術比BR/EDR技術,有更低的電量消耗、更簡單的技術、更低的成本。LE系統設計目的是為了滿足低資料傳輸量和低訪問週期的應用場景。LE核心協議中,有更多的可選技術,為了應對不同的應用場景。 |
兩種技術都有發現裝置、建立連線的過程。
一個藍芽裝置,如果都包含這兩種藍芽技術,基本上能與所有的藍芽裝置通訊。某些上層協議或profile只支援其中一種藍芽技術。所以,如果藍芽裝置支援兩種藍芽技術,那麼大多數的上層協議或者profile都能支援。
藍芽核心系統由兩部分組成:
組成 |
描述 |
Host |
在藍芽協議棧分層結構中的位置,在非核心profile以下,在HCI(Host Controller Interface)介面之上 |
Controller |
在藍芽協議棧分層結構中的位置,在HCI(Host Controller Interface)介面以下。 |
在Host和Controller之間存在一個HCI介面。有兩種型別的控制器(Controller),主要控制器(Primary Controllers)和次要控制器(Secondary Controllers)
(169頁)
一個藍芽核心系統,由一個主機(Host),一個主要控制器(primary controller),零個或者多個次要控制器(secondary controller)組成。他們的組合有一下幾種:
藍芽系統包含一個控制器(controller):
- LE Only Primary Controller
- BR/EDR only Primary Controller
- BR/EDR and LE Primary Controller
藍芽系統包含多個控制器(controller):
- BR/EDR Primary Controller, with one AMP Secondary Controller
- BR/EDR with multiple AMP Secondary Controllers
- BR/EDR and LE Primary Controller with one AMP Secondary Controller
- BR/EDR and LE Primary Controller with multiple AMP Secondary Controllers
1.1.1基礎通訊模型
基礎速率和增強速率(BR/EDR)射頻工作在國際無授權2.4G Hz ISM頻道。藍芽系統使用跳頻技術用來對抗干擾、抗衰減,並且提供跳頻擴頻(FHSS)載體。基礎速率射頻在工作時使用一種成形的二進位制頻率調製來降低技術的複雜度。基礎速率的符號率1 Mb/s,位元速率可以達到1 Mb/s;增強速率符號率為2~3 Mb/s。
在通常情況下,物理射頻通道被一組時鐘和跳頻時序一致的多個裝置共享。在同一個物理通道的裝置中,提供同步參考訊號的那個裝置,叫做主裝置 master。
(170頁)
其他調整自身引數,使得跟master時鐘和跳頻時序同步的裝置,叫從裝置 slave(master有點像領舞,slave像是跟著跳舞的)。這些同步裝置組成的網路叫做微微網 piconet。這是藍芽無線技術中最基礎的通訊模型。
1.1.2 跳頻
在微微網中的裝置使用的這種跳頻時序,是由master的藍芽地址和時鐘,通過某種特定的演算法計算出來的。藍芽技術把ISM頻段分成79個子頻段,每個頻段的間隔為1 MHz,子頻段用從低到高用編號1-79號標識。跳頻時序是1-79號頻段的偽隨機序列(叫偽隨機的原因是,在一個迴圈週期內,跳頻時序是隨機的;週期和週期之間的時序是重合的)。跳頻時序可以調整,當某些子頻段有干擾時,是去掉某些被幹擾的子頻段,去重新計算跳頻序列。這種可調跳頻技術能增強與其他使用非跳頻無線技術的通訊共存(比如WIFI)。
1.1.3 時間槽(sLot)
物理通道用時間概念去劃分成一個個相等的時間段單位,叫做時間槽(slot)。資料以包的形式放到時間槽中在裝置之間傳輸。如果情況允許,連續的幾個時間槽可能被同一個資料包的傳送所佔用。一般情況下,兩個連續的時間槽之間會發生跳頻。藍芽就是通過這種時分複用(TDD)的技術實現全雙工傳輸。
1.1.4 物理通道和物理連線
在物理通道之上是鏈路、通道、以及控制協議。在藍芽協議棧的分層結構中,自下而上,分別是物理通道、物理連線、邏輯傳輸、邏輯連線和L2CAP通道。這些概念會在後面詳細討論,在這提出只是幫助理解這小節內容的剩下部分。
通常在一個物理通道上,master和slave之間會建立一個物理連線,除了用作Inquriy Scan和Page Scan物理通道以外。這兩種通道與物理連線無關。物理連線提供master和slave之間的雙向資料包傳輸。有一種情況例外,就是無連線從裝置廣播(Connectionless Slave Broadcast,簡稱CSB)的物理連線。這CSB廣播這種情況下,物理連線只提供單向的資料包傳輸,資料包從master單向傳送到一個或多個slave(slave的數量理論上可以是無限個)。
物理通道分類:
物理通道 |
描述 |
常規物理通道 |
用作master和slave之間通訊,能建立物理連線 |
Inquriy Scan和Page Scan物理通道 |
用作Inquriy Scan或Page Scan,不能建立物理連線 |
因為一個物理通道被多個slave共享,所以建立物理連線的時候會有所限制:
- master和slave之間都有一條物理連線
- 而slave和slave之間沒有直接的物理連線。
物理連線分類:
物理連線 |
描述 |
單向物理連線 |
用於CSB廣播 |
雙向物理連線 |
用於一般物理連線,CSB廣播外的物理連線 |
1.1.5 物理連線、邏輯連線和資料流
物理連線用作通訊載體(transport),承載多種邏輯連線,包括同步、非同步、等時、以及廣播資料流(traffic)。在邏輯連線上的資料流,通過資源管理器(resource manager)的排程功能把資料放入時間槽中,從而複合(multiplexed)到物理連線上。(物理連線比喻成兩個裝置間的公路,邏輯連線比喻成公路上的車道,邏輯通訊比喻成運輸工具,資料流traffic是交通規則)
(注意:transport翻譯成通訊載體,載體比喻成交通工具,是一種運輸資料包的交通工具。但是後面會把通訊載體簡稱成通訊)物理鏈路用作支援單播同步,非同步和同步流量以及廣播流量的一個或多個邏輯鏈路的傳輸。 通過佔用資源管理器中的排程功能分配的時隙,邏輯鏈路上的業務被複用到物理鏈路上。
一種控制協議用作在基帶和物理層上傳輸邏輯連線和使用者資料,叫做鏈路管理協議(link manager protocol, 簡稱LMP)。 在微微網中層處在活躍狀態的裝置都存在一個預設的非同步面向連線的邏輯通訊載體(asynchronous connection-oriented logical transport),用作承載LMP協議資訊。(171頁)
由於歷史的原因,這種通訊載體叫做ACL邏輯通訊(ACL logical transport)。除了CSB從裝置以外,當一個藍芽裝置加入到微微網的時候,主要的ACL邏輯通訊(primary ACL logical transport)會被建立。CSB從裝置加入到微微網單純是偵聽CSB包。在這種情況下,一個無連線廣播邏輯通訊會被建立(CSB logical transport),而不會建立ACL邏輯通訊。對於所有的裝置,其他的(主要ACL邏輯通訊以外的)邏輯通訊可能會被建立,需要的時候用來傳輸各種型別的資料流。
通訊 |
描述 |
ACL logical transport |
一般加入到微微網都會建立,用來傳輸LMP協議和使用者資料。用來傳輸LMP協議的ACL logical transport,叫做default ACL logical Transport或者primary ACL logical Transport |
CSB logical transport |
CSB從裝置才會建立,而不建立ACL logical transport |
other logical transport |
需要的時候才建立 |
鏈路管理器的功能是用LMP協議去控制在微微網的裝置,並且向上層提供底層(射頻和基帶層)的服務。LMP協議在主要ACL邏輯通訊載體中和活躍從裝置廣播通訊載體(active slave broadcast logical transports)中傳輸。
在基帶層之上是L2CAP層(Logical Link Control and Adaptation Protocol邏輯鏈路控制和適配協議),它為上層應用和服務提供基於通道概念的抽象。它在一個共享的邏輯連線上,提供資料的拆分和重灌配、通道的複用和分離服務。L2CAP在預設ACL通訊上建立了一個協議控制通道,專門傳輸L2CAP的控制命令。上層應用資料提交到L2CAP協議,會被載入到各種支援L2CAP協議的邏輯連線上。
抽象的概念:硬體抽象層
硬體抽象層是位於作業系統核心與硬體電路之間的介面層,其目的在於將硬體抽象化。它隱藏了特定平臺的硬體介面細節,為作業系統提供虛擬硬體平臺,使其具有硬體無關性,可在多種平臺上進行移植。從軟硬體測試的角度來看,軟硬體的測試工作都可分別基於硬體抽象層來完成,使得軟硬體測試工作的並行進行成為可能。
————————————————————————————————————————
Reference
1 BT specification Core 4.2, Bluetooth SIG.
————————————————————————————————————————
作者按:藍芽從業者,潛心學習BT stack,藍芽協議奇多無比,概述只是開始,網上資料還比較多,學到後面的各種spec就只剩英文原版可以參考了,遂把自己的筆記發出來,互相交流,互相交流。