一,背景
xcd 项目当前最新的板子收到后,很多人搭建音频环境受到了阻碍,现整理手顺,可正常搭建测试条件下的音频环境;需要注意的是主板必须为 P2.1 及以后的,且区分高低配;分别对应不同的搭建方式;P2 及以前的主板不再更新和支持;
二,硬件/软件准备
1,硬件准备
- P2.1 及以后的主板 —— 本文档不再针对 p1 板子提供搭建方案,音频底层已不再支持和适配
- 对应的 can 线束和电源线束,即 C1,C2,C5,C6 线束
- 内置 mic 模组,外置 MIC 模组,喇叭若干(MIC 非必须)
- 功放及功放线束(仅高配需要,不再沿用 Modena,需要改制或使用 XCD 功放线束)
- canoe/pcan 等发送 can 信号的设备
另:
- 对音频/语音/车外 mic 业务需求不高的业务可以不用外接车内或车外 MIC
- 功放区分 DCD 功放和 XCD-B 样和 XCD-C 样功放,Lemans 必须使用 XCD-C 样功放,否则无法保证出声
2,关于功放(高配需要,低配无需关注)
功放需要升级 xcd 专用的版本,功放固件升级可以参考 高配台架搭建音频环境方法—DCD 及该文档的引用找到升级办法。
需要升级 xcd 专用功放版本,最新 MX11 固件可在此处获取:MS11&MS11-P&MX11 AMP软件版本
3,配置字
修改硬件或整车配置字参考:EEA2.0&EEA4.0配置字手顺,音频环境搭建前必须保证配置字是正确的。
配置字查询:
adb root
adb shell
./vendor/bin/hw/get_car_config配置字写入:
PS:写配置前先对照文档看能否修改单个配置字 EEA2.0&EEA4.0配置字手顺
举例:
adb root
adb shell
stop mculog
microcom /dev/ttyHS4 //进入mcu串口
log.set.loglevel.current 0
car.set.temp.config $id $value // 在mcu串口中敲,重启生效 例如:car.set.temp.config 813 1- 参考文档,先确认 hwbn,hwbn 写入之后,才能进行后续写入
需要依次按需求写(检查)下述配置字:
❗ 低配的 Internal Speaker Type(90) 车内扬声器数量【整车配置字】= 5 低配的 amplifier type 功放配置【硬件配置字】= 1
❗ 高配的 Internal Speaker Type(90) 车内扬声器数量【整车配置字】= 3 高配的 amplifier type 功放配置【硬件配置字】= 2
当前刷机后 dsp 会自恢复,理论上不用单独升级 dsp,但需要确保配置字正确。
其中,Lemans 低配车内 8MIC,低配使用内置功放驱动,高配使用外置功放驱动。
| 配置字及参数号 | INTERIOR_MIC_MODULE_TYPE(107) 车内麦克风数量【整车配置字】 | Internal Speaker Type(90) 车内扬声器数量【整车配置字】 | dsp version DSP 配置【硬件配置字】 | amplifier type 功放配置【硬件配置字】 | product platform 平台【硬件配置字】 |
|---|---|---|---|---|---|
| 修改命令行 | car.set.temp.config 107 $value | car.set.temp.config 90 $value | $dsp_version | car.set.amplifier.type $amplifier type | car.set.product.platform $product_platform |
| 值 1 | - | 0x01 Without Internal Speaker | 1 LemansP1\P2 低配:21569+2PA+1 片 A2B | 1 内置功放直驱 | 0x1001 Lemans |
| 值 2 | INT_8MIC | 0x02 8 speaker and integrated Amplifier | 2 Lemans 高配:21569+0PA+2 片 A2B | 2 外置功放 | 0x1002 Modena_25C |
| 值 3 | INT_10MIC | 0x03 23 speaker and Indepdent Amplifier | 3 LemansP2.1 及以后低配:21569+3PA+2 片 A2B | 3 Booster | 0x1003 Kunlun |
| 值 4 | INT_12MIC | 0x04 17 speaker and Indepdent Amplifier | 4 Kunlun/25C 21593+3 片 PA+2 片 A2B | - | 0x1004 N801F |
| - | - | 0x05 12 speaker integrated Amplifier | 5 21593+2 片 PA+2 片 A2B | - | 0x1005 Lemans-9 |
| - | - | 0x06 25 speaker and Indepdent Amplifier | 6 SC594+3 片 PA+2 片 A2B | - | 0x1006 Lemans-9N |
| - | - | 0x07 13 speaker integrated Amplifier | - | - | 0x1007 Modena-L |
| - | - | 0x08 18 speaker and Indepdent Amplifier | - | - | 0x1008 Mann |
当前版本,若配置字正确,dsp 会自恢复,但通常采用线刷方式时,在 MCU 匹配的情况下,建议手动进行一次 dsp 升级,需要升级 DSP 时,使用最新的升级命令。
DSP 升级命令已变更,在安卓键入:
Lemans
# 21569+内置AMP(p2及以后的板子,p1不再支持)
dsp_firmware_upgrade -f /odm/etc/miaudio/firmware/LEMANG/INT.AMP/ADSP-21569.ldr
# 21569+功放
dsp_firmware_upgrade -f /odm/etc/miaudio/firmware/LEMANG/EXT.AMP/ADSP-21569.ldr详细文档可参考:ADI-DSP升级命令
此阶段可能耗时较长,请耐心等待。成功:看到两个 success。
三,低配
如果连接了 acc 线,则无需发送 can 信号即可点亮车机,连接 mic 和喇叭后即可出声。
未连接 ACC 线,需要 can7 发送电源和管理报文等相关信号,唤醒车机。
部分音频相关信号参考 XCD/DCD 音频信号集
1,喇叭连接
接线参考:电气接口信息表(LDI)- LEMANS-XCD V1.9-20241219(sheet DNcpbi)
P2.1 及以后 硬件说明:
| 线束 | 通道 | 用途 | 备注 |
|---|---|---|---|
| C1-A 线束-A1/A2 | AMP1_OUT1 | 左右头枕扬声器 | 两个喇叭并联 |
| C1-A 线束-A22/A6 | AMP1_OUT2 | 右前低音+高音扬声器 | 两个喇叭并联 |
| C1-A 线束-A15/A8 | AMP1_OUT3 | 中置高音+低音扬声器 | 两个喇叭并联 |
| C1-A 线束-A23/A27 | AMP1_OUT4 | 低音炮_1 | |
| C1-A 线束-A14/A21 | AMP2_OUT1 | 预留(车外扬声器) | |
| C1-A 线束-A24/A28 | AMP2_OUT2 | 低音炮 2 | |
| C1-A 线束-A6/A7 | AMP2_OUT3 | AVAS 扬声器 | |
| C1-A 线束-A25/A29 | AMP2_OUT4 | 左前低音+高音扬声器 | 两个喇叭并联 |
| C1-B 线束-B9/B17 | AMP3_OUT1 | 左后环绕(全频)扬声器 | |
| C1-B 线束-B23/B24 | AMP3_OUT2 | 右后环绕(全频)扬声器 | |
| C1-B 线束-B8/B16 | AMP3_OUT3 | 左后低音+高音扬声器 | 两个喇叭并联 |
| C1-B 线束-B6/B7 | AMP3_OUT4 | 右后低音+高音扬声器 | 两个喇叭并联 |
2,mic 连接
车内 MIC 参考 P2.1 改线束 确定是否需要线束改制。
车内 mic:8MIC 3 模组,其中含一个 4MIC 大模组
线束自带接插件,直接把三个 mic 插上(部分线束可能需要改造),MIC 线束正常情况连接 MIC 小板,环境配置 ok,打开小爱开关,授权协议后即可使用。
车外 MIC:8MIC 4 模组,有专用 MIC 模组
车外 MIC 可能暂无接插件,需要时联系 高政杰 / 汤金飞 / 郭宏泉 进行线束改制。
四、高配
最新的 xcd dbc 中,关于功放的电源信号有所变更,故需要特殊的环境配置或者线束改制,并给功放提供电源信号和管理报文信号。
额外注意:音频信号需要通过 LampCANFD 去接收和发送,即 CAN4,否则功放无法出声。
💡 LampCANFD 需使用全域 dbc !!! 如何判断:打开 dbc 搜索是否有 0x90 的报文,若无则代表非全域类型 DBC,需要更换。
环境接线及信号发送
高配需要按照如图方式检查接线,并发送唤醒信号(电源+NM 管理报文)
- 务必将功放的 can 和 xcd 的第四路 can 以及发送 can 信号的工具全部连接在一起,工具发送 0x90 的电源信号(PwrModSts 发送 ACC 或 RUN)+管理报文信号(55B)(必须)。其他路 can 则使用对应路的 dbc 发送 can 信号(如需)。
💡 can4—LampCANFD 通道必须发送电源信号和管理报文信号,否则无法出声!!!
喇叭接线
- 按照如下表格接喇叭线即可
- 对发声通道有需求的同学,需要找 蒿超凡 / 高政杰 进行喇叭线束改制
- 导航/通话/报警等业务线,建议喇叭接前排中置
- 线束定义和差异点参考:AMP MX11 和 MS11 连接器差异
五,关于 can 信号发送
方法 1(canoe 工具)
至少需要两路 can 通道!!
使用如下工程文件,打开 canoe,配置通道 can4+can7 后,点击启动即可唤醒功放。
附件(token=Bgvnbqv0fo1Igxx5cuEcRCbonae)
方法 2(Micctest Toolbox 工具搭配 MIcan/Pcan)
使用 【Micctest Toolbox】用户手册 工具搭配 MIcan/Pcan。
该工具暂未集成全域 can4 dbc,以及自定义管理报文,需要 张恒 老师进行适配,demo 已打通。
方法 3(使用 python,搭配 Pcan 工具进行适配)
至少需要两个 pcan!!
- 下载如下脚本解压,下载 pycharm,并在 pycharm 中 open 该文件夹在当前窗口
附件(token=LTifbWy3xoVjPjxJU06cCKpinYb)
-
适配环境变量,安装 python 解释器,pip 安装库文件
-
定义通路,发送信号,其中 1、2 为定义,3、4 为发送;定义时需要根据发送的 can 通道,映射对应的 pcan 硬件,加载对应的 dbc,加载 E2E;如图,对 can7 发送信号,78 行是映射硬件,79 行是加载 can7 的 dbc,80 行是加载 e2e;定义完成后,91 行发送
can_client_ZCUCANFD_7的某报文信号,96 行发送另一 can 通路的其他报文信号;需要注意,发送的信号必须在该通路的 dbc 中可检索到。
-
其中硬件的映射需要(PCAN_USBBUS1/PCAN_USBBUS2)以 pcan 插上 pc 的顺序确定,根据插在电脑端的先后顺序,pcan 硬件分别对应 PCAN_USBBUS1,PCAN_USBBUS2,PCAN_USBBUS3……,在定义信号时注意和硬件的映射关系。
-
其中 Bodycan can6 发送时需要让
is_fd = False。
六、其他(mic 与回采)
mic 录音检查
audio_tools 录音需要关闭小爱。
audio_tools /data/rec.pcm 26 16000 6Ch 定义如下:附件(sheet token=HUe9sIIf9hfrIBtXNO0cocFQnbn)
ECALL 连接(连接方式与硬件不区分高低配)
参考 LDI 图连接 mic 与 spk 即可 XCD Audio 刷写说明 / 电气接口信息表(LDI)- LEMANS-XCD V1.9-20241219
Ecall 部署在 xcd,使用独立的扬声器和 MIC。
扬声器:位于 C1 线束,Ecall_SPK+,Ecall+SPK-
MIC:位于 C5 线束,硬件使用车内 MIC 大模组,ecall_mic+,ecall_mic-