Android车载MCU控制音量和ARM控制音量的区别和优缺点—TEF6686 FM/AM芯片

发布时间:2026/9/9 13:09:33
Android车载MCU控制音量和ARM控制音量的区别和优缺点—TEF6686 FM/AM芯片 不要嫌前进的慢只要一直在前进就好文章目录前言一、系统架构图1.MCU控制音量的架构图老方法2.ARM控制音量的架构图新方法3.ARM控制音量的架构图新方法-降成本二、为啥控制音量不是用AudioManager而是执着去直接控制TDA7729三、MCU控制音量和ARM控制音量各自的优缺点1.MCU控制音量2.ARM控制音量总结前言Android车载系统开发定制晚于Android手机但是也有10多年的时间到8.0版本Android专门为车载添加AAOSCarOS分支。多年的从业经验也见证了行业的各种技术更新变化这篇博客讲讲我个人理解的MCU控制音量和ARM控制音量的区别和优缺点。一、系统架构图1.MCU控制音量的架构图老方法芯驰x9系列平台Android 10芯片其实是比较新的一个芯片平台因为我司客户目标是商用车追求低成本所以没有完全使用芯驰推荐的那套外设芯片。例如芯驰推荐的DSP是AK7738AVQ我司用的是TDA7729。7729安卓端芯驰没有封装控制接口我司MCU有控制7729的工作经验故音量、音效、通道都是MCU端控制的。音量和音效很好理解通道没做过老式车载和车载的就很难理解我尽量简单的把通道讲清楚。通道上图可以看到ARM数字信号和TEF6686模拟信号都是直连TDA7729输出声音信号7729默认有多路声音通道ARM默认通道0TEF6686使用通道1。参照安卓音频交互矩阵FM/AM和媒体本地音乐/视频酷狗喜马拉雅等相互属于独占的音频类型。例如ARM端当前播放酷狗音乐通道0这时用户点想播放FM/AM那么就需要点击Radio图标并切换到通道1才会有无线电台声音听一会用户又点击了U盘音乐图标这时又需要切换到通道0才会有ARM端媒体声音。我入行的时候就是用的这套MCU切通道、控制音量、音效的方法我称之为“老方法”。2.ARM控制音量的架构图新方法杰发ATC8257平台Android 9也算是比较新的一个平台平台的优点就是成本低缺点也有此处不表。这套方案杰发推荐使用TDA7729Android端杰发也封装了java控制7729的音量、音效、增益等接口所以项目启动的时候决定音量的控制放到ARM端。这就有个TEF6686的音频怎样输出的新问题杰发给的方案如上图在ARM创建一个音频节点供6686数字音频输入对应创建一个录音类型MediaRecorder.AudioSource.FM_CUSTOMAndroid端使用AudioRecord AudioTrack边录边播我是参照vendor/mediatek/proprietary/packages/apps/FMRadio/这个工程完成的。这样实现后在ARM端Radio APP跟U盘音乐、酷狗一样的是个媒体类型的APP使用AudioManager.STREAM_MUSIC音频类型抢音频焦点播放。从2008年AAOS车载系统出来后基本都是这种ARM控制系统音量、音效的方法我称之为“新方法”。贴一点我当时实现数字FM/AM用的方法用命令可以查看pcm设备列表杰发给的录音节点06capture/playback 只有PCM设备才有这部分只有c和p两种。c代表capture说明这是一个提供录音的设备p代表palyback说明这是一个提供播放的设备。1、查看当前的声卡cat /proc/asound/cards2、查看pcm设备列表cat /proc/asound/pcm3、查看当前有哪些进程占用了pcm设备节点lsof |grep pcm4、查看有哪些音频设备节点ls /dev/snd/Android端通过tinycap命令录制这个节点测试是否可用tinyplay、tinymix、tinycap的使用可以先看下面这篇博客如何查看声卡、pcm设备以及tinyplay、tinymix、tinycap的使用用下面命令录制节点6可录.pcm或者.wav的音频资源录好pull出来用电脑或者发到手机微信播放如果节点正常你可以听到6686里面FM/AM的声音。控制搜台那些我司目前还是通过串口服务发命令给MCU来控制后续开发ATC8025平台是打算把控制的部分也迁移到ARM端。adb root adb shell tinycap/data/test.pcm-D0-d6-b16-r48000-c2adb shell tinycap/data/radio.wav-D0-d8-b16-r48000-c2tinycap/data/radio.wav-D0-d4-b16-r48000-c2adb pull/data/test.pcm-D 哪个声卡的意思, 比如usb声卡, 本机mic …-d 当前声卡下的哪个设备录音, 一般一个声卡下会有多个设备-c 录音通道数-b 采样精度,一般是16bit,但是如果需要标记位就要升高精度如24bit或32bit-r 录音采样率-p period size:每个中断周期需要准备的音频空间大小-n 有多少组 period size3.ARM控制音量的架构图新方法-降成本还是杰发ATC8257平台Android 9公司接到大厂JILI-YC的B点降成本低端平台在方案2的基础上进一步降低硬件成本收音芯片由TEF6686(网上查的最低20.35元一颗)变更为TSC4736(未查到价格领导说是几块钱)去掉GPS芯片等。这种方案TSC4736硬线接到音频芯片TDA7729通道1ARM(Android系统)音频接TDA7729默认通道0MCU控制4736内部接口实现FM/AM功能。现在大环境到处降本增效这种低端方案还是有市场的。缺点成本是降了但是我们软件被折腾的半死音频控制巨麻烦一堆的不稳定中实现稳定太难了二、为啥控制音量不是用AudioManager而是执着去直接控制TDA77291.能问出这种问题的小伙伴说明你的水平已经是个小高手起码也是玩过Android多媒体、音量控制的工程师。我曾经也这么灵魂拷问过我的技术领导他当时给我一个白眼说车载就是这么做的现在想想他还是想有所保留的。我一度反复思索多年不得要领后面在另一家公司我又灵魂拷问我的副总这个副总是硬件出身他说你不直接控制7729音量指标过不了虽然你在Android用AudioManager把音量调到0但是音频芯片7729有底噪。再就是车载有音效要控制四个喇叭音量平衡只有个控制7729才能实现这才恍然大悟。2.再结合Android在8.0的时候给车载开的分叉AAOS里面控制音量是CarAudioManagerCarAudioManager有耐心的小伙伴可以追踪一下代码它也是直接控制的DSP音频芯片音量也就是跟我前面讲的两种控制音量的方法一样的控制硬件音量到这里突然就像打通了任督二脉懂了整个车载音频架构设计的逻辑。3.AudioManager控制的是软件音量我们称之为软音量控制7729音量和AAOS的CarAudioManager控制音量都是控制硬件音量我们称之为硬音量。4.Android车载一定要控制硬音量不然底噪太大过不了指标。三、MCU控制音量和ARM控制音量各自的优缺点1.MCU控制音量优点从我Android软件开发工程师角度来说毫无优点唯一的优点就是搞出产品能卖钱缺点APP需要通过串口服务来控制MCU从而达到控制音量还需要通知MCU当前ARM的媒体播放状态比较繁琐出了问题不能快速debug2.ARM控制音量优点ARM控制音量少了跟MCU交互那一层代码逻辑更清晰明了有问题可快速debug快速解决缺点无在车载行业目前来看是无缺点完美AAOS的音频设计更完美总结Android车载音频设计是最复杂、最难做、最重要的一部分把音频部分做好这个系统基本上大差不差可以说做好了。小伙伴们如果向往这方面发展可以先从多媒体入手懂了多媒体模块就能懂音频流、音频焦点进而可以学习音量管理、音频矩阵、车载音频配置、音频控制hal、多区音频路由等等。AAOS音频设计的部分每个版本之间也有变化具体的可以去开源网站上学习https://source.android.google.cn/docs/automotive?hlzh-cn学海无涯苦作舟

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询