` 本帖最后由 kevinrliu 于 2015-10-29 13:27 编辑
一、BLE简介
BLE为低功耗蓝牙技术,是低成本、短距离、可互操作的鲁棒性无线技术,工作在免许可的2.4GHz ISM射频频段。BLE有三大特性,分别为最大化的待机时间、快速连接和低峰值的发送/接收功耗。主要进行小数据包传输,低延迟,低功耗,应用于手机、个人电脑以及可穿戴设备等。不适合蓝牙耳机等高速率设备。 开发板系列教程:http://pan.baidu.com/s/1bnBJsMr
手环DIY开源学习教程:http://pan.baidu.com/s/1eQlUGiI 阅读软件:http://pan.baidu.com/s/1o6ELGCE
1.1 单模设备 单模设备是指只支持BasicRate(BR)或者Bluetooth Low Energy(BLE)中的一种,本教程中是指支持BLE的设备。主要特点为低功耗和低速率。不兼容传统蓝牙,可兼容双模设备。 1.2 双模设备 双模设备是指同时支持BR与BLE的设备,双模设备为蓝牙4.0的主题,要有稳定的电源供电,比如手机、电脑等。Android 4.3版本的系统才支持BLE。iPhone4S及以后的苹果手机均支持蓝牙4.0。双模设备兼容BLE以及传统蓝牙。 二、BLE协议栈介绍
2.1 BLE协议栈的结构(1) 协议栈有两部分组成:Controller和Host; (2) Profiles和Applications是基于GAP和GATT之上的; (3) 在单芯片工作模式中,Profiles、Host、Controller三者都工作在DA14580芯片中。 2.2 协议栈中的分层2.2.1 PHY层 RF (天线)规格特性为:运行在2.4GHz ISM band;GFSK(高斯频移键控)调制;40 频道2MHz 的通道间隙(3个固定的广播通道和37个自适应自动调频数据通道)。 2.2.2 LL层 RF控制层,控制芯片工作在standby(准备)、advertising(广播)、scanning(监听/ 扫描),initiating(发起连接)、connected(已连接)这5种状态中的一种。5种状态的切换描述为:advertising(广播)不需要连接就可以发送数据(告诉所有人,我来了),scanning(监听/扫描)来自广播的数据,initiator(发起人)将携带connection request(连接请求)来响应广播者,如果advertiser(广播者)同意该请求,那么广播者和发起者都会进入已连接状态,发起连接的设备变为master(主机),接收连接请求的设备变为slave(从机)。 2.2.3 L2CAP层2.2.4 SMP层 安全管理服务层,提供配对和密匙的分发,实现安全连接和数据交换。 2.2.5 ATT层 允许设备向另外一个设备展示一块特定的数据,称之为“属性”,在ATT环境中,展示“属性”的设备称为服务器,与之配对的设备称为客户端。链路层状态(主机和从机)与设备的ATT 角色是相互独立的,也就是说,主机设备可以是ATT 服务器,也可以是ATT 客户端。从机也一样。 2.2.6 GATT层 从名字就能看出,GATT是在ATT 上面的一层结构,定义了使用ATT 的服务框架,GATT 规定了配置文件(profile)的结构。在BLE中,所有被profile或者服务用到的数据块都称为“特性”(characteristic)。两个建立连接的设备之间的所有数据通信都是通过GATT子程序处理,应用程序和profile直接使用GATT层。 2.2.7 GAP层 General AccessProfile为基本访问配置,这个配置是其它配置的基础。它定义了在 Bluetooth设备间建立基带链路的通用方法 2.3 设备状态BLE设备有6种状态: 待机状态(Standby):设备没有传输和发送数据,并且没有连接到任何设备。 广播状态(Advertiser):周期性广播状态。 扫描状态(Scanner):主动寻找正在广播的设备。 发起连接状态(Initiator):主动向某个设备发起连接。 主设备(Master):作为主设备连接到其他设备。 从设备(Slave):作为从设备连接到其他设备。 三、BLE相关参数
3.1 服务与特征值 为了实现用户的应用,Profile通常有一个或者多个服务(Service)组成,每个服务对应特定的功能,比如体温服务、心率服务等。一个服务包含一个或多个特征值(characteristic value),比如心率服务中就会有一个心率特征值。每个特征值必须占用一个特征申明结构,其中包括它的其它特性,它是服务端和客户端共享的读写空间,设备之间的数据信息交换就是通过特征值。 UUID是代表服务与特征值的通用唯一标识。有128位与32位两种形式。有一些服务已经配分配为固定的UUID,所以用户自定义的服务与特征值不能使用这些UUID。 3.2 特征值的权限 Permissions(权限)定义了特征值的访问权限,比如规定某个特征值只能被读,或者可读可写等。 3.3 通信方式已连接设备之间的通信方式: Read:使用指定的handle读特征值; Write:使用指定的handle写特征值; Indication:某个特征值发送到客户端,需要确认; Notification:某个特征值发送到客户端,不需要确认,设备向手机APP发送数据的方法。 3.4 广播广播包的发送是单向的,不需要任何连接。设备发送广播包进入广播状态。 广播包可以包含特定的数据定义,最大31个字节。 广播包可以直接指定特定的设备,也可以不指定。 广播包中可以声明是可被连接的设备,或者是不可连接的设备 广播间隔是指两次广播时间之间的最小间隔(0.625ms的倍数+随机延时),其中随机延时为0~10ms,为了避免多个设备之间的数据碰撞。 DA14580的BLE协议栈只在37通道中广播。 开发板系列教程:http://pan.baidu.com/s/1bnBJsMr
手环DIY开源学习教程:http://pan.baidu.com/s/1eQlUGiI 阅读软件:http://pan.baidu.com/s/1o6ELGCE
`
|