首页 > 其他分享 >【低功耗蓝牙BLE-2】Generic Access Profile(GAP)协议

【低功耗蓝牙BLE-2】Generic Access Profile(GAP)协议

时间:2023-11-12 22:45:15浏览次数:45  
标签:Profile 角色 Generic 低功耗 GAP Connection 外围设备 BLE 连接

原文链接: https://zhuanlan.zhihu.com/p/527434096?utm_id=0

 

GAP简介

通用访问配置文件(GAP)规定了设备在较低级别如何执行控制程序,如设备发现、连接、安全建立等,以确保互操作性,并允许来自不同供应商设备之间的通信。主要的操作有:

  • 发现并与配对
  • 广播数据
  • 建立安全连接

GAP以一种标准、普遍理解的方式定义了这些和其他基本操作。了解GAP很重要,因为大多数BLE实现都为希望使用此功能的应用程序提供了GAP API。

GAP

GAP层定义了:

  • 角色- roles
  • 操作模式&流程
  • 安全模式&流程

角色 - Roles

BLE设备可以同时在一个或多个通用访问配置文件(GAP)角色中运行(前提是链路层支持此功能):

  • Broadcaster
  • Observer
  • Peripheral
  • Central

角色施加限制并强制行为,因此通常在设备的设计阶段固定。

GAP定义了两对角色,允许设备之间相互通信。

Broadcaster/Observer

这一对角色实现单向、无连接的通信。

Broadcaster

  • 定期发送包含数据的广播包
  • 使用链路层的Advertiser角色

Observer

  • 扫描广播者,监听广播数据
  • 使用链路层的Scanner角色

网络拓扑

网络拓扑

Peripheral/Central

这对角色实现双向、面向连接的通信。

Peripheral

  • 链路层的slave角色
  • 用可连接的广播数据包进行广播
  • 优化以消耗最少的功耗和内存
    • 使用低成本设计

Central

  • 链路层master角色
  • 能够建立和管理连接
  • 可同时连接到各种设备

网络拓扑

网络拓扑

对于BLE连接中的数据传输操作,不同的角色由通用属性配置文件层(GATT)定义。

Modes & Procedures

发现和连接阶段都定义了模式/过程对。

GAP Modes

GAP Modes指外围设备可以在一定时间内切换到的一种状态,以便达到一定目的或者允许一个对等设备(peer)执行一些操作。

例如 -

Disacovery Modes:

  • Non-Discoverable
  • Limited-Discoverable
  • General-Discoverable

Connection Modes:

  • Non-Connectable
  • Directed-Connectable
  • Undirected-Connectable
请参阅第3卷“蓝牙规范4.2版”。,C部分,第9节

GAP Procedure(s)

中央设备为达到某一目标而采取的一系列行动,如:

  • Discovery of peers
  • Establishing a connection to a specific peer

例如 -

Discovery Procedures

  • Limited-Discovery
  • General-Discovery

Connection Procedures

  • General-Connection
  • Direct-Connection
请参阅第3卷“蓝牙规范4.2版”。,C部分,第9节

Discovery Modes and Applicable Procedures

这些问题涉及外围设备如何广播其存在,以及中央设备可以/应该如何处理这些信息。下表将几种外围设备“发现”模式与适用的中央“发现”程序相匹配:

discovery modes and procedures

General-Discoverable Mode

此状态表示外设希望由对等方发现以建立连接。它通过定期传输ADV_IND广播包来识别,表示外围设备的初始出厂默认状态。

所需外围设备配置

进入此模式(状态)前,需要在外设中设置以下BLE参数:

  • Advertising Packet Type (ADV_IND)
  • Advertising Interval
  • Advertising Packet Payload
    • Local Name
    • Service UUID
  • (Optional) Scan Response Payload
    • TX Power
    • Battery Level
    • Custom Data

最后,必须在外围设备上启动广播,以向其对等方发出进入此模式的信号。

Limited-Discoverable Mode

BLE链接层部分协助了该过程。在扫描期间,如果链路层检测到具有匹配MAC地址的ADV_DIRECT_ND数据包,它将通知应用层。附近的其他BLE无线电将忽略未发送给它们的ADV_DIRECT_IND数据包。

Connection Establishment Modes and Applicable Procedures

这些主要涉及中央设备如何选择与哪个外围设备交互。下表将几种外围连接模式与适用的中央连接程序相匹配:

connection modes and procedures

Undirected-Connectable Mode

如上所述,当在一般可发现模式下操作时,外围设备自动处于该“连接模式”。它正在发送ADV_IND数据包(杂乱无章),并查找与任何对等方的连接(“无方向”)。

General Connection Establishment Procedure

这通常是一个两步程序:

  1. 接受所有ADV_IND数据包,并过滤数据包有效负载中的数据,例如:
  • Local Name
  • Service UUID
  • Custom Data
  • etc.

2. 停止扫描,并使用直接连接建立过程(Direct Connection Establishment)连接到该设备:

  • Initiate a connection to a single device using its MAC address
    • Uses CONNECT_REQ Initiating PDU advertising packet
在直接连接建立过程中,中央链路层不知道外围设备是否可用或可连接。因此,如上文所述,它只能在收到广播包时触发。

安全性

关于GAP的安全性,大家感兴趣可以去参考BLE的spec,这里就不详细介绍了。

标签:Profile,角色,Generic,低功耗,GAP,Connection,外围设备,BLE,连接
From: https://www.cnblogs.com/FBsharl/p/17828053.html

相关文章

  • SUB-1G芯片---PAN3031低功耗远距离无线收发芯片
    PAN3031是一款采用ChirpIoTTM调制解调技术的低功耗远距离无线收发芯片,支持半双工无线通信,工作频段为370~590MHz和740~1180MHz,该芯片具有高抗干扰性、高灵敏度、低功耗和超远传输距离等特性。最高具有-129dBm的灵敏度,22dBm的最大输出功率,产生业界领先的链路预算,使其成为......
  • CC1101 一款低功耗sub- 1ghz收发器芯片 适用于无线遥控智能家居
    产品描述CC1101是一个低成本的sub-1ghz收发器,专为极低功耗的无线应用而设计。该电路主要用于工业、科学和医学)和SRD(ShortRangeDevice)频带,在315,433,868和915兆赫,但可以轻松可编程用于其他操作频率在300-348MHz、387-464MHz,以及779-928MHz频段。射频收发器集成了一......
  • Web Profile Builder for Web Application Projects
    WebProfileBuilderforWebApplicationProjectsFilescanbedownloadedfromtheWebProfileBuilderprojectpage.IfyouuseWebApplicationProjects,youhaveprobablyrunintotheissueofnotbeingabletoaccesstheProfileatdesigntime.Thankfully......
  • 集成电路(IC)MAX98050ENX、MAX22707AUB、MAX17543ATP、MAX40008ANT高效、低功耗器件产品
    1、MAX98050ENX音频编解码器是一款高性能、低功耗器件,集成了低延迟数字滤波器,用于无线耳戴式设备、头戴式设备和耳机。MAX98050具有一个单声道播放通道,带有一个5频段双四路均衡器和一个高效、全差分混合AB/D类耳机放大器。播放耳机放大器经过优化,可以实现最低输出噪声和静态功耗,同......
  • 配置“/etc/profile”重启失效
    1.打开默认目录下的bashrc文档:.bashrcbashrc文档一般在/home或者在/root下,我的就在root下面,进入root目录用指令ls-al可以看到 2.对应用户下“.bashrc”文件中(最好在底部)添加文字:source/etc/profile命令:vim.bashrc3.reboot重启,就可以看到你的profile中的配置生......
  • 今天就做一个小网站原型,要为自己写个profile页呀
     axurerp的使用里面,要活用母版,给母版添加事件省力创建 本地发布的文件在:https://files.cnblogs.com/files/hualiu0/profile_home.7z?t=1698802282&download=true......
  • My Profile
    AboutMeHi,I'mZhihaoLi.Thisisabriefintroductionaboutme.IamajuniorstudentatXidianUniversity,andmyfavoriteresearchdirectionisembeddedsystemsandartificialintelligence.Asanewblogger,Iamveryexcitedtosharewithyout......
  • 智能眼镜主板_AR眼镜光机2023高性能低功耗安卓方案
    AR智能眼镜是一项涉及广泛技术领域的创新产品,其中需要考虑光学、显示、功耗、散热、延迟、重量、佩戴人体工学等多个方面的因素,每个项目都是技术进步所需攻克的难题。今天我们主要来探讨AR眼镜的主板和光学方案设计。AR智能眼镜的主板方案设计采用了高性能主芯片联发科......
  • 如何制作一个超低功耗的高保真的数字降噪录音机
    一前记 您是否曾经想过购买一台小型录音机来录制环境中的声音并将其存储在内存中?其实这只需执行几个简单的步骤即可轻松制作自己的录音机。笔者最近交付了几个录音产品之后,就把余料来做一个高保真录音机来玩玩,顺便给做毕设的小老弟来练练手。 高录音机主打一个超低功耗和......
  • Android使用Profiler查看应用内存分析
    内存分析是Profiler中的一个组件,可以帮助我们识别可能会导致应用卡顿、冻结甚至崩溃的内存泄露和内存抖动。可以显示应用内存使用情况实时图表,帮助我们捕获堆转储、强制执行垃圾回收以及跟踪内存的分配情况。打开内存分析步骤:1、依次点击View→ToolWindow→Profiler2、从Profile......