GATT配置文件和UART服务

12

我是第一次使用蓝牙连接外围设备来开发移动应用程序。我查找了相关资料,了解到GATT是用于蓝牙低功耗通信的相关配置文件,但我们的客户建议我们使用UART服务。现在我很困惑,不知道这两者之间有什么关系,是否需要选择其中一个,如果需要,每个选项的优缺点是什么。谢谢。

1个回答

16

传统的蓝牙提供串行端口协议(SPP) - 这本质上是通过蓝牙的串行输入/输出流。

蓝牙低功耗提供了许多配置文件,但最常用的是GATT。 GATT公开了类似变量的特征/属性,可以从中读取/写入数据。 读/写操作限制为20个字节。

许多嵌入式BLE芯片组提供了在BLE GATT上的“UART仿真”。这里使用一对属性; 一个用于读取,另一个用于写入。

中央设备将字节写入'写'属性,嵌入芯片将它们发送到芯片上的串行端口。

类似地,写入芯片的串行端口的数据并通过'read'属性中的新数据通知发送给中央。

您没有说明您正在开发哪个平台,但一个重要的考虑因素是,在iOS上使用SPP需要您的硬件经过苹果的MFi认证,而BLE / GATT则不需要。


所以,我不使用传统蓝牙而是使用低功耗蓝牙,那么我就不用担心串口协议(SPP)了,对吧?BLE / GATT 应该可以吧?我必须为 Android 和 iOS 两个平台进行开发。此外,由于 UART 提供仿真功能,因此我不必担心 GATT 上 20 字节的限制问题,UART 会处理这个问题,对吧? - Samra
你主要需要关注在你的iOS/安卓端;如果你有超过20个字节要发送,你需要将它分成多个传输。 - Paulw11
@Paulw11 UART感觉有点像捷径,因为你太懒了,不想为每个数据点声明自定义服务/特征 - 这是正确的吗?还是把所有东西都推到一个读取和一个写入线路上就可以了? - Philipp Kyeck
这取决于您的硬件能力。一些嵌入式硬件提供定义自定义特性的功能,而另一些则不提供。模拟串口的硬件易于接口,并且您可以使用“打印”语句编写数据。缺点是您必须对数据进行某种格式编码,以便能够理解它。 - Paulw11

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接