蓝牙的Baseband说明

摘要:
对于微微网中的活动设备,ActiveMemberAddress为3位,因此微微网中最多有8个活动设备_如果ADDR全部为零,则表示广播地址。与SCO相比,sSCO在固定时隙后增加了一个重传窗口,支持重传机制。ALC-U引入L2CAP层用户的信息,其可以通过一个或多个基带分组来发送。当AccessCode为68位时,称为shortenedaccesscode。当它用于寻呼、查询和停车时,shortenedaccesscode没有跟踪器。基带中的每个数据包都以AccessCode开头。

 蓝牙的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说明

免责声明:文章转载自《蓝牙的Baseband说明》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇WAMP环境配置-Mysql安装CSS或者JS实现鼠标悬停显示另一元素下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Kafka SASL ACL配置踩坑总结

源起:工程现阶段中间件采用的是kafka。满足了大数据的高吞吐,项目间的解耦合,也增强了工程的容错率与扩展性。但是在安全这一块还有漏洞,kafka集群中,只要网站内的任何人知道kafka集群的ip与topic,都可以肆无忌惮的往集群中的topic中发送数据与消费数据。 经过调研:kafka的sasl acl可以设置安全机制,给每个主题设置多个用户,不同的用...

CDN调度器HAProxy、Nginx、Varnish

CDN功能如下:1、将全网IP分为若干个IP段组,分组的依据通常是运营商或者地域,目的是让相同网络环境中的用户聚集到相同的组内;2、依据CDN服务器们的网络和容量,确定哪些CDN服务器适合服务哪些IP段组;3、根据以上两步得到的结论,让用户去最适合他的服务器得到服务。 说白了,就是根据用户不同的来源IP把用户请求重定向到不同的CDN服务器上去。那么,如何实...

Kafka Eagle V2.0.0新版预览

1.概述 Kafka Eagle是一款用于管理Kafka的监控系统,且完全开源。当前Kafka Eagle发布了2.0.0版本。今天笔者就为大家来介绍一下2.0.0更新了哪些功能。 官网地址:http://www.kafka-eagle.org/ 开源地址:https://github.com/smartloli/kafka-eagle 2.内容...

NLP/CL 顶会收录

全文转载自知乎@刘知远老师:初学者如何查阅自然语言处理学术资料(2016修订版)。 1. 国际学术组织、学术会议与学术论文 自然语言处理(natural language processing,NLP)在很大程度上与计算语言学(computational linguistics,CL)重合,是计算机科学与语言学的交叉学科,也是人工智能的重要方向。与其他很多计...

Android 蓝牙开发(1)

普通蓝牙设备官方文档 Android 平台包含蓝牙网络堆栈支持,凭借此支持,设备能以无线方式与其他蓝牙设备交换数据。应用框架提供了通过 Android Bluetooth API 访问蓝牙功能的途径。使用 Bluetooth API Android 应用可以执行下面的操作: 扫描其他蓝牙设备 查询本地蓝牙适配器的配对蓝牙设备 建立 RFCOMM 通道...

[Kong] basic-auth基本认证及ACL鉴权

目录 basic-auth 1. Route上启用插件 2. 创建一个Consumer 3. 为Consumer创建凭证 4. 验证凭证 ACL 用户鉴权 1. 在route上启用ACL鉴权插件 2. 关联comsumer Basic auth 与ACL 的总结 在上篇文章《key-auth实现对API请求的密钥认证》,简单学习了如何...