蓝牙协议概述.docx

上传人:b****7 文档编号:16004921 上传时间:2023-07-09 格式:DOCX 页数:43 大小:1.75MB
下载 相关 举报
蓝牙协议概述.docx_第1页
第1页 / 共43页
蓝牙协议概述.docx_第2页
第2页 / 共43页
蓝牙协议概述.docx_第3页
第3页 / 共43页
蓝牙协议概述.docx_第4页
第4页 / 共43页
蓝牙协议概述.docx_第5页
第5页 / 共43页
蓝牙协议概述.docx_第6页
第6页 / 共43页
蓝牙协议概述.docx_第7页
第7页 / 共43页
蓝牙协议概述.docx_第8页
第8页 / 共43页
蓝牙协议概述.docx_第9页
第9页 / 共43页
蓝牙协议概述.docx_第10页
第10页 / 共43页
蓝牙协议概述.docx_第11页
第11页 / 共43页
蓝牙协议概述.docx_第12页
第12页 / 共43页
蓝牙协议概述.docx_第13页
第13页 / 共43页
蓝牙协议概述.docx_第14页
第14页 / 共43页
蓝牙协议概述.docx_第15页
第15页 / 共43页
蓝牙协议概述.docx_第16页
第16页 / 共43页
蓝牙协议概述.docx_第17页
第17页 / 共43页
蓝牙协议概述.docx_第18页
第18页 / 共43页
蓝牙协议概述.docx_第19页
第19页 / 共43页
蓝牙协议概述.docx_第20页
第20页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

蓝牙协议概述.docx

《蓝牙协议概述.docx》由会员分享,可在线阅读,更多相关《蓝牙协议概述.docx(43页珍藏版)》请在冰点文库上搜索。

蓝牙协议概述.docx

蓝牙协议概述

蓝牙协议的学习

第一章蓝牙的概述

一、蓝牙版本信息 

蓝牙共有六个版本V1.1/1.2/2.0/2.1/3.0/4.0 版本信息:

1、V1.1版本

传输率约在748~810kb/s,因是早期设计,容易受到同频率之产品所干扰下影响通讯质量。

2、V1.2版本

同样是只有748~810kb/s的传输率,但在加上了(改善Software)抗干扰跳频功能。

3、V2.0+EDR版本

是1.2的改良提升版,传输率约在1.8M/s~2.1M/s,开始支持双工模式——即一面作语音通讯,同时亦可以传输档案/高质素图片,2.0版本当然也支持Stereo运作。

应用最为广泛的是Bluetooth2.0+EDR标准,该标准在2004年已经推出,支持Bluetooth2.0+EDR标准的产品也于2006年大量出现。

虽然Bluetooth2.0+EDR标准在技术上作了大量的改进,但从1.X标准延续下来的配置流程复杂和设备功耗较大的问题依然存在。

4、V2.1版本

更佳的省电效果:

蓝牙2.1版加入了SniffSubrating的功能,透过设定在2个装置之间互相确认讯号的发送间隔来达到节省功耗的目的。

5、V3.0+HS版本

2009年4月21日,蓝牙技术联盟(BluetoothSIG)正式颁布了新一代标准规范"BluetoothCoreSpecificationVersion3.0HighSpeed"(蓝牙核心规范3.0版),蓝牙3.0的核心是"GenericAlternateMAC/PHY"(AMP),这是一种全新的交替射频技术,允许蓝牙协议栈针对任一任务动态地选择正确射频。

最初被期望用于新规范的技术包括802.11以及UMB,但是新规范中取消了UMB的应用。

6、V4.0版本

蓝牙4.0包括三个子规范,即传统蓝牙技术、高速蓝牙和新的蓝牙低功耗技术。

蓝牙4.0的改进之处主要体现在三个方面,电池续航时间、节能和设备种类上。

拥有低成本,跨厂商互操作性,3毫秒低延迟、100米以上超长距离、AES-128加密等诸多特色此外,蓝牙4.0的有效传输距离也有所提升。

3.0版本的蓝牙的有效传输距离为10米(约32英尺),而蓝牙4.0的有效传输距离最高可达到100米(约328英尺)。

7、典型蓝牙与BLE蓝牙对比

 

二、蓝牙的技术特点

简单地说,蓝牙是一种短程宽带无线电技术,是实现语音和数据无线传输的全球开放性标准。

它使用跳频扩谱(FHSS)、时分多址(TDMA)、码分多址(CDMA)等先进技术,在小范围内建立多种通信与信息系统之间的信息传输。

1、Bluetooth的主要技术特点:

(1)、工作频段:

2.4GHz的工科医(ISM)频段,无需申请许可证。

大多数国家使用79个频点,载频为(2402+k)MHz(k=0,1,2…78),载频间隔1MHz。

采用TDD时分双工方式。

(2)、传输速率:

1Mb/s(V2.0以上版本)

(3)、调试方式:

BT=0.5的GFSK调制,调制指数为0.28-0.35。

(4)、采用跳频技术:

跳频速率为1600跳/秒,在建链时(包括寻呼和查询)提高为3200跳/秒。

蓝牙通过快跳频和短分组技术减少同频干扰,保证传输的可靠性。

(5)、语音调制方式:

连续可变斜率增量调制(CVSD,ContinuousVariableSlopeDeltaModulation),抗衰落性强,即使误码率达到4%,话音质量也可接受。

(6)、支持电路交换和分组交换业务:

蓝牙支持实时的同步定向联接(SCO链路)和非实时的异步不定向联接(ACL链路),前者主要传送语音等实时性强的信息,后者以数据包为主。

语音和数据可以单独或同时传输。

蓝牙支持一个异步数据通道,或三个并发的同步话音通道,或同时传送异步数据和同步话音的通道。

每个话音通道支持64kbps的同步话音;异步通道支持723.2/57.6kbps的非对称双工通信或433.9kbps的对称全双工通信。

(7)、支持点对点及点对多点通信:

蓝牙设备按特定方式可组成两种网络:

微微网(Piconet)和分布式网络(Scatternet),其中微微网的建立由两台设备的连接开始,最多可由八台设备组成。

在一个微微网中,只有一台为主设备(Master),其它均为从设备(Slave),不同的主从设备对可以采用不同的链接方式,在一次通信中,链接方式也可以任意改变。

几个相互独立的微微网以特定方式链接在一起便构成了分布式网络。

所有的蓝牙设备都是对等的,所以在蓝牙中没有基站的概念。

(8)、工作距离:

蓝牙设备分为三个功率等级,分别是:

100mW(20dBm)、2.5mW(4dBm)和1mW(0dBm),相应的有效工作范围为:

100米、10米和1米。

三、Bluetooth的系统构成

1、无线射频单元(Radio):

负责数据和语音的发送和接收,特点是短距离、低功耗。

蓝牙天线一般体积小、重量轻,属于微带天线。

2、基带或链路控制单元(LinkController):

进行射频信号与数字或语音信号的相互转化,实现基带协议和其它的底层连接规程。

3、链路管理单元(LinkManager):

负责管理蓝牙设备之间的通信,实现链路的建立、验证、链路配置等操作。

4、蓝牙软件协议实现:

如上图紫色部分,这个后面我们做详细说明。

四、蓝牙协议规范

传输协议、中介协议、应用协议;

1、传输协议

负责蓝牙设备间,互相确认对方的位置,以及建立和管理蓝牙设备间的物理链路;

底层传输协议:

蓝牙射频(Radio)部分、基带链路管理控制器(Baseband&LinkController)、链路管理协议(LinkManagerProtocolLMP)。

负责语言、数据无线传输的物理实现以及蓝牙设备间的联网组网。

高层传输协议:

     逻辑链路控制与适配器(LogicalLinkControlandAdaptationProtocol)L2CAP、主机控制接口(HostControlInterface,HCI)。

为高层应用屏蔽了跳频序列选择等底层传输操作,为高层程序提供有效、有利于实现数据分组格式。

2、中介协议

  为高层应用协议或者程序,在蓝牙逻辑链路上工作提供必要的支持,为应用提供不同标准接口。

   串口仿真协议:

RFCOMM、服务发现协议:

SDP、互操作协议IrDA、网络访问协议:

PPP、IP、TCP、UDP、电话控制协议:

TCS、AT指令集。

3、应用协议

      蓝牙协议栈之上的应用软件和所涉及到的协议,如:

拨号上网、语言功能的应用程序。

蓝牙的应用框架如下:

(1)、通用应用类框架:

查询、建立连接服务等;

(2)、蓝牙电话应用类框架:

电话控制、语言;

(3)、蓝牙连网应用类框架:

网络应用相关;

(4)、对象交互服务类框架:

IrDA、OBEX;

(5)、蓝牙音视频控制类框架。

五、硬件接口

一般蓝牙芯片通过UART、USB、SDIO、I2S、PcCard和主控芯片通信。

如下图所示,通过UART和主控芯片通信。

 

第二章蓝牙协议规范(射频、基带链路控制、链路管理)

蓝牙协议是蓝牙设备间交换信息所应该遵守的规则。

与开放系统互联(OSI)模型一样,蓝牙技术的协议体系也采用了分层结构,从底层到高层形成了蓝牙协议栈,各层协议定义了所完成的功能和使用数据分组格式,以保证蓝牙产品间的互操作性。

一、射频协议

射频位置如上图红色部分。

1、工作频率

蓝牙工作在2.4GHzISM频段上,蓝牙采用跳频扩谱技术主动的避免工作频段受干扰(微波炉的工作频率也是2.4GHz)。

地理位置

ISM频段范围

射频信道频率

中国、美国、欧洲

2400.0~2483.5MHz

F=(2402+k)MHz,k在0、1、……78中随机取值

法国

2446.5~2483.5MHz

F=(2454+k)MHz,k在0、1、……22中随机取值

日本

2471.0~2497.0MHz

F=(2473+k)MHz,k在0、1、……22中随机取值

西班牙

2445.0~2475.0MHz

F=(2449+k)MHz,k在0、1、……22中随机取值

我国的蓝牙频率在2.402GHz~2.483GHz,蓝牙每个频道的宽度为1MHz,为了减少带外辐射的干扰,保留上、下保护为3.5MHz和2MHz,79个跳频点中至少75个伪随机码跳动,30S内任何一个频点使用时长不能超过0.4S。

2、跳频技术、发射功率、时隙

(1)、发射功率:

蓝牙发射功率分三级:

一级功率100mW(20dBm);二级功率2.5mW(4dBm);三级功率1mW(0dBm);

(2)、物理信道:

蓝牙物理信道有伪随机序列控制的79个跳频点构成,不同跳频序列代表不同的信道。

(3)、时隙:

蓝牙跳频速率为1600次/s,每个时间为625uS(1S/1600)称为一个时隙;

 

二、基带与链路控制协议

蓝牙发送数据时,基带部分将来自高层的数据进行信道编码,向下发给射频进行发送;接收数据时,将解调恢复空中数据并上传给基带,基带进行信道编码传送给上层。

作用:

跳频选择、蓝牙编址、链路类型、信道编码、收发规则、信道控制、音频规范、安全设置。

1、蓝牙分组编码为小端模式;

2、蓝牙地址

BD_ADDR:

BluetoothDeviceAddress;

LAP:

LowerAddressPart低地址部分;

UAP:

UpperAddressPart高地址部分;

NAP:

Non-significantAddressPart无效地址部分。

3、蓝牙时钟

每个蓝牙设备都有一个独立运行的内部系统时钟,称为本地时钟(LocalClock),决定定时器的收发跳频。

为了与其他设备同步,本地时钟要加一个偏移量(offset),提供给其他设备同步。

蓝牙基带四个关键周期:

312.5uS、625uS、1.25mS、1.28S。

CLKN:

本地时钟:

CLKE:

预计时钟,扫描寻呼过程中用到;

CLK:

设备实际运行的时钟频率。

CLKE、CLK由CLKN加上一个偏移量得到的。

4、蓝牙物理链路:

通信设备间物理层的数据连接通道就是物理链路。

ACL(AsynchronousConnectionless)异步无连接链路;对时间要求不敏感的数据通信,如文件数据、控制信令等。

SCO(SynochronousConnectionOriented)同步面向连接链路;对时间比较敏感的通信,如:

语音;最多只支持3条SCO链路,不支持重传。

ACL用于数据传输;

5、蓝牙基带分组:

基带分组至少包括:

接入码、分组头、有效载荷;

(1)、接入码用于同步、直流、载频泄漏偏置补偿标识;

(2)、分组头包含链路信息,确保纠正较多的错误。

分组类型如下:

分组类别

Type(b3b2b1b0)

时隙

SCO

ACL

链路控制分组

0000

1

NULL

NULL

0001

POLL

POLL

0010

FHS

FHS

0011

DM1

DM1

单时隙分组

0100

1

未定义

NULL

0101

HV1

0110

HV2

0111

HV3

1000

DV

1001

NULL

AUX1

3时隙分组

1010

3

未定义

DM3

1011

DH3

1100

未定义

1101

5时隙分组

1110

5

未定义

DM5

1111

ACL分组形式为:

D(M|H)(1|3|5),D代表数据分组,M代表用2/3比例的FEC的中等速率分组;H代表不使用纠错码的高速率分组;1、3、5分别代表分组所占用的时隙数目;

DM1、DM3、DM5、DH1、DH3、DH5

SCO分组形式为:

HV(1|2|3)。

HV代表高质量语言分组,1、2、3有效载荷所采用的纠错码方法。

1为1/3比例FEC,设备2个时隙发送一个单时隙分组;2为2/3比例FEC,设备4个时隙发送一个单时隙分组;3为不使用纠错码,设备6个时隙发送一个单时隙分组

HV1、HV2、HV3

ALC分组:

类型

有效载荷头/字节

用户有效载荷/字节

FEC

CRC

对称最大速率/kbps

非对称速率/kbps

前向

后向

DM1

1

0~17

2/3

108.8

108.8

108.8

DH1

1

0~27

172.8

172.8

172.8

DM3

2

0~121

2/3

258.1

387.2

54.4

DH3

2

0~183

390.4

585.6

86.4

DM5

2

0~224

2/3

286.7

477.8

36.3

MH5

2

0~339

433.9

723.2

57.6

AUX1

1

0~29

185.6

185.6

185.6

 SCO分组:

类型

有效载荷头/字节

用户有效载荷/字节

FEC

CRC

有效载荷长度

同步速率/kbps

占用Tsco数目/语言长度

HV1

10

1/3

 

240位

64

2/1.25ms

HV2

20

2/3

4/2.5ms

HV3

30

6/3.75ms

DV

1D

10+(0-9)D

2/3D

有D

 

64+57.6D

 

注释:

D只对数据段有用,DV分组包含数据段,也包含语言段。

(3)、有效载荷

分语言有效载荷、数据有效载荷。

6、蓝牙的逻辑信道

链路控制信道:

LinkControl LC

链路管理信道:

LinkManageLM

用户异步数据信道:

UserAsynchronizationUA

用户同步数据信道:

UserSynchronizationUS

用户等时数据信道:

UserIsochronousUI UI

7、蓝牙的收发规则

上图为RX缓存。

上图为TX缓存。

新分组到达时,ACL链路的RX缓存器要流量控制,SCO数据不需要流量控制;

8、蓝牙基带信道和网络控制

1)、链路控制器状态:

待机、连接

寻呼page、寻呼扫描pagescan、查询inquiry、查询扫描inquiryscan、主设备相应MasterResponse、从设备相应SlaveResponse、查询相应inquiryresponse

2)、连接状态

激活模式active、呼吸模式sniff、保持模式hold、休眠模式park。

3)、待机状态

     待机状态是蓝牙设备缺省低功耗状态,此状态下本地时钟以低精度运行。

蓝牙从待机转入寻呼扫描状态,对其他寻呼进行响应成为从设备;也可以从待机状态进入查询扫描状态,完成一个完整的寻呼,成为主设备。

9、接入过程

注释:

IACInquiryAccessCode查询接入码;

GIAC:

通用查询接入码DIAC:

专用查询接入码;

DAC:

DeviceAccessCode设备接入码;

LAP:

     建立连接,必须使用查询、寻呼;查询过程使用IAC,发现覆盖区域内的设备、设备的地址及其时钟;连接过程使用DAC,建立连接的设备处理寻呼过程,成为主设备。

(1)、查询过程

蓝牙设备通过查询来发现通信范围内的其他蓝牙设备。

查询信息分为GIAC、DIAC两种。

查询发起设备收集所有相应设备的地址、时钟信息。

一设备进入查询状态去发现其他设备,查询状态下连续不断的在不同频点发送查询消息。

查询的跳频序列有GIAC的LAP导出。

一设备想被其他设备发现,就要周期性进入查询扫描状态,以便相应查询消息。

如:

我们选择设备多长时间可见,其实就是 进入查询扫描状态。

A、查询扫描

查询扫描状态下,接收设备扫描接入码的时间长度,足以完成对16个频率的扫描。

扫描区间长度Twindowinquiryscan。

扫描在同一个频率上进行,查询过程用32跳专用查询跳频序列,此序列有通用查询的地址决定,相位有本地时钟决定,每隔1.28S变化一次。

B、查询

与寻呼类似,TX用查询跳频序列、RX用查询相应跳频序列。

C、查询相应

从设备响应查询操作。

每个设备都有自己的时钟,使用查询序列相位相同的几率比较小。

为了避免多个设备在同一查询跳频信道同时激活,从设备查询响应规定:

从设备收到查询消息,产生0-1023只觉得额一个随机数,锁定当时相位输入值进行跳频选择,从设备此后的RAND时隙中返回到连接或者待机状态。

(2)、寻呼扫描

DAC:

DeviceAccessCode设备接入码

寻呼扫描状态下的设备扫描窗口Twindowpagescan内监听自己的DAC。

监听只在一个跳频点进行。

Twindowpagescan足够覆盖16个寻呼扫描频点。

寻呼扫描状态,扫描在同一个频率上进行,持续1.28S,在选择另一个不同频率。

SR模式

Tpagescan

寻呼次数Npage

R0

连续

>=1

R1

<=1.28S

>=128

R2

<=2.56S

>=256

预留

--

--

(3)、寻呼

主设备使用寻呼发起一个主—从设备连接,通过在不同的跳频点上重复发送从设备DAC来扑捉从设备,从设备在寻呼扫描状态被唤醒,接收寻呼。

(4)、寻呼相应过程

三、链路管理器

如上图红色部分,负责完成设备:

功率管理、链路质量管理、链路控制管理、数据分组管理、链路安全管理。

1、链路管理协议数据单元

     蓝牙链路管理器接收到高层的控制信息后,不是向自身的基带部分分发控制信息,就是与另一台设备的链路管理器进行协商管理。

这些控制信息封装在链路管理协议数据单元LMP_PDU中,由ACL分组的有效载荷携带。

2、链路管理器协议规范

(1)、设备功率管理

     RSSI保持模式、呼吸模式、休眠模式。

(2)、链路质量管理QoSQualityofService

A、ACL链路。

B、SCO链路。

(3)、链路控制管理

设备寻呼模式、设备角色转换、时钟计时设置、信息交换:

版本信息、支持特性、设备名称;建立连接、链路释放。

(4)、数据分组管理

第三章蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM)

一、主机控制接口协议 HCI

蓝牙主机-主机控模型

蓝牙软件协议栈堆的数据传输过程:

1、蓝牙控制器接口数据分组:

指令分组、事件分组、数据分组

(1)、指令分组

如:

AccpetConnectionRequest

Opcode为:

0x0409

参数长度为:

07 

参数中蓝牙地址为:

00:

0d:

fd:

5f:

16:

9f

角色为:

从设备 0x01

大端数据模式

指令为:

0904079f165ffd0d0001

(2)、事件分组

如上图:

Opcode:

0x0409

状态:

0x00

总长度:

4字节

命令状态:

0x0f

(3)、数据分组

ACL数据分组

连接句柄(12bit)

PB(2bit)

BC(2bit)

数据长度(16bit)

数据…………

注:

PB Packet_Boundary BC BroadcastFlag

SCO数据分组

连接句柄(12bit)

保留(4bit)

数据长度(16bit)

数据…………

(4)、RS232分组指示器:

HCI分组类型

RS232分组指示器

HCI指令分组

0x01

HCIACL数据分组

0x02

HCISCO数据分组

0x03

HCI事件分组

0x04

HCI错误消息分组

0x05

HCI协商分组

0x06

2、HCI控制命令

(1)、链路控制指令

命令

OCF

概述

Inquiry

0x0001

蓝牙设备进入查询模式,搜索临近设备

InquiryCancel

0x0002

退出查询模式

PeriodicInquiryMode

0x0003

蓝牙设备在指定周期内自动查询

ExitPeriodicInquiryMode

0x0004

退出自动查询模式

CreateConnection

0x0005

按指定蓝牙设备的BD_ADDR创建ACL链路

Disconnect

0x0006

终止现有连接

AddSCOConnection

0x0007

利用连接句柄参数指定的ACL连接创建SCO

CancelCreateConnection

0x0008

 

AcceptConnectionRequest

0x0009

接收新的呼入连接请求

RejectConnectionRequest

0x000A

拒绝新的呼入连接请求

LinkKeyRequestReply

0x000B

应答从主机控制器发出的链路密钥请求事件,并指定存储在主机上的链路密钥做为与BD_ADDR指定的蓝牙设备进行连接使用的链路密钥请求事件

LinkKeyRequestNegativeReply

0x000C

如果主机上没有存储链路密钥,作为与BD_ADDR指定的蓝牙设备进行连接使用的链路密钥,就应答从主机控制器发出的链路密钥请求事件

PINCodeRequestReply

0x000D

应答从主机控制器发出的PIN请求事件,并指定用于连接的PIN

PINCodeRequestNegativeReply

0x000E

当主机不能指定连接的PIN时,应回答从机控制器发出的PIN请求事件

ChangeConnectionPacketType

0x000F

改变正在建立连接的分组类型

AuthenticationRequest

0x0011

指定连接句柄关联的两个蓝牙设备之间建立身份鉴权

SetConnectionEncryption

0x0013

建立取消连接加密

ChangeConnectionLinkKey

0x0015

强制关联了连接句柄的两个设备建立连接,并生成一个新的链路密钥

MasterLinkKey

0x0017

强制关联了连接句柄的两个设备利用主设备时链路密钥或常规密钥

RemoteNameRequest

0x0019

获取远端设备的名称

CancelRemoteNameRequest

 

 

ReadRemoteSupportedFeatures

0x001B

请求远端设备所支持的特性列表

ReadRemoteExtendedFeatures

 

 

ReadRemoteVersionInformation

0x001D

从远端设备读取版本信息

ReadClockOffset

0x001F

读取远端的时钟信息

(2)、链路策略指令

命令

OCF

简介

HoldMode

0x0001

改变LM状态和本地及远程设备为主模式的LM位

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2