蓝牙的Baseband说明

来源:互联网 发布:java equals string 编辑:程序博客网 时间:2024/06/04 18:49
蓝牙的radio部分使用2.4GHz的ISM段,2400 - 2483.5 MHz,通道间隔1MHz,GFS调制,采用跳频技术,每秒至少1600次。连接完成后的跳频次数为1600次/s,在inquiry和page时为3200次/s。
1.时钟
有三种是CLK,如下图:
蓝牙的Baseband说明
CLK是Master的时钟,代表某一个piconet的是时钟。slave根据下图来调整自己的时钟以达到和master一致:
蓝牙的Baseband说明
Page过程中用到CLKE,时钟调整过程如下:
蓝牙的Baseband说明

2.地址
蓝牙设备有一个唯一的48位地址(BD_ADDR),结构如下图:
蓝牙的Baseband说明
0x9E8B00-0x9E8B3F是LAP保留的一段,用来进行inquiry operations。
对于在piconet内的active状态的设备,都有一个Active Member Address(AM_ADDR),3bit,所以一个piconet内最多有8个active设备,AM_ADDR如果是all-zero,则代表是 broadcast address。
对于在piconet内的parked状态的设备,都有Parked Member Address(PM_ADDR),8-bit,所以最多有256个处于parked状态的设备。

3.Physical Channel
定义了四种phasical channnel:
basic piconet channel和adapted piconet channel 用于两个已经连接的设备之间的通信,inquiry scan channel用来发现远端设备,the page scan channel用来连接设备。

4.Physical Links
一个physical Link代表两个设备在baseband层的连接,通常一个Physical Link与一条Physical Channel关联。

5.Logical Transport
一共定义了5种形式的Logical Transport:
蓝牙的Baseband说明
synchronous logical transports周期性的使用预留的Slots,如果SCO建立,ACL只能使用这些Slots之外的Slots。
每一个Logical Transport都有一个Address(LT_ADDR)。在一个piconet里,每一个active状态的设备都有一个3-bit的LT_ADDR,全部为0代表广播,Master没有LT_ADDR。【这与AM_ADDR相似,是一个意思??】

(1)SCO和eSCO
Master最多支持3条SCO Link,可以是一个Master和一个Slave之间,也可以是一个Master和几个Slave之间。SCO常用于语音等同步数据,没有重传机制。sSCO相比于SCO在固定的Slot后增加了一个retransmission window,支持重传机制。
(2)ACL
Master和Slave只能存在一条link,并且在存在SCO link的情况下,ACL只能在预留给SCO的slots之外的Slots上传输数据。ACL支持重传。

6.Logical Links
定义了5中Logical links:
蓝牙的Baseband说明
LC在Packet的header部分,其余的Logical links在packet的payload部分。
注意:
ACL-C可以用在SCO 或者 ACL logical transport中;SCO-S and eSCO-S用在synchronous logical transports中;ACL-U 通常用在ACL logical transport中。
ACL-C and ACL-U logical links 由packet中的payload部分的header中的logical link ID(LLID)指定。
(1)LC
携带底层的控制信息,除了ID Packet,所有的Packet中都包括LC信息。
(2)ALC-C
携带Link Manger层交换的控制信息,使用DM1或者DV packets。
(3)ALC-U
带入了L2CAP层用户的信息,可能由一个或者多个baseband包来进行传输。
(4)SCO-S和eSco-S
携带同步用户数据。
相比于除LC的几个Logical links,ALC-C拥有最高优先级。

7.packets
Basic Rate的packet的format如下:
蓝牙的Baseband说明
General enhanced data rate packet 的format如下:
蓝牙的Baseband说明
注意:baseband层的数据时Little-Endian的,LSB首先传输。
当Access Code为68bit时,称为shortened access code,用在paging, inquiry, and park时,shortened access code没有trailer。

8.Access Code
在physical Channel上传输都需要Access code,定义了三种Access Code:
蓝牙的Baseband说明
IAC分为GIAC和DIAC,GIAC用于general inquiry operations,DIAC用于dedicated inquiry operations。
Baseband的每一个packet都是由Access Code开始的。Acess Code的格式如下:
蓝牙的Baseband说明
Access Code有好几种类型:
蓝牙的Baseband说明

Preamble部分如下:
蓝牙的Baseband说明

SYNC根据24 bit address (LAP)计算得到。
Trailer部分如下:
蓝牙的Baseband说明

header由六部分组成:
蓝牙的Baseband说明
经过1/3FEC编码后变成54bit,LSB先传输。
(1)Type部分
主要的功能如下:
1.决定在哪一条logical transport上传输(SCO,eSCO或ACL)
2.是否使能Enhanced Data Rate
3.是哪种packet(SCO,eSCO或ACL)
蓝牙的Baseband说明

Packet Type:
有5种Common Packet Types:ID Packet,NULL Packet,POLL Packet,FHS Packet和DM1 Packet。
这几种Type称为Link control packets:
蓝牙的Baseband说明

(1)SCO Packets
HV1 Packet, HV2 Packet, HV3 Packet,DV Packet。
(2)eSCO packet
EV4、EV5  for Basic Rate
2-EV3,3-EV3,2-EV5,3-EV5 for Enhanced Data Rate
(3)ACL Packrt
DM1, DH1, DM3, DH3, DM5, DH5 and AUX1 for basic Rate
2-DH1, 3-DH1, 2-DH3, 3-DH3, 2-DH5 and 3-DH5 for Enhanced Data Rate

payLoad部分:
synchronous data+asynchronous data两个部分组成。ACL packets only have the asynchronous data
field and the SCO and eSCO packets only have the synchronous data field with the exception of the DV packets which have both.
ACL PayLoad结构:
蓝牙的Baseband说明

LLID定义如下:
蓝牙的Baseband说明
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃头孢克圬过敏怎么办 孕妇让蚊子咬了怎么办 怀孕了被蚊子咬了怎么办 夏天被蚊子咬了该怎么办 尿酸高怎么办有什么危害 RH阴性血生二胎怎么办 柴油箱里加了水怎么办 五菱之光烧机油怎么办 软轴水泵不出水怎么办 小车柴油冻住了怎么办 皮卡柴油车冻了怎么办 发现4柴油车冻了怎么办 装载机暖风不热怎么办 柴机油加汽机车怎么办 货车故障灯亮了怎么办 上高速etc故障了怎么办 etc卡上高速失灵怎么办 etc被前车刷了怎么办 车辆首保过期了怎么办 4s店首保过期了怎么办 首保过了时间怎么办 etc电池没电了怎么办 新装的etc不能用怎么办 货车尿素不烧了怎么办 车用尿素冻了怎么办 车子老了漏机油怎么办 房屋30年到期后怎么办 房产40年到期后怎么办 汽油泵坏在路上怎么办 手油泵泵不上油怎么办 汽车刹车线断了怎么办 汽油弄到皮肤上怎么办 汽油闻多了头痛怎么办 新车误加燃油宝怎么办 五征三轮车乱档怎么办 五征三轮车跳档怎么办 滤油机里的油渣怎么办? 孕妇吃了点鲳鱼怎么办 怀孕6个月厌食怎么办 4个月孕妇厌食怎么办 血清促甲状腺激素偏高怎么办