Bluetooth Baseband介绍
Bluetooth Baseband介绍
阅读目录
- 1. 介绍
- 2. 概述
- 3. 物理信道
- 4. 物理链路
- 5. 逻辑传输层
- 6. 逻辑链路
- 7. 数据包
- 8. 链路控制
回到顶部
1. 介绍
蓝牙的radio工作在2.4GHz的ISM Band(2400-2483.5 MHz),信道间隔1MHz,采用跳频技术
回到顶部
2. 概述
在连接(CONNECTION)状态, synchronization train和synchronization scan子状态每秒至少1600次
在inquiry和page子状态时为每秒至少3200次/s
蓝牙有如下的连接方式
蓝牙通过空气来传播数据,定义了两种模式
- Basic Rate(强制模式): 1 Mbps- Enhanced Basic Rate(可选模式): 2 Mbps和3 Mbps
2.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
2.2 寻址方式
每个蓝牙设备都应该有唯一的48-bit设备地址(BD_ADDR),结构如下图
- LAP: Lower Address Part - UAP: Upper Address Part - NAP: Non-significant Address Part
LAP有64个保留地址(0x9E8B00-0x9E8B3F);其中0x9E8B33是一般用于查询
回到顶部
3. 物理信道
物理信道(Physical Channels)是蓝牙系统的最底层;两个互相通信的设备通过将收发器(transceivers)调谐到同一RF频率来共享物理信道;蓝牙设备通过时分复用来支持多个操作的同时进行
蓝牙定义了五种物理信道
- basic piconet physical channel: 用于特定piconet中两个已经连接的设备之间的通信- adapted piconet physical channel: 用于特定piconet中两个已经连接的设备之间的通信- page scan physical channel: 用来连接设备- inquiry scan physical channel: 用来发现远端设备- synchronization scan physical channel: 以获取无连接从属广播物理链路的时间和频率信息
回到顶部
4. 物理链路
物理链路(Physical Links)表示两个设备间的基带(Baseband)连接,总是与某个特定的物理信道相关联
回到顶部
5. 逻辑传输层
在Master和Slave之间,可能建立不同类型的逻辑传输层(Logical Transports)
有六种逻辑传输层
- 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广播
回到顶部
6. 逻辑链路
逻辑链路(Logical Links)有六种
- LC: Link Control, 用于链路控制层(Link Control Level )和链路管理层(Link Manager Level) - ACL-C: ACL Control, 用于链路控制层(Link Control Level )和链路管理层(Link Manager Level) - ACL-U: User Asynchronous/Isochronous, 用于承载用户异步信息- SCO-S: User Synchronous, 用于承载用户同步信息- eSCO-S: User Extended Synchronous, 用于承载用户同步信息- PBD: Profile Broadcast Data, 用于承载Profile广播数据
注意: LC在Packet的Header部分; 其他都在Payload部分
6.1 LC
LC携带底层的控制信息,如ARQ,Flow Control,Payload Characterization
除了没有header的ID Packet,每个Packet都含有LC信息
6.2 ACL-C
ACL-C携带Link Manger层交换的控制信息,使用DM1/DV packets
可由SCO/ACL Logical Transport承载;通过Payload Header的Logical Link ID(LLID)来指示
6.3 ACL-U
ACL-U携带L2CAP层用户数据,可能由一个或者多个baseband包来进行传输
通常由ACL Logical Transport承载,也可由SCO Logical Transport的DV Packet的Data承载
通过Payload Header的Logical Link ID(LLID)来指示
6.4 SCO-S/eSCO-S
SCO-S/eSCO-S携带同步用户数据,只由Synchronous Logical Transports承载
6.5 PDB
PBD由CSB Logical Transport承载;PBD携带Profile广播数据,并且数据应该完整,不可分片传输
6.6 优先级
ALC-C较之其他Logical Link具有最高优先级;PBD优先级最低
回到顶部
7. 数据包
7.1 General Format
对于Basic Rate,一般格式如下
对于Enhanced Data Rate,一般格式如下
General Packet包含三个部分
- Access Code: 72/68 bits - Header: 54 bits - Payload: 0~2790 bits
7.2 Bit Ordering
Baseband在传输时采用Little Endian格式,并有如下规则
- LSB(Least Significant Bit)对应于B0 - LSB先传输 - LSB在左边显示
如3-bit参数X=3 (b0b1b2 = 110),其中1最先传输,0最后传输
7.3 Access Code
每个报文以Access Code开始;Access Code标识了一个物理信道,在同一个物理信道中的报文有相同的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决定
7.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
其格式如下
7.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的数据包和广播数据包
7.4.2 Type
区分六种不同的Packet,主要有三种功能
- 决定使用的Logical Transport(SCO/eSCO,ACL,CSB) - 是否使能Enhanced Data Rate - 标识Packet类型(SCO/eSCO,ACL)
7.4.3 Flow
在ACL Logical Transport中用来进行流控,其对应值含义为
- 0: STOP indication - 1: GO indication
在SCO/eSCO(设为1)和CSB(设为0) Logical Transport中Flow位被忽略
7.4.4 ARQN
Automatic Repeat reQuest Number
确认指示位,指示数据源是否成功地传输了带有CRC的Payload数据
在CSB Logical Transport(设为0)中被忽略
7.4.5 SEQN
Sequence Number,用来保证数据流有序的传输
在CSB Logical Transport(设为0)中被忽略
7.4.6 HEC
Header Error Check,用于检测Header的完整性
7.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
7.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的一种,可在任意逻辑传输层上传输,用来支持控制信息, 也可用来携带用户数据
7.5.2 SCO Packets
有HV1、HV2、HV3和DV Packet这四种
其中DV Packet包含Data和Voice两种数据,格式如下
7.5.3 eSCO Packets
主要是EV Packets
Basic Rate: EV3、EV4和EV5
Enhanced Data Rate: 2-EV3、3-EV3、2-EV5和3-EV5
7.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
7.6 Payload Format
Payload中有区分两种字段: 同步数据字段(Synchronous Data Field)和异步数据字段(Asynchronous Data Field)
ACL Packet只含有异步数据字段; SCO/eSCO只含有同步数据字段(例外: DV Packet两者都含有)
7.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
7.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字段定义如下
回到顶部
8. 链路控制
链路控制器(Link Controller)中定义了几种状态
主状态- STANDBY(默认状态)- CONNECTION- PARK子状态(建立连接和使设备发现的临时状态)- page- page scan- inquiry- inquiry scan- synchronous train- synchronous scan - master response- slave response- inquiry respnse
在CONNECTION状态下,蓝牙设备有四种模式(除活动模式外,其他三种均是节能模式)
- 保持模式(Hold Mode)- 呼吸模式(Sniff Mode)- 休眠模式(Park Mode)- 活动模式(ActiveMode)
下图显示了这些状态的转换图(三种Response子状态未显示)
参考:
<BlueTooth: 蓝牙基带>
Bluetooth Baseband介绍相关推荐
- Bluetooth SDP介绍
Bluetooth SDP介绍 阅读目录 1. 概念 2. 服务记录 3. 服务属性 4. 服务类 5. 服务查找 6. 服务浏览 7. 数据表示 8. 协议说明 回到顶部 1. 概念 SDP, Se ...
- 蓝牙Bluetooth模块介绍
1,蓝牙模块--基础知识介绍 https://blog.csdn.net/wwt18811707971/article/details/77833602 2,常见蓝牙模块介绍和AT指令 https:/ ...
- Android4.3 Bluetooth基本介绍
蓝牙定义 蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术.能在包括移动电话.PDA.无线耳机.笔记本电脑.相关外设等众多设备之间进行无线信息交换.利用"蓝牙"技术,能够 ...
- Bluetooth 蓝牙介绍(一) :基础知识
蓝牙背景 从1994年由电信商爱立信提出"希望创建一个RS-232数据线的无线通信替代版本,它能够链接多个设备,克服同步的问题"以来,蓝牙经过了20余个岁月的发展,蓝牙技术也经历了 ...
- Bluetooth 蓝牙介绍(六):低功耗蓝牙信息交互
文章目录 前言 THREE-WIRE UART TRANSPORT LAYER LINK ESTABLISHMENT UnInitialized STATE Initialized STATE Act ...
- Bluetooth GAP介绍
阅读目录 1. 介绍 2. 角色 3. 配置 4. 模式 5. 安全 6. 空闲模式 7. 建立连接 8. 操作模式和过程 回到顶部 1. 介绍 GAP,Generic Access Profile, ...
- Bluetooth 蓝牙介绍(四):低功耗蓝牙BLE Mesh网络 Ⅰ—— 基础概念
文章目录 背景 术语 Managed Flooding Models Scenes 架构 Node Features 中继节点 代理节点 友元节点和低功耗节点 示例 BLE Mesh Networki ...
- Bluetooth 蓝牙介绍(二):低功耗蓝牙BLE协议栈
文章目录 Physical LAYER Link LAYER 角色 地址 物理信道 Air Interface Packet PDU Advertising physical channel PDU ...
- Bluetooth ATT介绍
阅读目录 1 介绍 2 详细内容 3 Attribute PDU 4 Attribute Protocol PDU 回到顶部 1 介绍 ATT,Attribute Protocol,用于发现.读.写对 ...
最新文章
- 在线作图|如何绘制一张坡度图
- b360装服务器系统,B365主板能不能安装Win7系统 B365和B360主板区别对比介绍
- led灯条维修_常见的LED透明屏型号规格,影响LED透明屏价格因素
- linux shell只读变量、删除变量
- 前端知识笔记汇总200304
- 七月算法机器学习笔记2--机器学习中的数学之矩阵分析与应用
- IDEA插件系列(84):MultiHighlight插件——高亮代码中的标识符
- 批量word转pdf
- IDC 发布《中国视频云市场跟踪》最新报告,视频云市场将趋向何方?
- C语言构造有理数的函数,创建有理数对象
- Proxmox监视器
- rabbitmq中交换机类型direct和topic的区别
- 微信小程序实现动态时间滚动
- 基于51单片机简易智能家居
- while (0) 是什么东东?
- POJ3238生日相同问题C++
- MATLAB曲线绘制
- 用photoshop拼接一个七巧板图案
- 初学媒体软件时的一些鼠绘作品
- 结构偶然性(第一部分)
热门文章
- linux 时间 环境变量,Linux环境变量的修改(永久,暂时)以及修改ls显示的时间格式...
- QImage/cv::Mat/HObject的图像格式互相转换,4字节对齐
- Selenium小技巧 修改ip+ua 改变窗口大小 手机模式 加载本地缓存
- Tecohoo VD-182U 全高清视频会议摄像机
- 温控中使用PID控制算法
- python+opencv实现NCC模板旋转匹配(图像处理)
- FFMPEG入门资料---001---介绍和参数说明
- html网页轮播速度,纯HTML+JS实现轮播
- Javaweb-ajax的使用
- 使用Pycharm设置python脚本文件头