全网首发!老大众奥迪碟盒通信协议破解,可以模拟数码碟盒,外接AUX蓝牙U盘等音频设备


最新教程
全网首发!大众奥迪DIY数码碟盒增加USB和蓝牙播放音乐功能使用原车接口无损改装

前言

​ 早期大众产品的车机都是使用同一种通信协议,这样的好处就是设计一种碟盒可以挂载到各个型号的大众车机上,也方便维护。这也为后来可以外接虚拟碟机提供了便利。

​ 通过阅读下面的文章可以了解早期大众车机和碟盒之间的通信协议。根据协议可以设计符合自己要求的碟盒,让老车机再战3年。虽然市面上早已有相关的产品,如雅途乐、车乐宝、数码碟盒等产品。但是没有开放对应的协议,爱好者没法自己开发。所以我断断续续搞了半年,自己设计了一个精简版的数码碟盒,只有蓝牙功能。为啥不做全套呢,我觉得aux U盘都得在车上打洞这是接受不了的,所以选择了只支持蓝牙。

​ 理论上该模块支持以下车型,实测2款宝来一款迈腾,剩下车型没有测试仅供参考。

品牌车型接口备注
大众甲壳虫 \奥迪\帕萨特\菠萝\高尔夫\宝来\捷达\斯柯达8针蓝色方头
大众图锐\迈腾\领驭\途安\斯柯达明锐\晶锐12针白色方头

什么是碟盒?

​ 老车机一般有收音机和CD机或者卡带机,而CD机每次只能放一张光盘,每张光盘只能刻录15首左右的音乐。为了解决这个问题,汽车厂家在车机的后面预留扩展接口,可以外接6碟片CD,这样就可以放6*15 = 90 首歌。
在这里插入图片描述在这里插入图片描述

​ 原厂的CD 音质是真不错,但是随着时间的推移,10-20年的老车机干不动了,收音机带杂音,CD机挑碟,不读碟各种毛病,真是老车机不死只是慢慢坏了。然后老汽车还可以在战10年,为了缓解这个矛盾,就有了破解碟盒和车机之间的通信协议,然后通过单片机模拟协议假装自己是个碟盒,这样主机就能将外接的音频信号放大输出了。

碟盒接口定义

​ 以下内容来源网络:

​ 当前国内大众车系常用的碟盒接口分为二种,一种为蓝色的8-pin min-iso接口,别一种为12针的ISO接口。前者在老款帕撒特、POLO、GOLF、宝来中使用,而后者则在新款的速腾、领驭、途安等车型中使用。大众车系中的奥迪有多种不同的碟盒接口不在此介绍了。

8针MINI-ISO接口
在这里插入图片描述
12针ISO接口
在这里插入图片描述

​ CDC (CD changer) cd 碟盒

​ 根据车机碟盒引脚定义我们可以知道引脚可以分为三类

  • 电源
  • 数字信号 车机和碟盒之间的控制信号
  • 模拟信号 碟盒发出的模拟信号

电源:输出电压为12V 负极要搭铁车机外壳,如果直接用音频模拟作为参考GND那么会导致播放的音频中有很大的噪声。数字信号这里面要注意的是,信号电平为TTL电平,也就意味着不支持3.3V逻辑电平,所以如果用低压芯片要记得转换电平否则不能通信。

车机与碟盒之间的通信协议

通过查找资料,加逻辑分析仪一顿胡乱分析,搞了好久,得到物理层通信协议。

碟盒和主机之间有两套通信协议。如下图所示。
在这里插入图片描述

主机向碟盒发送数据协议

​ 从主机到碟盒使用的是DATAOUT引脚,总线空闲时为高电平,传输的信息取决于低电平时间长度,根据时间长度确定起始位,高位或低位。根据资料和逻辑分析仪抓包分析,通信低电平时间长度:

  • S:〜4.57ms //表示32bit数据包开始的起始位
  • 0:〜650us //表示逻辑0
  • 1:〜1.77ms //表示逻辑1
数据帧格式

每个命令代码具有以下格式:

  • 字节1:53 // 第一个标头字节
  • 字节2:2C //第二个标头字节
  • 字节3://数据字节
  • 字节4://数据字节/错误检测 前两个字节始终是53和2C,并且是标头字节。后 两个字节是命令代码。这两个代码的总和始终为0xFF,
字节1字节2字节3字节4
字节头1字节头2数据字节数据字节/错误检测
0x530x2Cdata0xff-data

主机收到碟盒的应答信号后会输出个 53 2C 确认收到应答信号。

逻辑分析仪真机抓包分析

​ 以下数据均抓取自BETA卡带机与6碟盒通信时的波形。
在这里插入图片描述DATA OUT (主机向 碟盒发送数据)脚时序图 :

起始信号波形:

在这里插入图片描述在这里插入图片描述

数据0信号波形:

在这里插入图片描述
在这里插入图片描述

数据1信号波形:

在这里插入图片描述
上电时序 :

主机向碟盒发送53 2C 00 FF
在这里插入图片描述
碟盒回复数据
在这里插入图片描述
主机向碟盒发送手打 53 2c 应答信号
在这里插入图片描述
主机向碟盒发送手打 53 2C 14 EB 命令信号
在这里插入图片描述
上电完成后 碟盒持续向主机发送数据53 2c 10 EF 主机切换到 收音机模式
在这里插入图片描述
如果 没有碟盒应答 那么主机发送
在这里插入图片描述
碟盒向主机发送数据协议

​ 碟盒到主机通过DATAIN和CLOCK引脚发送数据。碟盒通过这个两个引脚发送送收到确认命令 ,还发送CD信息,例如CD号和音轨号。 该数据引脚由时钟引脚提供时钟。这两个引脚通常为高电平, 在有数据要传输时才跳变低电平,类似于SPI。数据传输的时钟周期为7.5us低,7.5us高。每个数据消息由8个字节(32位)组成。传输时,每个字节之间有700us的暂停。高位先传输 。此外,这些32位消息每50毫秒左右发送一次。

逻辑分析仪抓包分析

CLOCK DATAIN(碟盒发向 主机) 时序图
在这里插入图片描述

数据0信号波形:

在这里插入图片描述

数据1信号波形:

在这里插入图片描述
碟盒发出的 数据 为F4 BE FE FF FF FF C9 FC
在这里插入图片描述在这里插入图片描述
上电后碟盒会主动向主机持续发送数据,发送的第一个字节 0x74
在这里插入图片描述

胡乱分析数据报文格式大概如下图所示。

在这里插入图片描述
Tracks 第几首歌

Minutes 分钟

Second是 秒

Mode 模式

Frame1和Frame3 的第5位 为应答位 主机发来命令 碟机应答位连续4次置1

抓到的一些数据包

F4 BE FE FF FF FF C9 FC 碟盒上电 主机上锁数据

F4 BE FE FF FF FF 8F FC 碟盒上电 主机解锁 FM转态 没有按按键状态

F4 BE FE FF FF FF C9 FC 碟盒上电 主机解锁 FM转态 NO disc

B4 BE FE FF FF FF C9 BC 碟盒上电 主机解锁 FM转态 CD ERROR

94 BE FE FF FF FF C9 9C 碟盒上电 主机解锁 FM转态 NO CD

B4 6B 00 FF FF FF FF BC 碟盒上电 主机解锁 FM转态 CD TR01

注意事项

关机状态碟盒不向主机发送数据

在开机状态 CD机掉线 需要关机5s以上重新开机才会检测到CD

高品质无损蓝牙虚拟碟盒设计方案

设计目标

​ 设计一个模块能模拟6碟盒的功能,可以通过CD主机控制虚拟碟盒播放、停止、下一曲、上一曲等功能。蓝牙输出音频可以达到无损输出(前提手机支持无损格式比如APTx)。

设计难点

  1. 根据上文抓到的数据包,使用MCU模拟出对应的时序,欺骗主机让主机以为连接上了一个6CD碟盒
  2. 直接用车机给碟盒供电会引入供电噪声,输出的音频会有很大的噪声
  3. 蓝牙输出的是差分信号,而车机接收的是单端信号,并且蓝牙输出的信号幅小,导致输出的声音小

器件选择

​ 根据上述需求,选择了CSR8645 蓝牙模块,该模块支持APTx高音质无损压缩,满足无损需求。为了解决共地引入的噪声,使用DCDC 隔离电源,将车机的地与音频输出的地隔离开,这样就可以避免引入噪声。为了实现数字信号的通信所以使用了CA-IS3720HS 数字隔离器 用来隔离车机到碟盒高速信号,使用光耦PS2801隔离碟盒到车机的信号。使用tpa6132a2功放芯片可以将蓝牙输出的差分信号转换成单端输出信号,并且可以通过编程设置信号放大倍数,解决了汽车功放输出声音小的问题。主要用到的元器件如下图所示。

  • 无损蓝牙 CSR8645
  • 主控制器 CH32F103C8T6
  • OPA tpa6132a2
  • 隔离 CA-IS3720HS
  • 光耦 PS2801
  • 隔离电源 DC0505s

原理图

​ 根据上诉需求绘制原理图如下图所示。

电源及接口
在这里插入图片描述
MCU及蓝牙
在这里插入图片描述
tpa6132a2 差分转单端功放

PCB设计

在这里插入图片描述
顶层PCB在这里插入图片描述底层PCB在这里插入图片描述
板厂打样
在这里插入图片描述

PCB焊接
在这里插入图片描述

焊接调试线和音频接口
在这里插入图片描述

模块调试

​ 为了验证协议的有效性,和功能的完整性又买了台RCD300 。因为RCD300能显示CD播放时间,所以买了它。
在这里插入图片描述
​ 想要让RCD300工作只需要把12V电源和HU开机信号接上12V,负极可以搭铁在车机的外壳上。将焊接好的模块通过杜邦线连接到车机上。在RF+ RF-上接上喇叭 开机上电,按下CD按钮,出现下图所示界面,通信协议模拟成功!通过手机播放音乐可以通过喇叭放出声音,效果杠杠的。
在这里插入图片描述
​ 接着根据车机按键的功能将按键映射到蓝牙对应的按键上,蓝牙有6个按键高电平有效如下图所示。
在这里插入图片描述
由于该蓝牙模块不支持AT指令,所以只能输入信号不能输出指令,所以做出以下映射。

车机蓝牙
CD1播放/停止
CD2播放/停止
CD6复位蓝牙
上一曲上一曲
下一曲下一曲
MIX
CD3
CD4
CD5

这样就可以通过车机的按钮控制蓝牙播放音乐了,开车的时候想换别的音乐按对应的按钮即可。至于USB SD卡 AUX 原理和上述类似,只不过是换了个信号源而已。

总结

​ 想要做个这个虚拟碟盒很久了,一直没舍得买车机和碟盒拆机研究,今年有几个朋友想改装又不想拆机,而且我之前的改法兼容并不好所以陆陆续续研究了能有半年,买了2个车机一个碟盒研究,才有了这篇博客。虽然通信问题噪声问题解决了但是在调试的过程中又遇到了一些新的挑战,比如这个蓝牙模块,因为无法获取当前工作状态,就不知道蓝牙是否连接成功,所以切换到CD碟盒模式就开始播放音乐,无论蓝牙是否播放声音了,再一个问题是蓝牙模块长时间没有连接,就会进入休眠模式,需要断电或者复位才能唤醒,所以把CD6按钮改成复位功能了。RCD300 没有播放按钮很是蛋疼,所以把CD1 和CD2 按键映射成 播放停止按钮,为啥要用两个按钮呢,因为碟盒主机收到应答后就不会在发送进入CD1模式命令了,所以要用两个按钮循环跳才能触发播放停止命令。

​ 程序先提供烧写文件,等我有空整理测试好,再提供源码给大家二次开发。

联系方式

欢迎感兴趣的朋友一起加入,分享更多改装方法,改装趣事。

在这里插入图片描述在这里插入图片描述

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值