在STM32平台上实现基于汽车音频总线的解决方案

发布者:幸福约定123最新更新时间:2023-09-07 来源: elecfans关键字:STM32平台  汽车音频总线  信息娱乐系统 手机看文章 扫描二维码
随时随地手机看文章

A2B或“汽车音频总线”是一项主要为信息娱乐系统开发的新技术,旨在减轻音频线束的重量和成本。A2B 总线是单主多从系统,其中主控制器上的 A2B 收发芯片为主。A2B 收发器芯片通过单根非屏蔽双绞线支持多通道数字音频。此外,A2B 总线将直流电源传输到远程总线供电节点。A2B 收发器连接多个 IC 间声音 (I2S) 同步、脉冲编码调制 (PCM) 数据,节点之间最长可达 15 米,所有节点的总长度最长可达 40 米。


A2B 主节点生成时钟、同步和成帧信号以及从节点的直流电源。A2B 芯片可通过 I2C 进行编程,用于配置和从从设备读取数据。它提供对从收发器的寄存器和状态信息以及 I2C 到 I2C 通信的直接访问。


A2B 网络基于为整个网络创建的原理图建立,包括主节点、从节点以及与其连接的外围设备。一旦通电,发现机制用于识别网络中连接的每个节点。所有从节点从从节点 0 到系统中最后一个可用节点依次被发现,然后初始化以进行同步数据交换。所有这些功能都在 A2B 软件堆栈中实现。A2B 软件堆栈旨在高效配置、设计和部署 A2B 网络。


本文深入介绍了生成特定于 STM32 微控制器的目标软件,其中包含单主单从 A2B 网络的 A2B 堆栈和应用程序。EVAL-AD2428WD1BZ 板已用作主板,EVAL-AD2428WB1BZ 板已用作从板。该应用程序已创建用于从从设备线路输入到主设备线路输出的音频传输。一个连接在从板上的 I2c 设备,该设备一直与主 I2c 总线通信,并向 STM32 微控制器提供运行时运动数据。


A2B 软件堆栈:

poYBAGKpR4GANotpAAGF5Y3F3Zw591.png

图 1:A2B 软件堆栈

图 1 显示了 A2B 软件堆栈的架构。此 A2B 软件堆栈由 ADI 公司提供,可用于构建特定于任何平台的应用程序,方法是重新实现平台抽象层 (PAL) 和移植特定于目标平台和最终应用程序使用的应用程序层。


基于 A2B 的应用程序开发涉及 3 个主要步骤:

构建特定于定制硬件的目标软件。

在 sigma studio 上设计 A2B 原理图。

应用程序代码开发。

1. 构建特定于定制硬件的目标软件:

图 2 显示了 A2B Stack 目录结构,它由核心 A2B 堆栈和应用程序文件组成。其中,需要对“a2bstack-pal”和“app”文件夹下的文件进行特定于平台的修改。

poYBAGKpR4mAdW4dAADf8DXilbs381.png

图 2:A2B 堆栈目录结构

在这里,每个目录都包含功能特定的软件实现。a2bstack包含用于在发现和配置阶段有效协调网络活动的计划代码。除此之外,它还执行封装在消息和作业中的工作单元。a2bplugin-master包含 A2b 堆栈主节点的源代码。A2B 网络发现算法和线路故障诊断功能作为主插件的一部分实现,而a2bslave-plugin包含一个简单的从插件示例,用作开发自定义插件的启动板。a2bstack -protobuf包含解析使用 ADI sigma studio 生成的 A2B 总线配置文件的源代码。此外,用于解析和解码 Google protobuf 编码的 A2B 配置文件的代码。

a2bstack-pal包含 I2c 通信、音频主机配置、计时器和日志记录功能的驱动程序实现。表 1 包含需要根据目标平台重新实现的 PAL 功能列表。其余功能根据应用程序需要提供扩展功能。

pYYBAGKpR5CAWA7hAACOuefa9ng959.png

表 1:PAL 函数列表

A2b 堆栈进程从a2b_palInit函数开始。此函数为平台创建堆栈 ecb(环境控制块),其中包含 BaseEcb 和 PalECB。PalEcb 包含设备驱动程序和外围配置结构的句柄。

pYYBAGKpR5iAIJQnAAB9dEmLwJo939.png

内存管理实现:a2b_palinit为平台特定的内存管理、定时器、I2c、音频和插件处理程序分配函数指针。此处解释了每个功能的基于 STM32 微控制器的实现。

内存管理实现:

A2B 堆栈提供内置的内存管理器,如果不需要特定于目标的内存管理,可以启用该管理器。我们为此功能启用了A2B_FEATURE_MEMORY_MANAGER 。

I2c 驱动程序实现:

STM32 的 I2c 总线已为 STM32 微控制器配置如下。

poYBAGKpR6GAIUnCAACUMkuQLmM752.png

a2b_pal_I2cOpenFunc 已实现为 I2c 设备调用HAL_I2C_Init并配置模拟和数字滤波器

pYYBAGKpR7SAcDMxAAB58UiKV4k331.png

a2b_pal_I2cReadFunc已通过使用HAL_I2C_Master_Receive实现, a2b_pal_I2cWriteFunc已使用HAL_I2C_Master_Transmit函数实现以从 I2c 设备读取/写入数据。

a2b_pal_I2cWriteReadFunc函数在一次调用中执行 I2c 设备的读/写功能。STM32 HAL 驱动程序不通过调用单个函数来提供读/写功能。此函数已通过在 I2c 设备上调用基于中断的 HAL 发送和接收调用来移植。调用 HAL_I2C_Master_Seq_Transmit_IT来发送数据。已调用HAL_I2C_GetState来检查外设的状态并等待状态显示为“BUSY”。一旦外设完成数据传输,就会调用HAL_I2C_Master_Seq_Receive_IT来接收来自 I2c 设备的数据。同样,HAL_I2C_GetState检查外设的状态并在数据接收成功完成后退出该功能。

pYYBAGKpR_qAJOR-AAE17JMBBMg070.png

使用HAL_I2C_DeInit实现的a2b_pal_I2cCloseFunc以取消初始化 I2c 设备。

定时器实现:

定时器功能已使用 HAL 定时器实现。Timer 已配置为 1 毫秒,并作为a2b_pal_TimerInitFunc的一部分启动,每次调用a2b_pal_TimerCallback时,计数器都会增加1。a2b_pal_TimerGetSysTimeFunc将当前时间保存在 TimerEcb 中。a2b_pal_TimerShutdownFunc实施以停止计时器。

Audio Host 初始化和配置需要基于主机设备的实现。由于已使用评估板,此处的 PAL 不需要在功能上进行任何重新实现。

完成 PAL 的实现后,下一步是将总线配置应用到目标软件。

2. 在sigma studio上设计A2B Schematic:

A2B 网络发现基于使用 sigma studio 创建的示意图运行。原理图包含目标处理器、主机控制器、A2B 主节点和从节点,以及 A2B 网络所需的所有 I2c 从属外围设备。

这是为具有 I2c 器件的单主、单从器件以及具有 EVM EVAL-AD2428WD1BZ 和 EVAL-AD2428WB1BZ 的音频功能创建的原理图。主从配置文件 (.xml) 中的音频主机已添加到外围属性中,以配置从从属线路输入到主线路输出的音频传输。

poYBAGKpR_GAGNpKAAEIraED3NI353.png

图 3:A2B 单主单从原理图

如图 3 所示,A2B 主节点、音频主机和 I2c EEPROM 设备使用 I2c 总线连接到目标处理器(STM32)。A2B 主节点连接到 A2B 从节点,其中包含 I2c 外围设备。所有 I2c 设备都定义了 A2B 堆栈用来访问该设备的指定地址。

原理图需要在导出到 .c 文件之前使用 PC 和 sigma studio 进行验证。这将创建总线配置源文件,其中包含每个节点、主、从 I2c 总线和外围设备节点地址的详细信息以进行通信。将总线配置文件放到 a2b_app/src 目录下。A2B 堆栈解析此文件并获取所有节点的参数,使用此 A2B 堆栈运行网络发现。如果节点序列和示意图中定义的属性与实际硬件连接匹配,则 A2B 堆栈通过发现阶段。

into 原理图中定义的 I2c 设备地址用于与该设备进行通信。一旦这些实现完成,A2B 堆栈就可以发现和配置连接的 A2B 网络。

3. 应用程序代码开发

所需的最后一个实现是应用程序实现。A2B 栈提供了三个注册到栈中的回调函数,可用于重要的网络活动。这些可以根据事件处理的最终应用程序设计要求重新实现。

发现完成回调函数:

a2b_msgRtrSendRequest(msg, A2B_NODEADDR_MASTER, a2bapp_onDiscoveryComplete );

电源/线路回调函数:

pApp_Info-》notifyPowerFault = a2b_msgRtrRegisterNotify(pApp_Info-》ctx, A2B_MSGNOTIFY_POWER_FAULT, a2bapp_onPowerFault , pApp_Info, A2B_NULL)。

中断回调函数:

pApp_Info-》notifyInterrupt = a2b_msgRtrRegisterNotify(pApp_Info-》ctx,

A2B_MSGNOTIFY_INTERRUPT、a2bapp_onInterrupt、pApp_Info、A2B_NULL)。

对于这个基于 STM32 的 A2B 实现,现有的回调实现示例没有被修改。a2b_setup在应用程序启动时调用,用于 A2B 发现和配置。一旦 A2B 设置返回成功,A2B 网络就准备好通过 A2B 将音频从从属设备传输到主设备。

A2B PAL I2c 功能用于与连接在 A2B 从站的 I2c 设备进行通信。这是与 A2B 从 I2c 设备通信以获取运动数据的代码示例。

poYBAGKpR-iALdX7AAC9GmQOyhg357.png

除此应用程序外,还需要有一个连续循环来监控 A2B 上发生的任何故障,并将滴答声提供给 a2b 堆栈。连续滴答使 A2B 堆栈保持激活状态。

pYYBAGKpR-CAG8VCAACJPvln70s688.png

硬件接口:

EVAL AD2428 主节点使用 I2c 线连接到 STM32。Eval AD2428WD1BZ 板包含 P1 连接器,用于在 AD2428 收发器与目标平台之间进行通信。如下图所示,将 Eval 板与 STM32 I2c 总线之间的 I2c 和复位线连接起来。

poYBAGKpR9mAHSXfAAA2CNSegSw741.png

图 4:AD2428WD1DZ Sigma Studio 到 STM32 连接

对于这个项目,评估板、STM32 微控制器和 I2c 外围设备连接如下图所示。

pYYBAGKpR9GAbr58AAEOZzy_4mA800.png

图 5:A2B-STM32 连接

结论:

在本文中,我们讨论了如何使用汽车音频总线或 A2B 进行音频传输以及通过 STM32 控制器平台访问 I2c 设备。该项目是使用 Analog Devices, Inc 评估板创建的。提供的详细信息有助于围绕 A2B 和 STM32 微控制器技术创建实际产品(音频产品和其他产品)。A2B 和汽车音频总线是 ADI 公司的注册商标。ADI 的主要 A2B 网页提供指向部件信息、ADI 工具和设计信息的链接。


关键字:STM32平台  汽车音频总线  信息娱乐系统 引用地址:在STM32平台上实现基于汽车音频总线的解决方案

上一篇:怎样去设计一种基于STM32单片机的智能手环脉搏心率计步器
下一篇:详解stm32定时器的编码器模式

推荐阅读最新更新时间:2024-11-17 09:53

汽车信息娱乐系统设计借助多输出电源管理 IC 而简化
背景 随着产品外形的不断缩小,对于其功能和特性的要求持续提高。再者,用于为这些产品供电的精细数字 IC (例如:微处理器 和微控制器 或现场可编程门阵列 ) 的业界发展趋势是:继续降低其工作电压,同时增加其电流量。微处理器是导入设计时最常用的此类 IC 之一,而且诸如 Freescale、Intel、NVIDIA、Samsung 和 ARM 等供应商推出了越来越多的高效率型产品。这些产品设计用于为众多的无线、嵌入式和网络应用提供低功耗和高性能处理。 这些处理器的初衷是:帮助 OEM 制造商开发出体积较小、成本效益性更佳并具有长电池使用寿命的便携手持式设备,同时提供更高的计算性能以运行功能丰富的多媒体应用程序。然而,这种对于高
[电源管理]
<font color='red'>汽车</font><font color='red'>信息娱乐系统</font>设计借助多输出电源管理 IC 而简化
QNX 为松下全球汽车信息娱乐系统提供软件平台
    全球车载电子软件平台领导厂商QNX软件系统有限公司近日宣布,松下汽车系统(美国)公司已选择QNX公司的QNX CAR™平台来为北美、欧洲和日本的汽车制造商开发信息娱乐系统。为提升下一代车内应用性能,双方公司同时宣布共同为此研发先进技术的意向。   QNX CAR™平台基于已经过数千万汽车验证的QNX®技术。 该平台极为灵活,可以支持丰富的应用环境和智能手机平台以及全面的预集成元件,帮助汽车企业建立连接的、拥有丰富多媒体功能的信息娱乐系统。   松下汽车系统(美国)公司CTO兼副总裁Scott Kirchner表示:“我们需要一个可以帮助我们根据不同市场和不同客户的需求快速定制信息娱乐系统的平台,而QNX CAR平台以其模
[汽车电子]
风河推出Android车载信息娱乐系统快速开发软件工具
【新闻摘要】 • 风河针对汽车产业的特殊需求,提供Android专业知识、技术以及专用软件。 • 新型车用软件让开发者能够迅速集成Android功能,例如丰富的多媒体功能。 • 风河的Android系列软件产品可加速Android设备开发、降低成本和开发工作量 全球领先的嵌入式和移动软件提供商风河公司新近推出汽车市场专用软件,进一步扩大其Android产品组合。Wind River Solution Accelerator for Android - Automotive帮助车载信息娱乐(IVI, in-vehicle infotainment)设备制造商缩短基于Android平台系统的开发时间。作为Wind River S
[汽车电子]
STM32的双路信号源及其配置平台设计
引言 随着雷达探测、仪表测量、化学分析等领域研究的不断深入,不仅要求定性地完成目标检测,而且需要往高精度、高分辨率成像的方向发展。一方面,产生频率、幅度灵活可控,尤其是低相位噪声、低杂散的频率源,对许多仪器设备起着关键的作用。另一方面,电子元器件实际性能参数并非理想加之外部、内部的干扰,大量的误差因素会严重影响系统的准确性。双路参数可调的信号源可有效地对系统误差、信号通道间不平衡进行校调,并且可以产生严格正交或相关的信号,这在弱信号检测中发挥重要作用。为此本文采用双通道DDS方法,利用STM32微控制器完成了一种高分辨率灵活可调的双路信号源电路设计。 1 DDS原理及系统方案 1.1 DDS工作原理 直接数字合成(Dire
[单片机]
<font color='red'>STM32</font>的双路信号源及其配置<font color='red'>平台</font>设计
车载信息娱乐系统的无线音频传送技术
  新式的车载信息娱乐系统包含日益多元化的内容来源,包括专为乘客设计的前座和后座显示器、来自便携式设备的内容,以及便携式计算设备的互联网接入等。乘客有时会想要共享相同的内容,但却并非每次都如此,因此音频传送系统必须能够传送多路内容,并将每路内容传送给特定的乘客。也就是说,每个乘客都能控制内容的选择,也能控制此内容所提供的所有互动选项。为符合这样的环境需求,音频传送系统必须具备某些特定的特性。 耳机   新式的车载信息娱乐系统具有多种内置的音频来源,例如CD播放器和可提供内容至多台显示器的DVD播放器,以及各种类型的广播无线电接收器。携带便携式音频/媒体播放器和智能手机的每位乘客会有自己的内容来源,并通过辅助输入连接到信息娱乐系
[汽车电子]
车载<font color='red'>信息娱乐系统</font>的无线<font color='red'>音频</font>传送技术
英特尔推广Android P 为沃尔沃提供全新信息娱乐系统
北京时间5月9日消息,据国外媒体报道,英特尔也许已经错过了智能手机,但是它可不会在智能汽车市场中重蹈覆辙,通过推广Android P,英特尔在智能汽车市场混的风生水起。 全球著名的芯片制造商英特尔在今天证实,英特尔将为沃尔沃提供了Android平台新一代信息娱乐系统,并由瑞典汽车制造商在未来车辆上进行部署。英特尔今天宣布,具体来说,这是一款自动化Atom SoC(System-on-Chip片上系统)系统,并将成为沃尔沃下一代Sensus智能车载交互系统的核心。显而易见,未来几年内,经销商的车辆将首先基于沃尔沃的安卓定制款。谷歌地图将被预先加载,连同谷歌助手,在不需要连接的智能手机情况下,独立工作。 当然还有谷歌应用商店的权限用
[汽车电子]
现代推新型信息娱乐系统 结合AR导航/车载支付/手写识别触控板
据外媒报道,现代汽车集团(Hyundai Motor Group)研发了新款综合信息娱乐系统,包括以增强现实技术(AR)为基础的导航和车载支付系统,以提升其在快速增长的全球汽车信息娱乐系统市场的影响力,该新款系统将安装在现代汽车集团的下一代车型上,即引入到将于2020年下半年推出的现代全尺寸轿车车型上。 (图片来源:现代) 该新款信息娱乐系统基于现代独有的ccOS(网联汽车操作系统)而打造,内置增强现实导航系统、车载支付系统、带有手写识别功能的触控板(Touch Pad)、以及网联效果更好的后座信息娱乐系统。 (图片来源:autocarpro.in) AR导航 其中,AR导航系统可以为用户提供精确的分路段
[汽车电子]
现代推新型<font color='red'>信息娱乐系统</font> 结合AR导航/车载支付/手写识别触控板
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved