文章目录
前言
之前写过四篇关于车机增加音频输入的方法。
1、07宝来经典车机CD收音机(RC668)改装增加蓝牙播放音乐
2、全网首发!老大众奥迪碟盒通信协议破解,可以模拟数码碟盒,外接AUX蓝牙U盘等音频设备
3、全网首发!大众奥迪DIY数码碟盒增加USB和蓝牙播放音乐功能使用原车接口无损改装
4、全网首发,克莱斯勒大捷龙jeep道奇DIY数码碟盒增加USB和蓝牙播放音乐功能使用原车接口无损改装
这回是给东南大捷龙车机增加蓝牙和USB。东南大捷龙是东南汽车和克莱斯勒合作生产的MVP商务车,年份大概在2007-2012年之间,之后就停车了。可以说是独一无二了。因为产量不高,所以姥姥不疼,舅舅不爱。配套的电子改装套件不是很多,听大捷龙车主反馈,没有蓝牙开车导航不是很方便,所以花了一段时间破解了碟盒协议,制作了一个虚拟碟盒解决车主痛点。
碟盒功能
1、支持蓝牙或者U盘播放音乐
2、支持原车按钮控制
3、可以接挂电话
4、走得是原车碟盒通道可以实现高品质音乐
1、设计指标
模块规格如下:
输入电压 | 11V-14.6V/DC |
---|---|
工作电流 | 200mA |
工作温度 | -40℃~+80℃ |
信噪比 | 95dB |
频率响应 | 20HZ-20KHZ |
3、外观设计
经过几天筛选找到了下面这个外壳 ,长x宽x高 = 6x4x2 CM 还算小巧,上面有一个按键孔和一个5mmLED孔,安排一些功能将这两个孔堵上,侧面是MINIUSB和10PIN牛角座。
4、PCB设计
放上伪3D效果图。
要想音质好,地分割隔离少不了,再打上多多的过孔,特批是射频部分一定要多打孔。
5、程序设计
贴上核心程序代码
/*捕捉中断*/
void ETM2_IRQHandler(void)
{
uint32_t nextVal;
uint32_t curVal = ETM2->CNT;
if(ETM2->SC & ETM_SC_TOF_MASK) //清除溢出标志位
{
ETM2->SC &= ~ETM_SC_TOF_MASK;
}
if(ETM2->CONTROLS[0].CnSC & ETM_CnSC_CHF_MASK )//输入信号边沿变化
{
ETM2->CONTROLS[0].CnSC &= ~ETM_CnSC_CHF_MASK;
if(RxInProgress == (VPW_RxStatus_t)Idle) // 产生下降沿
{
RxInProgress = (VPW_RxStatus_t)SOF;
VPW_RxBufPtr = 0;
// ResetRx();
if(VPW_TxBufPtr >1)
{
VPW_RxBufPtr = 0;
}
ETM2->CONTROLS[0].CnSC |= ETM_CnSC_ELSB_MASK; //切换到跳边沿检测
}
else if(RxInProgress == 1)
{
uint32_t width;
uint8_t symIdx;
width = GetPulseWidth(PrevCntrVal, curVal);
if(width > RX_SOF_MIN && width <= RX_SOF_MAX)
{
symIdx = SOF_IDX;
}
else if(width > RX_LONG_MIN && width <= RX_LONG_MAX)
{
symIdx = LONG_IDX;
}
else if(width > RX_SHORT_MIN && width <= RX_SHORT_MAX)
{
symIdx = SHORT_IDX;
}
else
{
ResetRx();
return;
}
VPW_RxBuf[VPW_RxBufPtr] = symIdx;
if(TxInProgress == 1) //正在发送
{
if(VPW_RxBuf[VPW_RxBufPtr] != VPW_TxBuf[VPW_RxBufPtr])
{
FinalizeTx();
}
}
if(VPW_RxBufPtr < sizeof(VPW_RxBuf) - 2)
{
VPW_RxBufPtr++;
}
SetTimerAlarm(239*48);
}
PrevCntrVal = curVal;
}
if(ETM2->CONTROLS[0].CnSC & ETM_CnSC_CHF_MASK )//输入信号上升沿
{
ETM2->CONTROLS[0].CnSC &= ~ETM_CnSC_CHF_MASK;
}
}
发送程序使用定时器0产生波形
/*****************************************************************************//*!
*
* @brief ETM1 回调函数
*
* @param none
*
* @return none
*
*****************************************************************************/
void ETM0_IRQHandler(void)
{
uint32_t nextVal;
ETM_ClrOverFlowFlag(ETM0); //清除溢出标志位
ETM_ClockSet(ETM0, ETM_CLOCK_NOCLOCK, ETM_CLOCK_PS_DIV16); //停止计数
nextVal = VPW_Symbols[VPW_TxBuf[VPW_TxBufPtr]];
if((VPW_TxBuf[VPW_TxBufPtr] == EOF_IDX)||(VPW_TxBufPtr>=(TX_BUFLEN*8)))
{
FinalizeTx();
}
else
{
ETM_SetModValue(ETM0,nextVal);
ETM0->CNT = 0;
ETM_ClockSet(ETM0, ETM_CLOCK_SYSTEMCLOCK, ETM_CLOCK_PS_DIV16); //开始计数
GPIO_Toggle(GPIOA,J1850_OUT_MASK);
}
VPW_TxBufPtr++;
}
定义结构体 用于保存车机播放音乐相关信息。
typedef struct
{
uint8_t rnd;
uint8_t scan;
uint8_t playing;
uint8_t cd_button;
uint8_t cd_power;
uint8_t cd_status;
uint8_t disc;
uint8_t track;
uint8_t minute;
uint8_t second;
uint8_t workSta; // 工作状态0 关机 1 待机 2工作
uint8_t BIDIstate; // pointer to the current state handler routine
uint8_t BIDIcount;
uint8_t staCount;
} CD_CHANFER_STRUCT;
6、调试
7、大捷龙车机尾插接口定义
公头东南大捷龙车机白色插头
序号 | 名称 | 序号 | 名称 |
---|---|---|---|
16 | 未知 | 8 | |
15 | BATT | 7 | 可能AC |
14 | NC | 6 | DGND |
13 | 可能AC 与7脚相连 | 5 | AGND |
12 | 车机数据输出碟盒输入 | 4 | 左声道 |
11 | 碟盒时钟输出车机输入 | 3 | AGND |
10 | 碟盒数据输出车机输入 | 2 | 右声道 |
9 | 不知道 | 1 | NC |
模块与白色插头连接方法
车机与模块引脚连接对应关系表
模块引脚 | 白色插头引脚 | 模块引脚 | 白色插头引脚 |
---|---|---|---|
L | 4 脚 左声道 | R | 2脚 右声道 |
AG | 5或者3脚 模拟地 | AG | 5或者3 脚 模拟地 |
IN | 12脚 数据输出 | CLK | 11脚 时钟 |
HU | 可能是2脚?需要测试 | OUT | 10脚数据输入 |
12V | 15脚 BATT | DG | 6脚 |
备注: 数字地和模拟地不能连接到一起
8、安装方法
1、将汽车停在安全地方熄火,拔下车钥匙;
2、根据实际情况取出汽车CD车机;
3、使用配套的线束或者根据上文接口定义自己DIY线束,通过线束将模块和车机连起来;
4、插入钥匙打开钥匙 按车上(CD、CDC、DISC、SOURCE、SRC、MODE等按钮进入碟盒模式开始播放音乐;
5、调试没有问题后,如果不使用蓝牙,可以将模块放在车机的后方放回去,或者将模块放到手套箱中,自己喜欢放到哪都行。然后将车机放回即可安装完成;
注意:改装有风险,下手需谨慎,因车型的不同,难易程度不同,当你选择下手的时候,强烈建议找个老司机带你。
9、 使用方法
9.1 CD车机按钮功能定义
东南大捷龙车机在进入CD模式后,只有换歌旋钮、SCAN-、REP、RDM。这几个按钮可以使用。现在做以下映射。方向盘控制功能保留。
车机按钮映射表
车机按钮 | 模块功能 |
---|---|
换歌旋钮顺时针旋转 | 上一曲/接电话 |
换歌旋钮逆时针旋转 | 下一曲/挂电话 |
SCAN | 蓝牙/U盘切换 |
RDM | U盘模式歌曲随机播放 |
REP | 预留 |
9.2 模块指示灯定义
红灯为U盘蓝牙状态指示灯,蓝灯为模块运行状态指示灯。
指示灯状态表
灯闪烁方式 | 模块状态 |
---|---|
绿灯常亮 | 模块正常工作 |
红灯快闪 | 进入蓝牙 |
红灯常亮 | 连接成功 |
红灯慢闪 | 正在播放 |
红灯关闭 | 进入关机模式 |
状态改变说明表
条件 | 动作 |
---|---|
正在播放音乐,此时连接蓝牙 | 音乐停止播放,进入蓝牙模式等待播放音乐 |
蓝牙模式,按下U盘模式按钮 | 开始播放音乐 |
蓝牙连接上,正在播放U盘音乐 | 蓝牙发出声音自动切换到蓝牙模式 |
测试视频
国产大捷龙增加蓝牙U盘播放音乐测试视频
11、 联系我
看这个教程下面
https://blog.csdn.net/songisgood/article/details/124646307?spm=1001.2014.3001.5501