--- title: 'BLE 協議棧' disqus: kyleAlien --- BLE 協議棧 === ## OverView of Content [TOC] ## 協議棧 - 概述 協議棧 Protocol Stack 是由軟體實現大量的規則 (也就是協議);**BLE 協議棧就是透過軟體來完成 BLE 協議的規則通訊** ### 協議棧 - 功能 * 協議棧也可以想做 **溝通的語言**,比喻描述如下 | 現實描述 | 設備 | | - | - | | 語言 | 協議棧 | | 國語 | BLE 協議棧 | | 英語 | Classic 藍芽 | | 不會說話的嬰兒 | 沒有協議棧的設備 | | 只會說國語 | 單模 BLE 設備 | | 只會說英語 | 單模 Classic 設備 | | 國、英語都會說 | 雙模設備 | ### 傳輸 - 單位、媒介 * 藍芽的傳遞 **媒介**:無線電傳播 * 藍芽的傳遞 **單位**:二進位數據,可以是 Byte、Bit ### 協議棧結構 * 下圖是 BLE 協議棧 (去除 Classic、High Speed 部分) 的結構 (藍芽文件:`CORE SYSTEM ARCHITECTURE` 可找到相同的圖) >  * 其中的箭頭是數據流向的方向,舉例來說: 1. LE 低功率藍芽 `ISOAL` 可以透過 `ISO`,流出到 `HOST` 層後直接讓使用者接收到 (這樣速度就比較快) :::info 這個功能是 藍芽 5.2 LE Audio 新加入的部分 ::: 2. Baseband Resource Manager 透過 `ACL`,流出到 `HOST` 層 `L2cap Resource Manager` 後經過 `Channel Manager`、`ATT/GATT` 才能讓使用者收到 :::success * 這一層一層的傳遞、配合也是協議棧稱為用棧 Stack 來描述的原因的原因 ::: ### BLE 系統結構 * 下圖為一個經典 BLE 系統框架圖,而 **其中的 `Host`、`Controller` 就是 BLE 協議棧** >  :::warning * 各家芯片廠商為了保證軟體程式寫成的協議棧的完整、規範性,**通常不會對用戶開放 Source Code**,避免用戶修改導致通訊失敗 * 通常使用 Library (`.so`) 的方式提供給用戶,並暴露 API 部分(`.h`) ::: * BLE 協議棧分成兩個大區塊 `Host`、`Low Energy Controller`,可以在藍芽規格書中找到對應資訊 (Vol 3、Vol 6) >  ## Appendix & FAQ :::info ::: ###### tags: `BLE`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up