Bluetooth Baseband介紹


1. 介紹

藍牙的radio工作在2.4GHz的ISM Band(2400-2483.5 MHz),信道間隔1MHz,采用跳頻技術

2. 概述

在連接(CONNECTION)狀態, synchronization train和synchronization scan子狀態每秒至少1600次
在inquiry和page子狀態時為每秒至少3200次/s

藍牙有如下的連接方式

image

藍牙通過空氣來傳播數據,定義了兩種模式

 - Basic Rate(強制模式):          1 Mbps
 - Enhanced Basic Rate(可選模式): 2 Mbps和3 Mbps

2.1 時鍾

在藍牙中有四種時鍾(Clock)

 - CLKR:  reference clock (由運行系統時鍾驅動)
 - CLKN:  native clock    (CLKR的偏移量)
 - CLKE:  estimated clock (CLKN的偏移量,page scan中使用)
 - CLK:   master clock    (Piconet的Master時鍾)

時鍾決定了觸發事件和關鍵周期,藍牙系統中有四個重要周期: 312.5 μs, 625 μs, 1.25 ms, and 1.28 s
這些周期分別對應時間的比特位0,1,2,12
image

2.2 尋址方式

每個藍牙設備都應該有唯一的48-bit設備地址(BD_ADDR),結構如下圖

image

 - LAP: Lower Address Part 
 - UAP: Upper Address Part 
 - NAP: Non-significant Address Part

LAP有64個保留地址(0x9E8B00-0x9E8B3F);其中0x9E8B33是一般用於查詢

3. 物理信道

物理信道(Physical Channels)是藍牙系統的最底層;兩個互相通信的設備通過將收發器(transceivers)調諧到同一RF頻率來共享物理信道;藍牙設備通過時分復用來支持多個操作的同時進行

藍牙定義了五種物理信道

 - basic piconet physical channel:        用於特定piconet中兩個已經連接的設備之間的通信
 - adapted piconet physical channel:      用於特定piconet中兩個已經連接的設備之間的通信
 - page scan physical channel:            用來連接設備
 - inquiry scan physical channel:         用來發現遠端設備
 - synchronization scan physical channel: 以獲取無連接從屬廣播物理鏈路的時間和頻率信息

4. 物理鏈路

物理鏈路(Physical Links)表示兩個設備間的基帶(Baseband)連接,總是與某個特定的物理信道相關聯

5. 邏輯傳輸層

在Master和Slave之間,可能建立不同類型的邏輯傳輸層(Logical Transports)
有六種邏輯傳輸層

 - SCO:  Synchronous Connection-Oriented logical transport
 - eSCO: Extended Synchronous Connection-Oriented logical transport 
 - ACL:  Asynchronous Connection-Oriented logical transport
 - ASB:  Active Slave Broadcast logical transport
 - PSB:  Parked Slave Broadcast logical transport
 - CSB:  Connectionless Slave Broadcast logical transport

SCO用於Master和Slave間的點對點傳輸,通常用於有時間限制的數據(如語音和同步數據);Master通過定期預留時縫(Reserved Slots)來維護SCO
eSCO在SCO基礎上多了一個重傳窗口
ACL同樣用於Master和Slave間的點對點傳輸,但沒有預留時縫;Master可以在任意slot上建立和Slave的連接
ASB用於Master和Active Slaves通信
PSB用於Master和Parked Slaves通信
CSB用於Master發送Profile廣播

6. 邏輯鏈路

邏輯鏈路(Logical Links)有六種

 - LC:     Link Control, 用於鏈路控制層(Link Control Level )和鏈路管理層(Link Manager Level) 
 - ACL-C:  ACL Control,  用於鏈路控制層(Link Control Level )和鏈路管理層(Link Manager Level) 
 - ACL-U:  User Asynchronous/Isochronous, 用於承載用戶異步信息
 - SCO-S:  User Synchronous, 用於承載用戶同步信息
 - eSCO-S: User Extended Synchronous, 用於承載用戶同步信息
 - PBD:    Profile Broadcast Data, 用於承載Profile廣播數據

注意: LC在Packet的Header部分; 其他都在Payload部分

6.1 LC

LC攜帶底層的控制信息,如ARQ,Flow Control,Payload Characterization
除了沒有header的ID Packet,每個Packet都含有LC信息

6.2 ACL-C

ACL-C攜帶Link Manger層交換的控制信息,使用DM1/DV packets
可由SCO/ACL Logical Transport承載;通過Payload Header的Logical Link ID(LLID)來指示

6.3 ACL-U

ACL-U攜帶L2CAP層用戶數據,可能由一個或者多個baseband包來進行傳輸
通常由ACL Logical Transport承載,也可由SCO Logical Transport的DV Packet的Data承載
通過Payload Header的Logical Link ID(LLID)來指示

6.4 SCO-S/eSCO-S

SCO-S/eSCO-S攜帶同步用戶數據,只由Synchronous Logical Transports承載

6.5 PDB

PBD由CSB Logical Transport承載;PBD攜帶Profile廣播數據,並且數據應該完整,不可分片傳輸

6.6 優先級

ALC-C較之其他Logical Link具有最高優先級;PBD優先級最低

7. 數據包

7.1 General Format

對於Basic Rate,一般格式如下

image

對於Enhanced Data Rate,一般格式如下

image

General Packet包含三個部分

 - Access Code: 72/68 bits 
 - Header:      54 bits 
 - Payload:     0~2790 bits

7.2 Bit Ordering

Baseband在傳輸時采用Little Endian格式,並有如下規則

 - LSB(Least Significant Bit)對應於B0 
 - LSB先傳輸 
 - LSB在左邊顯示

如3-bit參數X=3 (b0b1b2 = 110),其中1最先傳輸,0最后傳輸

7.3 Access Code

每個報文以Access Code開始;Access Code標識了一個物理信道,在同一個物理信道中的報文有相同的Access Code

Access Code有72和68 bits兩種
68 bits的Access Code(The shortened access code)不包含Trailer;也沒有Header,用於同步(paging, inquiry, and park)

Access Code格式如下

image

有三種不同的Access Code

 - DAC: device access code 
 - CAC: channel access code 
 - IAC: inquiry access code

Access Code都是由BD_ADDR的LAP派生
DAC用於Page、Page Scan、Page Respponse子狀態
CAC用於CONNECTION狀態,Synchronization Train子狀態,Synchronization Scan子狀態
IAC用於Inquiry子狀態,包括一個GIAC(General IAC)和63個DIAC(Dedicated IAC)

image

Premble有兩種1010/0101,由Sync Word的LSB決定

image 
Sync Word由LAP計算得到
CAC的Sync Word使用Master的LAP來計算;IAC則使用Reserved/Dedicated LAPs;DAC使用Slave的LAP

Trailer也是兩種1010/0101,由Sync Word的MSB決定

image 

7.4 Packet Header

包含LC的Header有6個字段,18 bits

 - LT_ADDR: 3-bit logical transport address 
 - TYPE:    4-bit type code 
 - FLOW:    1-bit flow control 
 - ARQN:    1-bit acknowledge indication 
 - SEQN:    1-bit sequence number 
 - HEC:     8-bit header error check

其格式如下

image

7.4.1 LT_ADDR

Logical Transport Address(LT_ADDR);用來標識在Master-to-Slave中的目的Slave或Slave-to-Master中的源Slave

每個Active Slave都有一個主要的3-bit LT_ADDR;全零的LT_ADDR用於ASB/PSB廣播消息,CSB使用單個非零LT_ADDR

Master沒有LT_ADDR,使用Timing Relative來區分Slaves;對於eSCO傳輸方式,每個Slave都有一個次要的LT_ADDR;Slave只接收匹配主要/次要的LT_ADDR的數據包和廣播數據包

7.4.2 Type

區分六種不同的Packet,主要有三種功能

 - 決定使用的Logical Transport(SCO/eSCO,ACL,CSB) 
 - 是否使能Enhanced Data Rate 
 - 標識Packet類型(SCO/eSCO,ACL)

7.4.3 Flow

在ACL Logical Transport中用來進行流控,其對應值含義為

 - 0: STOP indication 
 - 1: GO indication

在SCO/eSCO(設為1)和CSB(設為0) Logical Transport中Flow位被忽略

7.4.4 ARQN

Automatic Repeat reQuest Number
確認指示位,指示數據源是否成功地傳輸了帶有CRC的Payload數據

在CSB Logical Transport(設為0)中被忽略

7.4.5 SEQN

Sequence Number,用來保證數據流有序的傳輸

在CSB Logical Transport(設為0)中被忽略

7.4.6 HEC

Header Error Check,用於檢測Header的完整性

7.5 Packet Types

Packet類型與所使用的邏輯傳輸層(主要針對SCO/eSCO, ACL, CSB)相關聯
由Type字段來指定,可分為4 Segment(如下圖)

 - 1th Segment: Control Packet 
 - 2th Segment: Occupying a single time slot 
 - 3th Segment: Occupying three time slots 
 - 4th Segment: Occupying five time slots

Packets

7.5.1 Common Packet Types

有五種通用報文類型

 - ID Packet: 68 bits, 只有Access Code(DAC或IAC), 用於尋呼、探詢、響應
 - NULL Packet: 沒有Payload, 只有Access Code(CAC)和Header, 固定長度126 bits, 用於通過ARQN、FLOW等字段將鏈路信息返回給發送端; NULL Packet無需確認
 - POLL Packet: 與NULL Packet類似, 也沒有Payload, 但是需要接收端的確認
 - FHS Packet: Frequency Hopping Synchronization, 是一種特殊的控制分組, 它宣告發送方的設備地址和時鍾信息, 以實現跳頻同步, Payload包含144個信息bits和16 bits的CRC校驗碼, 然后用速率為2/3的FEC保護, 最終長度為240 bit, 詳細見規范 [6.5.1.4 FHS Packet] 
 - DM1 Packet: DM代表Data Medium rate, 1th Segment的一種,可在任意邏輯傳輸層上傳輸,用來支持控制信息, 也可用來攜帶用戶數據

7.5.2 SCO Packets

有HV1、HV2、HV3和DV Packet這四種

其中DV Packet包含Data和Voice兩種數據,格式如下

image

7.5.3 eSCO Packets

主要是EV Packets
Basic Rate: EV3、EV4和EV5
Enhanced Data Rate: 2-EV3、3-EV3、2-EV5和3-EV5

7.5.4 ACL Packets

在Asynchronous/CSB Logical Transport上傳輸
Basic Rate: DM1、DH1、DM3、DH3、DM5、DH5和AUX1
Enhanced Data Rate: 2-DH1、3-DH1、2-DH3、3-DH3、2-DH5和3-DH5

7.6 Payload Format

Payload中有區分兩種字段: 同步數據字段(Synchronous Data Field)和異步數據字段(Asynchronous Data Field)
ACL Packet只含有異步數據字段; SCO/eSCO只含有同步數據字段(例外: DV Packet兩者都含有)

7.6.1 Synchronous Data Field

SCO只支持Basic Rate模式,其同步數據字段長度固定,只包含同步數據主體部分

對於eSCO
Basic Rate: 由同步數據主體部分和CRC兩個部分組成
Enhanced Data Rate: 由五個部分組成, Guard time、Synchronization sequence、Synchronous data body、CRC code和Trailer

7.6.2 Asynchronous Data Field

Basic Rate: 有2、3或4部分, Payload header、Payload body、possibly a MIC, and possibly a CRC code
Enhanced Data Rate: 有6或7個部分, Guard time、Synchronization sequence、Payload header、Payload body、possibly a MIC, a CRC and a trailer

其中Payload Header的格式如下

image

LLID字段定義如下

image

8. 鏈路控制

鏈路控制器(Link Controller)中定義了幾種狀態

主狀態
 - STANDBY(默認狀態)
 - CONNECTION
 - PARK

子狀態(建立連接和使設備發現的臨時狀態)
 - page
 - page scan
 - inquiry
 - inquiry scan
 - synchronous train
 - synchronous scan 
 - master response
 - slave response
 - inquiry respnse

在CONNECTION狀態下,藍牙設備有四種模式(除活動模式外,其他三種均是節能模式)

 - 保持模式(Hold Mode)
 - 呼吸模式(Sniff Mode)
 - 休眠模式(Park Mode)
 - 活動模式(ActiveMode)

下圖顯示了這些狀態的轉換圖(三種Response子狀態未顯示)

image

參考:
<BlueTooth: 藍牙基帶>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM