GAP(Generic Access Profile): Device roles and topologies(设备角色和拓扑)

101 阅读6分钟

蓝牙LE协议支持两种不同的通信方式:面向连接的通信和广播通信。

定义

面向连接的通信:设备之间存在专用连接,形成双向通信。
广播通信:设备无需先建立连接即可进行通信,通过向范围内的所有设备广播数据包。

设备角色

GAP 层为蓝牙 LE 网络中的节点定义了特定的设备角色。这些角色决定了一些重要方面,例如设备如何通告其存在,或者如何扫描和连接到其他节点。

广告和扫描是指蓝牙 LE 设备了解彼此的存在和连接可能性的过程。两个蓝牙 LE 设备要相互连接,其中一个设备需要广告其存在和连接意愿,而另一个设备将扫描此类设备。

定义

广告: 传输广告数据包的过程,要么只是为了广播数据,要么是为了被另一个设备发现。
扫描: 侦听广告数据包的过程。

中枢及周边

在上例中,宣告其存在并愿意连接的设备充当外围设备。而扫描广告的设备则是中央设备。如果中央设备扫描到外围设备的广告数据包,则中央设备可以选择通过向外围设备发送连接请求来发起连接。然后外围设备和中央设备就被认为已建立连接。

定义

中心:扫描并发起与外围设备的连接的设备角色。
外围设备:通告并接受来自中心设备的连接的设备角色。

中央设备可以同时向多个外围设备发送连接请求,并在该连接中充当主机的角色。外围设备还可以在建立连接后通过重新启动广播过程来接受来自其他中央设备的连接请求。

由于中央设备充当主机,因此它负责典型的主机职责,例如连接管理和大量数据处理。这意味着外围设备通常比中央设备耗电量更少。

资源受限且需要低功耗的物联网设备通常是蓝牙低功耗连接中的外围设备,而中央设备则是具有更大功率的手机之类的设备。

笔记

由于我们的设备最常见的用例是作为外围设备,因此我们将在本课程的练习中检查连接拓扑。

广播员和观察员

有时,设备只想广播信息,而不需要与另一台设备建立连接。在这种情况下,一种特殊的外围设备(称为广播器)可以发送广告数据包,但不会接收任何数据包或允许连接请求。广播的信息包含在广告数据包中。广播器的一个很好的例子是信标设备。它们只传输信息,而不需要连接到特定设备。在另一端,一种特殊的中央设备(称为观察者)会监听广告数据包,但不会发送连接请求来启动连接。

定义

广播器: 一种特殊的外围设备,它广播广告数据包,但不接受任何连接请求。
观察器: 一种特殊的中心设备,它监听广告数据包,但不发起连接。

为简单起见,除非另有说明,我们将在整个课程中坚持使用外围/中央设备角色。

网络拓扑

现在我们已经确定了蓝牙 LE 设备的不同角色,让我们看看如何在蓝牙 LE 可能的不同网络拓扑中使用设备角色。

广播拓扑

在广播拓扑中,数据传输无需设备建立连接即可进行。这是通过使用广告数据包将数据广播到范围内可接收数据包的任何设备来实现的。外围设备(更具体地说是广播器)会广播数据,而中央设备(更具体地说是观察器)则会扫描广告数据包并读取数据。

广播拓扑示例

这种类型的通信通常用于近距离信标、室内导航以及许多其他需要低功耗设备同时向多个设备传输少量数据的应用。

广播拓扑的优点是可以向多少设备广播,不受任何限制。广告包范围内的任何人都可以接收信息。这也比面向连接的通信更节能。但是,由于广告包中可用的数据有限,因此吞吐量有限。接收设备也没有确认。

连通拓扑

连接网络拓扑在数据传输之前建立连接。与广播拓扑不同,通信现在是双向的。

笔记

虽然蓝牙 LE 规范在技术上并不限制可能的连接数量,但使用小型嵌入式设备会带来带宽和硬件限制。

下面是一个连接拓扑的示例,其中一个中心已与三个外围设备建立了通信,并且其中一个外围设备已经连接到另外两个中心。

连接拓扑的示例

连接拓扑的优点是,在通信之前建立直接链接可以提高吞吐量。此外,通信是双向的,这意味着中央设备和外围设备可以相互通信,而不是广播,在广播中,外围设备只会向中央设备广播,而无法接收任何回复。

更多内容

随着蓝牙 5.4 中引入周期性广告和响应 (PAwR),无连接模式下的双向通信成为可能。但这超出了本课程的范围

多角色拓扑

单个设备还可以同时充当多个不同的角色。例如,同一设备可以在一种设置中充当外围设备,而在另一种设置中充当中央设备。

多角色拓扑示例

这种多角色功能通常用于这样的系统中:一个设备(我们称之为集线器)正在从多个传感器接收传感器数据,但也希望将这些数据转发到手机。在这种情况下,集线器可以充当中央设备并连接到多个传感器(外围设备),也可以充当外围设备并将传感器数据传输到一个或多个智能手机(中央设备)。

多角色拓扑的示例用例