4 技术概览(参考性)
4.1 引言
本规范描述了SoundWire接口,该接口用于传输通常与音频功能相关的数据。 SoundWire促进了低成本、高效、高性能系统的开发,其特性包括:
- 通过单一的双针脚接口(时钟和数据线)传输所有负载数据通道、控制信息和设置命令;
- 时钟缩放和可选的多个数据通道,以提供广泛的数据速率灵活性,以匹配系统需求;
- 利用双倍数据速率(DDR)数据传输降低时钟频率,从而降低功耗;
- 从单一主设备接口支持多达11个从设备;
- 支持直接从一个从设备到另一个从设备的数据传输;
- 支持多种负载传输机制,包括等时性和非等时性音频流;
- 负载端口的大小和复杂度具有灵活性,包括脉冲编码调制(PCM)和脉冲密度调制(PDM)音频流;
- 对于高采样率音频流负载(如PDM)具有极低的延迟;
- 设备状态监控,包括中断式的警报给主设备;
- 通过暂时停止时钟并在接收到从设备的带内信号后唤醒,支持系统级的节能;
- 可扩展性,以便实现特定的功能;
- 支持内置自测(BIST),用于组件和系统测试;
- 在系统开发过程中支持调试和监控工具。
解释
- 单一双针脚接口:SoundWire通过两个引脚(时钟和数据线)来传输所有的音频数据、控制信息和命令。
- 时钟缩放与多数据通道:该接口允许调整时钟频率并支持多个数据通道,这有助于系统设计者根据实际需求调整数据传输速度。
- DDR数据传输:采用DDR技术可以降低所需的时钟频率,进而减少功耗。
- 从设备支持:一个主设备最多可以支持11个从设备。
- 从设备间直传:从设备可以直接与其他从设备通信而无需通过主设备。
- 等时性与非等时性流:支持不同类型的数据流传输,其中等时性流适合实时应用,而非等时性流则适用于不需要严格同步的应用。
- PCM与PDM音频流:支持不同类型的音频编码方式,PCM是一种常用的数字音频格式,而PDM是一种适用于高质量音频传输的编码方式。
- 低延迟:对于高采样率的音频流(如PDM),SoundWire能够提供非常低的延迟。
- 状态监测与警报:设备能够监测自身状态并向主设备发送中断式警报。
- 节能模式:通过暂停时钟并在从设备发送特定信号时唤醒,系统能够节省电力。
- 可扩展性:允许开发者添加自定义功能。
- 内置自测与调试工具:支持对组件和系统进行测试及调试。
4.1.1 系统拓扑
SoundWire 总线连接三种不同类别的 SoundWire 接口:
- 确切的一个 SoundWire 主设备接口。主设备是低级同步和帧信息的来源,同时也是用于控制从设备接口的命令的来源。
- 一个到十一个 SoundWire 从设备接口。
- 一个可选的 SoundWire 监控接口(通常仅临时连接到系统以帮助调试)。
注意 —— 主设备和从设备的角色不能动态更改 —— 在总线运行期间,一个特定的接口始终执行主设备的功能。这并不排除一个设计能够以主设备或从设备角色运行的能力,但是在总线运行期间不会在这两种角色之间切换。
解释
- 确切的一个主设备接口:SoundWire 系统中只有一个主设备接口,它负责提供必要的同步信号、帧信息,并发送命令来控制从设备。
- 一到十一个从设备接口:主设备可以连接一个到十一个从设备接口,这些从设备接口可以是音频编解码器、麦克风阵列、扬声器驱动器等。
- 可选的监控接口:SoundWire 系统还可以包含一个可选的监控接口,这个接口主要用于系统调试,通常在系统开发和测试阶段使用,而不是在正常运行中永久连接。
图1显示了基本SoundWire系统的示例。主设备连接到四个从设备。
图1 soundwire 系统例子 - 基本系统
图2展示了一个SoundWire系统示例,其中应用处理器芯片包含了两个SoundWire主设备接口,每个主设备分别控制一个独立的SoundWire总线。这种系统设计的选择可能是为了提供更高的负载数据带宽,或是为了便于实施电源管理策略,例如在一条总线停止时钟的同时让另一条总线继续运行。系统设计可以将这两个主设备同步运行,具有匹配的时钟频率和SoundWire帧率,或者完全独立地运行它们。
图2 soundwire 系统例子 - 按功能划分的多个主机
解释
- 两个SoundWire主设备:在这个示例中,应用处理器芯片集成了两个SoundWire主设备接口。每个主设备接口控制一个独立的SoundWire总线。
- 独立的总线:每个主设备控制的总线是独立的,这意味着它们可以有不同的配置和操作模式。
- 提高带宽:通过使用两个独立的总线,系统可以实现更高的数据传输带宽,这对于需要大量音频数据交换的应用来说非常重要。
- 电源管理:这种设计允许在某些情况下停止一条总线上的时钟,从而实现更精细的电源管理策略。例如,当一个总线上的设备处于空闲状态时,可以通过停止时钟来节省电力,而另一个总线上的活动则不受影响。
- 同步或异步运行:主设备可以同步运行,即具有相同的时钟频率和SoundWire帧率,也可以完全独立运行,即各自有自己的时钟频率和帧率设置。
图3展示了一个类似的系统,但它说明了从设备在各个主设备之间的划分不必按音频功能来进行。这种划分可能是基于它们在设备内部的位置,这有助于简化印刷电路板(PCB)设计和整体系统设计。
图3 soundwire 系统例子 - 多个主机,可选分区
解释
- 从设备的划分:图3中的系统展示了从设备如何在主设备之间进行分配。在这种情况下,从设备的分配不一定是由其音频功能决定的。
- 基于位置的划分:从设备可以按照它们在设备内部的位置进行分组。例如,一组从设备可能位于设备的一侧,而另一组从设备位于另一侧。这种划分方式有助于简化PCB布线,因为从同一主设备连接的从设备可以更紧密地放置在一起,从而减少布线的复杂性。
- 简化设计:通过基于位置的划分,可以减少PCB上的走线长度和复杂度,从而有助于降低成本并提高系统的可靠性。
图4展示了一个使用多条数据通道的SoundWire系统示例。这种系统设计在给定的时钟频率下提供了更高的总负载数据带宽。主要的数据通道(Data[0])连接到总线上的所有设备,因为它不仅承载负载数据,还承载同步和控制信息。可选的、编号较高的数据通道连接到系统中需要更大负载数据带宽的设备之间。虽然在这个例子中没有展示,编号较高的数据通道可以连接两个或多个从设备,而不必与主设备有任何连接。
注意:此图显示了连接两端的数据通道编号不必匹配——链接两端的设备只需编程为适当的本地通道编号即可。
图4 soundwire 系统例子 - 多lane
解释
- 多条数据通道:图4中的系统使用了多条数据通道来增加总的数据传输带宽。主要数据通道(Data[0])是必需的,它连接到所有设备,用于传输同步和控制信息以及负载数据。
- 次要数据通道:编号较高的数据通道(如Data[1]、Data[2]等)是可选的,它们只连接那些需要更大数据带宽的设备。
- 数据通道的连接:在图中,可以看到数据通道的连接不一定是对称的。例如,一个设备上的Data[1]通道可能连接到另一个设备上的Data[2]通道,这意味着连接两端的数据通道编号不必匹配。
- 编程指定本地通道编号:设备两端需要编程指定各自的本地通道编号,以确保正确的数据传输。
图5展示了一个包含桥接组件的SoundWire系统示例,该桥接组件连接了两个独立的SoundWire总线。这种系统设计可能是为了实现在一条或两条总线上更高的时钟频率,或者是便于实施电源管理策略,例如在一条总线上停止时钟而另一条总线继续运行。系统设计和设备编程共同确保了通过桥接组件的流在两条总线上的数据采样率相匹配。这两条总线可以具有相同的时钟频率和SoundWire帧率,或者以适当选择的比例运行。
注意:此图展示的是两个SoundWire总线之间的桥接,但其他系统设计可以在桥接的一侧或两侧使用非SoundWire总线。
图5 soundwire 系统例子 - 桥
解释
- 桥接组件:图5中的桥接组件用于连接两个独立的SoundWire总线。这种设计允许数据流跨总线传输。
- 时钟频率和帧率:两条总线可以具有相同的时钟频率和SoundWire帧率,或者可以以适当的比例运行。这种设计灵活性有助于优化系统的性能和功耗。
- 数据采样率匹配:通过桥接组件的数据流在两条总线上的数据采样率必须相匹配,以确保数据的连续性和一致性。
- 电源管理:这种设计可以方便实施电源管理策略,例如在一条总线上停止时钟以节省电力,而另一条总线继续运行。
- 混合总线系统:虽然图5展示的是两个SoundWire总线之间的桥接,但在实际应用中,桥接的一侧或两侧也可以是非SoundWire总线,这提供了更多的设计灵活性。
图6展示了一个物理复杂的SoundWire系统示例,其中从设备通过连接器、电缆或柔性电路板与主系统板相连。在这样的系统设计中,信号路径通常比板载系统更长,阻抗特性也更不均匀,因此组件和系统设计采用了缓解策略以维持信号完整性(参见第5.1.15节)。此系统展示了两种到板外从设备的信号路由风格——点对点和星型路由。
图6 物理复杂soundwire系统的示例
解释
- 物理复杂系统:图6中的系统是一个物理复杂的SoundWire系统,其中从设备通过外部连接器、电缆或柔性电路板与主系统板相连。
- 信号路径长度:在这样的系统中,信号路径长度通常比板载系统更长,这可能导致信号质量下降。
- 阻抗特性:由于使用了外部连接,阻抗特性可能不如板载系统那样均匀,这会影响信号质量。
- 缓解策略:为了维持信号完整性,系统设计中采用了缓解策略,这些策略可能包括使用特定的电缆材料、适当的端接电阻、屏蔽电缆等。
- 信号路由风格:
- 点对点路由:这是一种直接从主设备到从设备的连接方式,每条连接都是单独的,通常用于要求较高信号完整性的场合。
- 星型路由:这是一种将所有从设备连接到一个中心点的方式,通常中心点是一个集线器或类似设备,然后再从中心点到各个从设备。
4.1.2 设置与控制
SoundWire 在每个从设备中提供了一套标准化的控制和状态寄存器,并提供了一种命令机制,使主设备(或监控器)能够读取和写入这些寄存器。
- 访问机制:访问机制包括通过在设备和寄存器地址级别使用别名的快捷特性,以单个写入命令更新多个寄存器,这加快了初始化过程并简化了一些操作更改。
- 寄存器别名:使用别名可以一次性更新多个寄存器,从而加快初始化过程并简化一些操作更改。
- 寄存器备份:某些控制字段在第二个寄存器组中重复出现,这使得能够在不停止系统运行的情况下无缝更改操作,通过更新当前未在线的寄存器组,然后同时切换所有更新的值。
- 标准化寄存器:标准化的寄存器与SoundWire接口的操作相关联,但同样的访问机制和寄存器备份特性也可以用于可选的实现定义寄存器,这些寄存器与设备的其他功能(如音频操作)相关。
解释
- 标准化寄存器:SoundWire为从设备提供了一组标准化的控制和状态寄存器,这些寄存器用于控制和监控从设备的状态和行为。
- 命令机制:主设备或监控器可以使用命令机制来读取和写入这些寄存器。
- 别名和快捷特性:访问机制支持使用别名,这样可以用单个写命令更新多个寄存器,从而加快初始化过程并简化某些操作更改。
- 寄存器备份:一些控制字段在第二个寄存器组中也有备份,这种设计使得可以在不停止系统运行的情况下平滑地更改系统操作,即先更新当前未在线的寄存器组,然后同时切换所有更新的值。
- 扩展寄存器:除了标准化的寄存器之外,还可以使用相同的访问机制和寄存器备份特性来访问实现定义的寄存器,这些寄存器可以与设备的其他功能相关,如音频处理。
4.1.3 负载数据
SoundWire 针对一系列负载数据传输场景的需求进行了设计。
- 帧的时间分割复用:帧通过时间分割复用了一系列负载流,这些负载流实际上是逻辑对象对之间独立的点对点连接,这些逻辑对象被称为数据端口。负载流的源数据端口和接收数据端口可以分别位于主设备或任何从设备中,一个源数据端口的输出可以被多个接收数据端口消费,因此可以组合几个点对点连接以提供点到多点的连接。
- 数据端口视图:数据端口将负载流视为包含一到八个逻辑通道的负载数据。负载数据的大小支持脉冲密度调制(PDM)和脉冲编码调制(PCM)音频流。
- 采样率:采样率可以是等时性的,其中采样率直接与SoundWire接口时钟相关,范围从帧率的倍数到分数;也可以是非等时性的,其中有效样本的存在由负载流中的控制位指示。
解释
- 负载流:SoundWire通过帧的时间分割复用来传输多个负载流,这些负载流是逻辑对象之间的点对点连接。
- 数据端口:负载流的源端口和接收端口可以位于主设备或任何从设备中,这意味着负载数据可以在主设备与从设备之间或从设备与从设备之间传输。
- 点到多点连接:一个源端口的输出可以被多个接收端口消费,从而实现了点到多点的数据传输。
- 逻辑通道:数据端口将每个负载流视为包含一到八个逻辑通道的数据,每个通道可以承载不同的音频流。
- 负载数据类型:支持PDM和PCM两种音频流格式。
- 等时性和非等时性采样率:
- 等时性采样率:采样率与SoundWire接口时钟直接相关,可以是帧率的整数倍或分数。
- 非等时性采样率:有效样本的存在由负载流中的控制位指示,这种方式适用于不需要严格同步的应用场景。
4.1.4 错误保护与处理
SoundWire 包含了几种用于处理错误或异常情况的特性。
- 奇偶校验位:一个奇偶校验位用于检测可能因电磁干扰(EMI)效应或边缘信号定时故障导致的物理采样错误。这个位可以指示帧中发生的采样错误,并保护用于设置和控制SoundWire系统的命令。
- 数据编码方案:数据编码方案为设备提供了针对物理驱动冲突的保护(这种冲突不会因编程错误而发生,也不太可能因物理层错误而发生)。
- 逻辑驱动冲突检测:逻辑驱动冲突(总线冲突)的检测通过主设备内的控制子系统(通常是软件)来发现一些编程错误。
- 中断机制:中断机制为从设备提供了一种向主设备发出警告的方式,包括特定的错误条件和其他需要关注的功能行为。中断机制还包括可选的中断,允许从设备向主设备发出有关实现定义条件的警告,包括在接口级别或应用程序级别的错误。