5

我希望将信息从我的 Android 设备发送到微控制器(例如 Arduino)。使用蓝牙经典,我只需向微控制器发送一个字节数组数据,并相应地处理字节数组。

我开始阅读有关低功耗蓝牙的内容,并且听到所有关于 GATT 配置文件的讨论。为什么要创建 GATT 配置文件?在从 Android 设备交换信息到微控制器的情况下,GATT 配置文件对我有什么作用?

提前致谢!

4

2 回答 2

7

GATT 配置文件是蓝牙中心和外围设备之间通信的一种方式。假设我有一个从传感器读取温度的应用程序。我目前的设置是让手机充当中心,传感器连接到蓝牙 LE 芯片作为外围设备。

所以我使用这个配置文件与蓝牙 LE 芯片通信。在芯片中的 GATT 配置文件声明中,我将定义一个服务和两个特性。两个特点是

  1. 传感器使能器
  2. 温度值

Sensor enabler 具有读写权限,而温度值只有读取权限。

因此,在您的应用程序中,每当您想读取温度值时,您首先将 0x01 写入使能器特性,然后从温度值中读取值。

为了识别特征和服务,蓝牙有 UUID 和句柄的概念。UUID 是全局唯一的,句柄在芯片中分配。

服务封装了可用的特征。因此,在您拥有的层次结构中,配置文件可以提供多种服务,而这些服务又可以具有多种特征。

在答案中解释一切都太过分了。你为什么不通过这里的基础知识?我发现这些文档非常有用。

于 2014-02-03T06:36:04.650 回答
2

低功耗蓝牙的整个概念是使用更少的功率在两个蓝牙设备之间进行传输。为了实现这一点,不能使用传统的蓝牙经典,即使数据传输没有完成,也要保持通道。因此,ATT/GATT 的概念不断发展,它提供了通过 BLE 链路在两个低功耗设备之间传输短数据包的规范。因此,当两个设备不通信时,将与停止一样好。为了实现 BLE 服务,必须使用这些 ATT/GATT 配置文件和协议。

GATT 提供了关于如何将一组属性(只不过是数据)组合成有意义的服务的规范。它通过定义自己的客户端-服务器机制来完成通过 ATT 进行数据传输和存储的常见操作。通过为您定义整个框架,它使开发人员的生活变得轻松,并且只需通过定制开发配置文件和应用程序来对这些特征和服务进行分组。

于 2014-02-04T12:01:20.337 回答