CSR8675学习笔记:新建一个GATT server

本文详细介绍了如何在CSR8675上创建一个自定义的GATT server,包括理解GATT server的概念、创建服务描述、初始化服务、处理GATT消息以及在应用层的实现。通过该教程,开发者可以实现iOS APP与CSR8675之间的音量和EQ设置交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了让CSR867x的开发更容易,现与思度科技联合推出CSR867x学习板【淘宝链接:思度科技CSR开发板】

技术交流QQ群号:743434463
开发板会员QQ群号:725398389(凭订单号入群,赠PPT、项目源码、视频教程)
——————————正文分割线———————————–

#1. 引言
公司的新项目需要CSR8675支持iOS APP调节音量、设置EQ等功能。由于这些功能不属于任何已公开的蓝牙GATT服务,因此定制一个全新的GATT server成了必不可少的工作。

本文章介绍了GATT server的基本概念,并给出了用CSR8675创建GATT server的简单示例。

#2. 了解GATT server
网上有很多基本概念的介绍,本文不展开,推荐阅读如下链接:

有几个重点概念需要提一下,如下:
这里写图片描述
可以看到,应用程序处于最上层。往下一层是属性协议,再往下是逻辑链接控制访问协议,最后到达控制器。

CSR8675的server开发只涉及到应用层和属性协议,L2CAP和controller由固件完成,对二次开发人员是封闭的。

GATT可配置为如下两种角色:

  • Client: 命令、请求发起方
  • server: 命令、请求接收方

这里写图片描述
上图中,电脑为请求发起方,即为client,传感器为请求应答方,即为server。对我们的产品而言,手机即为client,音箱即为server。

相同的传感器硬件,启用不同的server,即可支持不同的功能。一般的server profile结构如下:
这里写图片描述
从图上可以看出,server profile结构有一些主要特征:

  • 一个server profile可包含多个server
  • server可以引用多个别的server
  • 每个server包含多个特征
  • 每个特征包含属性、值和描述信息

具体到产品,当用户需要在iOS APP上修改音箱的EQ设置时,手机和CSR8675之间有如下交互:

  • 手机通过LE L2CAP连接获取CSR8675所支持的服务列表
  • 从服务列表中找到手机和CSR8675事先约定好的服务
  • 找到服务中包含的EQ设置的特征值
  • 修改EQ设置
  • 修改成功后,CSR8675返回修改成功通知,否则返回修改失败

CSR8675能提供的服务类型分三种:

  • 蓝牙联盟组织已采用的服务。如DIS(设备信息服务)、BAS(电池服务)等。官方链接:GATT规格
  • 蓝牙成员专属的服务。这些规格由蓝牙成员自行制定,提供自定义的服务,有16位的UUID,需要向蓝牙联盟组织付费购买。官方链接:成员16位UUID
  • 自定义的服务。这些规格可以由任何人自行制定和实施,提供自定义的服务,有128位UUID,不需要付费购买。这种服务的优点是免费,缺点是可能碰巧与别人制定的服务有着相同的UUID,影响到双方产品的使用。

新建一个自定义的的服务,即是本文的目标。
#3. 新建一个server
在创建一个新的server之前,先来看一下CSR8675的GATT系统架构,如下:

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值