4、WiSA音频传输:音频数据包格式、采样率与位深支持、低延迟模式配置

好,咱们进入WiSA音频传输的核心环节。

说实话,很多工程师做Soundbar多房间组网,最头疼的就是音频数据怎么在无线链路上跑。WiSA作为一套成熟的低延迟音频传输协议,它的数据包格式、采样率支持以及延迟控制,都有自己的一套逻辑。我当年第一次调WiSA的驱动时,就被它的包结构绕晕过,后来才摸清楚门道。

4.1 音频数据包格式

WiSA的音频数据包,说白了就是把你PCM音频流切成小块,加上无线传输需要的“信封”。

它的基本单位叫音频帧(Audio Frame)。每个帧里包含了一组采样数据,以及控制信息。

核心结构:

  • 前导码(Preamble):用于接收端同步时钟,我习惯叫它“敲门砖”。
  • 头部(Header):包含帧序号、通道掩码、采样率标识、位深标识等元数据。
  • 净荷(Payload):真正的音频采样数据,按通道交错排列。
  • CRC校验:保证数据完整性,这个在无线环境里特别重要。

举个例子,一个标准的2.0声道、48kHz/24bit的音频帧,净荷大小就是 2通道 × 3字节 × 每帧采样数。WiSA的帧周期通常是1ms,所以每帧包含48个采样点(48kHz下)。

// 伪代码示意:WiSA音频帧结构
struct wisa_audio_frame {
    uint8_t  preamble[4];      // 前导码
    uint8_t  frame_seq;        // 帧序号
    uint8_t  channel_mask;     // 通道掩码 (bit0=左, bit1=右, ...)
    uint8_t  sample_rate_id;   // 采样率标识
    uint8_t  bit_depth_id;     // 位深标识
    uint8_t  audio_data[0];    // 可变长度音频数据
    uint16_t crc;              // CRC校验
};

嗯,这里要注意:帧序号是循环的,接收端靠它来检测丢包和乱序。我在项目中遇到过,如果帧序号处理不好,音箱会时不时“咔”一声,其实就是丢帧了。

4.2 采样率与位深支持

WiSA协议对采样率和位深的支持,其实比很多人想象的要灵活。它不像某些蓝牙协议那样死板。

采样率 位深支持 典型应用场景
44.1 kHz 16-bit, 24-bit CD音质回放,兼容性最好
48 kHz 16-bit, 24-bit 电影、电视内容,Soundbar主流选择
96 kHz 24-bit 高解析音频,Hi-Fi场景
192 kHz 24-bit 专业录音室,部分高端Soundbar支持

我个人习惯,做Soundbar多房间组网时,首选48kHz/24bit。为什么?因为电影和电视的原始音频大多是48kHz,24bit的动态范围也足够。你想想看,如果强行上192kHz,无线带宽压力大,延迟反而不好控制。

我的经验:曾经有个项目,客户非要支持192kHz。结果调了一周,发现WiSA的无线带宽在复杂环境下根本跑不满,最后妥协成96kHz。所以,采样率不是越高越好,要结合你的天线设计和环境来定。

4.3 低延迟模式配置

低延迟,是WiSA的看家本领。它比蓝牙A2DP的延迟低一个数量级,通常在10ms以内。

WiSA的低延迟模式,核心在于帧周期(Frame Period)重传策略的配合。

  • 标准模式:帧周期2ms,允许1次重传。延迟约10-15ms。
  • 低延迟模式:帧周期1ms,允许0次重传。延迟约5-8ms。
  • 超低延迟模式:帧周期0.5ms,不允许重传。延迟约2-4ms。

配置低延迟模式,需要在WiSA的初始化阶段设置参数。我贴一段配置代码的示意:

// WiSA低延迟模式配置示例
wisa_config_t config;
config.frame_period = WISA_FRAME_PERIOD_1MS;  // 1ms帧周期
config.retry_count = 0;                       // 不允许重传
config.sample_rate = WISA_SR_48KHZ;
config.bit_depth = WISA_BD_24BIT;

wisa_init(&config);

警告:低延迟模式虽然延迟低,但抗干扰能力弱。我曾经在一个Wi-Fi干扰严重的环境中测试,0重传模式下丢包率飙升到5%,声音断断续续。所以,如果你家里路由器多、信号杂,建议至少保留1次重传。

另外,低延迟模式对时钟同步要求极高。WiSA使用TDM(时分复用)方式,所有音箱必须和发射端保持严格的时钟同步。我建议你在设计时,把晶振的精度控制在±20ppm以内,否则会出现“时钟漂移”,导致音频不同步。

说白了,低延迟模式就是拿可靠性换速度。你要根据实际场景来权衡。做Soundbar多房间组网,我个人偏向用1ms帧周期+1次重传,这样延迟在8ms左右,人耳基本感觉不到,同时又有一定的抗干扰能力。

好,这一节的内容就这些。下一节我们会聊WiSA的组网流程和节点管理,到时候再细说。