【浓缩版】蓝牙开发概览

* 2020年市场调研,Nordiac芯片市场占有率40%,甩开第二名2~3倍

基本概念

参考B站视频: 蓝牙低功耗设备,蓝牙协议讲解,有修改

Profile

    蓝牙设备可以分成很多类。对于不同的类型,其通信交互内容有其特殊性(特征)。

    一个profile,就是对一种特殊性进行描述的方式。

    一种设备可以支持一种或多种profile,也就是说,可以同时具备多种特殊性。

    这样可以使得蓝牙既能在底层使用统一的通信标准,又能在上层确保不同设备之间的兼容性和功能实现。

具体例子

- 蓝牙耳机:支持 HFP(通话功能)和 A2DP(音频播放功能)。

- 蓝牙音箱:支持 A2DP(音频播放功能)。

- 蓝牙键盘:支持 HID(人机接口设备功能)。

- 智能手表:支持 GATT(通用属性配置文件),用于健康监测等功能。

Profile对应第1级特征

Service对应第2级特征

    e.g.心率监测服务(Heart Rate Service)包含心率测量特征(Heart Rate Measurement Characteristic)

Characteristic对应第3级特征

    e.g. 心率测量特征包含心率值(如 75 bpm)

Descriptors描述第3级特征的备注信息

    e.g.心率测量特征的描述符可能包含心率的单位(如 bpm)。

Attribute, 最小数据单元
定义:GATT 协议中的最小数据单元,所有内容最终都以 Attribute 形式存储。
结构:每个 Attribute 是一个键值对,包含:
  • Handle(唯一地址,用于引用)。
  • UUID(标识类型,比如 0x2A37 表示心率测量值)。
  • Value(实际数据或元数据)。
  • Permissions(读写权限等)。
关键角色:
  • Service 和 Characteristic 本身也是通过 Attribute 定义的!例如:
  • Service 由 “Primary Service” Attribute 声明。
  • Characteristic 由 “Characteristic Declaration” Attribute 声明。

中央-外围设备(Central / Peripheral;Master / Slave:蓝牙语境中,用来描述设备之间,连接的主被动的关系

注意,Central / Peripheral这个术语反直觉!因为一般看到Central这个形容空间的词,容易联想到拓扑图。而蓝牙里的中央设备完全可以在拓扑图中的外围!

中央设备:能scan所有的外围设备。谁发起扫描,谁就是中央设备。

服务端-客户端(Server / Client
蓝牙讲通信协议细节的语境中,用来 描述设备在数据交换中的关系Server提供数据,Client访问数据。
注意,这个术语反直觉!因为一般看到Server这个词,容易联想到台式机。而蓝牙中的台式机和手环,都既能做Server也能做Client!
对于上述的名词的记忆卡片
握手方 = Central / Master  
被握手方 = Peripheral / Slave  
数据仓库 = Server  
数据消费者 = Client

GATT协议(Generic Attribute Profile):用于定义  BLE 设备如何组织主从关系,通信编码和数据传输的一个基础设施型的profile. 

做蓝牙应用,要实现的业务流程有些啥?

外围设备发数据的经典流程:
1.初始化蓝牙
2.add service
  然后写数据:特征值(Characteristic)+描述符(Descriptors)
3.发送广播

蓝牙的业务逻辑,常见的封装方式:
*发现蓝牙设备
*扫描
*配对
*获取本地的信息
*数据的发送和获取

做蓝牙设备,实现通信兼容,需要注意些啥?

蓝牙应用程序开发核心
所谓开发蓝牙应用程序,其实就是开发service 和characteristic
- 实现方式:利用API添加所需的Service和Characteristic,构建蓝牙设备。只要符合GATT规范,设备就能与手机等其他蓝牙设备互联互通。
蓝牙设备分类
分为profile/非profile两种
蓝牙 ATT命令, 正式称谓 ATT PDU(Protocol Data Unit,协议数据交互单元) 是 蓝牙低功耗(BLE)的数据交互协议——专门负责在客户端和服务器之间读、写、发现 那些被称为 Attribute 的小数据块(服务、特征、描述符等)。

ATT命令有下面这几种

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值