1. 主機控制器接口層(HCI)
簡單來說,HCI層的全程叫做Host Controller Interface,也就是說,HCI層定義了特定的格式由藍牙協議棧來控制藍牙芯片來做出相應的動作(比如說inquiry、connect、disconnect等一些操作)。並且藍牙芯片回應藍牙協議棧狀態以及事件消息。藍牙HCI在整個藍牙中的架構圖如下圖所示:
HCI芯片中能夠識別並且執行相應動作的原因在於在藍牙芯片中同樣存在HCI的協議代碼,被燒到了藍牙芯片中,因此所發送的數據可以被正確地解析出來,執行相應的動作之后再准確地回送給response中。
HCI的章節划分:
如上圖所示:
1)contents->整個HCI章節的介紹
2)HCI層的總體介紹
3)Transport層介紹
4)總體匯總了HCI 的command以及event。
對於各自的核心配置,字母“M”表示必須聲明支持,“O”表示可以選擇聲明支持,“P”表示可以選擇僅聲明核心配置的部分支持,“I”表示核心配置固有地包含在組合核心配置中,“E”表示不應聲明對核心配置的支持
5)HCI FLOW CONTROL,主要講解HCI流控。
6)HCI DATA FORMATS,HCI數據格式,
HCI command(藍牙協議棧-->藍牙芯片)
HCI event(藍牙協議棧->藍牙芯片)
HCI acl(藍牙協議棧-->藍牙芯片)
HCI sco(藍牙協議棧-->藍牙芯片)
HCI iso(藍牙協議棧-->藍牙芯片)
7)HCI CONFIGURATION PARAMETERS,HCI data的參數
8)HCI COMMANDS AND EVENTS
9)APPENDIX A:DEPRECATED COMMANDS, EVENTS, AND CONFIGURATION PARAMETERS
->被拋棄的command/event/數據參數
2. 邏輯鏈路控制和適配(L2CAP)
3. 服務發現協議(SDP)
4. 串口仿真協議(RFCOMM)
18. 藍牙音樂協議(A2DP)
概念介紹
A2DP(Advanced Audio Distribution Profile)是藍牙高音質音頻傳輸協議,用於傳輸單聲道,雙聲道音樂(一般在A2DP中用於stereo雙聲道),典型應用為藍牙耳機。A2DP不包括遠程控制的功能,遠程控制的功能參考協議AVRCP。
架構如下:
協議棧的位置如圖:
角色定義
source 發送音頻數據的一方(手機)
sink 接收音頻數據的一方(藍牙耳機)
音頻發送的整體流程
1)A2DP source的發送流程
UL收集到PCM數據,然后發送到A2DP,A2DP經過codec PCM lib(SBC,MPEG-1,2 AudioMPEG-2, 4 AACATRAC family或者自定義encoder pcm lib)壓縮成特定的音頻格式,然后交給AVDTP,AVDTP轉交給L2CAP,L2CAP通過ACL格式轉交給HCI,然后到達BT chip,通過RF射頻出去。
2)A2DP sink的接收流程
BT chip通過RF接收進來數據,然后通過ACL交給HCI,然后交給L2CAP,L2CAP交給AVDTP,AVDTP交給A2DP,A2DP收到的是remote經過壓縮的數據,此時通過codec pcm lib(SBC,MPEG-1,2 AudioMPEG-2, 4 AACATRAC family或者自定義encoder pcm lib)解壓成PCM數據,然后交於聲卡播放
codec
SBC是藍牙強制規定支持的協議。
Channel Mode:通道數
Sink要求全支持,而Source只強制要求支持Mono,其他可選
Block Length:塊長度
Subbands:次頻帶
參數 | 取值 | 釋義 |
---|---|---|
Sampling Frequency | ![]() |
Sampling Frequency:這部分是采樣頻率,Source端強制要求44.1KHz,48KHz支持一種,Sink要求44.1KHz,48Khz都支持 |
Channel Mode | ![]() |
|