Bluetooth系列之Bluetooth基础

Bluetooth.png

博主刚换了工作,目前从事物联网方面的Android开发,第一个项目研发的内容就跟蓝牙(Bluetooth)有关,主要是针对蓝牙4.0,又被称作低功耗蓝牙(Bluetooth Low Energy)做研发。不得不说,这方面的资料真的很少,博主在开发过程中遇到了各种各样的问题,也花费了很多的精力去解决。所以打算将其作为一个系列去写,将研发中的技术和遇到的问题以及解决的方案记录下来。

一、 蓝牙简介

说到蓝牙,大家肯定不会陌生,蓝牙的版本历史从99年发布的1.0版本,到后来07年发布的2.1版本(所谓的经典蓝牙),也是大部分产品使用的版本。再到所谓的高速蓝牙,也就是蓝牙3.0,最高速度可达24Mbps,是2.0速度的8倍。然后就是今天的主题,蓝牙4.0了,蓝牙4.0是Bluetooth SIG(蓝牙技术联盟)与10年7月7日推出的新的规范。其最重要的特性是支持省电。所以我们也称之为低功耗蓝牙。

科技的发展迅猛无比,时至今日,蓝牙已经于2016年6月推出蓝牙5,其有效传输距离将是4.0低功耗蓝牙的4倍(理论上可达300米),传输速度将是4.2低功耗版本的2倍(速度上限为24Mbps)。同时针对物联网进行了很多底层优化。

Bluetooth History:
v1.0 -> v2.0 -> v2.1 -> v3.0 -> v4.0 -> v4.1 -> v4.2 -> v5.0

二、 Bluetooth Low Energy

低功耗蓝牙,全称Bluetooth Low Energy,简称BLE。Android官方网站中针对BLE的开发有相关的开发文档,开发者们可查阅相关内容。

1. 关键名词及解释

  • Attribute Protocol (ATT) - ATT全称叫做属性协议,它是BLE通信的基础。ATT把数据进行封装,向外暴露为“属性”。ATT是专门为BLE设计的,结构简单,数据长度很短。每一个属性都通过Universally Unique Identifier (UUID)进行唯一标识,UUID是128位的值。
  • Generic Attribute Profile (GATT) - GATT全称叫做通用属性配置文件,GATT是构建于ATT之上。以ATT为基础,对ATT进行进一步的封装,定义数据的交互方式及含义。也是我们做开发时直接接触的东西。
  • Service - 一个Service里面包含了多个Characteristic。
  • Characteristic - 一个Characteristic里面包含了一个单一的数值和多个用来描述Characteristic的descriptor。Characteristic的操作有几种权限:读、写和通知。
  • Descriptor - Descriptor被定义为描述Characteristic数值的属性。

未完待续…

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!