2015年3月6日 星期五

Bluetooth Low Energy: The Developer's Handbook 讀書筆記 (1)

http://www.amazon.com/Bluetooth-Low-Energy-Developers-Handbook/dp/013288836X

這本書是市面上 BLE Protocol 介紹的書裡我覺得最好的, 內容很深入, 算是介於入門書跟SEPC之間的地位, 最近也出了大陸簡體中文版, 懶得看英文的可以買來看, 百度也有線上版可以看, 但我強烈建議看英文版就是了, 畢竟 SPEC 是寫英文...

本篇使用的圖片, 有些來自網路電子書, 有些來自網路, 若有疑慮請通知我, 我會把它移除!
(Some figures in this article are captured from internet or e-book. If there is a violation of copyright. consideration. Please tell me and I i will remove it immediately)

==============

Part 1 : Overview

Chapter 1: 什麼是 Bluetooth Low Energy (BLE)

Bluetooth Low Energy (BLE) 算是一個嶄新的技術, 他雖然跟前代的 Bluetooth (BT) 有一些相同的技術, 但是他導入了 low energy 的要素, 和傳統 BT 比起來, 他針對的需求, 以及設計的目標都不同.

(我們之後會用 BLE 表示新的 Bluetooth Low Energy, BT 就表示傳統的 Bluetooth)

BT 設計目標其實是為了區分 "計算" 和 "通訊", 例如用 BT 連接手機和電腦, 但真正 BT 最常見最廣的應用其實是 "BT 耳機 or 喇叭", 也就是 wireless audio, 當然之後有越來越多的應用出來, 例如檔案傳輸, 無線印表機...這些新需求需要 "bandwidth" 也就是更快的傳輸速度, 那這也是 BT 演進的目標, 例如 Basic Rate (BR) / Enhanced Data Rate (EDR), 一代代的 BT 都往增加傳輸速度上演進.

但到了 BT 4.0, 則往之前完全不同的方向演進了, 也就是我們要說的 BLE, 目標由速度變成 low power, 這跟其他 wireless protocol 演進比起來是很大的差異, 放棄速度, 但往 low power, 可以稱好幾天甚至幾月幾年的目標前進.

除了 low power 另一個目標是 low cost, low cost 才有機會邁向 high volume, 才有機會讓 BLE 可以大量的再各種 things (IoT) 上使用, low cost 關鍵在於以下三個項目:
  • ISM Band, 大家都知道 2.4GHz ISM band 不用 license, 所以這是 BLE low cost 原因之一, 當然這也有一些問題, 例如這個頻段很多人使用, 例如 WIFI, 所以會有干擾問題, 另外也有一些規則如 power 會有限制等等, 但重點是免費, 所以選用 ISM Band
  • IP License, BLE 前身 Wibree 選擇 Bluetooth Special Interest Group (SIG) 這個組織, BT SIG 的 license 費用比其他組織低 (例如 Wi-Fi Alliance), 也是讓他 low cost 的原因之一
  • Low Power, 要達到 low cast 一個方式就是減少製作此裝置的材料成本, 而當你需要的電池越大, 容納電池的容器需要的材料就越多, 也就越貴, 所以 low power 可以降低電池的大小, 另外若需要常換電池也可能降低裝置購買意願, 而 low power 帶來的好處就可以解決這些問題
BLE 的設計目標就是使用 button-cell batteries (水銀電池, 鈕扣電池), 這也表示他的目標不是高速傳輸, 也不適合用在檔案傳輸, 影像串流等應用, 和傳統 BT 鎖定的目標客群不同, 這就是 BLE 的特色

BLE 的出現後, 伴隨出現兩種 device types, dual mode 以及 single mode, 還有傳統的 BT 稱為 classic:

  • single mode: 只支援 BLE
  • dual mode: 支援 BLE 和 BT
  • classic: 只支援 BT

因為 BLE 需要新的硬體支援, 所以傳統 BT 無法透過軟體升級就變成 dual mode, 一般作法就是直接換掉 class 變成 dual mode, 這樣就同時支援傳統 BT 和 BLE, 一般的電腦和手機都會使用 dual mode.

Single mode 則用在耗電量低的裝置上面, 配備如水銀電池等的小裝置, 例如空氣偵測器, 胎壓偵測器等等裝置, 他是無法跟 class BT 溝通的 (這算是一個是代變遷的大限制, 就是目前現有的上千萬 BT, 都無法跟新的 BLE single mode 裝置溝通), 只能跟 dual mode & single mode 裝置溝通.

下表是網路上找到的圖, 關於 single mode / dual mode / class mode 的差異

(Figure from EE Times: http://www.eetimes.com/document.asp?doc_id=1278966)


接下來聊一下 BLE Design Goal, 也就是設計 BLE 的初衷跟目標是什麼, 了解這個也就同時了解了為何 BLE 要這樣設計.

目標簡單列出以下幾項, 而這些項目就影響了 BLE 的設計

  • Worldwide operation, 所以挑了最合適的 ISM Band
  • Low cost, 因此希望系統越簡單越好, 所以使用 start network 而非 mesh network, 可以節省很多的 ram
  • Robust, 因為 ISM 用戶多會有干擾, 所以使用 adaptive frequency hopping, 降低或避開干擾, 另外也使用 CRC 機制檢查資料正確性
  • Short range, 因為 TX power 被限制, 傳輸距離也就是短距離的, 所以必須是 personal area network
  • Low power, BLE 設計的目標就是希望裝置可以維持"年"為單位的時間而不用換電池, 所以 low power 是一個最大的目標, 後續的 protocol design 也會有 low power 優化的策略

最後, 帶一下這本書需要知道的 term (這些 term 後面也會盡量用英文呈現)
  • Adaptive Frequency Hopping (AFH): 意思就是只有 "部分" 的頻率用來做 frequency hoping
  • Architecture: 這邊的 architecture 代表 BLE 的整個設計
  • Frequency Hopping: 就所謂的跳頻, 兩個裝置用多個頻率溝通, 可能現在用頻率 1 之後改用頻率 2 這樣
  • Layer: 就是 protocol layer, 每個 layer 個專其職, 而組成一個網路的架構
  • Master: 複雜或高端的裝置用來控制或協調 slaves
  • Piconet: 小型網路, 通常就是一個 master 對一到多個 slaves
  • Band / Radio Band: 波長頻率, 把他切成幾段, 不同範圍內會有不同的管理規則和使用目的, 這些範圍就稱作 radio band
  • Slave: 和 master 一起運作的簡單裝置 (master-slave 架構)
  • Wi-Fi: 就是另一種無線傳輸的技術, 用在比較高端複雜有 Internet 的裝置上, 有較高的傳輸速度
------------------------------------------------------
Copyright by Jackal Chen @ 2015
jackalchen737@gmail.com

相關系列文章:

2 則留言:

  1. 理解後整理的非常好,讀原文時的一些疑惑,經由您的筆記,領悟了不少 謝謝!

    回覆刪除
  2. 應該是star network 而非 start network 吧

    回覆刪除