第二章 無線通訊技術簡介與使用模組介紹
2.1 低功耗藍牙(Bluetooth Low Energy ; BLE)
2.1.1 低功耗藍牙協議簡介
低功耗藍牙的協議架構十分單純,如圖 2.1 所示,可分為三個基本部分:控制 器(Controller)、主機(Host)和應用層(Application)。控制器部分通常是整合藍牙射頻 模塊的 SOC(System on Chip)設備,用以運行下層協議,處理發射和接收無線電訊 號,並且解讀這些訊號封包帶有的資料訊息。主機部分用以執行上層協議,透過軟 體操作管理兩台或多台藍牙裝置之間的無線通訊參數以及提供不同應用服務。應 用層位在主機和控制層之上,使建立低功耗藍牙的通訊應用程序。後續子節將分別 詳細介紹各個低功耗藍牙協議層。
圖 2. 1、低功耗藍牙協議堆疊層結構圖
2.1.1.1 實體層(Physical Layer ; PHY)
低功耗藍牙實體層是操作在 2.4 GHz 的 ISM(Industrial Scientific Medical Band) 頻段,用以傳送和接收藍牙無線訊號。其中 ISM 頻段是一個不需要授權的免費使 用頻帶,所以在同一區域中,可能會有許多裝置在此頻帶上進行資料傳送,因而造 成彼此的訊號互相干擾。因此為了應付複雜且多干擾的環境,在低功耗藍牙的 2402
~ 2480 MHz 操作頻寬之中,將被劃分為 40 個通道,各通道的寬度為 2 MHz。如圖 2.2 所示,其中 37、38 及 39 通道為避免 Wi-Fi 干擾的固定廣告通道 (Channel);其 餘 37 個為可動態跳頻(Frequency Hopping)的數據通道[16],其跳頻技術根據通道映 射表可在 37 個頻帶內映射到好的通道進行傳遞資料,以避免同頻訊號的干擾。而 低功耗藍牙在進行無線傳輸時採用 GFSK(Gauss Frequency Shift Keying)調變方式 改變無線電波訊號的頻率,以各通道之中心頻負偏移 185kHz 代表傳送 0 的訊息,
正偏移 185kHz 代表傳送 1 的訊息。
圖 2. 2、低功耗藍牙操作頻帶通道圖
2.1.1.2 鏈結層(Link Layer ; LL)
鏈結層定義兩個藍牙裝置如何透過無線方式傳輸訊息。包含了封包、廣告、數 據通道的詳細規定,也規範了發現其它設備的流程、廣告的數據、連線的建立、連 線的管理以及連線中的數據傳輸。鏈結層可分為 5 個狀態來描述低功耗藍牙裝置,
分別為藍牙裝置在沒有進行接收和傳送資料以及沒有和其它裝置連線的待命 (Standby)狀態、週期性發送廣告數據等待連線的廣告(Advertising)狀態、主動掃描 周邊廣告數據的掃描(Scanning)狀態、主動發送連線請求的發起(Initiating)狀態以及 建立連線後的連線(Connection)狀態。鏈結層的狀態流程如圖 2.3 所示,其中連線 狀態之下分為兩種角色,分別為從發起連線狀態成為的主(Master)設備及發送並廣 告等待連線請求的從(Slave)設備。而低功耗藍牙的資料通訊網路為星型網路結構,
以主裝置為中央節點可與多個從裝置通訊,但從裝置只能與一個主裝置做連線,示 意圖如圖 2.4 所示。
圖 2. 4、低功耗藍牙星型通訊網路架構示意圖
低功耗藍牙規範之中,有兩種封包:廣告封包和數據封包。兩種封包有兩種完 全不同的用途,掃描設備透過掃描廣告封包得以發現和連線設備。一旦進行連線之 後,則開始使用數據封包。兩者的差別在於數據封包只能被連線中的主裝置及從裝 置裝置所理解,廣告封包則可以廣告給多個掃描設備或者只發送給某個特定設備。
但以廣告封包傳遞數據是一種不可靠的通訊方式,因廣告設備無法得知是否 有設備接收到廣告數據,或者是否有設備試圖監聽其數據,為應付更可靠及安全的 資料傳輸還是得依賴連線後的數據封包傳輸。以設備建立連線的最簡單過程為例,
如圖 2.5 所示,由上到下,首先廣告設備透過發送廣告封包,讓其它設備掃描並接 收到之後,掃描設備會發出掃描請求,廣播設備接收後會進行回應,接著掃描設備 即可發起連線請求給掃描設備,便可建立連線進行可靠的數據通訊。
圖 2. 5、低功耗藍牙設備建立連線過程圖
在上述過程之中,有幾個重要參數直接影響著低功耗藍牙的性能及功耗,包含 廣告狀態的廣告間隔(Advertising Interval)參數,還有在連線後的連線間隔(Connect Interval)、監控超時(Supervision Timeout)、從設備延遲(Slave Latency)等參數。其中,
廣告間隔為廣告裝置在每次發送廣告封包而後進入低功耗狀態的時間間隔可為 20 毫秒至 10.24 秒的範圍;連線間隔為週期性連線事件發生的時間間隔,其主(Master) 和從(Slave)裝置之間的資料通訊皆建立在連接事件之中,因此連線的時間間隔直接 影響到兩裝置的資料通訊速度,連線時間間隔可以在 7.5 毫秒至 4 秒之內的 1.25 毫秒的整數倍數;監控超時為設定當兩設備未建立連線事件多久即判定兩裝置斷
線事件,以節省從裝置的電源,參數可為 0 至 499 的任意數值,但必須滿足(2.1)
2.1.1.3 主機與控制器介面層(Host Controller Interface ; HCI)
主機與控制器介面層為主機和控制器之間的溝通介面,主要用來發送命令給 控制器或是接收來自控制器的事件。藍牙規範中對主機與控制器介面層定義了四 種通訊介面,其包含通用非同步收發傳輸器(Universal Asynchronous Receiver/
Transmitter ; UART)、通用序列匯流排(Universal Serial Bus ,USB)或安全數位輸入輸 出(Secure Digital Input /Output ,SDIO)等通訊介面,每種介面皆對應著不同用途,比 如 USB 可用於電腦設備提供高速且通用的傳輸方式。並且透過主機與控制器介面 層可使控制器與主機分離,以根據使用者需求可自由選擇不同廠商的控制器和主 機進行配對。
2.1.1.4 邏 輯 鏈 路 控 制 和 適 配 協 議 層 (Logical Link Control and Adaptation Protocol ; L2CAP)
邏輯鏈路控制和適配協議層用來處理上下層之間的封包格式,意即當上層的 安全管理層、屬性協議層等協議傳送來的封包過大時,它負責將封包分割成較適當
的大小,以利於下層鏈結層可以處理。反之,在接收來自鏈結層的數據封包時,將 的 Handle、識別數據類型的通用唯一識別碼(Universally Unique Identifier ,UUID)還 有一個屬性值。例如,一個類型為溫度、屬性値為 20.5 oC 被放在 Handle 為 0x01CE 的屬性之中。屬性協議層還定義了屬性的權限,如果客戶端驗證了自己的身分或得 到服務端的授權,客戶端將可根據權限讀寫或只允許讀服務端的屬性値。
2.1.1.7 通用屬性規範層(Generic Attribute Profile ; GATT)
通用屬性規範層位於屬性協議層之上,定義屬性的類型和使用方式。通用屬性 規範層和屬性協議層相同有服務端和客戶端兩個角色,並且不受主或從的角色限
務(Service)和特性(Characteristics)的兩種格式。其中,服務可以包含多個特性,特 性中則包含數值以及用來描述該特性値的多個描述符(Descriptor),規範如圖 2.6 所 示。通用屬性規範層客戶端可透過 UUID 搜尋通用屬性規範層服務端的所有符合 類型的屬性,進而從中根據權限訊息進行讀寫該 Handle 之下的特性値。又或者是 在觸發某事件時,通用屬性規範層服務端不需要透過通用屬性規範層客戶端的服 務請求,直接向通用屬性規範層客戶端以發送指示(Indication)或是通知(Notification) 的方式傳送特性値。
圖 2. 6、低功耗藍牙通用屬性規範圖
2.1.1.8 通用存取規範層(Generic Access Profile ; GAP)
在這之中,通用存取規範層定義了 4 個藍牙規範角色:廣播者(Broadcaster)、
觀察者(Observer)、周邊設備(Peripheral)和中央設備(Central)角色。一個藍牙設備可
圖 2. 7、低功耗藍牙通用存取規範層角色定義示意圖