Bluetooth Baseband介紹

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   os   

藍芽的radio工作在2.4GHz的ISM Band(2400-2483.5 MHz),通道間隔1MHz

採用跳頻技術
在串連(CONNECTION)狀態, synchronization train和synchronization scan子狀態每秒至少1600次
在inquiry和page子狀態時為每秒至少3200次/s

1. 概述

藍芽有如下的串連方式

藍芽通過空氣來傳播資料,定義了兩種模式
~ Basic Rate(強制模式): 1 Mbps
~ Enhanced Basic Rate(可選模式): 2 Mbps和3 Mbps

1.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

1.2 定址方式

每個藍牙裝置都應該有唯一的48-bit裝置地址(BD_ADDR),結構如

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

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

2. 物理通道(Physical Channels)

物理通道是藍芽系統的最底層
兩個互相通訊的裝置通過將收發器(transceivers)調諧到同一RF頻率來共用物理通道
藍牙裝置通過時分複用來支援多個操作的同時進行

藍芽定義了五種物理通道

? basic piconet physical channel? adapted piconet physical channel? page scan physical channel? inquiry scan physical channel? synchronization scan physical channel

前兩種用於特定piconet中兩個已經串連的裝置之間的通訊
inquiry scan channel用來發現遠端裝置
the page scan channel用來串連裝置
synchronization scan channel用以擷取無串連從屬廣播物理鏈路的時間和頻率資訊

3. 物理鏈路(Physical Links)

物理鏈路表示兩個裝置間的基帶(Baseband)串連,總是與某個特定的物理通道相關聯

4. 邏輯傳輸層(Logical Transports)

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

? 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廣播

5. 邏輯鏈路(Logical Links)

邏輯鏈路有六種

? LC:     Link Control? ACL-C:  ACL Control? ACL-U:  User Asynchronous/Isochronous? SCO-S:  User Synchronous? eSCO-S: User Extended Synchronous? PBD:    Profile Broadcast Data

LC和ACL-C用於鏈路控制層(Link Control Level )和鏈路管理層(Link Manager Level)
ACL-U用於承載使用者非同步資訊
SCO-S/eSCO-S用於承載使用者同步資訊
PBD用於承載Profile廣播資料

LC在Packet的Header部分; 其他都在Payload部分
ACL-C/ACL-U通過Payload Header的Logical Link ID(LLID)來指示

SCO-S/eSCO-s只由Synchronous Logical Transports承載
ACL-U通常由ACL Logical Transport承載,也可由SCO Logical Transport的DV Packet的Data承載
ACL-C可由SCO/ACL Logical Transport承載
PBD由CSB Logical Transport承載

5.1 LC

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

5.2 ACL-C

ACL-C攜帶Link Manger層交換的控制資訊,使用DM1/DV packets

5.3 ACL-U

ACL-U攜帶L2CAP層使用者資料,可能由一個或者多個baseband包來進行傳輸

5.4 SCO-S/eSCO-S

SCO-S/eSCO-S攜帶同步處理的使用者資料

5.5 PDB

PBD攜帶Profile廣播資料,並且資料應該完整,不可分區傳輸

5.6 Priorities

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

6. 資料包(Packets)6.1 General Format

對於Basic Rate, 一般格式如下

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

通常Packet包含三個部分
- Access Code: 72/68 bits
- Header: 54 bits
- Payload: 0~2790 bits

6.2 Bit Ordering

Baseband在傳輸時採用Little Endian格式

並有如下規則
- Least Significant Bit(LSB)對應於B0
- LSB先傳輸
- LSB在左邊顯示

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

6.3 Access Code

每個Packet以Access Code開始
Access Code標識了一個物理通道,在同一個物理通道中的Packet有相同的Access Code

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

Access Code格式如下

有三種不同的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)

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

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

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

 

6.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 

其格式如下

6.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的資料包和廣播資料包

6.4.2 Type

區分六種不同的Packet

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

6.4.3 Flow

在ACL Logical Transport中用來進行流控
其對應值含義為
- 0: STOP indication
- 1: GO indication

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

6.4.4 ARQN

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

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

6.4.5 SEQN

Sequence Number
用來保證資料流有序的傳輸

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

6.4.6 HEC

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

6.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

6.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的一種,可在任意邏輯傳輸層上傳輸,用來支援控制資訊 
                  也可用來攜帶使用者資料

6.5.2 SCO Packets

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

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

6.5.3 eSCO Packets

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

6.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

6.6 Payload Format

Payload中有區分兩種欄位: 同步資料欄位(Synchronous Data Field)和非同步資料欄位(Asynchronous Data Field)
ACL Packet只含有非同步資料欄位; SCO/eSCO只含有同步資料欄位(例外: DV Packet兩者都含有)

6.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

6.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的格式如下

關於LLID欄位定義如下

7. 鏈路控制操作(Link Controller Operation)

Link Controller中定義了幾種狀態
3個主要狀態: STANDBY, CONNECTION and PARK
9個子狀態: page, page scan, inquiry, inquiry sacn, synchronous train, synchronous scan
               master response, slave response and inquiry respnse

子狀態是建立串連和使裝置發現的臨時狀態

STANDBY是裝置的預設狀態

在CONNECTION狀態下,藍牙裝置有四種模式
保持模式(Hold Mode)、呼吸模式(Sniff Mode)和睡眠模式(Park Mode)3種節能模式, 及正常的現用模式(ActiveMode)

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.