【朝花夕拾】蓝牙&WiFi常识篇
一、蓝牙常识点
1、常见英文缩写
| 缩写 | 英文全称 | 释义 |
| BLE | Bluetooth Low Energy |
低功耗蓝牙 |
| BR | Basic Rate |
基本速率,一般说的经典蓝牙就是指BR/EDR |
| EDR | Enhanced Data Rate |
增强速率,BR的增强版,一般说的经典蓝牙就是指BR/EDR |
| Bluetooth SIG | Bluetooth Special Interest Group |
蓝牙技术联盟 |
| HCI | Host Controller Interface |
主机控制器接口 |
| GATT | Generic Attribute Profile |
通用属性配置文件 |
| GAP | Generic Access Profile |
通用访问配置文件 |
| HFP | Hands-free Profile |
蓝牙电话配置文件 |
| A2DP | Advanced Audio Distribution Profile |
高级音频分发协议 |
| PBAP | Phone Book Access Profile |
手机电话本访问协议 |
| MAP | Message Access Profile |
短信访问协议 |
2、经典蓝牙
经典蓝牙包含了蓝牙的3个大的阶段:BR、EDR、BT3.0,当说到这3个名词的时候,实际上就是在说经典蓝牙。
BR:蓝牙BR是蓝牙技术的第一个开发版本,在2.4GHz ISM频段内进行数据传输。特点:低成本、低功耗,但数据传输速度相对较慢。
EDR:蓝牙EDR是蓝牙BR的增强版本。特点:数据传输速度比蓝牙BR快两到三倍。
3、BLE
BLE出现在蓝牙4.0。
(1)BLE协议栈
常见的协议栈有德州仪器 TI 的 ble-stack 和 Nordic 的 SoftDevice:

TI的CC26系列芯片协议栈结构图

Nordic的nRF52系列芯片的协议栈结构图
- 协议栈结构包含三个部分:Application、Host、Controller。
- HCI:Host Controller Interface,主机控制器接口,位于Host和Controller层中间,在分析蓝牙通信时经常需要分析HCI日志。
(2)信道
BLE一共有40个信道,频段范围从2402~2480MHZ,其中37、38、39是蓝牙广播信道,剩余的37个是数据信道,37(2402MHZ)、38(2426MHZ)、39(2480MHZ)并不是相邻的信道,这样做是为了避免广播扫描中相邻信道相互干扰。
信道及对应频率:

(3)GATT
Client:客户端可以发送请求给GATT服务端,客户端可以读(Read)/写(Write)服务端的属性(Attributes ),通过属性可以通信数据。
Server:服务端是用来存储属性(Attributes )的,每当客户端发送请求时,服务端会相应这些请求。
- 一个示例如下:手环采集了心跳信息,希望计算机读取该信息。手环充当服务端并提供信息。手机充当客户端,读取该信息。
- 在一般的主从机通信时,主机可以通过读写从机的属性,实现接收和发送数据给从机,从机可以通过发送通知的方式实现与主机的通信。因此,一般从机是作为GATT的服务端,主机作为GATT的客户端。
(4)BLE角色
- 主机(Master/Central):主机可以发起对从机的扫描连接。例如手机,通常作为BLE的主机设备从机 (Peripheral)。
- 从机(Peripheral):从机只能广播并等待主机的连接。例如智能手环,是作为BLE的从机设备。
蓝牙协议栈没有限制设备的角色范围,同一个BLE设备,可以作为主机,也可以作为从机,我们称之为主从一体,主从一体的好处是,每个BLE设备都是对等的,可以发起连接,也可以被别人连接,更加实用。
(5)BLE工作流程
- 1)广播:广播是指从机每经过一个时间间隔发送一次广播数据包,这个时间间隔称为广播间隔,这个广播动作叫做广播事件,只有当从机处于广播状态时,主机才能发现该从机。
2)扫描:扫描是主机监听从机广播数据包和发送扫描请求的过程,主机通过扫描,可以获取到从机的广播包以及扫描回应数据包,主机可以对已扫描到的从机设备发起连接请求,从而连接从机设备并通信。
3)连接
- 4)通信(Profile配置文件):
- 一般将从机具有的数据或者属性特征称之为Profile
- 从机中添加Profile配置文件(定义和存储Profile),作为GATT的Server端;主机作为GATT的Client端。
- Profile包含一个或者多个Service,每个Service又包含一个或者多个Characteristic(特征值)。主机可以发现和获取从机的Service和Characteristic,然后与之通信。Characteristic是主从通信的最小单元。每个Characteristic都有自己的 Property(属性),属性的取值有:可读 Read,可写 Write 以及Notify(通知)。通知表示从机可以主动向主机发送通知数据,这便是主从机之间两个典型的通信方式。

- 主机可主动向从机Write写入或Read读取数据,从机可主动向主机Notify通知数据

5)断开
4、蓝牙单模与双模
单模蓝牙:即只支持BLE的蓝牙设备
双模蓝牙:既支持BLE也兼容经典蓝牙的设备
(1)BLE
- 特点:低功耗,快连接,小数据,传速慢(最高为1 Mbps),通信范围短。
- 使用设备:遥控、钥匙、键盘、手环、心率计等小数据行业设备。
- 特点:大数据,高速率(最高可达2-3 Mbps),通信范围广(可达100米)。
- 使用设备:汽车、音响、耳机等需要传输音视频数据的设备。
(2)经典蓝牙
(3)经典蓝牙与BLE的对比:

5、常见的Profile
(1)PBAP:手机电话本访问协议,可以同步手机这些具有电话本功能设备上的通讯录和通话记录等信息。
4种信息来源:
- 手机中的通讯录
- 手机中的通话记录
- SIM卡中的通讯录
- SIM卡中的通话记录
2种角色:
- PSE:Phone Book Server Equipment,拥有电话本源数据的设备,作为服务端,如手机
- PCE:Phone Book Client Equipment,向PSE端请求电话本信息的设备,作为客户端,比如车载蓝牙
(2)A2DP:高级音频分配协议。传输于蓝牙ACL链路上的高质量音频,即为蓝牙音乐的媒体音频。平常使用的蓝牙耳机、蓝牙音响播放出来的音乐就是走的A2DP协议。
两种角色:
- SRC:Source,数字音频流的源,负责将源数据发送到SNK端。
- SNK:Sink,数字音频流的接收器,负责接收SRC发过来的源数据。
示例:蓝牙耳机连接手机蓝牙听音乐,那蓝牙耳机就是SNK,手机蓝牙就是SRC。
(3)HFP:蓝牙耳机连接手机蓝牙听音乐,那蓝牙耳机就是SNK,手机蓝牙就是SRC。
定义了两种角色:
- AG:Audio Gateway,音频网关。其作用是用于输入和输出,典型设备是手机。
- HF:Hands-Free unit,免提设备。作为音频网关的远程音频输入和输出机制的设备,同时还具有远程控制AG端的能力。
示例:蓝牙耳机/车载蓝牙连接手机进行通话,此时蓝牙耳机/车载蓝牙就是HF,手机端就是AG。
二、WiFi常识点
1、WiFi
Wireless Fidelity,意为无线保真,它与蓝牙技术类似,属于短距离的无线技术,使用的是2.4GHz附近的频段
2、AP/STA(热点)
(1)常见缩写及含义
| 缩写 | 英文全称 | 释义 |
|
AP |
Access Point |
无线接入点,即平时所说的热点 |
|
STA |
Station |
任何一个接入无线AP的设备都可以称为一个站点 |
|
SSID |
Service Set Identifier |
AP的服务集标识符,即我们常说的WiFi名称 |
|
RSSI |
Received Signal Strength Indication |
接收的站点的信号强度指示 |
|
BSSID |
Basic Service Set Identifier |
基本服务集标识符,即设备的MAC地址 |
|
ESSID |
Extended Service Set Identifier |
含义同SSID,就是AP/路由器名称。如果多个AP/路由器都叫同一个名字,就称为ESSID |
(2)角色
AP:无线接入点,是一个无线网络的创建者,是网络的中心节点,比如无线路由器就是一个AP。
STA:站点,每一个连接到无线网络中的终端都称为一个站点,比如连接到无线路由器的智能手机、电脑等。
在一个局域网中,有些设备只做AP,有些只做STA,有些既充当AP又充当STA
(3)双频
2.4G:2.4GHz频段的工作范围覆盖2.4-2.4835GHz,共划分了13个信道,每个信道频宽为20MHz。特点:频率低、波长长、穿透力强、传播距离远。由于其普及度高,应用广泛,2.4GHz频段在拥挤的无线环境中容易受到其他同频设备的干扰,如家用蓝牙设备、ZigBee协议的智能家居产品等,从而影响网络速度和稳定性。
5G:5GHz频段的工作范围覆盖5.170-5.850GHz,同样划分了13个信道,但其中部分信道(如38、46、151、159)频宽为40MHz,其余为20MHz。特点:相较于2.4GHz频段,5GHz频段频率更高、波长更短(约0.052m),在无线传输上具有显著优势。其频带宽,能够处理更大的数据量,数据传输速度快,信号稳定性强,不易受到外界干扰。然而,5GHz频段的穿透能力较弱,信号在穿越障碍物时衰减较大,覆盖范围相对较小。
根据公式v=hλ,v(电磁波传播速度)是定值,h(频率)越大,λ(波长)就越小。λ越大跨越障碍物的能力就越强,反之就越弱,所以在两者对比时,可以通过这个公式来做参考。
3、WLAN直连
(1)称呼:平时也称为WiFi直连、WiFi Direct、WiFi P2P(Peer-To-Peer)、WLAN Direct
(2)定义:WLAN 直连,最初称为Wi-Fi P2P(Peer-To-Peer),是Wi-Fi协议簇中的一个,使设备之间能够以点对点的方式轻松连接,而不再需要像点对端那样有一个中介性质的无线接入点(Access Point,如路由器等)。
(3)使用场景:其使用范围从网页浏览到文件传输,以及同时与多个设备进行通信,能够充分发挥Wi-Fi的速度优势。文件传输需要借助第三方软件来实现,如没有第三方软件会出现可以连接配对成功,但没有传输界面的情况。
(4)传输性能:在传输速度与传输距离方面比蓝牙有大幅度提升,最大传输距离可达 200 米,最大传输速度为250Mbps(近乎是蓝牙的100倍),使用2.4GHz与5GHz频段。它支持一对一,以及一对多模式。
(5)P2P架构(角色):
P2P Device:它是P2P架构中角色的实体,读者可把它当做一个Wi-Fi设备。在组建P2P Group(即P2P Network)之前,智能终端都是一个一个的P2P Device。
P2P Group Owner(GO):P2P网络建立时会产生一个Group,GO可以理解为服务端。一个Group中有且只有一个Device扮演GO角色,而其他Device来扮演GC的角色。一个GO可以支持1个或多个(即图中的1:n)GC连接。举例:建立连接传输文件的双方,发送方为GO,接收方为GC。
P2P Group Client(GC):GC可以理解为Group中的客户端。举例:建立连接传输文件的双方,发送方为GO,接收方为GC。
Legacy Client:由于GO的功能类似于AP,所以周围那些不支持P2P功能的WIFI STA也能发现并关联到GO。这些WIFI STA被称之为Legacy Clients。

P2P Group示意图:
(6)WLAN直连与热点共存问题
技术层面:从技术角度来看,WLAN直连和热点都使用Wi-Fi技术,但它们工作的模式和目的不同。因此,在理论上,它们可以在同一设备上共存。
设备实现:然而,是否能在同一设备上同时启用Wi-Fi Direct和热点,还取决于设备的硬件(比如芯片)和软件实现。一些设备可能支持这种共存,而另一些则可能不支持。
操作系统版本:Android操作系统的不同版本可能对这两种功能的支持有所不同。因此,设备的操作系统版本也可能影响Wi-Fi Direct和热点的共存能力。
【朝花夕拾】蓝牙&WiFi常识篇的更多相关文章
- 【朝花夕拾】Android性能篇之(六)Android进程管理机制
前言 Android系统与其他操作系统有个很不一样的地方,就是其他操作系统尽可能移除不再活动的进程,从而尽可能保证多的内存空间,而Android系统却是反其道而行之,尽可能保留进程.An ...
- 安卓布局修改基础常识篇之TextView属性
[天使]安卓布局修改基础常识篇之TextView属性 在修改布局xml文件时需要熟练掌握一些属性,以下是TextView也就是文本的属性:android:autoLink 是否自动链接网址或邮箱地址: ...
- 【朝花夕拾】Android性能篇之(五)Android虚拟机
前言 Android虚拟机的使用,使得android应用和Linux内核分离,这样做使得android系统更稳定可靠,比如程序中即使包含恶意代码,也不会直接影响系统文件:也提高了跨平台兼容性.在And ...
- 【朝花夕拾】Android性能篇之(一)序言及JVM
序言 笔者从事Anroid开发有些年头了,深知掌握Anroid性能优化方面的知识的必要性,这是一个程序员必须修炼的内功.在面试中,它是面试官的挚爱,在工作中,它是代码质量的拦路虎,其重要 ...
- 【朝花夕拾】Android性能篇之(三)Java内存回收
在上一篇日志([朝花夕拾]Android性能篇之(二)Java内存分配)中有讲到,JVM内存由程序计数器.虚拟机栈.本地方法栈.GC堆,方法区五个部分组成.其中GC堆是一块多线程的共享区域,它存在的作 ...
- 【朝花夕拾】Android性能篇之(七)Android跨进程通信篇
前言 只要是面试高级工程师岗位,Android跨进程通信就是最受面试官青睐的知识点之一.Android系统的运行由大量相互独立的进程相互协助来完成的,所以Android进程间通信问题,是做好Andro ...
- [iOS笔试600题]二、常识篇(共有72题)
[B]1.NSObject是一个根类,几乎所有的类都是从它派生而来.但是根类并不拥有真它类都有的alloc和init方法?[判断题] A. 正确 B. 错误 [A]2. UIResponder可以让继 ...
- 1-STM32物联网开发WIFI+GPRS(Wi-Fi入门篇)_简介
这期的教程为公开教程将用这块开发板学习WIFI(SDK) 实现哪些功能呢!无非就是那写网络功能...但是涉及的挺多 最近一直在忙方案篇的内容,所以公开版的例程耽误了,现在开始补上 我准备改变一下提供资 ...
- ESP32-DOWDQ6蓝牙&Wifi 两个可单独控制的 CPU 内核
乐鑫(Espressif Systems)研发设计IoT业内集成度最高.性能最稳定.功耗最低的无线系统级芯片. ESP32-D0WDQ6集成无线2.4 GHz Wi-Fi和蓝牙双模的单芯片方案,具有两 ...
- NB-IoT/LoRa/eMTC和蓝牙/WiFi的关系是互补还是替代?
近年来,相继出现了许多物联网技术.WiFi.蓝牙.NB-IoT.LoRa.eMTC和其他技术为IoT实践提供了一流的技术支持通讯端口.拥有这么多技术,能够互相替代吗?还是能起到互补的作用?为低功耗广域 ...
随机推荐
- CSS – 管理
前言 CSS 有好几种写法. 它们最终出来的效果是一样的, 区别只是在你如何 "写" 和 "读" 或者说开发和维护. 这已经不是如何"实现" ...
- JavaScript – Symbol
前言 Symbol 是 es6 的特性. 如果只是写业务逻辑代码, 其实是不太会用到的. 如果是做架构, 封装, UI 组件才有需要. 但学它的概念是好的. es6 有需要内置的 Symbol 链接者 ...
- 大模型应用开发初探 : 通用函数调用Planner
大家好,我是Edison. 上一篇,我们了解了什么是AI Agent以及如何用Semantic Kernel手搓一个AI Agent.有朋友留言说,自动函数调用对大模型有较高的要求,比如Azure O ...
- 《Vue.js 设计与实现》读书笔记 - 第10章、双端 Diff 算法
第10章.双端 Diff 算法 10.1 双端比较的原理 上一章的移动算法并不是最优的,比如我们把 ABC 移动为 CAB,如下 A C B --> A C B 按照上一章的算法,我们遍历新的数 ...
- form data 与request payload的区别以及php接收这些数据的方法
form data 与request payload的区别以及php接收这些数据的方法 以前与前端交互一直都是POST.GET的,PHP端就直接$_POST,$_GET来接收,从来没有出现过以外. 最 ...
- Serilog文档翻译系列(七) - 应用设置、调试和诊断、开发接收器
01.应用设置 Serilog 支持在 App.config 和 Web.config 文件中使用简单的 配置语法,以设置最低日志级别.为事件添加额外属性以及控制日志输出. Serilog 主要通过代 ...
- 使用nnUNet跑BraTS脑肿瘤分割预测TC和ET非常低的原因。
使用nnUNet跑BraTS脑肿瘤分割预测TC和ET非常低,原来是预测的时候,使用了预处理后的标签.原本标签是:2:WT, 1:TC, 4:ET.但是预处理之后变为:1:WT, 2:TC, 3:ET. ...
- Android复习(四)权限—>概览
权限概述 许可 的目的是保护Android用户的隐私.Android应用必须获得访问敏感用户数据(例如联系人和SMS)以及某些系统功能(例如相机和互联网)的权限.根据功能的不同,系统可能会自动授予权限 ...
- MP4 转 TXT 项目与 M3U8 下载脚本
项目背景 在当今信息社会,视频学习已成为一种重要的知识获取方式.然而,许多用户在观看视频的过程中,效率往往低于预期.为了提升学习效率,我们决定开发一个将 MP4 视频转换为 TXT 文稿的项目.此外, ...
- .NET使用Graphql的演示
Graphql是什么?先来一段AI给的回答: GraphQL是一种为API设计的查询语言,与REST相比,它提供了更高效.强大和灵活的方法来与数据交互.GraphQL由Facebook于2012年开发 ...