1. 數據透傳
藍牙模塊可以通過串口(SPI、IIC)和MCU控制設備進行數據傳輸。
藍牙模塊可以做為主機和從機。主機就是能夠搜索別的藍牙模塊并主動建立連接,從機則不能主動建立連接,只能等別人連接自己。
2. 低功耗
低功耗藍牙(Bluetooth Low Energy),簡稱BLE。藍牙低能耗無線技術利用許多智能手段最大限度地降低功耗。
藍牙低能耗架構共有兩種芯片構成:單模芯片和雙模芯片。藍牙單模器件是藍牙規范中新出現的一種只支持藍牙低能耗技術的芯片——是專門針對ULP操作優化的技術的一部分。藍牙單模芯片可以和其它單模芯片及雙模芯片通信,此時后者需要使用自身架構中的藍牙低能耗技術部分進行收發數據。雙模芯片也能與標準藍牙技術及使用傳統藍牙架構的其它雙模芯片通信。
按應用分為:
可分為數據藍牙模塊和語音藍牙模塊,前者完成無線數據傳輸,后者完成語音和立體聲音頻的無線數據傳輸。
3. 藍牙協議組成
藍牙協議體系中的協議按SIG的關注程度分為四層:
核心協議:BaseBand、LMP、L2CAP、SDP;
電纜替代協議:RFCOMM;
電話傳送控制協議:TCS-Binary、AT命令集;
選用協議:PPP、UDP/TCP/IP、OBEX、WAP、vCard、vCal、IrMC、WAE。
除上述協議層外,規范還定義了主機控制器接口(HCI),它為基帶控制器、連接管理器、硬件狀態和控制寄存器提供命令接口。在圖1中,HCI位于L2CAP的下層,但HCI也可位于L2CAP上層。
藍牙核心協議由SIG制定的藍牙專用協議組成。絕大部分藍牙設備都需要核心協議(加上無線部分),而其他協議則根據應用的需要而定。總之,電纜替代協議、電話控制協議和被采用的協議在核心協議基礎上構成了面向應用的協議。
4. 藍牙基本架構
4.1 底層硬件模塊
(1)無線射頻模塊(Radio):?藍牙最底層,帶微帶天線,負責數據接收和發送。
(2)基帶模塊(BaseBand):?無線介質訪問約定。提供同步面向連接的物理鏈路(SCO)和異步無連接物理鏈路(ACL),負責跳頻和藍牙數據及信息幀傳輸,并提供不同層次的糾錯功能(FEC和CTC)。
(3)鏈路控制模塊(LC):?藍牙數據包的編碼和解碼。
(4)鏈路管理模塊(LM)?:負責創建、修改和發布邏輯鏈接,更新設備間物理鏈接參數,進行鏈路的安全和控制。
(5)主機控制器接口(HCI):?是軟硬件接口部分,由基帶控制器、連接管理器、控制和事件寄存器等組成;軟件接口提供了下層硬件的統一命令,解釋上下層消息和數據的傳遞。硬件接口包含 UART、SPI 和 USB 等。
2. 中間協議層
(1)邏輯鏈路控制與適配協議(L2CAP):?藍牙協議棧的基礎,也是其他協議實現的基礎。向上層提供面向連接和無連接的數據封裝服務;采用了多路技術、分割和重組技術、組提取技術來進行協議復用、分段和重組、認證服務質量、組管理等行為。
(2)音視頻發布傳輸協議(AVDTP)和音視頻控制傳輸協議(AVCTP):?二者主要用于 Audio/Video 在藍牙設備中傳輸的協議,前者用于描述傳輸,后者用于控制信號交換的格式和機制。
(3)服務發現協議(SDP):?藍牙技術框架至關重要一層,所有應用模型基礎。動態的查詢設備信息和服務類型,建立一條對應的服務通信通道,為上層提供發現可用的服務類型和屬性協議信息。
(4)串口仿真協議(RFCOMM):?實現了仿真 9 針 RS232 串口功能,實現設備間的串行通信。
(5)二進制電話控制協議(TCS):?基于 ITU-T Q.931 建議的采用面向比特的協議,它定義了用于藍牙設備之間建立語音和數據呼叫的控制信令(Call Control Signalling),并負責處理藍牙設備組的移動管理過程。
3. 藍牙Profile
Bluetooth Profile 是藍牙設備間數據通信的無線接口規范。目前有四大類、十三種協議規則,廠商可以自定義規格。幾種最常見的 Profile 文件:
(1)通用訪問配置文件(GAP):?其他所有配置文件的基礎,定義了在藍牙設備間建立基帶鏈路的通用方法,并允許開發人員根據 GAP 定義新的配置文件。包含所有藍牙設備實施的功能,發現和連接設備的通用步驟,基本用戶界面等通用操作。
(2)服務發現應用配置文件(SDAP):?描述應用程序如何用 SDP 發現遠程設備服務,可與向/從其他藍牙設備發送/接收服務查詢的 SDP 連接。
(3)串行端口配置文件(SPP):?基于 ETSI TS 07.10 規格定義如何設置虛擬串行端口及如何連接兩個藍牙設備。速度可達 128kb/s。
(4)通用對象交換配置文件(GOEP):?可以將任意對象(如圖片、文檔等)從一個設備傳輸到另一個設備。
5. 藍牙協議棧層次
5.1. 物理層(PHY):
射頻傳輸。
5.2. 鏈路層(LL):
控制射頻狀態,包括等待、廣告、掃描、初始化、連接。
5.3. 主機控制接口層(HCI):
主機和控制器通信接口。
5.4. 邏輯鏈路控制及適配協議層(L2CAP):
提供數據封裝服務,允許邏輯上點對點通信。
5.5. 安全管理層(SM):
加解密,為安全連接和數據交換提供服務。
5.6. 屬性協議層(ATT):
允許設備(服務器)向另一個設備(客戶端)展示特定的數據(屬性)。
5.7. 通用屬性配置文件層(GATT):
定義了使用ATT的服務框架,兩個建立連接的設備之間的所有數據通信都是通過GATT子程序處理。
5.8. 通用訪問配置文件層(GAP):
對所有藍牙設備提供共同的功能,如傳輸模式和訪問程序、協議和應用描述。GAP服務包含設備發現、連接模式、安全、認證、聯合模型和服務發現。
6. 藍牙傳輸過程
6.1. 主從機建立過程
6.2. 主從通信透傳模塊
分為主透傳協議模塊(MTTM)和從透傳協議模塊(STTM)。
MTTM可以工作在透傳模式(TTM)和指令模式(CM),工作如下:用戶通過AT指令控制模塊連接從設備。在成功建立鏈接后,MTTM自動查找從設備的透傳通道,如果從設備屬于STTM,MTTM默認進入TTM,否則進入CM。
透傳模式,目的是實現透傳或直驅控制功能,主機CPU可以通過通用串口模塊與STTM雙向通信,MTTM直接將數據轉發給STTM,再從STTM串口輸出到從機CPU。反向亦可。
參考:
1.SKYLAB_無線模塊的博客
2.由淺入深,藍牙4.0/BLE協議棧開發攻略大全(1)
3.?藍牙核心技術了解(藍牙協議、架構、硬件和軟件筆記)
4.通識藍牙低功耗
5.?nrf51822藍牙筆記之GAP(通用屬性配置文件)解讀
6.藍牙的初見初識
7.藍牙協議分析(5)_BLE廣播通信相關的技術分析
8.Bluetooth LE(低功耗藍牙) - 第一部分