资讯详情

全网首发,克莱斯勒大捷龙jeep道奇DIY数码碟盒增加USB和蓝牙播放音乐功能使用原车接口无损改装

文章目录

    • 前言
    • 1、设计指标
    • 2、J1850协议
      • 2.1 J1850通信波形抓取
    • 3、外观设计
    • 4.原理图设计
    • 5、PCB设计
    • 6、程序设计
    • 7、调试
    • 8.大捷龙车机接口
    • 9、pin定义碟盒接口
      • 9.1.模块与10车机连接方法
    • 8、安装方法
    • 10、 使用方法
      • 10.1 CD车辆按钮功能定义
    • 11、 联系我

前言

之前写过三篇关于大众增加音频输入的文章。

1.07宝来经典车机CD收音机(RC668

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

3.全网首发!大众奥迪!DIY增加数码碟盒USB蓝牙播放音乐功能采用原车接口无损改装

这一次,一位捷龙车主告诉我,他们的旧车没有蓝牙的痛苦。他热情邀请我帮助他们增加美国克莱斯勒旧车的蓝牙和蓝牙USB。车主是一个非常直率的人,所以他答应了他。车主很快把他车上的车和10盘发给我。但由于疫情和工作的影响,断断续续一个多月,功能基本完成。可实现以下功能。 在这里插入图片描述

1、支持蓝牙或者U盘播放音乐

2.控制原车按钮

可接挂电话

4.原车碟盒通道可实现高品质音乐

1、设计指标

模块规格如下:

输入电压 11V-14.6V/DC
工作电流 200mA
工作温度 -40℃~ 80℃
信噪比 95dB
频率响应 20HZ-20KHZ

2、J1850协议

早期美国车型基本采用单总线J1850VPW协议中,大捷龙主机与碟盒之间的通信是通过的J实现了1850协议。因此,通过破解传输的内容,可以虚拟出一个数字碟盒。以下是百度百科。

汽车工程师协会1994年1850总线(Society of Automotive Engineers;SAE)福特等美国汽车制造商颁布的标准在福特等汽车中得到普及(Ford)、通用汽车(General Moter;GM)、克赖斯勒(Chrysler)等等,尽管美国汽车制造商大多实施J1850标准,但各厂的实际做法各不相同,Ford实体层设计与GM、Chrysler不同,而GM与Chrysler虽然实体层相同,但上层的讯框格式不同,相当于三家车厂有三种协议。 [1]

在J在1850总线上,数字信号的显性位优先级高于隐性位优先级。当总线被高优先级消息占用时,低优先级消息停止发送,只有在总线空闲时停止发送的消息才能再次发送,以避免总线上消息冲突造成的消息丢失。在判断是否应接收总线传输的信息时,J1850协议采用全帧比较的方式,即从帧开始比较一位,直到帧结束。这种方法不会破坏帧结构和内容,这种解决非破坏性冲突的方法也是协议的核心。J1850协议没有严格定义可能出现的帧错误。但是,它使用CRC检测错误帧的验证规则。当发送站检测到发送的帧信息错误时,它会自动中断发送过程。收到这个消息的网站在收到这个错误帧时会完全抛弃这个帧。 J1850 应用层主要用于操作信息提示和故障诊断。SAE协议已进一步扩展,扩展部分已写入J2178协议之中。

就车用电子总线分类而言,J1850属于B级(Class B)的总线,B水平总线的速率约为20kbps~125kbpsA级总线比较低,低于20kbps下面,最著名的是LIN Bus。B主要用途为车辆信息中心、仪表显示、故障检测诊断等。由于J1850的实际应用混乱,有逐渐淘汰的趋势,预计最有可能取代J1850是低速版CAN Bus。

如前所述,J1850有不同的实体层作法,一种是脉宽调变(Pulse Width Moduleated;PWM)以差动的方式传输,最高速率为41.6kbps;另一种是可变脉宽(Variable Pulse Width;VPW)这样,只能用一条线传输,最高速率为10.4kbps。

在逻辑准位方面,J1850的高准位电压约为4.25V~20V低准位电压低于3.5V。需要注意的是,一个高压(或低压)并不意味着输出一个bit一个信息「bit symbol」,1个bit symbol至少可以携带一个bit但息,但也可以更多,视调变法而定。此外,每个Symbol传输有其时间限制,单线传输1Symbol传输时间为64微秒或128微秒。

在实体线上,J1850总线通常连接一个微弱的下拉电阻。当总线被驱动时,线路电压将被拉到高位,这也相当于获得总线的主导和使用权。如果争夺总线的主导地位,J1850使用CSMA/CR仲裁竞争,以确定总线上的节点有权先使用总线。

百度百科介绍

2.1 J1850通信波形抓取

J1850 VPW – 以数据位为基本单位传输,定义起始位(SOF):200us 高电平代表开始传输位置,定义了一个结束位置(EOF):280us 低电平表示位传输正常结束,起始位后的数据位表示方式可以认为:电平不断翻转,每次翻转都会产生新的数据位,数据位是0还是1取决于翻转时电平的持续时间,数据位是0 64us 的低电平或 128us 高电平表示,数据位1 用 64us 的高电平或 128us 低电平表示。另外,当网络节点多的时候VPW 对链路层定义有效数据域结束位置(EOD),帧间仲裁时间(IFS),多数据域时接收节点的响应就绪响应时间(IFR)如下图所示:

空闲时总线为低电平

使用逻辑分析仪捕获通信波形 起始位 SOF 毛刺

3、外观设计

经过几天的筛选,我找到了下面的外壳 , 上面有一个按键孔和一个5mmLED孔,安排一些功能堵住这两个孔,侧面是MINIUSB和10PIN牛角座。

4.原理图设计

根据J1850总线通信原理及上述波形设计电平转换电路图。

5、PCB设计

要想音质好,地面分割隔离是必不可少的,然后打很多过孔,特批是射频部分一定要多打孔。

放上伪3D效果图。

6、程序设计

贴上核心程序代码

J采用定时器2捕获模式捕获1850接收程序的边缘,J1850接收程序。

/*捕捉中断*/ 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;

	}
}

J1850的发送程序使用定时器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;

7、调试

插上模块抓取数据分析包 抓到如下数据包 根据测试结果调试程序

[16:42:44.875]收←◆63 70 de —

[16:42:46.330]收←◆63 70 de —

[16:42:46.682]收←◆8d 92 c0 0 0 +++

[16:42:47.787]收←◆82 6d 3f ff ff —

[16:42:48.618]收←◆36 58 0 3 f8 —

[16:42:49.259]收←◆8d 90 0 3 f8 —

[16:42:49.369]收←◆ —

[16:42:50.746]收←◆8d 93 0 0 7 —

[16:42:50.873]收←◆8d f 21 +++

[16:42:51.642]收←◆36 4c 3 78 68 —

[16:42:52.233]收←◆8d 93 0 0 50 +++

[16:42:53.145]收←◆8d f 24 +++

[16:42:54.648]收←◆8d f 24 +++

[16:42:55.193]收←◆8d 93 0 0 50 +++

[16:42:56.140]收←◆8d f 0 0 50 —

[16:42:56.680]收←◆8d 93 0 0 50 +++

[16:42:57.640]收←◆8d f 24 +++

[16:42:58.153]收←◆8d 93 0 0 50 +++

[16:42:59.144]收←◆8d f 24 +++

[16:42:59.640]收←◆8d 93 0 0 50 +++

[16:43:00.647]收←◆8d f 24 +++

[16:43:01.127]收←◆8d 93 0 0 50 +++

[16:43:02.150]收←◆8d f 24 +++

[16:43:02.615]收←◆8d 93 0 0 50 +++

[16:43:03.655]收←◆8d f 24 +++

[16:43:04.086]收←◆8d 93 0 0 50 +++

[16:43:05.144]收←◆8d f 0 0 50 —

[16:43:05.574]收←◆8d 93 0 0 50 +++

[16:43:06.617]收←◆ +++

[16:43:08.151]收←◆8d f 24 +++

[16:43:08.517]收←◆8d 8f 24 —

[16:43:09.653]收←◆8d f 24 +++

[16:43:10.005]收←◆8d 93 1 —

[16:43:11.157]收←◆8d f 24 +++

[16:43:11.477]收←◆8d 93 1 0 70 —

[16:43:11.973]收←◆8d 93 1 0 80 —

[16:43:12.660]收←◆8d f 24 +++

[16:43:12.965]收←◆8d 93 1 0 80 +++

[16:43:14.148]收←◆8d f 1 0 80 —

[16:43:14.452]收←◆8d 93 1 0 80 +++

[16:43:15.652]收←◆8d f 24 +++

[16:43:15.924]收←◆8d 93 1 1 80 +++

[16:43:16.195]收←◆8d 94 0 0 +++

[16:43:17.155]收←◆8d f 24 +++

[16:43:17.412]收←◆8d 93 1 1 80 +++

[16:43:18.195]收←◆8d 94 0 2 +++

[16:43:18.659]收←◆8d f 24 +++

[16:43:18.899]收←◆8d 93 1 1 80 +++

[16:43:19.171]收←◆8d 94 0 3 +++

[16:43:20.162]收←◆8d f 24 +++

[16:43:20.387]收←◆8d 93 1 1 80 +++

[16:43:21.171]收←◆8d 94 0 5 +++

[16:43:21.666]收←◆8d f 24 +++

8、大捷龙车机接口

9、pin碟盒接口定义

AUDIO R 右声道 AUDIO L 左声道
AUDIO GND 模拟GND GND 数字GND
SHIELD 未用 SPARE 未用
J1850 数据总线 PWD 未用
ACC 点火 BATT 12V 电源

9.1、模块与10车机连接方法

模块引脚 车机引脚 模块引脚 车机引脚
L 6脚 左声道 R 1脚 右声道
AG 2 模拟地 AG 2脚 模拟地
IN 4 脚 J1850总线
HU 5脚 ACC开机信号
12V 10脚12V电源 DG 7脚

8、安装方法

1、将汽车停在安全地方熄火,拔下车钥匙;

2、根据实际情况取出汽车CD车机;

3、使用配套的线束或者根据上文接口定义自己DIY线束,通过线束将模块和车机连起来;

4、将数字地与车机外壳牢固搭铁;

5、插入钥匙打开钥匙 按车上(CD、CDC、DISC、SOURCE、SRC、MODE等按钮进入碟盒模式开始播放音乐;

6、调试没有问题后,如果不使用蓝牙,可以将模块放在车机的后方放回去,或者将模块放到手套箱中,自己喜欢放到哪都行。然后将车机放回即可安装完成;

:改装有风险,下手需谨慎,

10、 使用方法

10.1 CD车机按钮功能定义

​ 大捷龙车机在进入CD模式后,只有SEEK+、SEEK-、FF、RW、DISC+、DISC-。这几个按钮可以使用。现在做以下映射

DISC+ 上一个文件夹播放
DISC+ 下一个文件夹播放
SEEK+ 上一曲/接电话
SEEK- 下一曲/挂电话
FF 蓝牙模式
RW U盘模式

​ 9.2 模块指示灯定义

​ 红灯为U盘蓝牙状态指示灯,蓝灯为模块运行状态指示灯。

灯闪烁方式 模块状态
蓝灯熄灭 不可以和车机通信
蓝灯快闪 可以和车机通信
红灯快闪 进入蓝牙
红灯常亮 连接成功
红灯慢闪 正在播放
红灯关闭 进入关机模式

条件 动作
正在播放音乐,此时连接蓝牙 音乐停止播放,进入蓝牙模式等待播放音乐
蓝牙模式,按下U盘模式按钮 开始播放音乐
蓝牙连接上,正在播放U盘音乐 蓝牙发出声音自动切换到蓝牙模式

测试视频

大捷龙蓝牙

大捷龙演示视频

11、 联系我

下面准备好了DIY套件,感觉动手吃力的朋友可以下单购买。

模块链接: 淘宝连接

​ 产品定制升级

产品定制升级

​ 商务合作

​ 汽车电子开发

​ 电子产品开发

联系方式 请先加V沟通 VX : 15566031081 商务合作:15566031081

标签: diy如何调电阻

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台