本次我們來介紹一個(gè)開源的雙模藍(lán)牙協(xié)議棧——btstack。
btstack簡(jiǎn)介
btstack一個(gè)包含傳統(tǒng)藍(lán)牙跟低功耗藍(lán)牙的協(xié)議棧,屬于超輕量級(jí)藍(lán)牙協(xié)議棧,用作學(xué)習(xí)藍(lán)牙協(xié)議棧的人使用。
與其他協(xié)議棧的對(duì)比
Github鏈接:
https://github.com/sj15712795029/bluetooth_stack
bluetooth_stack專注于嵌入式平臺(tái)(如STM32),其代碼結(jié)構(gòu)精簡(jiǎn)高效,支持HCI層以上的核心協(xié)議(如L2CAP、ATT、GATT等),而底層依賴芯片自帶協(xié)議棧(如CSR8311)。這種設(shè)計(jì)既降低了硬件適配成本,又保留了藍(lán)牙協(xié)議的核心功能,特別適合資源受限的嵌入式場(chǎng)景。
btstack可以運(yùn)行在STM32、Linux上。目前支持的平臺(tái):
源碼目錄結(jié)構(gòu):
目前包含HCI、L2CAP、SDP、RFCOMM、HFP、SPP、A2DP、AVRCP、AVDTP、AVCTP、OBEX、PBAP等協(xié)議。
藍(lán)牙協(xié)議分層簡(jiǎn)介
- 分層結(jié)構(gòu):協(xié)議棧按功能劃分為主機(jī)控制層、邏輯鏈路層、服務(wù)發(fā)現(xiàn)層、傳輸協(xié)議層和應(yīng)用協(xié)議層。
- 依賴關(guān)系:
- RFCOMM/A2DP/AVRCP 依賴 L2CAP 提供的基礎(chǔ)傳輸能力
- AVDTP/AVCTP 是音視頻專用的傳輸協(xié)議
- OBEX/PBAP 可實(shí)現(xiàn)跨傳輸層的對(duì)象交換
- 應(yīng)用場(chǎng)景:
- 音頻場(chǎng)景:A2DP + AVRCP + AVDTP
- 數(shù)據(jù)傳輸:SPP + RFCOMM
- 設(shè)備控制:HFP + PBAP
btstack資料
btstack作者的csdn博客上也有很多藍(lán)牙相關(guān)的文章:
https://blog.csdn.net/xiaoxiaopengbo/category_10215137.html
除此之外,還有配套硬件、上位機(jī)與配套視頻:
感興趣的朋友可自行去了解:
https://github.com/sj15712795029/bluetooth_stack