jjzjj

Analog Devices Inc. A2B(汽车音频总线)

背包旅行码农 2024-04-21 原文

背景

传统的汽车音频ECU一般通过单独的模拟电缆或现有的数字总线架构来连接,这两者都存在局限性、低效率、及不必要的费用等。使用模拟传输线的汽车音频系统需要专用且昂贵的屏蔽电缆,来传输多通道音频信号。在如今支持多通道(5.1或7.1)Dolby或DTS解码的高级音响系统中,所需电缆的数量迅速增加。而且,额外的模数转换器(ADC)和数模转换器(DAC)不仅会增加系统总成本,而且还可能使某些音频性能下降。

当代信息娱乐系统中已经广泛采用MOST®或以太网EAVB等数字总线标准,这是因为这些标准能够大幅简化模拟实施方案的连接复杂性。然而,MOST和以太网EAVB虽然能够提高性能和灵活性,但需要加入高价格的微控制器来实施相关软件协议栈,从而增加系统成本。此外,这些数字总线架构本身对节点之间的延迟存在着不确定性。对于ANC/RNC和ICC等易受延迟影响的应用,现有的数字总线架构存在的根本缺陷是不能被接受的。

介绍

Analog Devices Inc. A2B®(汽车音频总线)是一款高带宽、双向、数字音频总线,为音频设计提供更简单、更方便的解决方案。A2B能够用一条双线UTP(非屏蔽双绞线 Unshielded Twisted Pair)电缆传输I2S/TDM/PDM数据和I2C控制信息以及时钟和电源,节点间距离最长15米,整个菊花链最长40米。A2B可用作其自己的网络,具有嵌入式子网络,或者搭配其他较长距离协议用作端点传输总线。单个A2B网络中所有节点上的时钟均同步。系统中每个节点同时接收麦克风和串行音频数据。

A2B 音频总线的优点

可配置、灵活、低风险且易于使用

A2B 收发器允许 I2C 主机访问系统中的所有收发器。使用 SigmaStudio® 图形化开发环境(与支持ADI公司 SigmaDSP® 和 SHARC® 处理器系列的开发工具相同)可简化采用A2B 的系统的设计过程。ADI还提供众多的全功能评估系统,可快速完成 A2B 网络的原型制作并加快早期系统概念验证、测试、验证和调试过程。

图1 ADI SigmaStudio工具

降低系统和电缆成本、重量和复杂性

使用 A2B 无需昂贵的微控制器和外部存储器。能够在用于传输数据的同一UTP(非屏蔽双绞线)电缆上向远程节点供电的收发器,在每个总线供电的从机节点上无需本地电源,从而降低整体系统BOM成本。与可能需要两个或三个双绞线连接或昂贵布线方案的其他数字总线架构相比,UTP电缆节省了系统级成本,例如连接车辆音频系统所需的重型电缆线束。

图2 传统音频系统线束与A2B总线应用对比

出色的音频质量

A2B具有可配置的44.1kHz或48kHz帧速率以及高达50Mbps的带宽,非常适合传输数字音频并提供相对于模拟连接的出色音频质量。系统节点在每个方向上支持多达32个总线插槽,且插槽宽度可编程为最高32位,从而支持 I2S 以及高达TDM32的众多TDM配置。同时本地支持PDM输入,收发器将输入抽取为PCM格式,然后将其放在 A2B 总线上。

注:50Mbps是由于A2B支持最大超帧频率是48KHz。沿A2B总线的通信发生在周期性超帧中。 超帧频率与同步信号频率相同,数据传输的比特率快1024倍(通常为49.152MHz)。

确定性低延迟

A2B 技术确保在每个帧的所有系统节点上同步采样和传递数据。帧结构在主机节点上被完全控制,以便对每个收发器在两个方向上使用可用的数据时隙进行编程,无论是贡献、提取或读取数据并将其传递到线路拓扑结构中的下一个节点。由于总线冲突或分组数据重组而导致的延迟会被移除。A2B 具有低于50µs的确定性极低延迟。

注:50µs延迟是由于通过 A2B 总线(主设备到从设备或从设备到主设备)传输的数据具有两帧延迟加上收发器中累积的任何内部延迟以及由于线路长度引起的延迟。 因此,总体延迟略高于两个采样点。

A2B家族产品

AD242x系列A2B器件

A2B器件AD2428AD2427AD2426AD2429AD2420
产品描述主机从机端点从机经过优化的主机经过优化的端点从机
支持主机
TRX功能模块A + BA + B仅A仅B仅A
I2S/TDM支持
PDM麦克风输入44442
支持的从机数最多10个最多2
节点间最大线缆长度15米15米15米5米5米

表1 AD242x系列产品特性差异表

A2B 总线特性

  • 线形拓扑结构
    • 单主机、多从机
    • 节点间距离最长达15 m,整体线缆长度达40m
  • 远距离通信
    • 同步数据
      • 多通道 I2S/TDM 至 I2S/TDM
      • 同步时钟,相位在所有节点中对齐
      • 低延迟从机到从机通信
    • I2C 至 I2C 控制和状态信息
    • GPIO 和中断
  • 总线电源或本地电源从机节点
  • 可使用 SigmaStudio 图形软件工具进行配置
  • 通过AEC-Q100汽车应用认证

A2B 收发器特性

  • 可配置 A2B 总线主机或从机操作
  • I2C 接口
  • 8 位到 32 位多通道 I2S/TDM 接口
    • 可编程I2S/TDM数据速率
    • 多达 32 路上游和 32 路下游通道
  • PDM 接口
    • 可编程PDM时钟速率
    • 最多4个高动态范围麦克风输入
  • 同时接收最多4个PDM麦克风的I2S数据
  • 为每个收发器提供 ID 寄存器
  • 交叉或直通布线
  • 提供可编程设置以优化 EMC 性能

AD243x系列A2B器件

A2B 器件AD2435WAD2433WAD2432WAD2431W
收发器说明主/ 子节点精简的主/ 子节点子节点精简的末端点
能够用作主节点
TRX 功能模块A + BA + BA + B仅A
I2S/TDM 支持
PDM麦克风 输入4个麦克风4个麦克风4个麦克风4个麦克风
支持的子节点 数量最多16个最多16个
A2B 总线功率高(≤ 50 W)标准(≤ 2.7 W)高(≤ 50 W)高(≤ 50 W)
标称总线电压7 V 至 24 V4 V 至 9 V7 V 至 24 V7 V 至 24 V
远距离SPI

表2 AD243x系列产品特性差异表

A2B 总线特性

  • 线形拓扑结构
    • 单个主节点,最多 16 个从属节点
    • 节点间距离长达 15 米,整个线缆长度达 80 米
  • 远距离通信
    • 同步数据
      • 多通道 I2S/时分复用至 I2S/时分复用
      • 时钟同步,相位在所有节点中对齐
      • 低延迟从属节点到节点通信
    • I2C 至 I2C 控制和状态信息
    • 远距离 GPIO
  • 总线电源或本地电源从属节点
  • 可使用 SigmaStudio 图形软件工具进行配置
  • AEC-Q100 适用于汽车应用

基线 A2B T收发器特性

  • 可配置为 A2BA2B 总线主节点或从属节点
  • 可通过 I2C 和接口进行编程
  • 8 位到 32 位多通道 I2S/时分复用接口
  • I2S/TDM/PDM 可编程数据速率
    • 多达 32 路上游和 32 路下游通道
    • 主或从属节点上的四个高动态范围麦克风的 PDM 输入
  • 通过多达四个 PDM 麦克风同时接收 I2S 数据
  • 为每个收发器提供唯一 ID 寄存器
  • 支持交越或直通布线
  • 提供可编程设置以优化 EMC 性能

AD243x 收发器增强功能

  • 混合信号
    • 高达 50 W A2B 总线功率
    • 稳压器容量增加(高达 100 mA)
    • 电源电压的 ADC 监控
    • 在低电压输入 (LVI) 模式下,支持 VIN 上的 3.3V 输入
  • 数字
    • 远距离高速 SPI(高达 10 Mbps)
    • A2B 总线自我发现
    • 专用硬件复位引脚
    • I2S/TDM交叉开关
      • Tx/Rx 时分复用通道数据到 A2B 插槽的灵活映射
    • 支持 I2C 快速模式 plus(1 MHz)
    • 支持使用四个 PWM 输出的机舱 LED 控制
    • 八个 GPIO 引脚,具有可配置的引脚映射

ADI A2B功能框图

图3 A2B功能框图

基本 A2B 系统

下图说明了一个基本的 A2B 系统。 A2B 主节点将数据下行发送到从节点,并接收上行数据。 音频数据不需要从主节点传递到从节点,反之亦然,它也可以在从节点之间直接在任一方向流动。 发送到多个节点的数据只需发送一次(即一个节点可以向所有节点或节点子集广播音频)。

图4 基本A2B总线系统

A2B 系统由一个主节点和多达 10 个以菊花链形式连接的从节点组成。 A 端口面向上游,B 端口面向下游。 主节点不使用其上游 A 端口。 从节点可能包含 ADC、DAC 或 (PDM) 麦克风; 或者可能只是不涉及音频和 I2S 的指示器和传感器。

A2B总线带宽数据表

从节点数下行数据流每个节点Slot (Speaker)上行数据流每个节点Slot (Mics)slot大小 Bit下行数据流最大slot数 (Max. 32)上行数据流最大slot数 (Max. 32)上下行数据流总slot数
92216181836
8411632840
74216281442
65216301242
56316301545
48316321244
310616301848
216916321850
1321916321951*
9302427027
8302424024
7402428028
6502430030
5602430030
4802432032
31012430333
21612432234*
13222432234*

表3 A2B总线带宽数据表

A2B 以数据包的形式移动数据,数据包速率为 44.1 kHz 或 48 kHz,通常与采样率相同。 该系统可以支持 96 kHz 和 192 kHz 的 2 倍和 4 倍采样率。 本文的其余部分将基于 48 kHz。 音频数据大小可以是 16 位或 24 位。 由于数据总是以全电平发送(即,最终输出音量通常在节点本地控制),在许多情况下,16 位将超出源和输出的可用动态范围。对于任何给定节点,下行方向最多有 32 个流,上行方向最多有 32 个流。 每个节点对流的总数有一个聚合限制,与方向无关。 对于 16 位数据,这是 51 个流。 对于 24 位数据,此限制为 34 个流。 从主节点的主机处理器的角度来看,任何节点上的所有 I2C 外设都可以通过 I2C 地址复用系统访问。 A2B 收发器部分也有 GPIO,系统支持虚拟化 GPIO。 通过使用 A2B 总线的广播功能,跨多个节点的 GPIO 可以同步更新。 对于具有本地处理的节点,还有本地处理器可以通过本地节点上的 I2C 读取的邮箱寄存器。

A2B超帧

图5 A2B超帧结构

超帧周期(20.83 µsec,对应于 48 kHz)被分为 1024 位时间,也就是说超帧数据宽度为1024bit,其中包含同步控制帧SCF(Synchronization control frame),同步响应帧SRF(Synchronization response frame),下行数据流数据与上行数据流数据。

图6 A2B超帧结构详情

由表3 A2B总线带宽数据表限制,slot带宽大小为16bit,总slot数为51。slot带宽大小为24bit,总slot数为34。也就是说A2B总线预留给音频数据流的带宽为bit。控制帧64bit与响应帧64bit。

A2B总线数据速率为每秒​​​​​​​万位 (Mbps)。 对于文章部分的其余部分,会将其四舍五入为 50 Mbps。

A2B 延迟

A2B 的关键特性之一是音频数据的固定延迟,无论它来自哪个节点以及它被路由到多少个节点。虽然我们将 A2B 描述为基于数据包的,但数据包的内容并未在每个节点存储和转发。每个节点在几个 A2B 位周期(一个 A2B 位周期约为 20 微秒)内开始输出其传入的数据流。

图7 A2B系统多音频源应用

具有多个音频源和输出的应用程序的一个有点虚构的示例显示了数据如何在节点之间移动。 所有数据都在两个采样周期内移动。

虽然不完全正确,但由于不发送空时隙并且给定方向上的数据包是连续的,我们可以考虑一个具有 16 个下行时隙和 16 个上行时隙的简化系统(参见上图)。结合起来我们称之为超帧,它还包括 I2C 数据、GPIO 以及其他状态和控制位。主节点首先向下游发送一个包含 16 个通道(加上控制)的数据包。第一个节点抓取它被编程输出的数据,同时将比特流传递到下一个节点。重复此过程,直到到达最后一个节点。

如果特定节点是最后一个需要给定音频数据流的节点,则不会传递该流。如果主节点没有发送(在本例中)所有 16 个可能的流,则中间节点可以在未使用的流槽之一中向下游发送数据到另一个节点。

最后一个节点在接收到最后一个下行数据包后,在上行方向重复相同的过程。中间节点可以读取流,停止向上游传递不再需要的流,并添加自己的数据发往上游节点。

整个数据移动在一个音频采样周期内完成。还有一个采样周期用于在数据传输之前通过 I2S 将数据输入时钟,这意味着 I2S 数据的输出可以从接收数据开始两个采样周期(标称值,有一个小的额外固定延迟)。在 48 kHz 采样率下,这总计约为 50 µsec。

图 7 更详细地说明了数据交换,显示了数据在下游和上游发送,以及从输入到输出的过程仅略超过两个音频采样周期。A2B 以采样率在数据包中移动数据。 此处说明的是上游和下游发送数据的两个节点上的 I2S 引脚之间的关系。 无论节点彼此之间的物理关系如何,该数字都适用。

图8 A2B 数据总线延迟详图

图6 A2B数据总线同步数据交换关系

上下行数据流时隙配置关系

以下关系描述是站在从设备节点的角度来分析:

下行数据流时隙关系

寄存器配置表示:

DNSLOTS=6 表示整个A2B DATA BUS上已含有6个下行时隙数据。

LDNSLOTS=4 表示从节点需要输出4个本节点下行时隙数据。

DNMASK0=0xCC 表示本地下行数据选择的是2/3/6/7时隙数据,输出给TDM 发送数据接口

DNMASK0=0x03 表示本地下行数据选择的是8/9时隙数据,输出给TDM 发送数据接口

DNOFFSET=2 表示从节点获取从TDM接收数据接口偏移为2开始截取数据。

UPMASK0=0x03 对看下行数据流没有帮助。

TDMMODE=TDM8 表示从节点TDM接口模式是8时隙模式。

下行数据流时隙关系简单描述如下:

从节点设备从A端口收到来自主设备节点6个下行数据流,这6个下行数据需要移动到B端口给下级从节点,而且需要在本节点输出。分别在本节点的TDM Tx 发送数据接口的时隙2、3、6、7、8、9时隙输出。而且还需要将来自本节点的TDM Rx 发送数据接口的时隙,偏移为2个时隙的2,、3、4、5时隙送到B端口的6、7、8、9时隙给下级从节点。

上行数据流时隙关系

寄存器配置表示:

UPSLOTS=6 表示整个A2B DATA BUS上已含有从B端口来的6个上行时隙数据,需要从B端口转移到A端口。

LUPSLOTS=4 表示从节点需要输出4个本节点上行时隙数据,从TDM Rx接口获取,并送至A端口。

DNSLOTS=0 对看上行数据流没有帮助。

LDNSLOTS=2 表示需要将B端口下一级从设备节点的的上行数据输出给本节点的输出给TDM发送数据接口,时隙偏移为2。

UPMASK0=0xC3 表示本地下行数据选择的是0/1/6/7时隙数据,输出给TDM Tx发送数据接口

UPMASK1=x03 表示本地下行数据选择的是8/9时隙数据,输出给TDM Tx发送数据接口

UPOFFSET=1 表示从节点获取从TDM Rx接收接口偏移为1开始截取数据,从A端口对应的时隙6送数据。

TDMMODE=TDM8 表示从节点TDM接口模式是8时隙模式。

本篇暂到这里,后续还有Phantom Power的篇幅。

参考文献

AD242x/AD242xW Automotive Audio Bus A2B Transceiver Data Sheet (Rev. C)
AD2431W/AD2432W/AD2433W/AD2435W: Automotive Audio Bus A2B Transceiver Data Sheet (Rev. Sp0)
AD242x/242xW Technical Reference Manual (Rev. 1.1)
R&D Stories: Getting Started with Automotive Audio Bus (Part 1)

有关Analog Devices Inc. A2B(汽车音频总线)的更多相关文章

  1. 网页设计期末作业,基于HTML+CSS+JavaScript超酷超炫的汽车类企业网站(6页) - 2

    🎉精彩专栏推荐💭文末获取联系✍️作者简介:一个热爱把逻辑思维转变为代码的技术博主💂作者主页:【主页——🚀获取更多优质源码】🎓web前端期末大作业:【📚毕设项目精品实战案例(1000套)】🧡程序员有趣的告白方式:【💌HTML七夕情人节表白网页制作(110套)】🌎超炫酷的Echarts大屏可视化源码:【🔰Echarts大屏展示大数据平台可视化(150套)】🔖HTML+CSS+JS实例代码:【🗂️5000套HTML+CSS+JS实例代码(炫酷代码)继续更新中…】🎁免费且实用的WEB前端学习指南:【📂web前端零基础到高级学习视频教程120G干货分享】🥇关于作者:💬历任研发工程师,技术组长,教学总监;

  2. micropython复现经典单片机项目(二)可视化音频 频谱解析(基本搞定) - 2

    本人是音乐爱好者,从小就特别喜欢那个随着音乐跳动的方框效果,就是这个:arduino上一大把对,我忍你很久了,我就想用mpy做,全网没有,行我自己研究。果然兴趣是最好的老师,我之前有篇博客专门讲音频,有兴趣的可以回顾一下。提到可视化频谱,必然绕不开fft,大学学过这玩意,当时一心玩,老师讲的一个字都么听进去,网上教程简略扫了一下,大该就是把时域转频域的工具,我大mpy居然没有fft函数,奶奶的,先放着。音频信息如何收集?第一种傻瓜式的ADC,模拟转数字,原始粗暴,第二种,I2S库,我之前博客有讲过,数据是PCM编码。然后又去学PCM编码,一学豁然开朗,舒服,以代码为例:audio_in=I2S

  3. FPGA配置之SelectMAP总线 - 2

    1FPGA启动流程图1 7SerialsFPGA配置流程1.1DevicePower-Up1.2ClearConfigurationMemory在上电后的任何时间内,可以对Slave-FPGA配置存储器(BlockRAM)进行复位处理。复位方式是将PROGRAM_B信号拉低(下降沿有效)。1.3SampleModePins当复位完成后,INIT_B恢复高电平,Slave-FPGA对M[2:0]模式引脚进行采样,然后开始在CCLK上升沿接收配置数据。1.4Synchronization在接收配置数据前,Slave-FPGA首先进行总线位宽检测。主机发送的配置文件中,“BusWidthAutoDe

  4. 解决台式机麦克风不可用问题,只有音频输出,无音频输入 - 2

    解决台式机麦克风不可用问题戴尔灵越3880最近因为需要开线上会议,发现戴尔台式机音频只有输出没有输入,也就是只能听见声音,无法输入声音。先后尝试了各种驱动安装更新之类的调试,无果。之后通过戴尔支持解决~这里多说一句,专业的就是专业,问题描述过去,直接给了解决方案,可能是他们遇到的相似问题比较多了,但也告诉我们,有些时候是可以通过这些官方服务解决问题的,比起自己折腾效率要高很多。那就记录一下吧~问题描述:电脑只能输出声音,不能输入声音。1、前提需要准备一只带麦克风的耳机,将耳机插入面板。2、先确定是否可以听到声音,可以通过播放歌曲或者视频。3、然后确认麦克风是否可用,可以通过调用win自带麦克风

  5. ruby - 我将如何以编程方式与 VST(i) 插件交互以合成音频? - 2

    以VSTiTriforce为例,由Tweakbench提供。当加载到市场上的任何VST主机时,它允许主机向VSTi发送(大概是MIDI)信号。然后VSTi将处理该信号并输出​​由VSTi内的软件乐器创建的合成音频。例如,将A4(我相信是MIDI音符)发送到VSTi会导致它合成高于中央C的A。它将音频数据发送回VST主机,然后它可以在我的扬声器上播放或将其保存为.wav或其他一些音频文件格式。假设我有Triforce,我正在尝试用我选择的语言编写一个程序,它可以通过发送要合成的A4纸条与VSTi交互,并自动将其保存到系统上的文件?最终,我希望能够解析整个单轨MIDI文件(使用已经可用于此

  6. D类音频功放NS4110B电路设计 - 2

    特性工作电压范围:6V-14V输出功率:7W(CLASSD,7.4V/4Ω,THD=10%)10W(CLASSD,9V/4Ω,THD=10%)18W(CLASSD,12V/4Ω,THD=10%)最高可达92%效率(12V/8Ω)电平设置工作模式无需输出滤波器差分输入优异的“上电,掉电”噪声抑制过流保护、过热保护、欠压保护 eSOP-8封装典型应用电路很简单:如下是本人的设计。 输入电阻:输入电阻主要是确定增益,即输出功率,所以一定要确定输入信号的幅度,喇叭的幅度,前后使用有效值计算。此设计搭配的喇叭是8R3W,额定功率3W,额定电压4.89V(有效值),最大功率4W。我们先确定输入信号的赋值,

  7. Ruby:@cars.each 之间的区别做 |car|对于@cars 中的汽车 - 2

    (抱歉新手问题。)在Ruby中,循环之间的区别是什么:@cars.eachdo|car|和forcarin@carsdo?效率上有区别吗,或者为什么我们需要两种(或更多)方式来表达同一件事?第二种方式对我来说似乎更优雅/自然,但我可能遗漏了一些关键的观察结果,为什么第一种方式可能是更好的选择。 最佳答案 更多人使用@cars.each表示法,因为它可以推广到其他方法(如#inject、#each_with_index、#map等,以及非迭代器回调)。for/in主要只是#each的语法糖。两者工作方式的主要区别在于变量作用域:irb

  8. 汽车车灯的发展趋势 - 2

    汽车车灯的发展和光源的发展也是息息相关的,光源从煤油灯——》乙炔灯——》白炽灯——》卤素灯——》放电灯——》LED灯——》激光灯——》像素化光源,可以说一步步的越来越进步,而车灯的发展也从白炽灯 ——》卤素灯——》氙气灯——》LED灯。比如有一款车使用的Matrix矩阵式全LED大灯头灯就是多LED灯组,由37颗LED灯组成,由日行灯、转向灯、近光灯、远光灯、角灯组成,转弯时可实现增强照明,泊车可增强照明,  可以说汽车照明系统已经从满足一些基本功能转向了个性化智能化及豪华体验上了。最近激光大灯也出来了,原理是激光发光二极管的蓝光灯将会贯穿前大灯单元内有荧光的荧光粉材料,将其转换成一个扩散的白

  9. ruby - BUG 总线错误 ruby​​ 1.8.7 - 2

    在使用Xcode4.2GM(新MacBook)的Lion10.7.1上使用RVM编译Ruby1.8.7后出现错误。它编译得很好,但是当我尝试安装任何gem时,我得到以下信息:geminstallbundler/Users/me/.rvm/rubies/ruby-1.8.7-p352/lib/ruby/1.8/timeout.rb:60:[BUG]BusErrorruby1.8.7(2011-06-30patchlevel352)[i686-darwin11.1.0]Aborttrap:6更新:最后我希望安装Xcode4.2,安装RVM和Ruby1.8.7、1.9.x并且一切正常。

  10. ruby - 有效地处理数字数组的 "scale"或 "resize"的算法(音频重采样) - 2

    做音频处理(虽然它也可以是图像处理)我有一个一维数字数组。(它们恰好是代表音频样本的16位有符号整数,这个问题同样适用于float或不同大小的整数。)为了匹配不同频率的音频(例如,将44.1kHz样本与22kHz样本混合),我需要拉伸(stretch)或压缩值数组以满足特定长度。将数组减半很简单:每隔一个样本丢弃一次。[231,8143,16341,2000,-9352,...]=>[231,16341,-9352,...]将数组宽度加倍稍微不那么简单:将每个条目加倍(或可选地在相邻的“真实”样本之间执行一些插值)。[231,8143,16341,2000,-9352,...]=>[2

随机推荐