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介绍相关推荐

  1. Bluetooth SDP介绍

    Bluetooth SDP介绍 阅读目录 1. 概念 2. 服务记录 3. 服务属性 4. 服务类 5. 服务查找 6. 服务浏览 7. 数据表示 8. 协议说明 回到顶部 1. 概念 SDP, Se ...

  2. 蓝牙Bluetooth模块介绍

    1,蓝牙模块--基础知识介绍 https://blog.csdn.net/wwt18811707971/article/details/77833602 2,常见蓝牙模块介绍和AT指令 https:/ ...

  3. Android4.3 Bluetooth基本介绍

    蓝牙定义 蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术.能在包括移动电话.PDA.无线耳机.笔记本电脑.相关外设等众多设备之间进行无线信息交换.利用"蓝牙"技术,能够 ...

  4. Bluetooth 蓝牙介绍(一) :基础知识

    蓝牙背景 从1994年由电信商爱立信提出"希望创建一个RS-232数据线的无线通信替代版本,它能够链接多个设备,克服同步的问题"以来,蓝牙经过了20余个岁月的发展,蓝牙技术也经历了 ...

  5. Bluetooth 蓝牙介绍(六):低功耗蓝牙信息交互

    文章目录 前言 THREE-WIRE UART TRANSPORT LAYER LINK ESTABLISHMENT UnInitialized STATE Initialized STATE Act ...

  6. Bluetooth GAP介绍

    阅读目录 1. 介绍 2. 角色 3. 配置 4. 模式 5. 安全 6. 空闲模式 7. 建立连接 8. 操作模式和过程 回到顶部 1. 介绍 GAP,Generic Access Profile, ...

  7. Bluetooth 蓝牙介绍(四):低功耗蓝牙BLE Mesh网络 Ⅰ—— 基础概念

    文章目录 背景 术语 Managed Flooding Models Scenes 架构 Node Features 中继节点 代理节点 友元节点和低功耗节点 示例 BLE Mesh Networki ...

  8. Bluetooth 蓝牙介绍(二):低功耗蓝牙BLE协议栈

    文章目录 Physical LAYER Link LAYER 角色 地址 物理信道 Air Interface Packet PDU Advertising physical channel PDU ...

  9. Bluetooth ATT介绍

    阅读目录 1 介绍 2 详细内容 3 Attribute PDU 4 Attribute Protocol PDU 回到顶部 1 介绍 ATT,Attribute Protocol,用于发现.读.写对 ...

最新文章

  1. 在线作图|如何绘制一张坡度图
  2. b360装服务器系统,B365主板能不能安装Win7系统 B365和B360主板区别对比介绍
  3. led灯条维修_常见的LED透明屏型号规格,影响LED透明屏价格因素
  4. linux shell只读变量、删除变量
  5. 前端知识笔记汇总200304
  6. 七月算法机器学习笔记2--机器学习中的数学之矩阵分析与应用
  7. IDEA插件系列(84):MultiHighlight插件——高亮代码中的标识符
  8. 批量word转pdf
  9. IDC 发布《中国视频云市场跟踪》最新报告,视频云市场将趋向何方?
  10. C语言构造有理数的函数,创建有理数对象
  11. Proxmox监视器
  12. rabbitmq中交换机类型direct和topic的区别
  13. 微信小程序实现动态时间滚动
  14. 基于51单片机简易智能家居
  15. while (0) 是什么东东?
  16. POJ3238生日相同问题C++
  17. MATLAB曲线绘制
  18. 用photoshop拼接一个七巧板图案
  19. 初学媒体软件时的一些鼠绘作品
  20. 结构偶然性(第一部分)

热门文章

  1. linux 时间 环境变量,Linux环境变量的修改(永久,暂时)以及修改ls显示的时间格式...
  2. QImage/cv::Mat/HObject的图像格式互相转换,4字节对齐
  3. Selenium小技巧 修改ip+ua 改变窗口大小 手机模式 加载本地缓存
  4. Tecohoo VD-182U 全高清视频会议摄像机
  5. 温控中使用PID控制算法
  6. python+opencv实现NCC模板旋转匹配(图像处理)
  7. FFMPEG入门资料---001---介绍和参数说明
  8. html网页轮播速度,纯HTML+JS实现轮播
  9. Javaweb-ajax的使用
  10. 使用Pycharm设置python脚本文件头