一,背景

xcd 项目当前最新的板子收到后,很多人搭建音频环境受到了阻碍,现整理手顺,可正常搭建测试条件下的音频环境;需要注意的是主板必须为 P2.1 及以后的,且区分高低配;分别对应不同的搭建方式;P2 及以前的主板不再更新和支持;

二,硬件/软件准备

1,硬件准备

  • P2.1 及以后的主板 —— 本文档不再针对 p1 板子提供搭建方案,音频底层已不再支持和适配
  • 对应的 can 线束和电源线束,即 C1,C2,C5,C6 线束
  • 内置 mic 模组,外置 MIC 模组,喇叭若干(MIC 非必须)
  • 功放及功放线束(仅高配需要,不再沿用 Modena,需要改制或使用 XCD 功放线束)
  • canoe/pcan 等发送 can 信号的设备

另:

  1. 对音频/语音/车外 mic 业务需求不高的业务可以不用外接车内或车外 MIC
  2. 功放区分 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 $valuecar.set.temp.config 90 $value$dsp_versioncar.set.amplifier.type $amplifier typecar.set.product.platform $product_platform
值 1-0x01 Without Internal Speaker1 LemansP1\P2 低配:21569+2PA+1 片 A2B1 内置功放直驱0x1001 Lemans
值 2INT_8MIC0x02 8 speaker and integrated Amplifier2 Lemans 高配:21569+0PA+2 片 A2B2 外置功放0x1002 Modena_25C
值 3INT_10MIC0x03 23 speaker and Indepdent Amplifier3 LemansP2.1 及以后低配:21569+3PA+2 片 A2B3 Booster0x1003 Kunlun
值 4INT_12MIC0x04 17 speaker and Indepdent Amplifier4 Kunlun/25C 21593+3 片 PA+2 片 A2B-0x1004 N801F
--0x05 12 speaker integrated Amplifier5 21593+2 片 PA+2 片 A2B-0x1005 Lemans-9
--0x06 25 speaker and Indepdent Amplifier6 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/A2AMP1_OUT1左右头枕扬声器两个喇叭并联
C1-A 线束-A22/A6AMP1_OUT2右前低音+高音扬声器两个喇叭并联
C1-A 线束-A15/A8AMP1_OUT3中置高音+低音扬声器两个喇叭并联
C1-A 线束-A23/A27AMP1_OUT4低音炮_1
C1-A 线束-A14/A21AMP2_OUT1预留(车外扬声器)
C1-A 线束-A24/A28AMP2_OUT2低音炮 2
C1-A 线束-A6/A7AMP2_OUT3AVAS 扬声器
C1-A 线束-A25/A29AMP2_OUT4左前低音+高音扬声器两个喇叭并联
C1-B 线束-B9/B17AMP3_OUT1左后环绕(全频)扬声器
C1-B 线束-B23/B24AMP3_OUT2右后环绕(全频)扬声器
C1-B 线束-B8/B16AMP3_OUT3左后低音+高音扬声器两个喇叭并联
C1-B 线束-B6/B7AMP3_OUT4右后低音+高音扬声器两个喇叭并联

2,mic 连接

车内 MIC 参考 P2.1 改线束 确定是否需要线束改制。

车内 mic:8MIC 3 模组,其中含一个 4MIC 大模组

线束自带接插件,直接把三个 mic 插上(部分线束可能需要改造),MIC 线束正常情况连接 MIC 小板,环境配置 ok,打开小爱开关,授权协议后即可使用。

低配XCD车内MIC连接示意图

车内MIC线束接插件

车外 MIC:8MIC 4 模组,有专用 MIC 模组

车外 MIC 可能暂无接插件,需要时联系 高政杰 / 汤金飞 / 郭宏泉 进行线束改制。

四、高配

最新的 xcd dbc 中,关于功放的电源信号有所变更,故需要特殊的环境配置或者线束改制,并给功放提供电源信号和管理报文信号。

额外注意:音频信号需要通过 LampCANFD 去接收和发送,即 CAN4,否则功放无法出声。

💡 LampCANFD 需使用全域 dbc !!! 如何判断:打开 dbc 搜索是否有 0x90 的报文,若无则代表非全域类型 DBC,需要更换。

MX11 LampCANFD DBC 文件名

环境接线及信号发送

高配需要按照如图方式检查接线,并发送唤醒信号(电源+NM 管理报文)

高配环境接线检查图

XCD高配音频环境接线示意图

C1 2177367 接线端子图

  • 务必将功放的 can 和 xcd 的第四路 can 以及发送 can 信号的工具全部连接在一起,工具发送 0x90 的电源信号(PwrModSts 发送 ACC 或 RUN)+管理报文信号(55B)(必须)。其他路 can 则使用对应路的 dbc 发送 can 信号(如需)。

💡 can4—LampCANFD 通道必须发送电源信号和管理报文信号,否则无法出声!!!

喇叭接线连接示意图

喇叭接线

  • 按照如下表格接喇叭线即可
  • 对发声通道有需求的同学,需要找 蒿超凡 / 高政杰 进行喇叭线束改制
  • 导航/通话/报警等业务线,建议喇叭接前排中置

MS11与MX11喇叭接线差异

五,关于 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!!

  1. 下载如下脚本解压,下载 pycharm,并在 pycharm 中 open 该文件夹在当前窗口

附件(token=LTifbWy3xoVjPjxJU06cCKpinYb)

  1. 适配环境变量,安装 python 解释器,pip 安装库文件

  2. 定义通路,发送信号,其中 1、2 为定义,3、4 为发送;定义时需要根据发送的 can 通道,映射对应的 pcan 硬件,加载对应的 dbc,加载 E2E;如图,对 can7 发送信号,78 行是映射硬件,79 行是加载 can7 的 dbc,80 行是加载 e2e;定义完成后,91 行发送 can_client_ZCUCANFD_7 的某报文信号,96 行发送另一 can 通路的其他报文信号;需要注意,发送的信号必须在该通路的 dbc 中可检索到。

can信号发送Python代码示例

  1. 其中硬件的映射需要(PCAN_USBBUS1/PCAN_USBBUS2)以 pcan 插上 pc 的顺序确定,根据插在电脑端的先后顺序,pcan 硬件分别对应 PCAN_USBBUS1,PCAN_USBBUS2,PCAN_USBBUS3……,在定义信号时注意和硬件的映射关系。

  2. 其中 Bodycan can6 发送时需要让 is_fd = False

六、其他(mic 与回采)

mic 录音检查

audio_tools 录音需要关闭小爱。

audio_tools /data/rec.pcm 26 16000 6

Ch 定义如下:附件(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-

ECALL麦克风连接位置