• 正文
    • btstack簡(jiǎn)介
    • btstack資料
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

推薦一款便于學(xué)習(xí)的開源藍(lán)牙協(xié)議棧!

04/03 13:45
892
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

大家好,我是雜燴君。本次我們來(lái)介紹一個(gè)開源的雙模藍(lán)牙協(xié)議?!猙tstack。

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):

目錄文件夾 子目錄文件夾 說(shuō)明
board stm32f10x STM32F103板載外設(shè)驅(qū)動(dòng)
stm32f407 STM32F407板載外設(shè)驅(qū)動(dòng)
stm32f412 STM32F412板載外設(shè)驅(qū)動(dòng)
bsp cortex-m3 Cortex M3 Driver庫(kù)(M3默認(rèn)用標(biāo)準(zhǔn)庫(kù))
cortex-m4 Cortex M4 Driver庫(kù)(M3默認(rèn)用HAL庫(kù))
component bluetooth 藍(lán)牙協(xié)議棧源碼
cjson json源碼(目前用于跟上位機(jī)交互)
fs file system文件系統(tǒng),目前用于管理spi flash
memory_manager 內(nèi)存管理,目前用于管理STM32F407的SRAM
ringbuffer 環(huán)形數(shù)組,用于藍(lán)牙接收串口數(shù)據(jù)
mcu_bt_tool PC上位機(jī),用于控制STM32開發(fā)板,以及接受STM32的狀態(tài)回傳
project stm32f10x_bb_bt STM32F103裸機(jī)(BB:bare board)藍(lán)牙工程
stm32f407_bb_bt STM32F407裸機(jī)(BB:bare board)藍(lán)牙工程
stm32f412_bb_bt STM32F412裸機(jī)(BB:bare board)藍(lán)牙工程
stm32h750_bb_bt STM32H750裸機(jī)(BB:bare board)藍(lán)牙工程
linux_bt Linux 藍(lán)牙工程
windows_bt Windows藍(lán)牙工程
python_tool convert_binayr_file_to_array.py 把二進(jìn)制文檔轉(zhuǎn)換為數(shù)據(jù)的python工具
corvert_opcode_to_ogf_ocf.py 把HCI opcode轉(zhuǎn)換為OGF,OCF

目前包含HCI、L2CAP、SDP、RFCOMM、HFP、SPP、A2DP、AVRCP、AVDTP、AVCTP、OBEX、PBAP等協(xié)議。

藍(lán)牙協(xié)議分層簡(jiǎn)介

協(xié)議縮寫 全稱 作用描述 關(guān)鍵特性
HCI Host Controller Interface 主機(jī)與藍(lán)牙控制器之間的通信橋梁 標(biāo)準(zhǔn)化命令接口,硬件無(wú)關(guān)性
L2CAP Logical Link Control & Adaption 數(shù)據(jù)包分片/重組、協(xié)議復(fù)用 支持CID通道標(biāo)識(shí),提供邏輯鏈路
SDP Service Discovery Protocol 設(shè)備間服務(wù)發(fā)現(xiàn)與屬性查詢 無(wú)連接協(xié)議,基于UUID匹配服務(wù)
RFCOMM Radio Frequency Communication 模擬串口通信(基于L2CAP) 支持多路復(fù)用,兼容傳統(tǒng)串口設(shè)備
HFP Hands-Free Profile 車載/耳機(jī)免提通話控制(依賴RFCOMM) 支持音頻傳輸與電話控制指令
SPP Serial Port Profile 基于RFCOMM的串口數(shù)據(jù)透?jìng)?/td> 替代傳統(tǒng)有線串口
A2DP Advanced Audio Distribution 高質(zhì)量音頻流傳輸(如立體聲音樂) 使用AVDTP協(xié)議傳輸編碼音頻
AVRCP Audio/Video Remote Control 媒體播放控制(播放/暫停/音量) 與A2DP配合使用,支持元數(shù)據(jù)傳輸
AVDTP Audio/Video Distribution Transport 定義音頻流傳輸?shù)慕?、配置和管?/td> 支持同步信道(SCO/eSCO)
AVCTP Audio/Video Control Transport 傳輸AVRCP控制指令(基于L2CAP) 提供可靠指令傳輸通道
OBEX Object Exchange 文件/對(duì)象傳輸(如vCard、圖片) 獨(dú)立于傳輸層(支持RFCOMM/USB等)
PBAP Phone Book Access Profile 同步手機(jī)通訊錄(基于OBEX) 支持vCard格式數(shù)據(jù)交換

分層結(jié)構(gòu)

    1. :協(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ī)與配套視頻:

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

本公眾號(hào)專注于嵌入式技術(shù),包括但不限于C/C++、嵌入式、物聯(lián)網(wǎng)、Linux等編程學(xué)習(xí)筆記,同時(shí),公眾號(hào)內(nèi)包含大量的學(xué)習(xí)資源。歡迎關(guān)注,一同交流學(xué)習(xí),共同進(jìn)步!