杰理蓝牙用户手册
杰理蓝牙功能用户手册
随着杰理的不断研发,蓝牙芯片的型号和带蓝牙功能的SDK系列越来越多,为了方便客户能快速学习杰理的蓝牙,建立一个汇总性的文档,每个人可以根据自己的需要从目录查找相关的部分进行阅读。
Rev 1.0——2021年12月1 日
This translated version is for reference only, and the English version shall prevail incase ofany discrepancy between the translated and English versions.
版权所有 2021杰理科技有限公司未经许可,禁止转载
目录
C hapter 1 杰理蓝牙功能介绍.....................................................................................................................8
- 1编写目的..............................................................................................................................................8
1.2 经典蓝牙功能.................................................................................................................................... 8
1.2.1 已实现经典蓝牙协议.............................................................................................................. 8
1.2. 2基础功能.................................................................................................................................. 8
1.2.3 TWS功能..................................................................................................................................9
1.2.4 一拖二功能............................................................................................................................. 9
1.2.5 发射器/D。ngle ........................................................................................................................ 9
1.3 BLE蓝牙功能.......................................................................................................................................9
1.3.1 已实现ble协议...................................................................................................................... 9
1.3.2 支持功能............................................................................................................................... 10
1.3.3 定制协议功能....................................................................................................................... 10
1.4 MESH ..................................................................................................................................................10
1.4.1 基础功能............................................................................................................................... 10
1.4.2 具体应用............................................................................................................................... 11
1.5 第三方协议...................................................................................................................................... 11
1.6 数传功能.......................................................................................................................................... 11
1.7 蓝牙测试盒...................................................................................................................................... 12
1.8 蓝牙认证.......................................................................................................................................... 12
1.9 OTA ..................................................................................................................................................... 12
Chapter2 蓝牙功能通用接口说明............................................................................................................. 13 - 1编写目的........................................................................................................................................... 13
- 2一些常用头文件说明....................................................................................................................... 13
2.3 电话控制........................................................................................................................................... 13
2.4音乐控制........................................................................................................................................... 14
2.5 蓝牙wifi相互干扰.......................................................................................................................... 15
2.5.1 wifi干扰蓝牙...................................................................................................................... 15
2.5.2 蓝牙干扰wifi ...................................................................................................................... 15
2.5.3 蓝牙干扰蓝牙..................................................................................................................... 16
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 2of85
C hapter 3 耳机类SDK蓝牙使用指导.....................................................................................................17 - 1编写目的........................................................................................................................................... 17
3.2 TWS功能使用说明........................................................................................................................... 17
3.2.1 TWS 的开关......................................................................................................................... 17
3.2.2 TWS配对方式选择.............................................................................................................17
3.2.3 TWS消息同步..................................................................................................................... 19
3.2.4 TWS互发数据接口.............................................................................................................21
3.3 TWS+透传流程说明..........................................................................................................................22
3.3.1 文件目录说明..................................................................................................................... 22
3.3.2 适配接口说明..................................................................................................................... 22
3.3.3 函数接口介绍..................................................................................................................... 23
Chapter4 音箱/手表类SDK蓝牙使用指导............................................................................................... 24 - 1编写目的........................................................................................................................................... 24
- 2蓝牙模式相关配置........................................................................................................................... 24
4.2.1 基本配置............................................................................................................................... 24
4.2.2 配置工具配置....................................................................................................................... 25
4.2.3 对箱配置............................................................................................................................... 26
4.2.4 几个主要文件说明............................................................................................................... 27
4.3 TWS音箱连接说明...........................................................................................................................28
4.3.1 tws配对..................................................................................................................................28
4.3.2 tws被搜索连接、tws 回连...................................................................................................29
4.3.3 相关接口API .........................................................................................................................30
4.4 SPP+BLE数传说明............................................................................................................................ 32
参考第Chapter5 数传类SDK蓝牙使用指导............................................................................32
4.5 手表的蓝牙应用说明...................................................................................................................... 32
4.5. 1本地音乐播放........................................................................................................................ 32
4.5.2蓝牙bredr 函数接口介绍.....................................................................................................36
4.5.3蓝牙bredr功耗优化介绍.....................................................................................................38
4.6 讯飞meshpr。visi。ner使用说明....................................................................................................41
4.6.1 SDK配置.................................................................................................................................42
4.6.2 开发板引脚说明...................................................................................................................43
4.6.3 按键说明............................................................................................................................... 43
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
4.6.4 使用实例............................................................................................................................... 43
4.7 蓝牙发射器接口设计说明..............................................................................................................44
4.7.1 功能概述............................................................................................................................... 44
4.7.2 其他系统/模块的调用关系..................................................................................................44
4.7.3 接口模块功能介绍...............................................................................................................44
4.7.4 接口介绍............................................................................................................................... 45
4.7.5 AG功能................................................................................................................................47
Chapter5 数传类SDK蓝牙使用指导.........................................................................................................49 - 1编写目的........................................................................................................................................... 49
5.2 APP数传功能开发............................................................................................................................49
5.2.1 文件目录说明..................................................................................................................... 49
5.2.2 功能开关............................................................................................................................. 49
5.2.3 SPP数据通信...................................................................................................................... 49
5.2.4 BLE数据通信.......................................................................................................................51
Chapter6 APP类功能开发指导..................................................................................................................55 - 1编写目的........................................................................................................................................... 55
6.2 杰理之家APP ...................................................................................................................................55
6.2.1 APP介绍..............................................................................................................................55
6.2.2 文件目录说明..................................................................................................................... 55
6.2.3 功能开关、配置................................................................................................................. 56
6.2.4 命令、数据API介绍......................................................................................................... 57
6.2.5 功能配置存储和读取......................................................................................................... 59
6.2.6 TWS 数据传输..................................................................................................................... 60
6.2 涂鸦平台.......................................................................................................................................... 61
需要了解详细信息的请打开《涂鸦协议开发说明.pdf》 阅读.................................................61
6.3 腾讯连连平台.................................................................................................................................. 61
需要了解详细信息的请打开《腾讯连连开发说明.pdf》 阅读.................................................61
6.4 DMA, MMA,GMA,TME协议...............................................................................................................61
需要了解详细信息的请打开《杰理第三方APP通信协议设计说明文档v0.0.1.pdf》 阅读61
6.5 G。。gle Fast PairService .....................................................................................................................61
需要了解详细信息的请打开《GFPS开发说明.pdf》 阅读........................................................61
Chapter7 蓝牙OTA ........................................................................................................................................ 62
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved. - 1编写目的........................................................................................................................................... 62
7.2 修改说明.......................................................................................................................................... 62
Chapter8 功能定制........................................................................................................................................64 - 1编写目的........................................................................................................................................... 64
8.2 Pr。file添加........................................................................................................................................64
8.2. 1代码实现点描述.................................................................................................................... 64
8.3 标准的 H I D设备.............................................................................................................................. 66
8.3.1 H I D SDK 使用简要概述.........................................................................................................67
8.3.2 EDR H I D ...................................................................................................................................67
8.3.2 BLE H I D ....................................................................................................................................68
8.4 蓝牙名字自增功能.......................................................................................................................... 69
8.4.1 功能概况............................................................................................................................... 69
8.4.2 固件程序修改....................................................................................................................... 69
8.4.3烧写工具设置........................................................................................................................ 70
8.5 蓝牙AT协议.................................................................................................................................... 72
Chapter9 蓝牙认证说明................................................................................................................................75 - 1编写目的........................................................................................................................................... 75
9.2 蓝牙bredr性能信令测试............................................................................................................... 75
9.2. 1代码配置................................................................................................................................ 75
9.2. 2性能测试注意........................................................................................................................ 76
9.3 蓝牙bredr性能非信令测试........................................................................................................... 76
9.3. 1代码配置................................................................................................................................ 77
9.4 蓝牙bq b测试..................................................................................................................................78
9.4. 1代码配置................................................................................................................................ 79
9.4. 2硬件环境................................................................................................................................ 79
9.5 蓝牙fcc测试....................................................................................................................................80
9.5. 1代码配置................................................................................................................................ 80
9.5. 2代码配置................................................................................................................................ 80
9.5.3 FCC_ assist工具使用介绍...................................................................................................... 81
9.5.4 FCC认证测试设置................................................................................................................. 82
9.6 蓝牙认证问题调试.......................................................................................................................... 83
9.6. 1整改介绍................................................................................................................................ 84
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 6of85
修改日志
![]() 版本 | ![]() 日期 | 描述 | |
|---|---|---|---|
| 1.0 | 2021 / 12 / 1 | 建立统一文档, | 为同事和用户提供参考 |
| 更新: | ● 建立初始版本 ● 定义文档格 |
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 7of85
Chapter 1 杰理蓝牙功能介绍
1. 1编写目的
随着杰理蓝牙音频产品的不断研发,蓝牙芯片的型号和带蓝牙功能的SDK系列越来越多,为了方便用户快速了解杰理蓝牙已实现的功能和协议,建立此文档,用户可以从此文档快速了解杰理蓝牙已经实现的功能,按需选择。至于需要定制蓝牙功能的也可以与我们杰理联系。
1.2 经典蓝牙功能
1.2.1 已实现经典蓝牙协议
- AVRCP CT协议版本1.6.2
- AVRCP TA协议版本1.5
- AVDTP 协议版本1.3
- A2 DP协议版本1.3.2
- HFP协议版本1.8
- RFCOMM 协议版本1.1
- SPP 协议版本1.2
- HID协议版本1.0
- PBAP协议版本1. 2-PCE
- IAP(可协助客户做MFI认证)
1.2.2基础功能
1. 音频相关
a) 协议支持SBC(必须支持)
[i. channel_mode](i. channel_mode:)[:](i. channel_mode:)mono / dual_channel / stereo / joint_stereo
ii. 采样率:48K / 44.1 K / 32K / 16K
iii. BITPOOL(开放设置):0-256,默认53
b) 协议支持AAC
i. bitrate(开放设置):默认支持可变bitrate,最高320 kbit/s
[ii. channel](ii. channel:)[:](ii. channel:)stereo / mono
iii. 采样率:48K / 44.1 K
2. 通话相关
a)通话音频格式支持CVSD(8K)或MSBC(16K)
b)支持通话音量控制
c)支持启动手机语言识别功能
d)支持HFP协议的电量协议
e)电话接听,挂断,拒接
f)支持回拨最后一个号码,支持输入号码打电话
g)来电号码显示,语音播报号码
h)有命令可以获取部分手机的日期时间
i)三方通话命令控制
3. 控制相关
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
a) 音乐音量同步
b) 暂停播放,上下曲,快进快退
c) 部分播放器可支持配置音乐循环模式
d) 获取播放时间
e) 获取音乐的文字类ID头信息
f) HID-音量加减控制, home键, return键
4. 状态相关
a) 可获取当前链路连接的状态
b) 可获取当前通话的状态
c) 可获取当前连接个数
d) 可获取当前适用ESCO 的状态
5. 其它
a) 默认支持存储10个设备信息
b) 删除所有配对信息
c) 删除最后一个设备信息
d) 预留接口添加profile
1.2.3 TWS功能
1、 支持erd快连
2、 主从切换
3、 播歌、通话加入连接
4、 wifi_detect抗干扰
5、 监听+转发,纯监听
6、 状态、事件、音频同步
7、 local_media tws转发
8、 低功耗
1.2.4 一拖二功能
1、 被两个手机连接
2、 可选择控制前台设备或者后台设备
3、 听音乐打断或者不打断可配置
4、 打电话打断或者不打断可配置
1.2.5 发射器/Dongle
1、 支持A2 DP SOURCE和HFP AG功能
2、 支持音乐模式/line in/FM/ PC audio等模式音频转发
3、 可以自动选择作为接收还是发射
4、 支持搜索设备后名字或者地址匹配
5、 响应蓝牙设备音量控制命令
6、 高级音频支持SBC44.1 K发送
7、 ESCO支持CVSD和MSBC
8、 无线mic,标准蓝牙实现方式(通过A2 DP和ESCO)
1.3 BLE蓝牙功能
1.3.1 已实现ble协议
1. ATT协议
(1)支持MTU exchange功能。
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 9of85
(2)支持Find information操作。
(3)支持 Reading attributes操作。
(4)支持 Writing attributes操作。
(5)支持Queued writes操作。
2 . SM 协议
(1)支持的加密模式LE legacy pairing,支持的配对方法有Just Work、 Passkey Entry、 Out Of Band (00B)等方式。
(2)主从角色支持加密配对,记录对方的地址、 LTK、 IRK等加密信息。
3 . GATT属性协议
(1)支持服务端server角色,声明服务services, characteristics等profile信息。
(2)支持客户端client角色,可搜索对方的 services, characteristics等信息, 以及对 handle 的操作。
4、 支持的pofile
(1)标准的hogp协议(HOGP_SPEC_V10 .pdf),主要是外设的HID设备的功能应用。
(2)支持苹果自带的ANCS协议,支持接收苹果系统的电话、短信、应用等信息通知功能。
(AppleNotificationCenterServiceSpecification .pdf)
(3)可以自定义非官网的profile,多应用于客户自定义协议的传输功能。
1.3.2 支持功能
1. 广播
(1)支持设置adv和respond包的数据内容,配置广播类型、周期、通道等配置参数。
2. 扫描
(1)支持配置扫描类型、周期、 窗口等配置参数。
3. 连接
(1)支持指定地址信息建立连接,支持从机连接参数的请求,也能主动调整与从机的连接参数。
(2)从机支持响应主机发起的连接请求,能主动请求连接参数更改。
(3)连接后支持PHY切换,支持1 M/2M/S2/S8 PHY。
4. 多机应用
(1)支持1从7主的连接应用。
(2)支持主机相位排序,优化连接性能。
1.3.3 定制协议功能
a) 私有连接方式已实现一对一、二对二仲裁、二对一方案,实现相应配对流程。
b) 私有广播方式已实现一对一、一对多方案,实现相应配对流程。
1.4 MESH
1.4.1 基础功能
遵守蓝牙 SIG Mesh 协议,基于蓝牙 5 ble 实现网内节点间通讯,具体功能如下:
1、 全节点类型支持( Relay/ Proxy/ Friend/Low Power);
2、 支持自配网或者手机 APP 配网(手机 APP 支持"nRF Mesh"安卓和苹果最新版本);
3、 自配网下支持加密 key 自定义;
4、 节点地址可自定义;
5、 节点信息断电保存;
6、 节点发布( Publish)和订阅(Subscribe)地址可修改;
7、 节点中继功能可修改;
8、 支持节点 Reset 为未配网设备;
9、 支持蓝牙 SIG 既有 Models 和用户自定义 Vendor Models
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 10of85
1.4.2 具体应用
- 标准Generic_onoff_server/Generic_onoff_client
- 标准Light_Lightness_Server
- mesh 自组网
- 天猫精灵mesh 插座/风扇/灯
- 配网者Provisioner
- 涂鸦mesh灯
1. 5 第三方协议
1. 涂鸦TUYA
a) 蓝牙通讯方式: (1)ble
b) 功能: (1)开关控制
2. 腾讯连连LL_SYNC
a) 蓝牙通讯方式: (1)ble
b) 功能: (1)开关控制
3. 谷歌快对Google Fast Pair Service
a) 蓝牙通讯方式: (1)ble
(1)经典蓝牙
b) 功能: (1)耳机快连
4. 百度DMA
a) 通讯方式: (1)ble
(2)spp
b) 功能: (1)语音识别
(2)FM调频
- 天猫精灵GMA
c) 通讯方式: (1)ble
(2)spp
d) 功能: (1)语音识别
6. 酷狗TME
e) 通讯方式: (1)ble
(2)spp
f) 功能: (1)语音识别
7. 小米MMA
g) 通讯方式: (1)ble
(2)spp
h) 功能: (1)语音识别
1.6 数传功能
1、 支持蓝牙双模(Classic/LE)数据透传(协议支持:L2CAP/SDP/ RFCOMM/SPP/ATT/SM)
2、 支持蓝牙 SIG Mesh Profile v1 .0.1 功能开发(Relay/ Proxy/ Friend/Low Power)
3、 支持蓝牙双模(Classic/LE)HID 功能(协议支持:L2CAP/SDP/ATT/SM/ HOGP)
实际应用:
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 11of85
a) 通用双模hid应用:键盘、 鼠标、 自拍器、翻页器、适配器、游戏盒子、语音遥控器。
b) 通用双模透传(SPP+BLE):标准的蓝牙串口SPP协议 + 自定义BLE 的prfile协议。
c) MESH控制类型:天猫精灵、 自组网应用。
d) 通用双模蓝牙(SPP+BLE)控制类:串口ATT命令控制
1.7 蓝牙测试盒
| a) 无线测试功能:设置功率灵敏度信号强度,频点测试 b) 蓝牙测试:A2 DP播放时间等功能 c) 升级功能:支持串口升级, PC升级,外设SDK卡升级 d) 校验模式功能:检测设备电量地址等信息 1.8 蓝牙认证 |
|---|
| 1. BQB a) 协议认证:HFP,A2 DP,AVDTP,AVCTP,AVRCP,SPP b) RF认证:RF, RFPHY 2. FCC/CE/SRRC 1.9 OTA |
a) 测试盒EDR升级
b) 测试盒BLE升级
c) 手机OTA升级(基于RCSP协议)
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
Chapter2 蓝牙功能通用接口说明
2. 1编写目的
| 杰理蓝牙的SDK基本功能控制是比较统一的, 以下选择部分说明。会不断的完善。 2.2一些常用头文件说明 |
|---|
| 1、 蓝牙最重要的头文件----avctp_user.h 这个头文件定义了很多蓝牙库的状态和蓝牙支持的命令。 需要开发个性化蓝牙功能时多查询改文件的命令接口。很多情况下更新库要注意补丁里面有没有这个文件要更新。 2.3 电话控制 |
1、 接听来电
关键函数:user_send_cmd_prepare(USER_CTRL_HFP_CALL_ANSWER, 0, NULL);
2、 取消拨出/挂断/拒接电话
关键函数:user_send_cmd_prepare(USER_CTRL_HFP_CALL_HANGUP, 0, NULL);
3、 回拨电话
关键代码:
说明: 回拨最后一个电话分两种情况,一种是最后一个电话为拨出去的电话,另一种是最后一个电话为打进来的电话。 因为使用的命令不一样,所以在这里得加个判断区分一下。
4、 唤醒SIRI
关键函数:user_send_cmd_prepare(USER_CTRL_HFP_GET_SIRI_OPEN, 0, NULL);
调用获取siri状态命令,调用函数
user_send_cmd_prepare(USER_CTRL_HFP_GET_SIRI_STATUS, 0, NULL)
Siri状态会通过BT_STATUS_VOICE_RECOGNITION状态返回,在函数里面增加一个case
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 13of85
bt_connction_status_event_handler 函数
c
获取到的Siri_status就是siri 的状态
5、 三方通话
关键函数:
说明:三方通话指音响使用一拖二功能(一个音响连接两部手机),A手机正在使用音响打
电话,此时B手机也在打电话的那种情况。
通过user_send_cmd_prepare 函数发送对应的命令即可,获取三方通话状态函数 extern u8 get_second_call_status()函数使用即可
2.4音乐控制
1、 音乐停止与播放
关键函数:
播放/暂停:user_send_cmd_prepare (USER_CTRL_AVCTP_OPID_PLAY, 0, NULL) ;说明:
播放和暂停使用的是同一个应用层命令,实际上系统会获取手机的播放状态再根据这个命令进行判断最终决定发送播放或者暂停命令。例如当前是播放状态,那么接收到该命令后就切为暂停状态。
2、 音乐上下曲切换
关键函数:
上一曲:user_send_cmd_prepare (USER_CTRL_AVCTP_OPID_NEXT, 0, NULL) ; 下一曲:user_send_cmd_prepare (USER_CTRL_AVCTP_OPID_PREV, 0, NULL) ;
3、 音量调节
关键函数:
获取当前系统音量:app_audio_get_volume (APP_AUDIO_CURRENT_STATE);
加音量:volume_up () ;
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 14of85
减音量:volume_down () ;
说明:该设置音量函数内部添加了获取当前系统音量函数。
4、 对箱连接与删除对箱信息
关键函数:bt_tws_start_search_sibling ()
说明:在未连接过对箱的情况下,调用此函数会自动搜索并连接对箱,当连接上对箱后,不管对箱在不在线,再次调用此函数会删除对箱的信息。
2. 5 蓝牙wifi相互干扰
本章节主要介绍蓝牙wifi干扰的分析处理方法。
2.5.1 wifi干扰蓝牙
蓝牙在做接收角色的情况下,例如接收手机发送的音频,附件有wifi信号或者和wifi模块同一个板子上,这个时候蓝牙就容易受到wifi信号的干扰,手机离蓝牙越远越容易受到干扰,因为手机发出来的信号到达蓝牙天线的强度比较小,就容易被附件wifi信号干扰。
处理方法:
1、 wifi、 bt共存仲裁,就是wifi和bt分时复用,不可以同时运行。如果wifi、 bt公板情况,可看wifi是否支持数据传输仲裁机制,支持的话可以尝试。不是所有wifi芯片都支持这个机制。
2、 如果可以获取到wifi正在使用的信道,可以通过接口配置蓝牙调过这些信号,但是蓝牙必须要做主机,而且wifi 的信号太强,及时调过wifi信号,wifi 的信号也会辐射到其他信道上,从而导致干扰。 (路由器在大数据量传输的时候会占用更加多信道)。
3、 降低wifi发射功率。
4、 调整硬件环境,把蓝牙性能 调整到最好,增强蓝牙的接收灵敏度,整机上板子天线的方向等也会影响到实际使用蓝牙的接收性能。
5、 提升蓝牙芯片本身抗干扰能力,提高ci性能。
2.5.2 蓝牙干扰wifi
蓝牙在做发射角色的时候一直往外发送数据的时候,就容易对附近的wifi产生干扰,特别是同一个板子上的wifi模块。
处理方法:
1、 蓝牙开启qos功能(蓝牙做主机),减少对外发送空包,减少对附近wifi干扰。
2、 降低蓝牙发射功率
3、 wifi、 bt共存仲裁,就是wifi和bt分时复用,不可以同时运行。如果wifi、 bt公板情况,可看wifi是否支持数据传输仲裁机制,支持的话可以尝试。不是所有wifi芯片都支持这个机制。
4、 如果可以获取到wifi正在使用的信道,可以通过接口配置蓝牙跳过这些信号,但是蓝牙必须要做主机,而且wifi 的信号太强,及时调过wifi信号,wifi 的信号也会辐射到其他信道上,从而导致干扰。 (路由器在大数据量传输的时候会占用更加多信道)。
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 15of85
5、 调整硬件环境把蓝牙对wifi 的干扰尽量减弱。
2.5.3 蓝牙干扰蓝牙
蓝牙样机靠得很近或者蓝牙芯片公板子的情况下,会出现相互干扰现象。主要都是因为蓝牙往外发送数据导致干扰。
处理方法:
1、 蓝牙开启qos功能(蓝牙做主机),减少对外发送空包,减少对其他蓝牙的干扰
2、 降低蓝牙发射功率
3、 通过某种接口来达到分时复用
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 16of85
Chapter 3 耳机类SDK蓝牙使用指导
3. 1编写目的
描述耳机SDK常用的蓝牙功能,指导用户快速了解和开发蓝牙耳机。
3.2 TWS功能使用说明
主要描述TWS功能的使用方法及开发中注意的一些问题,为用户进行二次开发提供参考,其中包括:TWS一些现有功能的宏定义、 同步消息的做法、 以及一些TWS相关接口函数。
3.2.1 TWS 的开关
在每一个板级的头文件中,都有一个开关对耳功能的宏定义。 需要注意的是,对耳和一拖二功能不能同时开启。
3.2.2 TWS配对
TWS配对和声道选择方式如下图所示: (apps/earphone/app_config. h)
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
配对方式选择:
(1)CONFIG_TWS_PAIR_MODE
配对方式选择。可以根据注释选择,按键配对,开机自动配对,开机快速配对。
(2)CONFIG_TWS_CONNECT_SIBLING_TIMEOUT
开机或者超时断开之后TWS 回连的事件,单位是s。
(3)CONFIG_TWS_REMOVE_PAIR_ENABLE
打开此宏,未连接手机的情况下,可以通过bt_tws_start_search_sibling()接口来断开对耳的连接。
(4)CONFIG_TWS_POWEROFF_SAME_TIME
这个宏决定是否主从同步关机,为1时同步关机。为0时,分开关机,如果连接着手机的耳机关机了,另一个耳机会主动连上手机并继续播歌。
(5)ONE_KEY_CTL_DIFF_FUNC
打开此宏,可以通过左右耳按键独立,分别控制不同功能。
(6)CONFIG_TWS_SCO_ONLY_MASTER
打开此宏,通话的时候只有主机出声音。
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 18of85
左右声道选择主要有以下几种情况:
(1)智能充电仓选择
将CONFIG_TWS_CHANNEL_SELECT选择为CONFIG_TWS_SECECT_BY_CHARGESTORE,耳机放入充电仓之后,通过充电仓分配左右耳。
(2)程序固定左右耳
将CONFIG_TWS_CHANNEL_SELECT选择为CONFIG_TWS_AS_LEFT_CHANNEL,则对耳连接成功时,该耳机作为左声道。 固定右声道则选择为CONFIG_TWS_AS_RIGHT_CHANNEL,要求左右声道为两套程序。
(3)通过上下拉电阻决定左右耳
将 CONFIG_TWS_CHANNEL_SELECT 选 择 为 CONFIG_TWS_EXTERN_UP_AS_LEFT, 并 且 把 CONFIG_TWS_CHANNEL_CHECK_IO改为检测外部电阻的io 口,则贴了外部上拉电阻的耳机作为左声道,没贴的作为右声道。
选择CONFIG_TWS_EXTERN_DOWN_AS_LEFT 的话,外部贴了下拉电阻的为左声道,没贴的为右声道。
(4)双击发起配对的作为左声道
将CONFIG_TWS_CHANNEL_SELECT选择为CONFIG_TWS_LEFT_START_PAIR,则通过双击发起配对的那个耳机作为左声道,被配对上的为右声道。
选择CONFIG_TWS_RIGHT_START_PAIR 的话,双击发起配对的是右声道。
(5)自动配对时,主机作为左声道
如果没有固定左右耳或者通过上下拉区分左右耳的话, 自动配对中,主机将作为左声道,从机作为右声道,不会随着主从切换而改变。
注: 自动配对可以和固定左右、上下拉电阻区分左右这两种方式结合,在上电后自动配对,左右耳由CONFIG_TWS_CHANNEL_SELECT宏决定。智能充电仓无需配自动配对的宏,开机后将会自动配对。
TWS配对后的 MAC地址可选则以下两种方式: (app/earphone/app_config. h)
3.2.3 TWS消息同步
TWS消息同步可以用来同步播放连接提示音、来电提示音、 同步LED灯。
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
消息同步可以参考提示音同步的步骤,添加消息同步的步骤如下:
(1)TWS主从同步调用指定函数
TWS消息同步需要用到tws_api_sync_call_by_uuid接口。第一个参数为唯一的 id号,需要和系统中已存在的不重复,第二个参数是要传递的参数,第三个参数是多少毫秒后同步执行。
示例:
(2)添加同步命令
在bt_tws.h 中,将要同步的命令加入到枚举中。
(3)添加消息处理
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
在bt_tws_connction_status_event_handler ()函数的TWS_EVENT_SYNC_FUN_CMD分支中,添加对应同步消息的处理流程。
(4)调用同步函数
在需要调用的地方调用,在经过n毫秒之后,TWS会同步跑到TWS_EVENT_SYNC_FUN_CMD分支,去执行对应的功能。
3.2.4 TWS互发数据接口
Sdk为用户提供了两个tws设备互发数据接口发送接口:
Data:数据buf len:数据长度,大小不能超过512byte
int tws_api_send_data_to_sibling(u8 *data, u16 len)
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 21of85
接收接口:
void tws_user_data_handler(u8 *data, u16 len)
接收数据会通过该函数回调上来,该函数在中断中调用,请勿执行任何可能导致系统睡眠的操作
3.3 TWS+透传流程说明
主要描述TWS+透传流程说明,为用户进行二次开发提供参考
3.3.1 文件目录说明
参考代码: apps/earphone/include/earphone. h
apps/earphone/trans_data_demo/trans_data_demo.c
3.3.2 适配接口说明
在apps/earphone/include/earphone. h文件里定义了tws+透传的流程要适配的函数,以透传功能为例:
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 22of85
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 23of85
Chapter 4 音箱/手表类SDK蓝牙使用指导
4. 1编写目的
描述音箱SDK和手表SDK常用的蓝牙功能,指导用户快速了解和开发蓝牙音箱。
4.2蓝牙模式相关配置
4.2.1 基本配置
说明:
①TCFG_USER_TWS_ENABLE:TWS是对箱功能
②TCFG_USER_BLE_ENABLE:BLE主要用于广播某些特殊数据
③配置了TWS对箱就不能使用蓝牙一拖二功能
④BT_SUPPORT_DISPLAY_BAT:如果不开启功能,手机连接耳机后将不会显示耳机的电量。
⑤BT_SUPPORT_MUSIC_VOL_SYNC:开启后需要手机有音量同步功能才有效
⑥TCFG_BLUETOOTH_BACK_MODE:假如当前在FM模式,此时如果连接蓝牙耳机的手机有音频输出,那么耳机会立即响应并切回正在后台运行的蓝牙模式。
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 24of85
4.2.2 配置工具配置
说明:
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 25of85
开启相应的宏才能使用配置工具的设置,具体如下。文件:user_cfg.c
4.2.3 对箱配置
①对箱配对方式配置文件:app_config.h
- /* 开机或超时断开后对耳互连超时时间,单位s */

杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
- #define CONFIG_TWS_SECECT_BY_CHARGESTORE 7 //充电仓决定左右箱
- //配对方式选择
- #define CONFIG_TWS_CHANNEL_SELECT CONFIG_TWS_LEFT_START_PAIR
- //上下拉电阻检测引脚
- #define CONFIG_TWS_CHANNEL_CHECK_IO IO_PORTA_07
②电量显示配置文件:app_config.h
- #if BT_SUPPORT_DISPLAY_BAT
- //对耳手机端电量显示,显示低电量耳机的电量
- #define CONFIG_DISPLAY_TWS_BAT_ OWER 1
- //对耳手机端电量显示,显示高电量耳机的电量
- #define CONFIG_DISPLAY_TWS_BAT_HIGHER 2
- //对耳手机端电量显示,显示左耳的电量
- #define C NFIG_ ISPLAY_TWS_BAT_ FT 3
- //对耳手机端电量显示,显示右耳的电量
- #define CONFIG_DISPLAY_TWS_BAT_RIGHT 4
- #define CONFIG_DISPLAY_TWS_BAT_TYPE CONFIG_DISPLAY_ _ T_LOWER
- #endif //BT_SUPPORT_DISPLAY_BAT
说明:需要在board_ac695x_demo_cfg.h里使能 BT_SUPPORT_DISPLAY_BAT 才可以。
4.2.4 几个主要文件说明
1、 文件audio_aec.c
说明:通话回声消除的一下流程代码,包括初始化,运算模块的添加。
2、 文件bt_tws.c
说明:对箱用到的一个流程处理文件。
3、 文件bt.c
说明:
流程处理,消息处理,这个会经常修改的文件主要函数说明:
①函数void bt_wait_phone_connect_control(u8 enable) ;控制蓝牙的可发现可连接。
④函数static int bt_connction_status_event_handler (struct bt_event *bt) ;蓝牙的状态处理函数,连接、 电话等。
⑥函数static void task_bt_exit(void **hdl)模式退出会调用。
⑦函数static int event_handler (struct application *app, struct sys_event *event)主循环函数,处理按键消息或其它情况产生的消息。
4、 文件bt_key.c
说明:
按键消息表
5、 蓝牙最重要的头文件----avctp_user.h
这个头文件定义了很多蓝牙库的状态和蓝牙支持的命令。需要开发个性化蓝牙功能时多查询改文件的命令接口。很多情况下更新库要注意补丁里面有没有这个文件要更新。
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
4.3 TWS音箱连接说明
具体调试方法,参考配置工具内置文档
4.3.1 tws配对
1.配对方式

2.启动配对、取消配对

(1)设置配对搜索超时,默认15s
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
(2)配对超时处理
(3)配对成功
(4)配对成功处理

4.3.2 tws被搜索连接、tws 回连
1、 启动设置
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
相关接口API
(1) 手机没有连上,开启等待连接
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 30of85
(2)手机已连上,开启等待连接
(3)tws 已配对过,主动发起连接
(4)关闭所有搜索、状态(包括对其他设备)
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
(5)打开可发现,可连接,可被手机和tws搜索到

4.4 SPP+BLE数传说明
参考第Chapter 5 数传类SDK蓝牙使用指导
4. 5 手表的蓝牙应用说明
4.5.1本地音乐播放
1、 蓝牙状态模式设置,蓝牙接收发射状态切换接口
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
开机默认设置为接收模式,可以被手机连接
1、 切换显示界面可以有如下界面,点击发射器可以开启关闭蓝牙发射功能

4、 蓝牙发射接收状态切换代码如下
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
5、 启动发射功能后,点击搜索后会进入如下界面开始搜索周围蓝牙设备,可以按k2、 k3按键选择设备,点击k1链接设备。
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
蓝牙启动停止搜索函数如下
6、 本地音乐播放,当检测道SD卡在线,切换界面可以有如下音乐界面,可以实现播放暂停,上下曲,然后会把本地播放音乐传输给链接蓝牙设备
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
4.5.2蓝牙bred r函数接口介绍
经典蓝牙开关接口
在不使用bredr 的时候可以调用下面接口函数bt_close_bredr关闭;需要重新开启的时候调用bt_init_bredr开启。
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
2、 经典蓝牙控制命令函数
u32 user_send_cmd_prepare(USER_CMD_TYPE cmd, u16 param_len, u8 *param)
开发者可以调用这个函数来控制bredr 的各类功能,功能的枚举在avctp_user. h里面
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
4.5.3蓝牙bred r功耗优化介绍
蓝牙未连接的功耗主要来自经典蓝牙的可发现可连接。 因此为了进一步节省功耗,在待机情况下可以根据需求选择是否关闭经典蓝牙。开启和关闭经典蓝牙可以调用以下接口:
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
另外,也可以在board_ac695x_demo_cfg. h 中开启TCFG_BREDR_CTRL_EN这个宏来完成经典蓝牙的开关:
这个宏开启后,默认会在系统跑起来后、蓝牙断链和挂断通话时自动关闭经典蓝牙(也可以根据自身需求来调整开关时机),使用过程中需要配合手机APP通过BLE来控制经典蓝牙的开关。
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.

杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
当手机APP发送需要连接经典蓝牙的指令后,可以调用bredr_conn_last_dev()函数来回连(需要提前连接过一次)。安卓手机也可用手机app来控制手机主动回连小机(苹果手机不支持),但手机app还需要发送命令让小机调用bt_init_bredr()来开启经典蓝牙。
TCFG_BREDR_CTRL_EN这个宏只是默认的一种控制情况,客户可以根据自身需求调用相关接口并配合手机app来控制经典蓝牙的开关以及调整BLE 的广播和通讯间隔, 以达到功耗的进一步缩小。
4.6 讯飞mesh provisioner使用说明
此处以695系列SDK 的为例子说明
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
4.6.1 SDK配置
(1)打开apps/soundbox/board/br23/board_ac695x_demo_cfg. h文件,将各参数按如下配置。
(2)打 开 apps/soundbox/mesh_v2/api/model_api. h 文 件, 配 置 如 下 参 数,此 处 配 置 SIG_MESH_PROVISIONER为配网者,配置SIG_MESH_ALIGENIE_FAN为服务从机。
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
(3)待配网的 server 小机需要烧录不同的 MAC 地址,在烧录时需要确保每个 server 小机在 apps/soundbox/mesh_v2/examples/里的地址不同。
4.6.2 开发板引脚说明
PB1: AD按键引脚,将该引脚与ADKEY 引脚连接起来。
PA1:灯输出引脚,将PA1与LED 引脚连接起来。
4.6.3 按键说明
Provisioner开发板按键:
key number= 0按键:查看现在连接的设备的节点地址列表。
key number = 1按键:删除最大节点地址的设备。
key number = 2按键:重置配网信息按键,按下后3秒后会重启。
Server开发板按键:
Key number = 0按键:改变灯的开关状态 Key number = 2按键:恢复出厂状态
使用实例
(1)将provisioner小机开机。
(2)将待配网server小机开机
(3)Provisioner小机为待配网server小机配网。
(4)provisioner小机出现node x provision success打印,则代表第x个小机配网成功。
(5)配网成功后可以点击provision小机的key number = 1按键查看已配网小机列表。
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 43of85
4.7 蓝牙发射器接口设计说明
实现蓝牙发射器相关功能开发,方便用户在对应的工程上自行开发使用,也为相关SDK 的蓝牙发射器开发提供借鉴思路。此处以695系列SDK 的为例子说明。
4.7.1 功能概述
蓝牙发射器接口 模块主要提供包含设备搜索连接,播放暂停,a2dp断开与连接,hfp断开与连接,发射和接收切换等接口给USER调用。
4.7.2 其他系统/模块的调用关系
蓝牙发射器接口只供蓝牙做source时使用。接口函数尽量在蓝牙模式下调用。
4.7.3 接口模块功能介绍
1、 板级选择

2、 板级相关配置
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
4.7.4 接口介绍
1、 初始化链表和SBC编码器,设置为发射或接收状态。
| 函数原型 | void bt_emitter_init() |
|---|---|
| 功能描述 | 初始化链表和SBC编码器 |
| 参数说明 | |
| 输出 | void |
| 例子 | bt_emitter_init () |
| 关联模块 | bt_event_fun.c |
| 补充说明 |
| 函数原型 | void emitter_or_receiver_switch(u8 flag); |
|---|---|
| 功能描述 | 初始化链表和SBC编码器 |
| 参数说明 | BT_EMITTER_EN //发射器 BT_RECEIVER_EN //接收器 |
| 输出 | void |
| 例子 | emitter_or_receiver_switch( BT_EMITTER_EN); |
| 关联模块 | bt_event_fun.c, bt_emitter.c |
| 补充说明 |
2、 设备搜索,搜索蓝牙设备。
| 函数原型 | void bt_emitter_start_search_device() |
|---|---|
| 功能描述 | 搜索蓝牙设备 |
| 参数说明 | |
| 输出 | void |
| 例子 | bt_emitter_start_search_device() |
| 关联模块 | bt_emitter.c, ui_bt_scan.c |
| 补充说明 |
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 45of85
| 函数原型 | void bt_emitter_stop_search_device() |
|---|---|
| 功能描述 | 停止搜索蓝牙设备 |
| 参数说明 | |
| 输出 | void |
| 例子 | bt_emitter_stop_search_device() |
| 关联模块 | bt_emitter.c, ui_bt_scan.c |
| 补充说明 |
3、 搜索过滤和搜索结果,通过配置可根据名字或地址来过滤指定设备。
| 函数原型 | u8 search_bd_name_filt(char *data, u8 len, u32 dev_class, char rssi) |
|---|---|
| 功能描述 | 通过名字来筛选设备 |
| 参数说明 | *data //设备名字 len //名字长度 dev_class //设备类型 rssi //设备型号强度 |
| 输出 | True //设备匹配 False //设备过滤 |
| 例子 | search_bd_name_filt(name, name_len, dev_class, rssi) |
| 关联模块 | bt_emitter.c |
| 补充说明 |
| 函数原型 | u8 search_bd_addr_filt(u8 *addr) |
|---|---|
| 功能描述 | 通过地址来筛选设备 |
| 参数说明 | *addr //设备地址 |
| 输出 | True //设备匹配 False //设备过滤 |
| 例子 | search_bd_addr_filt(addr) |
| 关联模块 | bt_emitter.c |
| 补充说明 |
| 函数原型 | u8 emitter_search_result(char *name, u8 name_len, u8 *addr, u32 dev_class, char rssi) |
|---|---|
| 功能描述 | 蓝牙设备搜索结果,可以做名字/地址过滤,也可以保存搜到的所有设备,在选择一个进行连接,获取其他想要的操作。 |
| 参数说明 | *name //设备名字 name_len //名字长度 *addr //设备地址 dev_class //设备类型 rssi //设备型号强度 |
| 输出 | True //表示搜到指定的想要的设备,搜索结束,直接连接当前设备 False //继续搜索,直到搜索完成或者超时 |
| 例子 | search_bd_addr_filt(addr) |
| 关联模块 | bt_emitter.c,蓝牙底层回调 |
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 46of85
| 补充说明 |
|---|
4、 播放与暂停,控制蓝牙发射器开始和停止音频发射。
| 函数原型 | u8 bt_emitter_pp(u8 pp) |
|---|---|
| 功能描述 | 控制蓝牙发射器开始和停止音频发射 |
| 参数说明 | pp //0:暂停 1:播放 |
| 输出 | 0 //停止发射 1 //发射 |
| 例子 | bt_emitter_pp(1) |
| 关联模块 | bt_emitter.c, music.c, app_common.c |
| 补充说明 |
5、 DAC数据静音,通过变量可以控制蓝牙在做发射器的时候, 自身DAC是否同时出声音。
| 函数原型 | int audio_data_set_zero(struct audio_stream_entry *entry, struct audio_data_frame *data_buf) |
|---|---|
| 功能描述 | 蓝牙发射开关a2dp链路 |
| 参数说明 | |
| 输出 | 0 |
| 例子 | dac_channel0 .entry. prob_handler = audio_data_set_zero; |
| 关联模块 | audio_dec.c |
| 补充说明 | 解码初始化时会把该函数注册进回调,无需另外调用。 当emitter_dac_mute_en 非0时,数据静音;否则非静音. |
4.7.5 AG功能
可用于做对讲机。 使用该功能前需先打开 USER_SUPPORT_PROFILE_HFP_AG。 然后使用 user_emitter_cmd_prepare(USER_CTRL_HFP_CALL_LAST_NO, 0, NULL)打开对讲功能。

| 函数原型 | void bredr_ag_a2dp_open_and_close() |
|---|---|
| 功能描述 | 蓝牙发射开关a2dp链路 |
| 参数说明 | |
| 输出 | void |
| 例子 | bredr_ag_a2dp_open_and_close() |
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
| 关联模块 | |
|---|---|
| 补充说明 | 该接口尽量在蓝牙模式下并且没有播歌情况下调用 |
| 函数原型 | void bredr_ag_hfp_open_and_close() |
|---|---|
| 功能描述 | 蓝牙发射开关hfp链路 |
| 参数说明 | |
| 输出 | void |
| 例子 | bredr_ag_hfp_open_and_close() |
| 关联模块 | |
| 补充说明 | 该接口尽量在蓝牙模式下并且没有通话对讲情况下调用 |
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
Chapter 5 数传类SDK蓝牙使用指导
5. 1编写目的
该部分描述的内容也同样适用于指导其它类SDK开发数传功能。
5.2 APP数传功能开发
主要描述开发手机APP功能接口,为用户进行二次开发提供参考
5.2.1 文件目录说明
蓝牙协议代码: apps/common/third_party_profile/jieli/trans_data_demo
5.2.2 功能开关
在earphone/include/app_config. h里
#define CONFIG_APP_BT_ENABLE (功能总开关)
#define TRANS_DATA_EN 1 (透传功能开关)
SDK 支持协议
经典蓝牙 :L2CAP, SDP, RFCOMM, SPP
低功耗蓝牙:L2CAP, ATT, SM
5.2.3 SPP数据通信
---推荐测试工具
代码文件spp_trans_data.c
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 49of85
1、 SPP模块初始化

2、 SPP连接和断开事件处理

3.SPP发送数据接口,发送前先调用接口transport_spp_send_data_check检查

4.SPP检查是否可以往协议栈发送数据
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.

5.SPP发送完成回调,表示可以继续往协议栈发数,用来触发继续发数

6.SPP接收数据接口

5.2.4 BLE数据通信
2、 代码文件le_trans_data.c
3、 Profile生成的 profile_data数据表放在le_trans_data. h。 用户可用工具make_gatt_services 自定义修改,重新配置GATT服务和属性等。
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.

2.协议栈事件回调处理,主要是连接、 断开等事件

3.ATT读事件处理

4.ATT写事件处理
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.

5. NOTIFY 和 INDICATE 发送接口,发送前调接口 app_send_user_data_check检查

6.检查是否可以往协议栈发送数据

7.发送完成回调,表示可以继续往协议栈发数,用来触发继续发数

8.调用示例
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.


9.收发测试
使用手机NRF软件,连接设备后;使能notify和indicate 的 UUID (AE02 和 AE05)的通知功能后;可以通过向write 的 UUID (AE01 或 AE03)发送数据;测试UUID (AE02 或 AE05)是否收到数据。
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
Chapter 6 APP类功能开发指导
6. 1编写目的
APP类的功能包括杰理蓝牙APP,和一些第三方定义的通信协议需要用到的APP开发介绍
6.2 杰理之家APP
主要描述杰理之家APP介绍,为用户进行二次开发提供参考。详细协议定义请参考《杰理蓝牙控制协议.pdf》
6.2.1 APP介绍

6.2.2 文件目录说明
协议代码:apps/common/third_party_profile/jieli/JL_rcsp
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 55of85
apps/earphone/rcsp/
adv_app_setting //功能设置目录
adv_rcsp_protocal //rcsp 协议目录
bt_rcsp_data //透传接口目录
rcsp_updata //OTA升级目录
6.2.3 功能开关、配置
在earphone/include/app_config. h里
#define CONFIG_APP_BT_ENABLE (功能总开关)
#define RCSP_ADV_EN 1
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.

6.2.4 命令、数据API介绍
1、 已有命令
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
其中 JL_OPCODE_CUSTOMER_USER = 0xFF 用于自定义命令扩展
注意: 不能用其他非0xFF 的命令号来自定义命令
2、 小机发送需要回复的自定义命令

杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
3、 收到固件发出去,APP 的回复

4、 收到app主动发过来的需要回复的自定义命令

6.2.5 功能配置存储和读取
1、 vm 功能配置项设置
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
eg:
2、 vm 功能配置项读取

6.2.6 TWS 数据传输
1、 传输大数据的参考例子,注册一个函数接口
使用例子:
2、TWS之间同步操作参考例子:
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
6.2 涂鸦平台
| 需要了解详细信息的请打开《涂鸦协议开发说明.pdf》 阅读 6.3 腾讯连连平台 |
|---|
| 需要了解详细信息的请打开《腾讯连连开发说明.pdf》 阅读 6.4 DMA,MMA,GMA,TME协议 |
| 需要了解详细信息的请打开《杰理第三方APP通信协议设计说明文档v0.0.1.pdf》阅读 6. 5 Google Fast Pair Service |
需要了解详细信息的请打开《GFPS开发说明.pdf 阅读
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
Chapter 7 蓝牙OTA
7. 1编写目的
这个章节主要介绍一下蓝牙OTA相关的开发
7.2 修改说明
下载目录的修改:
SDK 的修改:
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
Chapter 8 功能定制
8. 1编写目的
有些需要定制功能的一些接口说明。定制功能可能只是部分SDK默认有,需要使用但是SDK找不到的可以连接我们支持。
8.2 Profile添加
apps层新加了自定义Profile功能。主要的实现代码在p bg_demo. c文件中。
8.2.1代码实现点描述
1、 功能使能
告define BB G_DEMO_EN 1//ena1be pbg_demo
2、 Profile所需要的SDP服务添加描述
添加示例,请参考设备信息PNP服务信息的定义,如下:
如上述操作示例,用户可以添加1个SDP服务表, HCI层的协议服务,例如HID服务等。 SDP数组的结构填写,请参考SIG官网蓝牙核心协议Core_v5 .1 vol 3 Part B,有详细说明。
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
、模块初始化
4、 Profile事件处理函数,主要处理连接、 断开和收数处理等。
5、 Profile数据发送操作流程
(1)发送接口调用,发送前先检测user_send_busy是否空闲。
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
(2)发送数据完成接口

注意:发送接口 p bg_user_send 只是把数据填入到协议栈的缓存中,应该以收到回调函数 user_p bg_send_ok_callback,才能确定数据真正发送出去。
8.3 标准的HID设备
有些芯片发布了 HID SDK,有需要可以找杰理的助理要相关代码和资料。此处以695系列的 HID SDK说明
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
8.3.1 HID SDK 使用简要概述
1、 配置双模使能配置
2、 支持双模HID设备切换。
3、 支持进入省电低功耗Sleep。
4、 支持进入软关机,可用IO触发唤醒。

5、 系统事件处理函数

8.3.2 EDR HID
1、 代码文件hid_user.c
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
2、 主要接口说明
| 接口 | 备注说明 |
|---|---|
| user_hid_set_ReportMap | 配置置描述符report表 |
| user_hid_init | 模块初始化 |
| user_hid_exit | 模块初退出 |
| user_hid_enable | 模块开关使能 |
| user_hid_disconnect | 断开连接 |
| user_hid_msg_handler | 协议栈事件处理 |
| user_hid_send_data | 发送数据接口 |
| user_hid_send_ok_callback | 协议栈发送完成回调,用来触发继续发数 |
8.3.2 BLE HID
1、 代码文件le_hogp.c
2、 hogp 的 profile 的数据表放在 le_hogp. h,用户可用工具make_gatt_services 自定义修改。
3、 主要接口说明
| 接口 | 备注说明 |
|---|---|
| le_hogp_set_icon | 配置显示图标 |
| le_hogp_set_ReportMap | 配置置描述符report表 |
| bt_ble_init | 模块初始化 |
| bt_ble_exit | 模块初退出 |
| ble_module_enable | 模块开关使能 |
| ble_disconnect | 断开连接 |
| cbk_packet_handler | 协议栈事件处理 |
| cbk_sm_packet_handler | 配对加密事件处理 |
| advertisements_setup_init | 广播参数 |
| make_set_adv_data | Adv包数据组建 |
| make_set_rsp_data | Rsp包数据组建 |
| set_adv_enable | 广播开关 |
| check_connetion_updata_deal | 连接参数调整流程 |
| att_read_callback | ATT 读事件处理 |
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
| att_write_callback | ATT 写事件处理 |
|---|---|
| app_send_user_data | 发送数据接口 |
| app_send_user_data_check | 检查是否可以往协议栈发送数据 |
| can_send_now_wakeup | 协议栈发送完成回调,用来触发继续发数 |
8.4 蓝牙名字自增功能
此处以696系列SDK 的为例子说明
8.4.1 功能概况
此功能可能只是部分SDK默认支持。如果有蓝牙名字自增功能(即 蓝牙名字+mac地址组成新的蓝牙名字),可参考本文档修改,有其他蓝牙名字自增需求的也可参考自行修改。
注意: 蓝牙名字长度不能超过32个字节,要配合烧写器的 mac地址自增功能使用
本文档以蓝牙名字+mac地址后8位为例,蓝牙名字:AC696X_Main mac地址:CD 62 30 11 68 16,按本文档修改后,蓝牙名字变为:AC696X_Main_30116816。
8.4.2 固件程序修改
( )在SDK apps soun ox common user_c g.c文件中添加函数
All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 69of85
(2)实现名字替换,在SDK/apps/ soundbox/ common/ user_cfg .c文件, void cfg_file_parse( u8 idx )函数
. .3烧写工具设置
(1)支持此功能的烧写工具版本号
一拖八:V3.0.27 (包括后续版本)
一拖二:V2.23.2 (包括后续版本)
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 70of85
(2)蓝牙地址自增一拖二与一拖八烧写器设置示例
如果需要实现蓝牙名字自增,可以通过获取地址的自增量,然后按照一定的方式加至蓝牙名字上。在芯片烧写时需要在烧写器PC端设置好需要的蓝牙地址范围,其中一拖二烧写器如图a所示和一拖八烧写器如图 b 的 PC 配置所示。 假设设置烧写的蓝牙地址范围为:CD:62:30: 11:68 : 16 -CD:62:30: 11:FF:FF,烧写器每烧录一颗芯片,蓝牙地址就自增一次,自增形式为:CD:62:30: 11:68 : 16、 CD:62:30: 11:68 18、 、 CD:62:30: 11:FE:00、 CD:62:30: 11:FE:01、 、 CD:62:30: 11:FF:FF。
假定蓝牙名字为: AC696X_Main,然后将地址后面两个字节添加至名字就可以有: AC696X_Main_6816、AC696X_Main_6817、AC696X_Main_FE01等。当然通过地址自增量也可以实现名字的一些其它自增形式。
图a .一拖二烧写器蓝牙地址自增配置示例
图b.一拖八烧写器蓝牙地址自增配置示例
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 71of85
8. 5 蓝牙AT协议
蓝牙有个AT协议,可以使用电脑协助做一些自动测试的流程。有需要可以参考《蓝牙AT协议说明.pdf》说明
cmd_sample:
- //---------------HEX 数据发送————
. //-----初始化 示例发数- - ----- - SET_VISIBILITY . 01 02 01 00
- SET_EDR_ADDR 6. 01 00 06 66 55 44 33 22 11
- SET_BLE_ADDR 8. 01 01 06 99 55 44 33 22 11
- SET_EDR_NAME
- 01 03 0f 61 74 5F 63 6F 6D 5F 74 65 73 74 5F 73 70 70
- SET_BLE_NAME
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 72of85
12. 01 04 0f 61 74 5F 63 6F 6D 5F 74 65 73 74 5F 62 6C 65
13. SET_ADV_DATA
15. SET_RSP_DATA
17. SET_VISIBILITY
19. //-----连上发送数据 示例- - ----- 20.
21. 01 05 0A 41 54 5F 4D 58 5F 31 32 33 34
23. SET_SEND_BLE_DATA
25. 01 09 0A 0d 00 41 54 5F 4D 58 5F 31 31 26.
27. SET_SEND_DATA
29. EDR_DISCONNECT
31. BLE_DISCONNECT
33. //-----其他控制示例- - ----- 34.
35. 01 0B 00 37. 01 15 03 04 04 24 //01 15 03 00 00 00 39. 01 27 00 41. 01 34 00 43. 01 35 00 45. 01 36 00 47. 01 37 00
14. 01 2d 07 02 01 06 03 03 30 AF
16. 01 2e 11 10 09 61 74 5F 63 6F 6D 5F 74 65 73 74 5F 62 6C 65
18. 01 02 01 07
SET SEND SPP DATA
22. 01 05 0A 41 54 5F 4D 58 5F 31 39 39 39
24. 01 09 0A 08 00 41 54 5F 4D 58 5F 30 30
01 09 0A 10 00 41 54 5F 4D 58 5F 32 32
28. 01 0A 08 41 54 5F 4D 58 5F 38 38
30. 01 11 00
32. 01 12 00
STATUS_REQUEST
36. SET_EDR_COD(CLASS OF DEVICE)
38. ENTER_SLEEP_MODE
40. GET_EDR_ADDR
42. GET_BLE_ADDR
44. GET_EDR_NAME
46. GET_BLE_NAME
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 74of85
Chapter9 蓝牙认证说明
9. 1编写目的
这个章节主要介绍一下蓝牙认证的相关参考和修改
9.2 蓝牙bredr性能信令测试
蓝牙性能测试在正常运行的情况下可以被测试仪器链接进行性能测试,测试的是正常运行下蓝牙性能。开发者可以通过某种触发调用函数使能性能测试。
测试仪器:4010、 8852、 cmw270 等
9.2.1代码配置
开发者可以在蓝牙初始化的地方调用 void bredr_set_dut_enble(u8 en, u8 phone)函数 如下//* ---------------------------------------------------------------------------- */
/ **@brief BT 性能测试使能
@ param en : 是否支持仪器链接 4010 8852 等
@ param phone : 是否支持手机链接
@note 该函数可以在蓝牙初始化调用即可,使能性能测试,和
是否可以同时被手机链接
开发者可以在量产的时候通过某个按键触发调用该函数来使能
性能测试
/ * ---------------------------------------------------------------------------- */
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.

9.2.2性能测试
测试的步骤:
1、 先确保正常样机可以被手机搜索连接
2、 测试馈线链接可以搜索和链接进行测试
3、 进行辐射测试
如果进行辐射测试链接不了,先确保1、 2是否正常,如果 1、 2正常运行, 3不行的话,可以把样机靠近天线,或者换个芯片测试。
9.3 蓝牙bredr性能非信令测试
蓝牙性能非信令测试分发射和接收两部分
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 76of85
1、 只是简单测试发射功率,频偏可以调用 void bt_fix_fre_api (u8 fre)
2、 需要测试tx、 rx 的, 调用void bt_fix_txrx_api (u8 mode, u8 *mac_addr, u8 fre, u8 packet_type, u 16 payload)
开发者通过串口等控制进入对应测试状态,然后测试仪器发送测试数据或者接收信号测试蓝牙性能。
测试发射可以使用频谱仪类的仪器,测试接收的需要使用信号发生器类仪器。
9.3.1代码配置
1、测试发射功率、频偏可调用下面函数,调用该函数后蓝牙不可恢复,如果需要测试小机其他功能需要复位或重新上电
2、 测试tx rx 性能,可以调用bt_fix_txrx_api 函数, bt_updata_fix_rx_result 函数获取测试rx结果。注意测试的时候必须要把蓝牙其他状态关闭,把低功耗等状态关闭,确保测试性能的准确性。开发者可以通过串口控制触发配置测试接收或者发射,地址、频点、包类型和内容等。停止测试调用link_fix_txrx_disable 函数即可。
这个接口有些版本sdk才有支持,如果没有可以提出来添加。
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.

9.4 蓝牙bqb测试
蓝牙bqb认证分bredr和ble、bredr通过信令方式进行测试,ble测试通过非信令方式进行测
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 78of85
试,设备通过串口发送命令给小机进行对应测试控制,小机默认使用usb 口来做串口,ble认证测试有两种控制方式:
1、 手动测试, 电脑上配置fcc工具通过串口控制小机进行对应状态来测试
2、 自动测试,测试仪器支持串口控制,直接把串口接到小机即可完成自动测试另外参考蓝牙SIG标准《 RF-PHY.TS.5.0.3.pdf》
9.4.1代码配置
在btcontroller_mode. h文件设置如下,把蓝牙配置成bqb模式,
为了确保认证测试流程稳定,在app_config. h代码默认会把一些不相关的功能关闭,如下图比如按键、 打印等,确保usb 口不会被其他地方使用,导致串口通信不成功,系统会关机等。
SDK默认固定通信串口配置:
通信IO为USB IO ( USB_DP---UART_TX, USB_DM---UART_RX);
波特率为115200;
9.4.2硬件环境
● 经典蓝牙BQB认证硬件环境
■ 测试样机的天线端需留接口与测试仪器通过RF馈线连接
● 低功耗蓝牙BQB认证硬件环境
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
■ 测试样机的天线端需留接口与测试仪器通过RF馈线连接
■ 测试样机的通信串口需留接口与测试仪器的串口(或通过usb 串口转接板)连接
9. 5 蓝牙fcc测试
蓝牙fcc认证分bredr和ble,测试通过非信令方式进行测试,测试员电脑上设置fcc工具通过串口发送命令给小机进行对应测试控制。小机默认使用usb 口做串口通信。
Fcc 工具配置可以参考 9.5.4 FCC 认证测试设置、 《FCC 认证_2ACQA-HS-805_FCC ID TestReport pdf》文档。
9.5.1代码配置
在btcontroller_mode. h文件设置如下,把蓝牙配置成fcc模式,
为了确保认证测试流程稳定,在app_config. h代码默认会把一些不相关的功能关闭,如下图比如按键、 打印等,确保usb 口不会被其他地方使用,导致串口通信不成功,系统会关机等。
SDK默认固定通信串口配置:
通信IO为USB IO ( USB_DP---UART_TX, USB_DM---UART_RX);
波特率为115200;
9.5.2代码配置
● 经典蓝牙FCC认证硬件环境
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 80of85
■ 测试样机的天线端需留接口与测试仪器通过RF馈线连接
■ 测试样机的通信串口需留接口与测试仪器的串口(或通过usb 串口转接板)连接
● 低功耗蓝牙FCC认证硬件环境
■ 测试样机的天线端需留接口与测试仪器通过RF馈线连接
测试样机的通信串口需留接口与测试仪器的串口(或通过usb 串口转接板)连接
9.5.3 FCC_assist工具使用介绍
FCC Aissit工具支持通过串口发送经典蓝牙或BLE 的射频参数配置,方便客户在FCC/CE等认证测试时的修改射频配置。
● 工具界面信息介绍
● BLE单载波测试配置
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 81of85
9.5.4 FCC认证测试设置
Pick worst case
1, Band Edges Emission
蓝牙频带外 100kHz 带宽内的信号必须低于最接近通道信号最大值 20dB,针对最低(2 .400GHz)和最高 channel(2 .4835GHz)。
TEST SETTINGS:
(1)最大功率发射;EUT 连续发射 or maxhold&peak
(2) RBW=100KHz(≥ 1% span=10MHz), VBW=300KHz(≥RBW)
(3)跳频模式打开,重复(1) (2)
2, Spurious Emission
TEST SETTINGS:
(1)线损补偿后测试
(2)最大功率发射;EUT 连续发射 or maxhold&peak
(3) RBW=100KHz, VBW=300KHz, span 1GHz~26GHz,所有的杂散必须低于最高值 20dB (CE 认证 30M~1G-36dBm; 1G~12 .75G-30dBm; 1.8G~1 .9G & 5.15G~5 .3G-47dBm)
(4) 1 M 低中高 channel
3, 20dB BW
(1)最大功率发射;EUT 连续发射 or maxhold&peak
(2) Span =2~3 倍的 20dB BW (20~30MHz)
(3) RBW≥1% 20dB BW, VBW≥RBW
(4)低中高 channel
4, Number of Hopping Channel
(1)最大功率发射;EUT 连续发射 or maxhold&peak
(2)跳频模式
(3) Span: 2.400GHz~2 .4835GHz; RBW ≥ 1% of the span; VBW ≥ RBW ( RBW=100K/1M, VBW=300K/1M)
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 82of85
5, Hopping Channel Separation Measurement
Channel 之间须有>25KHz 的间隔
(1)最大功率发射;EUT 连续发射 or maxhold&peak
(2)跳频模式
(3) Span = wide enough to capture the peaks of two adjacent channels; RBW≥1% of the span; VBW≥RBW (span=2M, RBW=30K, VBW=100K
(4)低中高 channel
6, Peak Output Power
(1)最大功率发射;EUT 连续发射 or maxhold&peak
(2)线损补偿
(3)低中高 channel
7, Dwell Time
DH1 Dwell time = t*(1 .6/2/79)31.6
DH3 Dwell time = t(1 .6/4/79)31.6
DH5 Dwell time = t(1 .6/6/79)*31.6 (limit: 400ms)
(1)最大功率发射;EUT 连续发射 or maxhold&peak
(2)跳频模式
(3) Span = zero span, centered on a hopping channel; RBW=1MHz, VBW≥RBW; sweep time is more than once pulse time
8, RX Spurious Emission
CE 有要求
9.6 蓝牙认证问题调试
主要介绍一下认证遇到问题后,硬件上可以在天线上做的处理。
杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 83of85
9.6.1整改介绍

杰理蓝牙 All information provided in this document is subject to legal disclaimers © JL.V. 2021. All rights reserved.
User manual Rev1.0——2021/12/1 84of85
功率太大的话可以通过配置工具限制最大发射功率

