BLE中的这些概念你都知道吗?转载本文请联系嵌入式从0到1公众号。我们使用安卓手机上的蓝牙调试助手与TB-02-kit模块进行通信。很多人可能不知道很多概念。今天我们就来梳理一下整个数据通信过程以及涉及到的一些概念。如有理解不到位的地方,欢迎在留言中指出。蓝牙发展史蓝牙发展史蓝牙与BLE的区别蓝牙是一种短距离的2.4GHz无线通信技术,可以实现设备间的数据交换。一般将蓝牙3.0之前的BR/EDR蓝牙称为传统蓝牙(ClassicBluetoothBT:BlueTooth),蓝牙4.0规范下的LE蓝牙称为低功耗蓝牙。BluetoothLowEnergy是在传统蓝牙的基础上发展起来的。BLE技术采用非常快速的连接方式,因此可以处于“非连接”状态(节能)。这时链接的两端只知道对方,只在必要的时候打开链接,然后在最短的时间内打开链接。内部关闭链接——这种设计的目的是为了低功耗。BLE优点:搜索速度快,连接速度快,超低功耗维持连接和传输数据,缺点是传输速率略低。BLE蓝牙模块主要应用领域1、移动扩展设备2、汽车电子设备3、健康医疗用品:心跳带、血压计等4、定位应用:室内定位、地下定位等5、短-距离数据采集:无线抄表、无线遥测等6.数据传输:智能家居室内控制、蓝牙调光、打印机等BLE数据通信一个Gatt包含多个服务(Service);一个服务包含多个特征(Characteristic);一个特征包含多个描述符;反过来,也可以说一个描述符对应一个特征;一个特性对应一个服务;一个服务对应一个关贸总协定。Service、Characteristic、Descriptor,这三部分都使用UUID作为唯一标识。如上图所示,在我们之前使用的BLE调试宝软件中,可以看到图中前三个服务是BLE必备的三个基本服务:#defineGAP_SERVICE_UUID0x1800//GenericAccessProfile#defineGATT_SERVICE_UUID0x1801//GenericAttributeProfile#defineDEVINFO_SERV_UUID0x180A//DeviceInformation剩下的service一般来说就是与BLE模块进行数据通信的Service,Service中的Characteristic是手机与BLE终端进行数据交互的关键。所以我们上面的数据通信操作都是UnknownCharacteristic的数据通信。为什么要定义这么多名词?蓝牙连接成功后,数据传输就是读写,通知特征值(Characteristic)参数;为了方便管理,我们可能会有多个特征值,我们可以根据需要创建多个特征值,比如一个特征值用来记录环境湿度的值,一个特征值用来记录设备的温度值,还有很快。我们还可以对这些特征值进行分类,每个类别相当于一个服务(Service),一个设备可以有多个服务,每个服务可以包含多个特征值。为了方便解释,每个特征值都有它的属性,所以我们还会看到一些其他的名词,比如:权限(permission)、值(value)、描述(descriptor)等等。为了做下一篇网络文章,我们将在Android系统下使用Qt开发一个BLE调试软件,实现与蓝牙模块的数据收发。staticconstQLatin1StringserviceUuid("{00010203-0405-0607-0809-0a0b0c0d1910}");
