藍牙5 BR/EDR Baseband層分析

目錄:

概述

物理信道

物理連接

邏輯傳輸

邏輯連接

數據包

比特流加工

鏈路控制器

音頻處理

 

一、概念描述

藍牙時鐘:Bluetooth Clock

藍牙設備地址:Bluetooth Device Addressing

這裏需要介紹下藍牙時鐘:

二、物理信道

物理髮射功率在2.402GHz到2.480GHz之間,有79個信道。在連接狀態、同步掃描狀態和同步隊列狀態最大調頻速率爲1600跳/S;在請求和尋呼狀態中最大調頻速率爲3200跳/S。跳頻序列是雙方約定的一組僞隨機數。

 

定義的5中信道:

• basic piconet physical channel    在連接狀態默認使用

• adapted piconet physical channel    修改過的piconet連接使用

• page scan physical channel

• inquiry scan physical channel

• synchronization scan physical channel

第一 二種用於基礎和改變後的piconet連接

第三種尋呼掃描信道用於掃描連接設備。

第四種請求掃描信道

使用Native時鐘

第五種同步掃描信道用於設備接收同步隊列包

主從設備的定義是在兩個建立連接的設備之間有意義。

藍牙管理中搜索周圍設備(device discovery),會進行page scan;page scan其實是不停的進行多次inquiry scan,知道外部某個條件才中斷。page scan中兩次inquiry scan間隔一般是30S。

三、物理連接

一個物理連接代表設備間的基帶連接。一個物理連接總是和一個確定的物理信道關聯。物理連接用共同的屬性:在物理連接上申請邏輯傳輸。

• Power control

• Link supervision

• Encryption

• Channel quality-driven data rate change

• Multi-slot packet control

四、邏輯傳輸

主從設備之間 不同的邏輯傳輸可能被確立,定義了六種邏輯傳輸

• Synchronous Connection-Oriented (SCO) logical transport

• Extended Synchronous Connection-Oriented (eSCO) logical transport

• Asynchronous Connection-Oriented (ACL) logical transport

• Active Slave Broadcast (ASB) logical transport

• Parked Slave Broadcast (PSB) logical transport

• Connectionless Slave Broadcast (CSB) logical transport.

SCO:用於有時限的信息例如聲音或者一般的同步數據。使用保留時隙。

eSCO:可能有在保留時隙後一個重傳窗口。

ACL:總是主從設備之間的一個點到點的邏輯傳輸。在非保留時隙中。

ASB:用於主設備和活動的從設備通信。

PSB:用於主設備和休眠的從設備通信。

CBS:用於主設備發送Profile廣播。

LT_ADDR:邏輯傳輸地址

爲一個處於活動狀態的從設備都會被分配一個3bit的LT_ADDR。

全0的LT_ADDR保留給ASB和PSB廣播消息。有一個非全0的地址留給CSB邏輯連接

SCO是對稱的。一個主設備可以提供3個SCO連接和同一個從設備或者和不同的設備。一個從設備可以提供三個SCO連接和同一個主設備或者兩個SCO連接和不同的主設備。而且SCO絕不重傳。

eSCO窗口由保留時隙和重傳窗口構成,是對稱或者非對稱的。

在一個主設備和一個從設備之間僅僅應該存在一個ACL邏輯傳輸,如果有更多的ACL數據包,用重傳確保數據完整。如果ACL數據連接沒有數據發送,不需要輪詢,不需要傳輸請求。

發送接收過程!!

ASB邏輯傳輸被用於連接在匹克網中的設備的L2CAP傳輸,傳輸是單向的,沒有確認。ASB邏輯傳輸只用於L2CAP羣組傳輸,絕不用於L2CAP的面向連接信道、L2CAP控制信標和LMP的控制信標。ASB邏輯傳輸的不可靠的,爲了增加可靠性,數據包會有一定數量的

重傳,重傳的數據包使用相同的序列號以便從設備過濾重傳。

五、邏輯連接

藍牙白皮書定義了6種邏輯連接

• Link Control (LC)

• ACL Control (ACL-C)

• User Asynchronous/Isochronous (ACL-U)

• User Synchronous (SCO-S)

• User Extended Synchronous (eSCO-S)

• Profile Broadcast Data (PBD)

LC攜帶底層的控制信息:ARQ、流控和有效數據描述。除了數據包沒有包頭,否則每個包都包含LC信息。

ACL-C:攜帶LM層交換的信息,用DM1或者DV數據包。ACL-C的的LLID爲11b。

ACL-U:攜帶L2CAP的用戶信息。這些信息可能有一個或者更多的基帶數據包。開始數據包LLID是10b,如果是同一個數據包,則後續的數據包LLID爲01b,否則LLID爲10b。

SCO-S和eSCO-S:攜帶同步用戶數據。

PBD:攜帶profile 廣播數據。數據不應該被分片,應該重視用LLID 10b。

ACL-L最高的優先級,PBD優先級最低。

六、數據包

基礎速率數據包

圖片1

3中數據包:只有access code,只有access code與包頭以及完整的數據包。

access code大小:72/68bits

header:54bits

payload:0~2790bits

增強數據速率數據包

圖片2

bit 採用小端模式:先發送低位。

access code:

四種類型的access code:

CAC channel access code  三部分組成 72bits

DAC device access code  

GIAC  General inquiry access code

DIAC dedicated inquiry access code

 

DAC用於Page、Page Scan和Page Response狀態

CAC用於connection狀態,synchrontzation Train狀態和Synchronization Scan狀態

IAC用於Inquiry狀態,包含一個GIAC和63個DIAC。

不同的access code類型用不同的LAPs構造sync word

3

短access code用於尋呼、查詢和休眠。

如果如果數據包中有包頭,access code是72bits。否則爲68bits。

Preamble用兩種1010/0101由sync word的LSB決定:

4

sync word:

CAC由master的LAP計算而來

DAC是由slave的LAP計算而來

IAC是由reserved/dedicated計算而來

trailer:

與preamble類似,trailer有兩種:1010/0101,有sync word的MSB決定:

5

Packet header

包頭中包含着Link control信息,有6部分組成(18bits):

• 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

流控在eSCO和ACL-C中不使用。

packet types被分爲4段

第一段:控制包

第二段:a single time slot

第三段:three time slots

第四段:five time slots

包類型作用:確定是否用Enhanced data Rate;確定在哪一條logical transport上傳輸(sco,eSCO

ACL);確定數據包的類型(SCO,eSCO,ACL)。

普通包類型

5中普通包,在第一段中和ID包

ID包:由DAC和IAC組成,固定的長度68bits,它是非常健壯的包。

NULL包:沒有payload,僅僅有CAC和包頭。定長126bits。空包可能用於返回鏈路信息到源設備關於前一個傳輸的狀和Rx buffer的狀態。空數據包沒有ACK。

POLL 包:被master用於poll the slaves;slaves不發送POLL包。沒有payload但需要確認

FHS包:payload有11個部分組成,114信息bits和16bit CRC,採用2/3FEC,總長度(payload)爲240bits。被用於page master response,inquiry response和角色切換中;在piconet channel確定前的調頻同步。

7

SR:兩個連續的page scan窗口的間隔。

DM1包:可以攜帶用戶信息,也可以被當做一個ACL包。

SCO包

在SCO中有兩種包,HV和DV包。HV沒有CRC校驗,並且沒有重傳;DV包含CRC在數據段,但是不在同步數據段,數據段可以重傳。DV包是data-voice包,payload被分爲80bit的voice和150bits的data。如果DV包中的數據data部分在SCO結束前沒有收到ACK,則data將被以一個DM1數據包重傳。

8

eSCO包

EV包被用在同步eSCO邏輯傳輸中。EV包包含CRC和重傳。3個eSCO(EV3,EV4,EV5)被定義在基礎速率(BR)中,4個其他的eSCO包(2-EV3,3-EV3,2-EV5,3-EV5)定義在增強數據速率(EDR)模式。

ACL包

ACL被用於異步邏輯傳輸,攜帶的信息是用戶或者控制數據。爲基礎速率(BR)定義7中類型的包,爲增強速率(EDR)定義了6種包。

異步數據段

9

10

11

LLID code爲10時,L2cap消息的開始;爲01時表示L2CAP消息後續包;爲11時,表示LMP消息。

數據包概述

12

13

Acl、sco和esco鏈路的數據包類型。最左側的一列1234代表時隙。

14

15

七、鏈路控制 LC

3個主要狀態:standby,connection和park

7個次要狀態:page,page scan,inquiry,inquiry scan,master response,slave response and inquiry

response

次要狀態被用於確立一個連接和使能設備發現。從一個狀態到兩外一個,使用link manager命令或者使用link controller的內部信令(signals),例如觸發器信令和超時信令。

16

在standby狀態,設備處於低功耗模式,僅僅本地時鐘運行。

The pagesubstate is used by the master (source) to activateand connect to a

slave (destination) in the page scansubstate.

參考 http://www.cnblogs.com/hzl6255/p/3840641.html

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章