Android 蓝牙BLE初学笔记



这是我刚开始接触BLE开发总结的一些网上的资料,结合到和一起,这是某位大神的demo讲解连接,可以结合一起看,biji

http://blog.csdn.net/dandan_dany/article/details/51698861

一、Android蓝牙层次结构

1.1物理层(Physical Layer)

物理层,负责提供数据传输的物理通道(通常称为信道)。通常情况下,一个通信系统中存在几种不同类型的信道,如控制信道、数据信道、语音信道等等。

BLE的ISM频段是2.4-2.4835GHz

频带分为40份,每份带宽2M,用于支持多设备连接

逻辑层(Logical Layer)

在物理层的基础上,提供两个或多个设备之间、和物理无关的逻辑传输通道(也称作逻辑链路)。

L2CAP Layer(逻辑链路控制和适配协议)

负责管理逻辑层提供的逻辑链路。基于该协议,不同Application可共享同一个逻辑链路。类似TCP/IP中端口(port)的概念。

L2CAP的功能要求包括协议/信道复用,分段和重组,每个信道的流控制、差错控制和组管理。

协议/信道复用:L2CAP必须能够区分高层协议,在信道建立时,协议复用功能用来发送请求来连接正确的上层协议;数据传输时,逻辑信道复用必须能够把用同一协议的不用几个高层实体区分出来。

分段和重组:通过由资源管理器所提供的帧中继服务,在L2CAP层之上个人应用程序可以控制传输帧的大小。如果L2CAP控制了PDU的长度,那么就可为多路复用提供更好的服务,它提供下面的好处:

<1>分段将允许应用数据单元的交错,这样可以满足延时要求;

<2>在L2CAP控制了分组大小以后,内存和缓冲区管理就会变得更加简单;

<3>重传纠错更有效;

<4>减少丢失数据

<5>上层分组映射在低层分组中,并可以从底层分组中剥离出来。

  每个L2CAP信道的流控制,在同一个L2CAP逻辑链路上有几个数据流传输时,每个信道需要各自的流控制,L2CAP也对需要流控制的应用提供流控制。L2CAP连接建立过程,允许交换有关两蓝牙单元之间服务质量的信息。每个L2CAP设备必须监视由协议使用的资源并保证服务质量(QoS)的完整实现。

1.2应用层(APP Layer)

理解蓝牙协议中的应用层,基于L2CAP提供的channel,实现各种各样的应用功能。Profile是蓝牙协议的特有概念,为了实现不同平台下的不同设备的互联互通,蓝牙协议不止规定了核心规范(称作Bluetooth core),也为各种不同的应用场景,定义了各种Application规范,这些应用层规范称作蓝牙profile。

为了实现不同平台下的不同设备的互联互通,蓝牙协议为各种可能的、有通用意义的应用场景,都制定的了规范,如SPP、HSP、HFP、FTP、IPv6/6LoWPAN等等。

Profiles基于L2CAP提供的L2CAP channel endpoints实现,在它们对应的层次上进行数据通信,以完成所需功能。

BLE涉及的协议:

 

BLE的协议可分为Bluetooth Application和Bluetooth Core两大部分。Bluetooth Core又包含BLE Controller和BLE Host两部分BLE Host两个关键协议:GAP(通用访问协议)、GATT(通用属性协议)GAP主要负责连接前的数据广播,GAP层4种不同类型的广播:通用的、定向的、不可连接的、可发现的。

设备每次广播时,会在3个广播信道上发送相同的报文。这些报文被称为一个广播事件

通用广播:通用广播是用途最广的广播方式。进行通用广播的设备能够被扫描设备扫描到,或者在接收到连接请求时作为从设备进入一个连接。通用广播可以在没有连接的情况下发出,换句话说,没有主从设备之分。

定向广播:有时候,设备间需要快速建立连接。如果从设备想这么做,就需要进行广播。定向广播事件就是为了尽可能快的建立连接。这种报文包含两个地址:广播者的地址和发起者的地址。发起设备收到发绐自己的定向广播报文后,可以立即发送连接请求作为回应。

不可连接广播:不想被连接的设备使用不可连接广播事件。这种广播的典型应用包括设备只想广播数据,而不想被扫描或者连接。速也是唯一可用于只有发射机而没有接收机设备的广播类型。不可连接广播设备不会进入连接态,因此,它只能根据主机的要求在广播态和就绪态之间切换。

可发现广播:最后一种广播事件是可发现广播。这种广播不能用于发起连接,但允许其他设备扫描该广播设备。这意味着该设备可以被发现,既可以广播数据,又可以响应扫描,但不能建立连接。这是一种适用于广播数据的广播形式,动态数据可以包含于广播数据之中,而静态数据可以包含于扫描响应数据之中。可发现广播不会进入连接态,而只能在停止后回到就绪态。

SM(security manager),蓝牙的安全管理,就是使用一种密钥分发的方式来实现识别ble数据加密和解密的功能。连接建立之后,双方通过某些方式协商共同的密钥,然后将后续要传输的数据用这个密钥通过加密算法进行加密,那实际传送

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值