[V2X]音频数据流图

作者:墨染天玑日期:2026/7/26

Playback / Recording / Voice 三种场景的音频数据流框图:

硬件层

BP 侧 (SPF on Modem DSP)

AP ↔ BP 边界

AP 侧 (AudioReach)

Voice 专用 (VCPM)

SPF 容器 (gen_cntr)

APM 音频处理管理器

GPR 接收

ALSA / Kernel

AGM 层

PAL 层

① Playback PCM

pcm_write

pcm_read

② Recording PCM

控制: 图配置

App / TelSDK

pal_stream_open/write/read

StreamPCM

SessionAlsaPcm / SessionAlsaVoice

graph_open/start

graph_write → gsl_write(SHMEM)

pcm_write / pcm_read
虚拟 FE PCM

gpr-lite.c
gpr_send_pkt → rpmsg

audio-pkt.c
共享内存映射

snd-soc-dummy-dai
虚拟 DAI

GPR 共享内存 Ring Buffer
SHMEM_ENDPOINT

glink modem_apps
控制命令 + 数据通知

gpr_lx.c

apm_gpr_cmd_handler
CREATE/OPEN/START/STOP

apm_graph_db

rt_proxy
读/写共享内存

模块链
gain → MFC → MBDRC → IIR

AudioIF
LPAIF I2S 驱动

VCPM 语音容器

VOICE_FLUENCE_SMECNS
EC + NS

Modem Baseband
AMR/EVS 编解码

PRI/SEC/TERT MI2S_RX
播放

PRI/SEC/TERT MI2S_TX
录音

Codec (ES8311/AK7759)
DAC / ADC

Speaker / Handset

Mic

Network


三种场景对比

1┌─────────────────────────────────────────────────────────────────────────────┐
2                        音频数据流三种模式对比                                
3├─────────────┬──────────────────────┬──────────────────────────────────────┤
4   场景         数据是否过 AP 内存       数据通道                            
5├─────────────┼──────────────────────┼──────────────────────────────────────┤
6  Playback      必过                App  pcm_write  GPR共享内存         
7  (播放)                              rt_proxy  SPF模块链  I2S  Codec 
8├─────────────┼──────────────────────┼──────────────────────────────────────┤
9  Recording     必过                Mic  Codec  I2S  SPF模块链       
10  (录音)                              rt_proxy  GPR共享内存  pcm_read  
11├─────────────┼──────────────────────┼──────────────────────────────────────┤
12  Voice Call    不过                Mic  Codec  I2S  LPASS/Modem     
13  (通话)       (AP仅发配置命令)         网络 (全在 Modem 域内闭环)         
14└─────────────┴──────────────────────┴──────────────────────────────────────┘
15

分层架构简图

1┌─────────────────────────────────────────────────────────────────┐
2  Application Layer          TelSDK / 第三方 App                  
3├─────────────────────────────────────────────────────────────────┤
4  PAL (策略层)               StreamPCM / SessionAlsaVoice       
5                             resourcemanager.xml 设备路由        
6├─────────────────────────────────────────────────────────────────┤
7  AGM (图管理层)             graph_open/write + ACDB GKV/CKV    
8├─────────────────────────────────────────────────────────────────┤
9  ALSA / Kernel (AP)         虚拟 FE PCM + gpr-lite + audio-pkt   
10├═════════════════════════════╪═══════════════════════════════════┤   AP/BP 边界
11  GPR 共享内存 + glink       SHMEM_ENDPOINT / modem_apps        
12├═════════════════════════════╪═══════════════════════════════════┤
13  GPR (BP)                   gpr_lx.c 接收                       
14├─────────────────────────────────────────────────────────────────┤
15  APM (图管理)               apm_gpr_cmd_handler 生命周期管理    
16├─────────────────────────────────────────────────────────────────┤
17  SPF 容器                   gen_cntr / VCPM + 模块链            
18                             rt_proxy / gain / MFC / AudioIF     
19├─────────────────────────────────────────────────────────────────┤
20  AudioIF / LPAIF            I2S BCLK/WS/DATA 硬件接口控制        
21├─────────────────────────────────────────────────────────────────┤
22  Codec (外接)               ES8311 / AK7759  DAC/ADC            
23├─────────────────────────────────────────────────────────────────┤
24  物理设备                    Speaker / Mic / Handset / Headset  
25└─────────────────────────────────────────────────────────────────┘
26

设备路由(MI2S 接口分配)

1                    ┌──────────────┐
2                      LPASS I2S   
3                    └──────┬───────┘
4           ┌───────────────┼───────────────┐
5                                         
6    PRI_MI2S          SEC_MI2S        TERT_MI2S
7    (PRIMARY)        (SECONDARY)      (TERTIARY)
8                                         
9    ┌──────┴──────┐ ┌──────┴──────┐ ┌──────┴──────┐
10     ES8311        NAU8810       ES8311      
11     Speaker       Handset       Headphone   
12     Speaker Mic   Handset Mic   Headset Mic 
13    └─────────────┘ └─────────────┘ └─────────────┘
14
15    AUXPCM ─── Bluetooth SCO 通话
16

[V2X]音频数据流图》 是转载文章,点击查看原文


相关推荐


Day 008:Agent 记得越多越好吗?短期与长期记忆的底层逻辑
kisbad2026/7/18

系列: 100 天系统学习 AI Agent 开发 当前阶段: Agent 基础与环境搭建 今日目标: 搞懂短期记忆与长期记忆的核心差异,建立记忆治理机制。 AI Agent 大模型 Agent开发 LangGraph 很多刚接触 Agent 开发的同学,在加上数据库之后都会有一种错觉:“我的 Agent 终于拥有长期记忆了,它可以记住一切!” 但实操下来往往会遇到这种尴尬场景:学习助手如果每次都问“你学到第几天了”,会显得很智障;可如果它把你随口抱怨的一句“我最近不想学 Python”永久保


离线优先:无网络权限的鸿蒙 Flutter 应用设计
程序员小Pyy2026/7/10

在万物互联的时代,做一个"断网"应用反而是最激进、也最负责任的设计选择。本文以 E-Brufen 为例,从架构哲学、存储设计、代码实现到用户体验,全面探讨离线优先应用的构建方法。 一、为什么选择离线? 1.1 一句话:零权限 打开 E-Brufen 的 ohos/entry/src/main/module.json5,你会看到这样一行配置: "requestPermissions": [] 一个空数组。没有 ohos.permission.INTERNET、没有 ohos.p


定时任务(root)与 Web(www)权限冲突问题——使用 ACL 彻底解决
半桶水专家2026/7/2

在 Linux 服务器中,权限冲突问是一个非常常见的问题。 例如: Cron 定时任务:root 用户执行 PHP(Nginx + PHP-FPM):www-data 或 www 用户执行 Apache:apache 用户执行 Tomcat:tomcat 用户执行 两个不同用户需要共同读写同一目录。 很多人第一反应就是: chmod -R 777 data/ 虽然能解决问题,但非常不安全。 Linux 提供了更好的方案——ACL(Access Contr


MySQL 8.0 实现 JSON 字段全文检索 | ngram 分词支持单字/字母/中英文混合搜索
勿忘初心12212026/6/23

MySQL 8.0 实现 JSON 字段全文检索 | ngram 分词支持单字/字母/中英文混合搜索 前言一、业务场景二、技术痛点三、概念解释3.1 ngram 中日韩分词器3.2 生成列(Generated Column)3.3 全文索引(FULLTEXT INDEX)3.4 停用词表3.5 BOOLEAN MODE(布尔检索模式) 四、环境五、MySQL 全局配置(my.cnf / my.ini)5.1 完整配置文件5.2 重启 MySQL 服务5.3 验证配置是否生效 六、创


Claude Codde 入门教程—— 从零到独立完成项目
fa_lsyk2026/6/15

Claude Code 入门教程 适合人群:技术小白、编程初学者、对 AI 编程感兴趣的所有人 学习目标:读完本文后,你能够独立使用 Claude Code 完成一个完整的 OCP 项目 阅读时间:约 45-60 分钟 难度等级:★☆☆☆☆(零基础友好) 目录 前言:你即将拥有的"超能力"什么是 Claude Code?—— 你的 AI 编程伙伴安装 Claude Code —— 3 步搞定第一次对话 —— 跟 AI 说"你好"核心概念:理解 Claude Code 的"


HDFS 频繁进入安全模式的原因及解决方案
数据小羊2026/6/8

你是否遇到过 HDFS 集群时不时进入安全模式(Safe Mode)的问题?这不仅会影响数据的读写,还可能导致整个 Hadoop 生态系统的应用出现异常。本文将深入分析 HDFS 安全模式的触发机制,以及如何有效解决这个棘手问题。 什么是 HDFS 安全模式? HDFS 安全模式是一种保护机制,在这种状态下,文件系统只允许读操作,不允许任何修改文件系统的操作。通常在 NameNode 启动时会进入安全模式,以确保文件系统的元数据和数据块信息的一致性。 为什么 HDFS 会频繁进入安全模


【Redis】网络高并发模型
步十人2026/6/1

目录 一、 核心场景:百万并发下的秒杀大考1. 传统多线程服务器会怎么样?2. Redis 凭什么能抗住?第一步:建立连接(非阻塞 + epoll)第二步:读取请求(非阻塞 I/O)第三步:执行命令(单线程串行,纯内存操作)第四步:返回结果(非阻塞写) 二、 深度对比:多线程阻塞 vs 单线程非阻塞三、 演进:Redis 6.0+ 的多线程 I/O 革命四、 微观视角:一个秒杀请求的时间线拆解五、 致命死穴:如果某个命令很慢怎么办?本篇总结 一、 核心场景:百万并发


你写的代码没有测试,就像出门不锁门——Jest + Testing Library 从入门到不慌
kyriewen2026/5/11

你改了一行代码,手动点了一遍页面,觉得没问题就上线了。结果用户反馈“登录按钮点不动了”。你心里咯噔:我根本没改登录相关代码啊。今天我们来给你的代码装一把“智能门锁”——单元测试。用 Jest + Testing Library,把常见 Bug 锁在门外,让你改代码时不再心惊胆战。 前言 很多前端对测试的态度是:项目那么赶,哪有时间写测试?结果修 Bug 的时间比写代码还多。你花 20 分钟写的测试,可能帮你省掉 2 小时的通宵排查。 测试不是“额外工作”,而是安全网。当你需要重构、升级依赖、添


Git Worktree: AI 编程 Agent 并行开发的秘密武器
陈佬昔编程人生2026/5/1

你在 AI 编程工具里开发一个新功能,突然产品过来让修复一个紧急 bug。于是你开了两个 AI Agent: Agent A:在 feature/new-dashboard 上写新功能 Agent B:在 fix/login-bug 上修一个登录 Bug 你心想:"两个 Agent 同时干活,效率翻倍。" 但三分钟后你回到编辑器,看到的是一幅这样的画面: app/ ├── dashboard.tsx ← Agent A 刚改了这里,但没写完 ├── login.tsx ←


我把 Hermes 里的模型几乎测了一遍,得出一个很扎心的结论:越贵的,往往越强
孟健AI编程2026/4/23

大家好,我是孟健。 这几周我在 Hermes 里来回切了很多模型。真跑下来,我越来越确认一件事:模型的水平,很多时候早就写在价格里了。把性价比榜倒过来看,八九不离十就是质量排行。 这不是 benchmark 结论。 是我把 Hermes 当生产底座,拿它去跑多 Agent、长流程、代码任务、资料整理之后,交出来的体感排序。 01 先给排序:贵,很多时候不是乱贵 先看这张图。 图里是按价格排的:便宜的在前,贵的在后。 但我这轮实际测下来,如果你把它倒过来看,它反而更像质量榜。 我的主观体感

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 聚合阅读