SQ96B87 (V98) 高性能 2.1 声道智能蓝牙音响开发手册

项目档案概览

  • 项目标识:sq96b87_x5_sdk_v98_2EQ / 产品代号 V98(cardoO Speaker Xtreme)
  • 核心平台:杭州士兰微电子(Silan)SQ96B87 高性能音频 SoC(32位 RISC-V + HiFi4 DSP)
  • 声学架构:硬件 2.1 声道(主左 + 主右 + 独立重低音)+ 双麦克风 K 歌
  • 通信生态:BLE 智控(新意诚协议 V2.1)+ PC 调音(BTBox 调音协议 v1.01.07)
  • 所属分类:专题手册导航 · 任务产物归档

快速导览看板

常用章节快速跳转


1. 项目背景与产品全貌定义

本项目为基于杭州士兰微电子(Silan)SQ96B87 芯片打造的旗舰级 2.1 声道便携式/桌面智能蓝牙卡拉OK音响系统,项目代号 V98(工程标识 sq96b87_x5_sdk_v98_2EQ,出厂蓝牙广播名称 cardoO Speaker Xtreme,BLE 设备名称 BLE_V98)。

1.1 产品核心定位与功能矩阵

功能维度特性支持与配置说明
产品形态2.1 声道立体声 + 独立超重低音 + 双麦卡拉OK + 炫彩音乐氛围灯兼顾高保真音乐回放与专业户外/家用 K 歌体验
声学架构左右主声道(DAC0 L/R)+ 独立重低音声道(DAC1_L / MDAC)硬件三通道 24-bit 独立模拟输出,配合三段式/多频段 DRC 动态压缩
音源输入蓝牙 5.3 (A2DP/HFP)、AUX-IN (PB10/PB11)、U盘播放、TF卡播放、USB Audio声卡全输入源统一进入 HiFi4 DSP 进行音频矩阵重采样与声学算法处理
卡拉OK系统双麦克风输入(MIC0 L/R 差分)、全功能专业 DSP 算法移频防啸叫、智能噪声门限、10段麦克风独立EQ、混响/回声引擎、变声/变调、闪避消人声
无线互联TWS(True Wireless Stereo)真无线立体声对箱互联支持左右声道自动协商、按键状态同步、电池电量同步与主从无缝切换
灯光与交互WS2812 SPI 单总线幻彩灯驱动 + 16级音量旋钮 + 12个硬件AD按键支持音乐节奏动态瀑布流、呼吸渐变、跑马灯等4种预设炫彩模式
智能控制手机端专属配套 APP 控制(新意诚协议 V2.1)支持 BLE 广播反解 MAC、低延时控制、15段音乐EQ/10段麦克风EQ微调、定时关机等
音效调校支持 GDE(Graphical Development Environment)实时调音17组预置调音算法参数固化于 Flash,支持上位机动态串口注入与回读

2. 芯片平台与核心硬件架构(SQ96B87)

SQ96B87 是一颗高集成度、专为高端音频系统定制的蓝牙 5.3 音频 SoC,采用先进的双核异构计算拓扑:

flowchart TD
    subgraph SoC["士兰微 SQ96B87 高性能双核音频 SoC"]
        direction TB
        subgraph Compute["双核异构计算单元"]
            CPU["32-bit RISC-V 处理器<br>(最高 160MHz / 带硬件 FPU)<br>• 系统主状态机 • 蓝牙协议栈 • 外设管理"]
            DSP["Tensilica HiFi4 Audio DSP<br>(最高 300MHz 浮点音频内核)<br>• 硬件EQ • 多段DRC • 混响回声 • 移频防啸叫"]
        end

        subgraph Memory["存储子系统"]
            SRAM["892KB 片上高速 SRAM<br>(含 RISC-V/DSP 共享 HSMEM)"]
            Flash["2MB 片上 SPI Flash<br>(支持 4KB 扇区擦除与双线加速)"]
            PSRAM["SPI PSRAM 控制器<br>(外部高速存储扩展接口)"]
        end

        subgraph Audio_Analog["音频模拟前端 (CODEC)"]
            ADC["4x 24-bit Audio ADC<br>(SNR 102dB, THD+N -80dB)<br>麦克风差分采集 + Line-in 输入"]
            DAC["3x 24-bit Audio DAC<br>(SNR 106dB, THD+N -87dB)<br>2.1 声道独立模拟高保真输出"]
        end

        subgraph Peripherals["外设通信接口"]
            RF["Bluetooth 5.3 双模射频<br>(BR/EDR + BLE, 支持 LE Audio)"]
            USB["USB 2.0 全速 OTG<br>(U盘Host / USB声卡Device / HID)"]
            SDIO["2x SD 卡 Host 控制器"]
            UART["3x 全双工 UART + 1x 高速 HUART"]
            IO_GRP["11x 10-bit SARADC • 2x I2S • 2x SPI • 2x IIC • IR"]
        end

        Compute <--> Memory
        Compute <--> Audio_Analog
        Compute <--> Peripherals
    end

2.1 芯片硬件电气指标

  • 封装形式:QFN-68(,引脚间距 ),底面具备大面积散热及系统接地焊盘(EPAD/PIN 0)。
  • 供电电源架构:
    • 输入电源 :,单节锂电池直供;
    • 片上 LDO 输出():供外设 IO 上拉及低功耗控制,最大驱动能力 ;
    • 片上 BUCK/LDO 输出():供射频内核及基带核心,高效率降压架构;
    • 模拟音频 DAC 供电:片上内置 滤波与内部 无电容参考电路(DAC_VCM_CAPLESS_EN),大幅削减开机冲击底噪。
  • 高保真音频 CODEC 性能:
    • DAC 模拟通道:,支持 采样率;典型信噪比 ,总谐波失真 。
    • ADC 模拟通道:,典型信噪比 ,总谐波失真 。

2.2 核心引脚映射表

点击展开 / 折叠:QFN-68 核心引脚功能映射与复用表

管脚号信号名称I/O 类型本产品主要复用功能与硬件连接硬件说明
0GNDGround芯片底部散热焊盘主地系统模拟/数字主参考地
6PB5I/OWK0 / ADC12 / 低功耗唤醒管脚预留休眠按键/外部唤醒输入
7PB0I/OADCCH_PB0 / WK1 / PWM0SAR-ADC 输入通路通道 1
10PB6I/OWK4 / IR / TMRCAP3备用红外接收 / 定时器捕获
11PB7I/OWK5 / IO_PB7低功耗休眠主要唤醒 IO(USER_SLEEP_WK_EN)
12PA8I/OOSCO-32K / UART1_RX32.768kHz 晶振输出或调试串口 1
13PA9I/OOSCI-32K / UART1_TX32.768kHz 晶振输入或调试串口 1
15VDDIOPWR3.3V 系统数字 IO 电源输出外围电路供电/上拉参考基准
16VCCPWR主电源供电输入(3.0V ~ 4.5V)连接锂电池或系统电源轨
17VDDBTPWR蓝牙射频/内核 1.2V 供电外部接滤波去耦电容
20PA10I/OSPDIF1 / PWM0光纤音频输入/脉宽调制输出
23PA13I/OERJI_MUTE(前级静音控制引脚)开机静音拉低,系统就绪后拉高
24PA14I/OAUX2_L / ADCCH_PA14 (ADC0)备用 AUX 左声道模拟输入通道
25PA15I/OPA15_RGB(WS2812 幻彩灯 SPI 驱动)800kHz 专用时序单总线控制输出
26PB8I/OAMP_EN2 / MUTE_OUT(功放使能与静音)功放使能 IO,开机上电初始化防 POP
27VDDDACPWRDAC 模拟核心电源输入内部低噪声 LDO 供电滤波
28DAC1_LA_OUTDAC BASS(2.1 独立超重低音声道输出)连接低音通道功率放大器
29, 30DAC0_RA_OUTDAC0_R- / DAC0_R+(主右声道输出)连接立体声右声道功率放大器
31, 32DAC0_LA_OUTDAC0_L- / DAC0_L+(主左声道输出)连接立体声左声道功率放大器
33VCMPWR内部模拟偏置基准中心电压输出外部接滤波储能旁路电容
34AGNDGround模拟声学低噪洁净参考地严禁与大功率数字高频回路直接单点互串
35, 36MIC1_LA_IN麦克风 1 差分输入(MIC1_LN / MIC1_LP)主话筒 1 音频采集通路(ADC0)
37, 38MIC1_RA_IN麦克风 2 差分输入(MIC1_RN / MIC1_RP)副话筒 2 音频采集通路(ADC0)
41, 42PB10,11A_INAUX0_L / AUX0_R(Line-in 左右输入)经过片上 SDADC(ADC1)进入 DSP 算法
43PB12I/OADKEY2(按键通道 2:MODE / EQ / RM)外部电阻分压键盘扫描通道 12
44PB13I/OADKEY1(按键通道 1:PLAY / VOL- / VOL+)外部电阻分压键盘扫描通道 13
49, 50BT_OSCA_IN/OUT24MHz 射频主晶振输入与输出引脚提供射频与系统 PLL 高精参考源
52BT_ANTA_RF50 欧姆特征阻抗蓝牙射频天线引脚匹配 LC 滤波天线射频回路
53RESETA_IN芯片低电平硬件复位输入外部上拉或硬件 RC 延时复位
59PE8I/OUART2_G2_PE8 (RXD)GDE 音效实时调优串口 RX 通信
60PE9I/OUART2_G2_PE9 (TXD)GDE 音效实时调优串口 TX 通信
63PE12I/OCHG_DET(外部充电状态硬件检测)高电平代表正在充电,低电平未充
64PE13I/OADCCH_PE13(高精度单节锂电池分压采样)经两电阻分压输入,检测电池真实端电压
65, 66PB3, 4I/OUSBDP / USBDM(全速 USB 2.0 信号线)支持 U 盘播放 / USB Audio / 调试通讯

3. 2.1 声道声学与硬件电路拓扑

本系统在硬件声学通路与芯片 DSP 之间建立了极高规格的 硬件 2.1 声道分频拓扑(宏定义为 AUDIO_HW_OUT_MODE1):

flowchart LR
    subgraph In["全音源输入前端"]
        BT["蓝牙 5.3 音频 (A2DP)"]
        AUX["Line-in 模拟 (PB10/PB11)"]
        USB["U 盘音乐 / USB 声卡"]
        SD["TF 卡本地音乐"]
        MIC["双麦克风输入 (MIC0 L/R)"]
    end

    subgraph DSP_Proc["HiFi4 DSP 算法核心"]
        Matrix["音频矩阵解复用与混音"]
        subgraph Music_Chain["主音乐链路 (List 6/7)"]
            MEQ["15段参量 EQ"] --> MDRC["多频段 DRC 防削波"] --> VBass["虚拟低音增强"]
        end
        subgraph Bass_Chain["独立超重低音链路 (List 11)"]
            BEQ["5段重低音专用 EQ"] --> BDRC["低音多段动态压缩"]
        end
        subgraph Mic_Chain["卡拉OK人声链路 (List 0/1/5)"]
            FFS["移频防啸叫"] --> Gate["智能噪声门"] --> MicEQ["10段麦克风 EQ"] --> Reverb["专业混响与回声"]
        end
    end

    subgraph Out["2.1 模拟输出与功率放大"]
        DAC_L["DAC0_L (Pin 31,32)<br>主左声道"] --> AMP_L["左声道功率放大器"] --> SPK_L["主左全频扬声器"]
        DAC_R["DAC0_R (Pin 29,30)<br>主右声道"] --> AMP_R["右声道功率放大器"] --> SPK_R["主右全频扬声器"]
        DAC_M["DAC1_L (Pin 28 / MDAC)<br>独立重低音声道"] --> AMP_M["重低音独立大功率功放"] --> SPK_M["超重低音扬声器"]
    end

    In --> Matrix
    Matrix --> Music_Chain
    Matrix --> Bass_Chain
    Matrix --> Mic_Chain
    Music_Chain --> DAC_L & DAC_R
    Bass_Chain --> DAC_M
    Mic_Chain --> DAC_L & DAC_R & DAC_M

3.1 模式参数与输出分配细节

  1. 左右主声道():
    • 对应宏:OUT_12CH DAC_OUT。
    • 芯片内部经由 SRC1 音频流送入 DAC0_L 与 DAC0_R。
    • 包含独立模拟增益和数字音量衰减阶梯(,步长 ,映射自系统 级音量表)。
  2. 重低音声道():
    • 对应宏:OUT_34CH DAC_OUT,且使能 MDAC_BASS_EN 1。
    • 混音源:LRDAC_TO_MDAC_EN 3(取 混合信号输入至低音通道)。
    • 芯片内部经由 MDAC 单元控制其独立增益寄存器 MDACVOLCON,并直接推向 DAC1_L(PIN 28)。
  3. 输出增益控制寄存器(硬件级):
    • DACVOLCON(地址 SFR19_BASE + 0x31*4):主通道数字/模拟音量控制;
    • MDACVOLCON(地址 SFR19_BASE + 0x22*4):重低音通道数字音量控制;
    • SRC1VOLCON(地址 SFR19_BASE + 0x39*4):采样率转换器 1 音量增益寄存器。

4. SDK 软件架构与代码工程组织

本项目采用士兰微专门针对高端音响打造的 X5 操作系统与音频构架,源码层次分明,分为 BSP 外设驱动层、中间件模块层、音频 DSP 算法接入层、应用模式状态机与通信协议层。

sq96b87_x5_sdk_v98_2EQ/
├── bsp/                           # 板级外设驱动(底层硬件抽象层)
│   ├── bsp_uart.c / .h            # 串口驱动(UART0/1/2,波特率最高达 1.5Mbps)
│   ├── bsp_saradc.c / .h          # 逐次逼近型 ADC 采样(按键、电池等通道采集)
│   ├── bsp_i2s.c / bsp_iis_ext.c  # 双路 I2S 音频接口配置
│   ├── bsp_i2c.c / bsp_spi.c      # 软硬件 I2C 与 SPI 控制总线
│   ├── bsp_port_int.c             # GPIO 引脚中断管理
│   ├── bsp_param_analysis.c       # 音效与系统参数序列化解析器
│   └── bsp_hdmi.c / bsp_ir.c      # HDMI-CEC 与红外驱动
├── modules/                       # 核心业务中间件模块
│   ├── audio/                     # 音频底层支撑库
│   │   ├── bsp_dac.c / .h         # DAC 初始化、音量换算表、MDAC 注册
│   │   ├── bsp_eq.c / .h          # 硬件 EQ / 软件 EQ 在线调优驱动
│   │   └── bsp_aux.c / .h         # 模拟 AUX 输入管理与 SDADC 路由
│   ├── bluetooth/                 # 蓝牙核心协议栈及上层应用
│   │   ├── app/ab_mate/           # 智能 APP 协议栈实现(重点)
│   │   │   ├── ab_mate_app.c      # 协议解析、分发、状态机、音效/模式调度
│   │   │   ├── ab_mate_tws.c      # TWS 对箱状态与音量/电量全双工同步
│   │   │   ├── ab_mate_ota.c      # BLE 固件空中升级(FOTA)
│   │   │   └── ab_mate_app.h      # 协议 ID、结构体与命令映射
│   │   └── bt_app.c               # 经典蓝牙 A2DP / HFP / AVRCP / SPP 事件总线
│   ├── fs/                        # FAT 文件系统支持(U盘与 TF 卡音乐文件系统)
│   ├── music/                     # 音乐解码器控制(MP3 / AAC / WAV / FLAC / APE)
│   └── key/                       # 状态机去抖动、多击识别与长按检测
├── functions/                     # 系统顶级业务模式状态机(模式引擎)
│   ├── func.c / .h                # 模式管理器(主消息循环与事件分发)
│   ├── func_bt.c                  # 蓝牙工作模式状态机(配对/播放/通话)
│   ├── func_music.c               # U盘 / SD卡 本地播放模式
│   ├── func_aux.c                 # AUX 线路输入模式(SDADC 与 DSP 算法串接)
│   ├── func_usbdev.c              # USB 声卡 / 读卡器模式
│   ├── func_lowpwr.c              # 低功耗休眠(Sleep)与关机(Powerdown)
│   └── sfunc_record.c             # 本地录音与卡拉OK录音引擎
├── projects/standard/             # 目标产品编译主工程
│   ├── config.h                   # 【全局系统功能总宏配置文件】(极其关键)
│   ├── main.c                     # 系统初始化起点、全局变量及主入口
│   ├── port/                      # 硬件硬件接口适配层(引脚定义与特定板级驱动)
│   │   ├── port_key.c             # ADKEY 电阻阻值表与键码映射
│   │   ├── port_mute.c            # 功放使能与静音时序控制
│   │   └── port_pwm.c             # PWM 及 WS2812 时序生成
│   ├── app.cbp                    # CodeBlocks 编译工程文件
│   ├── ram.ld                     # RISC-V 链接器内存分布描述脚本
│   └── Output/bin/                # 编译生成目标、配置工具与音效数据
│       ├── app.bin / app.dcf      # 固件目标文件与打包发布镜像
│       ├── Settings/V98.setting   # 固件出厂参数配置表(配置工具存档)
│       └── res/                   # 固件内嵌音频提示音、字库与音效文件
│           ├── ae_para/           # 17 组音效算法预置文件(para00.bin ~ para16.bin)
│           └── hifi4/sram.bin     # HiFi4 DSP 协处理器算法固件镜像(192KB)
└── 打印日志.txt                   # 开发板实测上电全时序串口抓包追踪记录

5. HiFi4 DSP 音频算法引擎与音频路由链路深度剖析

5.1 音效链路(List ID)拓扑与分配

在士兰微 DSP 体系中,音频信号处理链路被精细地抽象为以 List ID 编址的独立算法链条:

List ID链路用途包含的关键算法节点典型支持段数/规格
0MIC1 主麦克风链路噪声门限 移频防啸叫 10段参数EQ 动态压缩器 DRC 变声/变调均衡器 10~15 段,支持低切/高切
1MIC2 副麦克风链路噪声门限 移频防啸叫 10段参数EQ 动态压缩器 DRC 变声/变调与 MIC1 独立调校,防左右串扰
3FBC 双麦叠加抑制双麦声学信号相位叠加自适应滤波抑制消除驻波与声学正反馈
4MIC 专有音频路由麦克风处理后干声与湿声矩阵配置控制麦克风输出至各扬声器的比例
5混响/回声引擎(Reverb & Echo)湿度/房间大小 预延时 混响滤波器 回声衰减器延时范围 ,支持高低通阻尼滤波
6音乐左声道(Music L)15段参量EQ 多频段动态压缩 DRC 虚拟低音 VBass精细重构音乐中高频清晰度
7音乐右声道(Music R)15段参量EQ 多频段动态压缩 DRC 虚拟低音 VBass与左声道参数对称或针对腔体不对称补偿
8全局主音频矩阵路由(Route)将音乐、混响湿声、麦克风人声按权重混合分发至各输出通道0x60 矩阵指令,决定最终输出听感
9主输出左声道(Master L)31段超精密图示/参量EQ 系统延时对齐 限制器 Limiter终极防削波,音箱最终出音修正
10主输出右声道(Master R)31段超精密图示/参量EQ 系统延时对齐 限制器 Limiter终极防削波,音箱最终出音修正
11独立低音通道(Subwoofer Bass)5段低通专用EQ 相位倒转() 低音限制器独立重低音箱体声学校准
20卡拉OK消人声专线(VOC)人声中心消除滤波算法(Vocal Remover)强度 级可调

5.2 算法配置存储规范(ae_para 与 paraXX.bin)

系统开机时,RISC-V 会从片上 Flash 的 0x180000 偏移处载入预置算法文件。共支持 17 组(para00.bin 为默认组,para01.bin ~ para16.bin 对应不同场景如室内、户外、摇滚、人声模式):

算法配置文件的首部硬性约束

  1. 第一条必须为系统延时配置(0x70):
    • 字节 0: 0x70;字节 12: Echodelay(如 F4 01 即 500ms);字节 34: EchoPredelay(如 96 00 即 150ms);字节 5~6: ReverbPredelay(如 C8 00 即 200ms)。
  2. 第二条必须为 EQ 各链段数声明(0x71):
    • 字节 0: 0x71;字节 1: AUX 段数(0x0A 即 10 段);字节 2: MIC1 段数(0x0F 即 15 段);字节 3: MIC2 段数(0x0F);字节 4: 主输出左(0x1F 即 31 段);字节 5: 主输出右(0x1F);字节 6: 低音输出(0x05 即 5 段)。
  3. 工程极重要约束:所有 para00.bin 至 para16.bin 文件中的 0x70 与 0x71 配置参数段必须 100% 绝对一致,否则切换音效组时会导致 DSP 堆栈指针失常或声音瞬态爆音。

6. 移动端 APP 蓝牙通信协议全景规范(V2.1)

音响通过 BLE 低功耗蓝牙服务与手机配套 APP(新意诚平台 / CardoO 体系)进行高频全双工通信。

6.1 BLE 服务与广播特征定义

  • Service UUID:0000FF12-0000-1000-8000-00805F9B34FB(音响主控制服务)
  • Write UUID:0000FF13-0000-1000-8000-00805F9B34FB(APP 发送指令到音响)
  • Notify UUID:0000FF14-0000-1000-8000-00805F9B34FB(音响主动上报状态及命令应答到手机)

BLE 厂商自定义广播(ADV Manufacturer Data)

字节偏移字段名称字节值 / 长度字段含义与解析规则
0Length1 Byte本字段及后续负载长度(通常为 0x1E)
1Type0xFF (1 Byte)广播数据类型:Vendor Specific(厂商自定义格式)
2 ~ 3CID0x444D (2 Bytes)公司标识码(固定 0x444D)
4 ~ 5BID0x0001 (2 Bytes)品牌 ID(Brand ID)
6 ~ 7PID0x0001 (2 Bytes)产品 ID:0x0001 代表 V98 系列(0x0002=V75, 0x0003=V90)
8STATE1 Byte经典蓝牙状态:0x00=经典蓝牙未连接,0x01=经典蓝牙已建立连接
9 ~ 14MAC6 Bytes经典蓝牙物理 MAC 地址:每个字节经过异或 0x4B 加密,接收端需逐字节异或 0x4B 还原真实 MAC
15 ~ 30RESERVE16 Bytes系统预留,固定填充 0x00

6.2 APP 数据帧物理结构

+------------+------------+-------------+-----------------------+--------------------+---------------------+
| 帧头 Head  | 命令字 ID  | 状态码 Stat | 负载长度 Length (BE)  | 数据内容 Data      | 校验和 CRC16-CCITT  |
|   (0xFE)   |  (1 Byte)  |  (1 Byte)   |       (2 Bytes)       |     (N Bytes)      |      (2 Bytes)      |
+------------+------------+-------------+-----------------------+--------------------+---------------------+
  • Head Flag:固定为 0xFE。
  • Command ID:具体指令类别(0x01 ~ 0x11,及 BTBox 透传 0x38)。
  • Status Code:
    • 音响应答 APP 指令时:0x00=成功,0x01=无效指令,0x02=长度错误,0x03=校验码错误,0x04=参数错误,0x05=状态不具备不可执行。
    • 音响主动上报(Notify)时:固定填 0xF0。
  • Length:大端序(Big-Endian),高字节在前,低字节在后,表示 Data 字段纯字节长度 。
  • CRC16-CCITT/FALSE:自 Head Flag(0xFE)起始至 Data 字段末尾所有字节的校验和(初始值 0xFFFF,多项式 )。

6.3 核心控制指令集字典

CMD功能名称方向发送帧示例(HEX)与负载定义响应/上报说明
0x01电量获取与上报双向查询:FE 01 00 00 00 [CRC]
负载:left_bat(1B) + right_bat(1B) + case_bat(1B)
left_bat 的 bit0~6 为百分比(),bit7 为充电标志位(1=充电中)。电量变动时音响主动上报(Status=0xF0)。
0x02音乐 EQ 调节双向1. 查询当前EQ:FE 02 00 00 00 [CRC]
2. 设单段:FE 02 00 00 03 01 [Band] [Gain] [CRC]
3. 设预设:FE 02 00 00 02 02 [Preset_ID] [CRC]
Band:(或扩展15段);Gain:0x00(-12dB) ~ 0x0C(0dB) ~ 0x18(+12dB);Preset:0=Normal, 1=Pop, 2=Rock, 3=Jazz, 4=Classic, 5=Country。
0x03TWS 对箱控制双向设开关:FE 03 00 00 01 [State] [CRC]
State:0x00=关闭断开,0x01=发起组队搜索
音响在 TWS 状态变动时主动推送当前连接态。
0x04强制休眠APPBTFE 04 00 00 01 01 [CRC]告知设备立即转入微功耗休眠,本指令无需应答。
0x05系统音量调节双向查询:FE 05 00 00 00 [CRC]
设置:FE 05 00 00 01 [Vol] [CRC]
Vol 范围 (百分比),固件直接映射至 DSP 真实增益步进,避免量化截断。
0x06播放下一曲APPBTFE 06 00 00 00 C6 6B触发 AVRCP 下一曲动作。
0x07播放上一曲APPBTFE 07 00 00 00 B0 DF触发 AVRCP 上一曲动作。
0x08播放/暂停控制双向查询:FE 08 00 00 00 64 31
控制:FE 08 00 00 01 [0/1] [CRC]
0x01=播放中,0x00=已暂停。音响随手机端播放状态主动通知。
0x0BRGB 灯效模式双向设置:FE 0B 00 00 01 [Mode] [CRC]Mode:0x00 ~ 0x03 对应 4 种预设动态灯光算法(流水/呼吸/律动/常亮)。
0x0C输入源模式切换双向设置:FE 0C 00 00 01 [Src] [CRC]Src:0x00=蓝牙,0x01=U盘,0x02=TF卡,0x03=Line-in(AUX),0x04=HDMI,0x05=光纤。
0x0D蓝牙设备名修改双向查询:FE 0D 00 00 00 [CRC]
设置:FE 0D 00 00 [Len] [Name_Bytes] [CRC]
支持 UTF-8 编码,最大允许 31 字节,断电持久化保存在 CM 记忆区。
0x0E定时关机倒计时双向设置:FE 0E 00 00 01 [Minutes] [CRC]0x00=关闭定时; 代表分钟数;0xFF=永不关机。
0x0F麦克风 10段EQ双向查询:FE 0F 00 00 00 [CRC]
设段:FE 0F 00 00 02 [Band] [Gain] [CRC]
Band: 09;Gain: 0x00(-12dB) ~ 0x18(+12dB);主动上报带 10 字节 int8_t (-10+10dB) 数组。
0x10超重低音增强双向设置:FE 10 00 00 01 [0/1] [CRC]开启/关闭虚拟低音增强及低音频段动态增强激励。
0x11恢复出厂设置APPBTFE 11 00 00 00 [CRC]抹除所有配对记录、复位 EQ 曲线与音量默认值,随后自动重启系统。
0x38BTBox 透传隧道双向FE 38 00 [Len] [BTBox 0xA5 Frame] [CRC]通过 BLE 隧道无线透明传输底层 0xA5 调音指令,实现免接串口远程调音。

7. BTBox / GDE 上位机调音协议字典(v1.01.07)

BTBox 是士兰微用于配合官方 PC 端上位机(GDE)对 DSP 内部寄存器与音效节点进行毫秒级在线实时调整与波形分析的专用二进制协议。

  • 物理端口:DSP 专用串口 UART2(PE8/RX、PE9/TX,默认波特率 115200 bps);亦可在 config.h 中配置为通过 USB HID 端点进行无驱传输(GDE_USE_HID)。
  • 数据帧格式(固定起始符 0xA5):
字节 1字节 2字节 3字节 4字节 5 ~ 15字节 16
识别码总长度主命令码子命令码参数数组(小端序,最多11字节)校验和 CSum
0xA5数据包长见下表音效/系统子功能号低字节在前,高字节在后长度至参数和的低8位

点击展开 / 折叠:BTBox / GDE 上位机调音参数(0xF1)各子模块结构对照

  • 0xF1(音效参数配置,上位机 DSP):
    • 0x04(REVERBECHO 混响回声,限 List 5):参数包含 湿度、房间尺寸、EchoPreDelay (0150ms)、EchoDelay (0500ms)、衰减比 (0~90%)、干/湿声音量。
    • 0x0A(EQ 均衡器):针对指定 List 下发 Filter_ID、增益 ([-24, +12]dB)、中心频率 (20~20000Hz)、Q值及类型(4低通、5高通、6低架、7高架、10/11全通)。
    • 0x0F(Volume 声道增益):针对指定 List 设置线性/分贝模式音量,可扩展负极限至 。
    • 0x12(Noise Gate 噪声门限):设置门限开启电平与保持/淡入/淡出时间(ms)。
    • 0x21(FFS 移频防啸叫,List 1/3):频偏范围 ,相位 。
    • 0x29(DRC 动态范围压缩器):启动时间 、释放时间 、阈值 Threshold ()、压缩比 Ratio ()、软拐点 Knee。
    • 0x60(ROUTE 矩阵路由):指定输出通道与 12 组输入音频流的混合增益矩阵权重 ()。
  • 0xF5 / 0xF6(音效参数回读与返回):用于上位机在线拉取音箱当前的真实运行参数并绘制曲线。
  • 0xF3 / 0xF4(实时数据遥测):
    • 子命令 0x16:实时回传声道能量(4 字节能量幅值,刷新周期 50~500ms,供 UI 或能量灯显示)。
    • 子命令 0x33:实时回传 32 点/64 点 FFT 频谱频点幅值数据。
    • 子命令 0x29:回传 DRC 动态压陷是否触发状态(1=触发防削波,0=正常)。
  • 0xF9 / 0xFA(系统控制命令集):
    • 0x55:动态切换音源模式(0=AUX, 1=BT, 2=USB, 3=SD, 4=USB Audio, 5=SPDIF, 6=HDMI)。
    • 0x03:上位机心跳包(每 1 秒下发一次保持 GDE 通道活动,防止 3 合 1 接口超时退回 USB 设备检测)。
    • 0x06:音效组加载/切换(0~16组)。
    • 0x08:DSP 性能监控回传(返回 mips_pct 算力占用百分比及溢出标志)。

8. 关键外设子系统开发与驱动实现

8.1 按键控制与电阻分压匹配(ADKEY/IOKEY)

系统配置了双路 SAR-ADC 按键扫描,分别接入 ADCCH_PB13(PIN 44)与 ADCCH_PB12(PIN 43),采用片外 10k 上拉电阻到 VDDIO。

VDDIO (3.3V)
    │
  [10k 上拉电阻]
    │
    ├──────> PIN 44 (PB13 / ADKEY1)
    │
    ├─[  0R  ]──> [PLAY / PAUSE 按键] ──> GND  (ADC <= 0x10)
    │
    ├─[ 2.0k ]──> [VOL- / PREV 按键]  ──> GND  (ADC ~ 0x30)
    │
    └─[ 5.1k ]──> [VOL+ / NEXT 按键]  ──> GND  (ADC ~ 0x49)

ADKEY 1(PIN 44,ADCCH_PB13)

  • KEY_PLAY:短按播放/暂停;来电短按接听、长按拒接、通话中短按挂断;双击回拨最后通话;长按 2 秒唤醒手机语音助手。
  • KEY_VOL_DOWN_PREV:短按音量减 1 级;长按(>500ms)连续切上一曲。
  • KEY_VOL_UP_NEXT:短按音量加 1 级;长按(>500ms)连续切下一曲。

ADKEY 2(PIN 43,ADCCH_PB12)

  • 0x10(0R 接地)- KEY_MODE:短按轮询切音源;长按 3 秒断开蓝牙;超长按 8 秒强制硬件复位(IO_KEY_8S_RST)。
  • 0x2E(2.0k 接地)- KEY_EQ:短按轮询切 EQ 预设曲线;长按系统硬件静音(MUTE)。
  • 0x4D(5.1k 接地)- KEY_VOICE_RM:短按无线麦克风电源开关;长按启动 DSP 消原音;双击进入 TWS 对箱组队搜索。

8.2 数字旋钮编码器(16级音量调节)

工程使能了 USER_KEY_KNOB_EN 1,将旋转脉冲旋钮接入计数管脚,映射为平滑的 16 级音量表(USER_KEY_KNOB_LEVEL 16)。旋钮动作通过 bsp_change_volume() 转换至硬件音量寄存器,并触发手机端音量同步。

8.3 WS2812 SPI 炫彩动感灯效引擎

  • 时序驱动:利用片上高频 SPI 硬件控制器驱动 PA15 单总线,发送精确的高低电平占空比模拟 WS2812 800kHz 编码时序,杜绝中断延迟造成的灯光频闪。
  • 音频律动:使能 DEBUG_MUSIC_L_POW,HiFi4 DSP 在计算每帧音频时提取真实 RMS 能量值并写入共享内存,灯效驱动以 50Hz 刷新率动态映射点亮灯珠数量与色温冷热度。

8.4 功放静音控制与防破音防 POP 机制

sequenceDiagram
    autonumber
    participant CPU as RISC-V 内核
    participant DSP as HiFi4 DSP
    participant GPIO as 静音控制管脚
    participant CODEC as DAC 2.1 模拟单元
    participant AMP as 外部扬声器功放

    Note over CPU,AMP: 阶段一:冷启动静音锁定
    CPU->>GPIO: 置低 PA13(ERJI_MUTE=0) & PB8(AMP_EN2=0)
    Note right of AMP: 功放强行封锁,输出处于高阻/接地态
    CPU->>CODEC: 初始化 DAC,放电电容充放电 (DAC_PULL_DOWN_DELAY=80)
    
    Note over CPU,DSP: 阶段二:DSP 固件载入与参数铺设
    CPU->>DSP: 握手启动 (RISC TO DSP),加载 sram.bin
    DSP->>DSP: 载入 para00.bin 17组EQ与矩阵路由 (0x60)
    
    Note over CPU,AMP: 阶段三:两阶段释放防爆音
    CPU->>GPIO: 预拉高 PB8(AMP_EN2=1) 供电就绪
    CPU->>CODEC: 加载开机音量增益 (sys_init_vol=8 -> 0x7C80)
    Note over CPU: 延时 30ms (loudspeaker_unmute_delay=6)
    CPU->>GPIO: 拉高 PA13(ERJI_MUTE=1),开启前级通道
    Note over AMP: 扬声器平滑出音,零瞬态直流冲击 (无任何POP声)

8.5 电源与高精度电池电量检测子系统

  • 采样分压网络:电池输入经两只精密电阻分压接入 PE13(ADCCH_PE13)。
  • 峰值滤波算法:使能 VBAT_FILTER_USE_PEAK 1,避免重低音大动态瞬态拉低输入电压导致系统误报低电关机。
  • 核心标定阈值:
    • BAT_VAL_FULL = 2313 mV:标定电池充满(100%);
    • BAT_VAL_OUT_LOW = 2100 mV:退出低电警戒;
    • BAT_VAL_LOW_WARNING = 2060 mV:低电语音报警(约 20% 电量);
    • BAT_VAL_POW_OFF = 2000 mV:触发安全软关机保存;
    • BAT_VAL_LOW_DONO_POWER_ON = 1890 mV:禁止低电强行开机。
  • 低电动态限幅:开启 LOWPWR_REDUCE_VOL_EN,低电时自动压降输出增益,防止电池保护板瞬态保护截断。

9. Flash 存储空间布局与参数记忆机制(CM)

系统配备 2MB(2048KB)内置高速 SPI Flash,内部进行了精确的 4KB 扇区划分:

物理地址范围功能模块划分占用空间说明
0x000000 ~ 0x102400app.dcf 固件全镜像约 1033 KB包含 header.bin + app.bin + res.bin + xcfg.bin
0x102400 ~ 0x180000剩余空闲分区 1约 500 KB系统预留空间,可用于 OTA 双备份镜像
0x180000 ~ 0x1A2000算法音效参数配置文件区136 KBpara00.bin ~ para16.bin(17 组,每组 8KB)
0x1A2000 ~ 0x1FB000剩余空闲分区 2约 356 KB用户资源预留
0x1FB000 ~ 0x200000CM 参数持久化记忆区20 KB管理系统音量、模式断点、配对列表等(上限2500B)

CM 记忆模块扩展规则

CM 模块管理 10 个 Page,每个 Page 存贮 250 字节(总计 2500 字节)。若需记忆大体积字库或离线声学参数,必须调用底层 Flash 扇区接口:

  • os_spiflash_erase(u32 addr)(4KB 擦除)
  • os_spiflash_program(void *buf, u32 addr, uint len)(扇区写入)
  • os_spiflash_read(void *buf, u32 addr, uint len)(内存读取)

10. 工程编译、固件烧录与系统升级流程

10.1 开发环境搭建与编译步骤

  1. 环境安装:安装专用的 CodeBlocks 20.03(集成 RISC-V 32 GCC 工具链);
  2. 载入工程:打开 sq96b87_x5_sdk_v98_2EQ\projects\standard\app.cbp;
  3. 编译构建:点击 Build -> Rebuild (Ctrl+F9);
  4. 编译自动化流程:
    • 源码编译生成 app.rv32 ELF 文件;
    • 自动触发 postbuild.bat 脚本执行:
      riscv32-elf-objcopy -O binary app.rv32 app.bin
      riscv32-elf-xmaker -b appxm.o
      riscv32-elf-xmaker -b download.xm
    • 最终在 Output/bin/ 打包生成烧录目标文件:app.dcf。

10.2 硬件连线与 Downloader 烧录

  1. 连接士兰微专用 USB-TTL 串口下载板至目标板烧录引脚;
  2. 启动 Downloader.exe 烧录软件,选择匹配的串口号;
  3. 点击 打开,载入 app.dcf 镜像,校验 Settings/V98.setting 配置无误;
  4. 点击 开始,给板子重新上电或复位,握手成功后数秒内完成刷写与校验。

10.3 离线 U 盘 / TF 卡自动升级

  1. 在 Downloader 中点击格式转换,将 app.dcf 转换为单升级包文件 fw5000.upd(或 v98_app_260915.upd);
  2. 复制到 FAT32 格式的 U 盘或 TF 卡根目录下;
  3. 音响开机插入介质,系统后台扫描函数 pf_scan_music() 识别合法固件包后自动进入 func_update(),静音功放并自动刷写 Flash,完成后重启。

11. 运行时实测启动日志(Log)深度解读与调试避坑指南

结合项目现场实测抓取的串口日志,我们可完整校验音响全生命周期状态:

11.1 关键运行节点诊断结论

  1. 时钟校准与 SDK 版本:芯片先完成内部 RC 校准,随后打印 SDK: 8000003a,证明 RISC-V 内核与 PLL 稳定在目标频率。
  2. 开机音量钳位:sys_init_vol: 8 被 POWER_ON_DEFAULT_VOLUME=8 强制对齐,杜绝了开机音量过大惊扰用户。
  3. RISC-V 激活 HiFi4 DSP:打印 RISC TO DSP 后加载 sram.bin 并连续下发 A5 58 F1 0A ... 系列参数,完成 17 组 EQ 及全局矩阵路由(0x60)部署。
  4. 两阶段静音消除冲击声:boot_end 时 PA13(ERJI_MUTE)=0;稳定就绪后转入 step8_after_ERJI_MUTE_OFF,拉高 PA13=1 释放静音,DAC 加载增益 0x7C80,全程零冲击底噪。

11.2 二次开发高频故障排查(Troubleshooting)

  • 问题 1:开机进入蓝牙后有微弱底噪或持续高频杂音
    • 原因:config.h 中 MIC_POWER_ON_MUTE 宏未开启,或 HiFi4 麦克风链路在未插入麦克风时未触发自动静音(MIC_EFFECT_AUTO_MUTE)。
    • 解决:保持使能 #define MIC_POWER_ON_MUTE,并确保 MIC_EFFECT_AUTO_MUTE 处于有效状态。
  • 问题 2:通过 APP 调节音乐 EQ 时出现咔哒爆音
    • 原因:APP 连续高速下发 EQ 增益指令,若每次都重新计算全段 IIR 滤波器系数,会导致 DSP 缓冲区不连续。
    • 解决:检查 ab_mate_app.c 中的 ab_mate_eq_send_band_to_hifi4(),确保只对特定发生变动的段进行增益系数动态重算,并启用平滑渐变机制。
  • 问题 3:TWS 对箱无法组队配对
    • 原因:V98.setting 中 bt_tws_pair_mode 与 BT_TWS_PAIR_ID 不匹配,或一端开启了绑定功能(bt_tws_pair_bonding_en)。
    • 解决:双机均使能 BT_TWS_EN 1,将配对模式统一设置为按名称或固定 ID(0x38393230)配对,并长按按键调用 bt_tws_delete_link_info() 清除过往配对信息。
  • 问题 4:大音量重低音播放时偶发无故关机
    • 原因:电池老化或内阻偏大,瞬态大动态拉低输入电压触发了低电采样阈值。
    • 解决:开启 LOWPWR_REDUCE_VOL_EN,检查 VBAT_FILTER_USE_PEAK 1 是否生效,适当调整 BAT_VAL_POW_OFF 阈值至 2000mV 以下。

12. 决策与下一步行动

闭环管理指引

本手册作为 V98 音响工程的基础技术参照,已纳入 Obsidian 知识库闭环流转体系。后续开发或调优请依此指引执行:

核心决策点

  1. APP 协议选型:确认采用新版 新意诚 V2.1(0xFE 格式)还是维持对旧版 CardoO v1.4(TLV 格式)的双模兼容。
  2. DSP 调音固化:在试产前通过 GDE 工具敲定最终声学曲线,并重新导出 17 组 para00.bin~para16.bin 写入固件,避免出厂低频发虚或高频刺耳。
  3. 电量截止阈值校准:根据量产电池批次内阻曲线重新实测校准 BAT_VAL_POW_OFF 与 BAT_VAL_LOW_WARNING。

我的行动项

AI 可代办事项

  • 若需定制特定按键功能或新增串口控制指令,可直接提供要求,AI 负责编写 port_key.c 及 ab_mate_app.c 的补丁代码;
  • 协助转换或编写批量生成 17 组 EQ 参数文件的 Python 脚本;
  • 分析更新后的运行时串口调试日志。

关联导航

  • 📘 全库总纲:仓库手册
  • 📖 专题手册导航:手册导航
  • 📊 产物主索引:Output 索引
  • 📁 硬件 SDK 源码目录:C:\Users\65211\Desktop\音响产品项目\sq96b87_x5_sdk_v98_2EQ