蓝牙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

 

 

 

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值