AC706N_wireless_mic_release_V1.1.2_AC706N无线话筒应用详细设计说明书
AC706N无线话筒应用详细设计说明书
珠海市杰理科技股份有限公司
Zhuhai Jieli Technologyco.,LTD
版权所有,未经许可,禁止外传
版权所有,侵权必究 1
地址:珠海市吉大石花西路 107号9栋综合楼 邮编:519015
电话:0756-6313088 传真:0756-6313081
网站:www.zh-jieli.com
修改记录
| 版本 | 更新日期 | 描述 |
|---|---|---|
| V1.0 | 2024/1/26 | 撰写初版文档 |
| V1.1 | 2023/7/15 | 添加差分麦引脚配置描述 |
| V1.2 | 2023/7/26 | 修改距离调试章节描述 |
| V1.3 | 2023/10/12 | 添加2T1形态自定义数据交互描述 |
| V1.4 | 2023/11/4 | 更新距离调试方式描述 |
版权所有,侵权必究 2
目录
1.引 言.................................................................................................................................................................................... 5
- 1.编写目的...................................................................................................................................................................5
1.2.术语和缩写词...........................................................................................................................................................5 - SDK开发工具使用说明......................................................................................................................................................5
- 1.安装包管理工具.......................................................................................................................................................5
- 1.安装包管理器........................................................................................................................................ 5
- 1.2.安装开发所需的配置工具....................................................................................................................6
- 1.3.配置工具的使用....................................................................................................................................7
- MIC配置开发说明..............................................................................................................................................................9
- MIC通道配置........................................................................................................................................................... 9
3.2. MIC供电模式配置................................................................................................................................................... 9
3.3. MIC模式配置......................................................................................................................................................... 10
- MIC通道配置........................................................................................................................................................... 9
- DAC配置........................................................................................................................................................................... 12
- 1.输出方式设置......................................................................................................................................................... 12
4.2.输出声道................................................................................................................................................................. 12
5.按键.................................................................................................................................................................................... 13 - IOKEY ..................................................................................................................................................................... 13
- 1.连接方式.............................................................................................................................................. 13
- 1.2.参数配置.............................................................................................................................................. 14
- 1.3.按键表映射.......................................................................................................................................... 16
- 1.4.按键表注册.......................................................................................................................................... 17
5.2. ADKEY .................................................................................................................................................................... 17
5.2. 1.连接方式.............................................................................................................................................. 17
5.2.2.参数配置.............................................................................................................................................. 18
5.3.按键扫描配置和消息处理.....................................................................................................................................20
5.4.组合按键及多击.....................................................................................................................................................22
5.4. 1.组合按键.............................................................................................................................................. 22
5.4.2.按键多击.............................................................................................................................................. 23
5.4.3.某些按键只响应单击事件..................................................................................................................23 - PWM_LED .........................................................................................................................................................................25
- 1.功能配置.................................................................................................................................................................25
- 1.单IO推两个灯....................................................................................................................................25
- 1.2.双IO推两个灯....................................................................................................................................25
6.2.功能使用.................................................................................................................................................................26
7.串口.................................................................................................................................................................................... 28 - 1.通过串口实现软开关机.........................................................................................................................................28
8.内置充电............................................................................................................................................................................ 32 - 1.充电配置.................................................................................................................................................................32
8.2.充电事件处理.........................................................................................................................................................32
9.长按复位............................................................................................................................................................................ 34 - VM .................................................................................................................................................................................... 35
版权所有,侵权必究 3 - 1.读写接口...............................................................................................................................................................35
10.2.新建VM项.......................................................................................................................................................... 35
10.2.1. VM信息存RAM ............................................................................................................................... 35 - EQ ..................................................................................................................................................................................... 37
- 1.在线EQ ................................................................................................................................................................ 37
12.音量.................................................................................................................................................................................. 39 - 1.最大音量等级及开机默认音量...........................................................................................................................39
- 1.1.最大音量等级....................................................................................................................................39
- 1.2.默认音量等级....................................................................................................................................39
12.2.发射端音量设置...................................................................................................................................................40
12.3.接收端音量设置...................................................................................................................................................40
13.升级.................................................................................................................................................................................. 42 - 1.测试盒升级...........................................................................................................................................................42
13.2.串口升级...............................................................................................................................................................42
14.距离调试.......................................................................................................................................................................... 44
15.低延时无线麦.................................................................................................................................................................. 47 - 1.编解码参数配置...................................................................................................................................................47
15.2.工作频段配置.......................................................................................................................................................47
15.3.延时配置...............................................................................................................................................................48
15.3.1.延时结构............................................................................................................................................48
15.3.2.延时参数配置....................................................................................................................................48
15.3.3.延时调试............................................................................................................................................49
15.4.自定义数据无线通讯...........................................................................................................................................50
15.4.1. 1T1/1TN .............................................................................................................................................. 50
15.4.2. 2T1 .......................................................................................................................................................52
15.5.无线配对...............................................................................................................................................................53
15.5.1.配对模式............................................................................................................................................ 53
15.5.2.连接配对............................................................................................................................................ 56
15.5.3.广播配对............................................................................................................................................ 57
15.6.无线麦音效...........................................................................................................................................................57
15.6.1.音效开启............................................................................................................................................ 57
16.产测.................................................................................................................................................................................. 59 - 1.关于产测...............................................................................................................................................................59
16.2.测试前置条件.......................................................................................................................................................59
16.3.话筒发射测试.......................................................................................................................................................59
16.4.话筒接收测试.......................................................................................................................................................60
版权所有,侵权必究 4
1. 引 言
1.1.编写目的
该文档为基于AC706N平台开发无线话筒应用的人员提供相应的设计开发文档。也可以为测试无线话筒应用的测试人员提供参考。
文档中详细定义了无线话筒应用的模块功能、 系统的接口和数据属性;对程序的基本结构、 功能模块以及各个程序的名称进行了划分, 以便于无线话筒应用的详细设计和编码。
1.2.术语和缩写词
| 缩写和术语 | 解 释 |
|---|---|
2. SDK开发工具使用说明
2.1.安装包管理工具
2.1.1. 安装包管理器
打开网址1.工具最新版本 — JL Project Documentation (zh-jieli.com)并找到包管理器的下载地址,点
击下载。 下载完成后双击安装包并按照提示安装即可。
版权所有,侵权必究 5
地址:珠海市吉大石花西路 107号9栋综合楼 邮编:519015
电话:0756-6313088 传真:0756-6313081
网站:www.zh-jieli.com
2.1.2. 安装开发所需的配置工具
(1)安装包管理器之后,开始菜单会出现对于的菜单选项。
(2)打开软件点击 “升级”选项卡,勾选需要的软件开发工具并点击下方的“下载”按钮。如果下载安装过的软件被破坏了、或者出现了缺失。可以点击“校验”来校验是否出现缺失或者破损,并从服务器中下载安装对应的正确文件。
版权所有,侵权必究 6
2.1.3.配置工具的使用
(1)打开SDK工程目录,进入\cpu\br29\tools 目录,双击打开“AC706N配置入口.jlxproj”。打开配置工具,在配置工具界面会有多个配置选项卡,可根据自身开发需求进行修改,修改的配置会保存到 “cfg_tool.bin”。详细的配置工具使用可以通过菜单选项【关于】->【帮助】来查看。
版权所有,侵权必究 7
(2)提示音配置在工具的 “提示音配置”选项里面,点击后会出现提示音的配置界面。 目前提示音只支持WTS和MP3格式,需增减或替换提示音前需要先选取对应提示音格式。
(3)双击打开 “AC706N配置入口.jlxproj”后,点击界面下方的 “检测依赖的软件包是否更新”,将会查检查相关配置工具的版本更新情况,如有更新,则下载相应更新即可。
版权所有,侵权必究 8
3. MIC配置开发说明
在每个板级配置头文件(例如:board_ac706n_demo_cfg.h)里面都有配置MIC参数的宏。
3.1. MIC通道配置
AC706N 只有一个ADC模块,ADC模块有五个输入通道,每个通道输入的音频最终会以叠加的形式输出,因此输入的音频最终都会变成单声道音频。 五个输入通道分别对应PB6/PA3/PA4/PB3/PA1 五个输入引脚。可通过配置宏TCFG_AUDIO_ADC_MIC_CHA来选择输入的通道。
3.2. MIC供电模式配置
SDK默认支持三种MIC供电方式,分别是IO供电、BIAS供电和LDO供电。用户可根据硬件设计版权所有,侵权必究 9
选择合适的供电方式。
3.3. MIC模式配置
SDK默认支持单端隔直电容模式、差分隔直电容模式和单端省电容模式。用户可以根据硬件设计选择合适的工作模式。
另外差分隔直电容模式的MIC 引脚配置有些特殊,由于AC706N 的差分输入N端固定为PA4,因此差分隔直电容模式只能配置P端引脚。P端引脚的配置在下图所示的文件中。
版权所有,侵权必究 10
版权所有,侵权必究 11
4. DAC配置
4.1.输出方式设置
DAC 的输出方式默认支持单端输出,差分输出和VCMO输出。用户可通过板级配置.h文件来进行修改。 需要注意的是选择差分输出时,DAC 的输出声道配置只能选DAC_OUTPUT_MONO_L。
4.2.输出声道
SDK 支持单声道、 立体声、 三声道单端输出和四声道单端输出。 其中配置单声道输出时, TCFG_AUDIO_DAC_CONNECT_MODE 只能选择DAC_OUTPUT_MONO_L。
版权所有,侵权必究 12
5.按键
SDK按键目前支持IO按键和AD按键两种。可在板级配置头文件(例如:board_ac706n_demo_cfg.h)的 “iokey配置”和 “adkey配置”项中进行配置。
5.1. IOKEY
5.1.1.连接方式
IOKEY驱动支持两种连接方式:
| 1)一个按键接一个IO; | 2)一个按键接两个IO(互推接法); |
|---|---|
![]() | ![]() |
版权所有,侵权必究 13
5.1.2.参数配置
IOKEY 参数在板级配置文件中(c 文件和 h 文件)进行配置, 如 board_ac706n_demo.c 和 board_ac706n_demo_cfg.h,在h文件中可以打开TCFG_IOKEY_ENABLE宏和结构配置(IO 口和按键连接方式)相关参数,配置结构体参数说明:
配置一个按键只需填充该结构体:![]() | |
|---|---|
| 参数名 | 描述 |
| connect_way | 连接方式支持三种: ONE_PORT_TO_LOW:按键一个端口接地, 另一个端口接IO; ONE_PORT_TO_HIGH:按键一个端口接3.3v, 另一个端口接IO; DOUBLE_PORT_TO_IO:按键两个端口接IO,互推方式。 |
| key_type | key_type 结 构 依 据 connect_way 而 定, 如 果 connect_way 配 置 为 ONE_PORT_TO_LOW 和ONE_PORT_TO_HIGH 只需要配置一个IO;而如果 connect_way配置为DOUBLE_PORT_TO_IO,需要配置两个IO; |
| key_value | key_value指的是按键值,按键被检测到被按下将发送该按键配置的key_value 的值。 |
两种连接方式的配置例子如下:
| 1)一个按键接一个IO配置 | |
|---|---|
| H 文件配置 | ![]() |
版权所有,侵权必究 14
![]() 2)一个按键接两个IO(互推接法) | |
|---|---|
| H 文件配置 | |
![]() |
版权所有,侵权必究 15
5.1.3.按键表映射
在每个板级配置文件夹中都有一个专门存放按键表的目录(key_table)。每个模式都有对应的按键表, SDK 会根据不同的模式映射不同的按键表。 其中 key_value 对应板级配置 C 文件(board_ac706n_demo.c)中的 “.key_value”配置。key_event分别对应短按、 长按、 持续长按、 抬起、双击、三击事件。
版权所有,侵权必究 16
5.1.4.按键表注册
按键表的注册在task_key.c文件中,不同模式跟不同按键表由结构体数组“io_table”产生对应关系。需要增减或修改映射关系都可以通过修改 “io_table”来完成。
5.2. ADĸEY
5.2.1.连接方式
ADKEY 的连接方式如下:
版权所有,侵权必究 17
5.2.2.参数配置
ADKEY配置与IOKEY配置方式类似,在相应H文件和C文件中配置;
配置示例如下:
版权所有,侵权必究 18
| H 文件配置 | ![]() |
|---|
版权所有,侵权必究 19
5.3.按键扫描配置和消息处理
在IOKEY或者ADKEY使能后,按键扫描代码就会注册定时器定时扫描按键是否被按下,按键扫描参数可以在文件key_driver.c 中配置,可供配置的参数如下:
版权所有,侵权必究 20
![]() | |
|---|---|
| scan_time | 按键扫描频率,单位ms,定时器将会按照设定的时间定时扫描IOKEY 或者 ADKEY |
| last_key | 默认初始化为NO_KEY |
| filter_time | 按键消抖时间,计算方式:fileter_time * scan_time (ms) |
| long_time | 按键长按事件判定时间,计算方式:long_time * scan_time (ms) |
| hold_time | 按键按住保持事件判定时间,计算方式:hold_time * scan_time (ms) |
| click_delay_time | 按键等待连击操作延时时间,计算方式:hold_time * scan_time (ms),注意该参数配置会影响按键灵敏度, 同时也会影响连击操作的时间间隔,所以在调试过程中需要根据需要选择一个合适的参数值; |
目前在sdk 中实现了的一些按键通用事件有:
| 按键事件 | 说明 |
|---|---|
| KEY_EVENT_CLICK | 单击事件,在按键被按下经过filter_time时间后松开并经过click_delay_time 时间后如果没有被第二次按下,按键扫描函数会判定为按键单击事件并发布出去。 |
| KEY_EVENT_LONG | 长按事件,当按键被按下经过filter_time时间后并一直被按下,在经过long_time 时间后按键扫描函数会判定为按键长按事件并发布出去。 |
| KEY_EVENT_HOLD | 按下保持事件,当按键被按下经过filter_time 时间后并一直被按下,在经过 hold_time 时间后按键扫描函数会判定为按键按下保持事件并发布出去,发布完之后如果发现按键还被按下,会在经过hold_time-long_time 时间后再次发布按下保持事件。 |
| KEY_EVENT_UP | 抬按事件,在发送完长按事件(KEY_EVENT_LONG)和按下保持事件(KEY_EVENT_HOLD)后,如果按键被松开,按键扫描函数会发布一个抬按事件。 |
| KEY_EVENT_DOUBLE_CLICK | 双击事件,在按键被按下经过filter_time时间后松开并在click_delay_time之前同一按键再次被按下,并经过click_delay_time之后按键没有再次被按下,按键扫描函数会发布一个双击事件。 |
| KEY_EVENT_TRIPLE_CLICK | 三击事件,在按键被按下经过filter_time时间后松开并在click_delay_time之前同一按键再次被按下,并经过click_delay_time之后按键再次被按下,如果往后操作重复上述连击操作,按键扫描函数都会判定为三击事件并发布出去。 |
按键发布消息后,在app层将会收到该消息,app层可以根据该按键消息进行相关处理。 目前SDK 分成两级对按键消息进行处理,第一级为模式自身按键消息的处理。如果当前的按键消息不属于模式自身私有消息,按键消息会流转到第二级公共按键消息处理。具体的只需顺序可参考下面例子:
版权所有,侵权必究 21
5.4.组合按键及多击
5.4.1.组合按键
SDK 中目前只有IOKEY支持组合按键,主要修改点如下:
(1)打开组合按键功能
(2)修改组合按键映射表
版权所有,侵权必究 22
5.4.2.按键多击
SDK 中默认支持单击事件到五击事件的检测。用户只需在iokey_table.c或adkey_table.c 中的对应按键表完善按键事件即可。
5.4.3.某些按键只响应单击事件
该需求可以通过按键值的某一bit进行特殊处理,由于按键值(key_value)目前用 1byte来表示,可支持0 ~ 255个按键,但在大部分应用中用不到这么多按键,因此目前SDK 中使用按键值(key_value)的第7位进行标记,按键扫描时对标记了bit(7)的按键不进行多击判断处理,用户如果需要应用该需版权所有,侵权必究 23
求,只需要在板级配置文件(如board_ac6936a_tws.c文件)中对按键值进行标记即可。
版权所有,侵权必究 24
6. PWM_LED
6.1.功能配置
6.1.1. 单 IO推两个灯
PWM_LED 灯的配置在板级配置.h 文件的 “LED 配置”项中配置。 使用前需要先打开 TCFG_PWMLED_ENABLE宏,并配置推灯引脚和推灯方式。
另外在板级配置.c文件中配置相应的结构体,例如:
6.1.2.双IO推两个灯
双IO推灯与单IO推灯的配置相似,但需要额外多配置一个IO。 可参考下面的例子:
版权所有,侵权必究 25
6.2.功能使用
目前设置灯效可通过函数ui_update_status来实现。该函数支持以下参数输入:
上面的状态对应的灯效可通过板级配置.c文件修改。
版权所有,侵权必究 26
版权所有,侵权必究 27
7. 串口
SDK默认支持单线串口和双线串口通讯。 当串口的TX和RX配置为同一引脚时系统就会默认跑单线串口模式。 SDK 里面提供了一套串口通讯的 demo,用户可通过板级配置.c 文件的宏 ADAPTER_UART_DEMO来开启。另外,对于无线话筒的方案,SDK默认的DEMO支持用单线串口方式让音箱和无线话筒接收芯片之间进行串口通讯,并且音箱在开机的时候可以同时唤醒无线话筒接收芯片,音箱在关机的时候,让无线话筒接收芯片同步关机,这些功能都使用一根线来完成。无线接收端不用通过多余的外围电路来实现开关机,节省硬件成本。
7.1.通过串口实现软开关机
对于无线话筒的方案,SDK默认提供的单线串口方案可实现音箱在开机的时候唤醒无线话筒接收芯片;音箱在关机的时候,让无线话筒接收芯片同步关机。无线接收端软件配置如下:
版权所有,侵权必究 28
音箱 SDK 修改:
在使用该功能前,需要将公版音箱 SDK 的 uart_dev.c 替换成资料中最新的uart_dev.c,再添加新文件 uart_demo.c 到 sdk 中。根据自己使用的音箱 SDK,替换对应芯片型号的文件。
添加新文件 uart_demo.c,并且添加到工程中参与编译。
代码添加。
版权所有,侵权必究 29
版权所有,侵权必究 30
注意:设备收到数据后会起中断,尽量不要在中断里处理数据,而是发消息到线程中处理。
版权所有,侵权必究 31
8.内置充电
8.1.充电配置
在板级配置.h文件中得 “充电参数配置”中可以对是否开启内置充电、 充电电流、充电截止电压等参数进行配置。
8.2.充电事件处理
SDK开启内置充电后,系统会定时检测是否有充电插入和拔出。 当检测到充电状态发生变化后会返回对应事件到app层进行处理。
版权所有,侵权必究 32
注意:用户如果需要对充电流程进行修改,请在对应事件调用的函数中修改。
版权所有,侵权必究 33
9.长按复位
在板级配置.h文件中的 “key配置”里可以对长按复位所使用的IO、 复位时间以及复位电平进行配置。
版权所有,侵权必究 34
10. VM
10.1.读写接口
读接口:
int syscfg_read(u16 item_id, void *buf, u16 len);
写接口:
int syscfg_write(u16 item_id, void *buf, u16 len);
10.2.新建VM项
除了系统自身默认需要存储的vm项外,用户也可以自行增加vm存储项,操作方式是在user_cfg_id.h 中添加新的vm存储项ID,用户新增的ID 需要在 128之后。
10.2.1. VM信息存RAM
由于低延时方案对系统实时性要求比较高,而原来的VM信息存FLASH 的操作需要占用系统不少时间,会导致低延时方案节奏混乱。因此SDK默认使用VM信息存RAM 的方式,在系统运行过程中,VM 的信息会先存储在RAM 中,当软关机或非强制升级前才会把信息转存到FLASH 中。另外, SDK还提供了一组可动态控制VM信息存储位置的接口,用于用户开发过程中灵活控制VM的存储。
版权所有,侵权必究 35
该接口的输入参数为FALSE 时,VM信息存储到RAM 中;为TRUE 时,VM信息存储到FLASH 中。
为了保证低延时运行正常, SDK默认在开启无线传输时将VM信息存储位置切换到RAM,关闭无线传输后,将存储位置切回到FLASH。
版权所有,侵权必究 36
11. EQ
11.1.在线EQ
在线EQ功能需要在板级配置.h文件开启TCFG_EQ_ENABLE宏和TCFG_EFFECT_TOOL_ENABLE 宏,默认通过DM和DP 口与工具进行通讯。通过USB连接小机和PC,打开配置工具,打开调音工具,端口选择 “USB 串行设备”。
点击打开,进入eq编辑界面。
版权所有,侵权必究 37
一般EQ文件是由多个节点组成,每个节点可以调试对应的音效,用户可根据开发需求修改对应节点。
版权所有,侵权必究 38
12.音量
12.1.最大音量等级及开机默认音量
12.1.1.最大音量等级
最大音量等级相同的最大音量最多被划分为多少等级, SDK默认为 16级,也可以根据自身需求修改。
12.1.2.默认音量等级
SDK默认支持设置默认音量,每次开机都会使用设置的值。 当默认音量的宏为0时,系统音量自动使用VM 的音量值。
版权所有,侵权必究 39
12.2.发射端音量设置
由于发射端不经过DAC输出,因此无法使用硬件数字音量来调节,只能使用软件数字音量进行调节。
当.vol_list为0时使用库里默认的音量表。如果需要使用自己定义音量表,则对.vol_list赋对应的音量表指针值。另外数字音量表需要适配最大音量等级。
12.3.接收端音量设置
接收端的音量设置需要根据音频的输出方式来决定。当音频从DAC输出时,音量类型可以使用硬件数字音量;当音频从IIS输出时,音量类型必现选软件数字音量。 另外数字音量表需要适配最大音量等级。音量类型配置如下图所示。
版权所有,侵权必究 40
版权所有,侵权必究 41
13.升级
13.1.测试盒升级
使用测试盒进行无线升级需要先将测试盒更新到最新版本。升级前先确认需要升级的设备工作的频段,并根据下图选择对应的配置。保存配置并重启测试盒,将测试盒的拨码开关第六档拨上。此时便可以搜索设备进行升级。升级前小机要处于非连接非音频广播的状态。
13.2.串口升级
SDK 默认支持使用内置充电 口( VPWR5V)进行串 口升级。 使用该功能需把 SDK 的 TCFG_TEST_BOX_ENABLE宏打开,然后使用测试盒的串口升级模式升级即可。
版权所有,侵权必究 42
版权所有,侵权必究 43
14.距离调试
结合无线话筒应用情景,话筒接收端的天线一般都会与一颗带蓝牙的DSP天线靠近,甚至有可能是共板设计,那么可能会面临两个距离问题,分别是话筒发射与接收之间的距离问题、手机与音箱蓝牙距离问题。针对这两个距离性能调试提出了以下调试建议,并将调试过程测试的数据记录到【无线话筒距离性能测试跟踪表.xls】中:
(1)硬件画板明确好无线话筒RX 的天线与音箱主控DSP蓝牙天线的方向和距离,如果条件允许越大越好;
(2)硬件物理条件确定好之后,测试音箱两颗芯片的RF性能,确认是否有频偏、 天线不匹配、 整机辐射指标差、存在方向性等问题;
(3)硬件物理条件和RF指标都确认好之后,可以准备整机进行测试,先分别测试话筒单独工作的极限距离和经典蓝牙单独工作的极限距离;
(4)结合3 的测试结果,先判定是否合理,如果天线设计和整机辐射测试都极好的情况下,实际测试并不能达到预期的距离要求,要分析下测试的环境是否存在严重的其他无线射频干扰信号,考虑尝试换一个测试环境进行测试,尽量排除外围干扰的影响因素引进的不确定因素。注意:结合软件配置的频段范围和实际测试环境对应频段干扰情况综合分析。
(5)如果极限距离达到预期的要求,开始测试无线话筒与经典蓝牙同时工作的情景,需要两位测试人员,其中一位在近端音箱听,另外一位移动拉距离
(6)拉距离的测试人员一手拿着两个话筒(先将话筒静音),一手拿着手机(手机播放音乐),开始拉距离测试,靠近音箱端的测试人员听音箱播放手机音乐卡顿情况,每走到某个位置站定 10 秒左右,当开始出现持续卡顿,记录卡顿位置作为手机距离,如果站定能维持稳定不卡顿,继续拉距离;
(7)拉距离的测试人员一手拿着两个话筒(可以是喊话,也可以是播放固定音频),一手拿着手机(音乐声音尽量小声但并非暂停,一定要保证是播放状态),开始拉距离测试,靠近音箱端的测试人员听音箱播放话筒声音卡顿情况,每走到某个位置站定 10秒左右,当开始出现持续卡顿,记录卡顿位置作为手机距离,如果站定能维持稳定不卡顿,继续拉距离;
(8)结合6和7测试结果,如果话筒距离不能达到产品要求,可以尝试以下修改:
1 调整发射功率。 SDK支持高功率表和低功率表两种功率配置,用户可通过宏来进行配置。
2 调整码率。 SDK默认码率为84Kbps,建议码率不要超过92Kbps,码率调整也可以适当考版权所有,侵权必究 44
虑采样率同步调整(保证同样的压缩比)。如需调整码率,TX和RX要同时修改。
3 改用JLA编码格式。SDK默认使用JLA_LL格式,JLA_LL格式编码出来的数据长度比JLA 格式更长,数据越长越容易在传输中被干扰。 因此可以通过修改编解码格式来减少数据长度。
4 提高延时。对于 1T1/1TN 的应用, 由于低延时的发包间隔较短,所有重发都会在短时间内完成。 当遇到短时间的高强度信号干扰时,存在所有重发都被干扰的情况。 因此增大延时和发包间隔可以更好地避免空中的短时间高强度信号干扰情况。SDK默认配置为低延时模式,用户可以将下图的宏设0,就可以切换为较高的延时参数配置。
(9)结合6和7测试结果,如果经典蓝牙的距离不能达到产品需求,可以尝试以下修改音箱DSP参数调整:
1 SBC bitpool调整,大部分公版音箱SDK 的sbc bitpool为53,可以尝试bitpool为39(SBC 的音质尚可,结合实际案子需求,斟酌调整),音箱bitpool调整参考如下截图:
版权所有,侵权必究 45
2 调整经典蓝牙的A2DP延时,可以适当改大一些来提升经典蓝牙的距离(结合实际案子需求, 斟酌调整),音箱A2DP延时调整参考如下截图:
版权所有,侵权必究 46
15.低延时无线麦
15.1.编解码参数配置
编解码可配置的参数有采样率、 帧时长、码率和声道数。这些参数都可以在板级配置.h文件中进行修改。其中帧时长配置需要满足以下条件:
(1) SDU_PERIOD_US能被帧时长整除;
(2) 帧时长大小不能超过SDU_PERIOD_US;
(3)根据码率和帧时长的配置算出编码后数据大小要在一定范围内,单声道不小于20Byte,双声道不小于40Byte。
帧时长和码率是决定编码后数据量大小的参数。其计算公式是: encode_len = frame_len * bit_rate / 1000 / 8 / 10
以上图的参数为例,可计算出编码后的数据大小为:
encode_len = 25 * 84000 / 1000 / 8 / 10 = 26.25Byte 由于向0取整的原则,encode_len = 26Byte
15.2.工作频段配置
SDK默认支持配置BLE工作频段,可以配置的工作频段有2.3G、2.4G和2.5G。这些工作频段可通过lib_btctrler_config.c 中进行修改。
版权所有,侵权必究 47
15.3.延时配置
15.3.1.延时结构
整条通路的延时是从数据输入到数据数据输出所占用的时间,包括通路各个模块运行所消耗的时间以及模块内固定的数据存所占用的时间。无线mic从发送端数据输入到接收端播放的流程如下图所示:
(1) ADC data generation : ADC 准备PCM数据。
(2) Effect:数据处理。
(3) Encode: PCM数据编码 。
(4) BT tx->rx : 蓝牙取编码数据到从机接收到数据。
(5) Decode : 解码数据。
(6) Sync : 同步播放控制。
(7) DAC: 播放数据。
15.3.2.延时参数配置
延时的参数配置有两个。一个是发送端延时配置,另一个是接收端延时配置。发送端延时在broadcast.c 文件中。如果在发送端添加数据处理等模块。 需要根据添加模块所消耗的时间适当增大此处延时。
版权所有,侵权必究 48
live_stream_player.c 中支持超低延时设置,如果这个宏设置为0,将会根据解码参数动态匹配延时。如果在解码后的pcm 数据添加处理模块,需要加到同步节点的后面。并根据添加模块所消耗的时间适当增大此处延时。
15.3.3.延时调试
在增加数据处理模块后,出现声音不正常的情况,可以根据打印提示进行debug,如果发送端打印“^”字符,说明蓝牙发送未取到数据,需要增大发送端延时。增加延时时,可以以 100us为步进进行调试。直到发送段不在打印 “^”字符如果接收端出现打印 “u”字符,说明短解码播放的延时设置偏低。需要增大接收端延时。 同样可以以 100us为步进进行调试。直到发送段不在打印“u”字符,如果没有打印“u”字符,但是录出来的声音波形,有轻微的不连续。也可先增大接收端延时,测试是否是延时设置不够导致。增大延时后如果仍有问题,则说明不是延时设置的问题。
版权所有,侵权必究 49
15.4.自定义数据无线通讯
15.4.1. 1T1/ 1TN
SDK默认提供了一个TX 向RX发送自定义数据的机制。 目前SDK提供了2个Byte大小的空间给自定义数据的传输使用。客户可根据开发需求制定通讯数据,并通过相关接口更新到蓝牙底层进行发送。使用自定义数据发送功能需要在板级配置.h文件中打开BROADCAST_DATA_SYNC_EN宏。
通过下面接口可以更新需要发送的数据。
自定义数据更新后会在下次BLE广播时发送出去。
版权所有,侵权必究 50
下面接口为RX端接收自定义数据的地方,用户可以在里面对数据进行解析和处理。
由于自定义数据是周期发送的,为了避免因RX端重发收到相同数据而不断执行重发操作造成系统资源浪费,SDK默认添加了一套数据过滤机制。 当RX端接收到自定义数据时会先跟上一次接收到的数据进行比较,如果数据一致,则不做处理;如果数据不同,则返回最新的数据到应用层。 下面图片所示函数就是RX端对自定义数据进行比较处理的地方。
版权所有,侵权必究 51
15.4.2. 2T1
SDK 默认提供了一个 TX 和 RX 互相发送自定义数据的机制。用户可通过SDK 提供的自定义数据发送接口发送自定义数据。具体使用例子如下:
版权所有,侵权必究 52
15.5.无线配对
15.5.1.配对模式
SDK默认支持两种配对方式,一种是连接配对,一种是广播配对。连接配对主要为了保证广播期间只会有一台设备监听TX端广播;二广播配对是为了保证只有配对过的设备才能监听TX端广播,防止交叉监听。 以下是配对的相关接口。
版权所有,侵权必究 53
TX端配对事件回调处理接口。
版权所有,侵权必究 54
RX端配对事件回调接口。
版权所有,侵权必究 55
在SDK 中默认广播音频前都先经过连接配对,而广播期间中途断开设备也会默认回到连接配对模式。用户也可以通过修改板级配置.h文件来修改配对方式或关闭配对功能。
15.5.2.连接配对
开启连接配对模式需要调用函数app_broadcast_enter_pair,并且输入参数传 1。
连接配对模式每次配对都只跟一台设备配对,配对成功后TX和RX都会自动退出配对模式并返回退出配对模式事件。用户也可以在没有配对上前通过调用退出配对的接口来手动退出。
版权所有,侵权必究 56
15.5.3.广播配对
广播配对的开启和退出接口与连接配对一样,但函数app_broadcast_enter_pair 的输入参数为0。 TX 端开启广播配对后,在可配对范围内,如果有RX端也处于广播配对模式,RX端会接收到TX端的配对码,并自动退出配对模式。而TX端只能通过手动调用函数app_broadcast_exit_pair来退出配对模式。
15.6.无线麦音效
15.6.1.音效开启
SDK默认支持在TX端或RX端做无线麦音效处理,通过板级配置.h 的宏可进行选择。
目前SDK无线麦支持以下音效,使用时需使能对应的宏。
版权所有,侵权必究 57
版权所有,侵权必究 58
16.产测
16.1.关于产测
针对无线话筒应用方案,接收端由于种种因素,没有办法通过手动的方式触发进入产测模式。 目前大部分方案商采用自由配对的方式,在产线测试,很容易出现乱连的情况,导致生产困难,生产效率低等情况。为了提高产线测试效率, 以下对话筒发射测试和话筒接收测试进行详细的介绍。
16.2.测试前置条件
以下(三) (四)的话筒发射测试和话筒接收测试,需要工厂确保TX(话筒)、RX(音箱)分产线单独进行,提高产线效率。
16.3.话筒发射测试
(1)产线测试区域,提前放置几台固定的测试音箱(跟量产机一样的,保证测试过程一直开机);
(2)待测话筒开机,然后测试人员用手轻轻拍打,或者喊话,或者将开机的话筒放在固定的发声源卡位上,能正常发声的(PASS),不能正常发声的(FAIL);
(3)测试完毕关机(固定测试音箱有限, 关机主要是保证后面开机的话筒能跟音箱连接上);(4)详细操作如图(话筒测试过程不需要特殊修改程序):
版权所有,侵权必究 59
话筒发射测试示意图
16.4.话筒接收测试
(1) RX测试产线,提前预设好一个特殊话筒并开机(后期会提供专门的产测工具)。SDK默认可以通过宏配置将TX变成一个特殊的音频广播设备。
如果需要修改产测名字则需要TX和RX设备同时修改。RX设备的产测名字可通过下图进行修改。
版权所有,侵权必究 60
(2)将待测的RX对应音箱开机,支持同时开多个(理论上,不受个数限制);另外,还可以通过修改信号强度的阈值来过滤信号较弱的设备,避免产线交叉配对广;
(3) 当音箱端能听到预设话筒发出来的测试提示音,表示被测试的RX正常工作(PASS),如果被测试 RX对应的音箱开机之后没有听到预设话筒发出来的测试提示音,表示被测试的RX不正常工作(FAIL);
(4)详细操作如图:
话筒接收测试示意图
版权所有,侵权必究 61







