一、简介 前段时间大火的无限流电视剧《开端》,相信大家都有所耳闻。其中有这么一幕,但男主知晓凶手之后向警官寻求帮助,警方火速出警。突然间只见一人掏出车钥匙,远程遥控将汽车唤醒,车门打开,车灯亮起,大伙迅速向案发地出发。在展示了警方效率之高的同时,也为狠狠地展示了汽车的舒适进入功能。 提及目前的舒适进入,那么便会想到,市面上较为传统的 PEPS 技术,还有就是现在正逐渐趋向主流的蓝牙以及 NFC 技术,UWB 实现汽车实装也正在车厂和手机厂商的推动下慢慢布局。目前对于传统的 PEPS 而言,采用的是传统的射频技术,其中会包含有相应的 LF 以及 UHF 的通讯方式。而在通讯过程中,不可避免地会谈及到数据的编解码以及调制解调等名词。这些在整个汽车的舒适访问系统中属于基础但重要的参量。 对于车钥匙遥控信号来说,它的调制方式有两种:较为常见的是 FSK,当然也包含有 ASK,也就是幅值键控。对于车身上安装的低频天线,LF 数据则是完全使用 ASK 调制,将数据 '0' 和 '1' 搭载到 125kHz 正弦波上,以不同的幅值发送出去。而这其中就会涉及到一个比较常见的概念:调制深度。 二、调制深度详解 调制深度 Amplitude modulation index,其调制公式如下所示:  公式中, A 是载波的振幅,M 是射频信号峰值超出未调制值的部分。 为了更方便大家理解,还有一种比较简便的公式,那就是(最大振幅-最小振幅)/(最大振幅+最小振幅)。 在一个信号周期内,其最大振幅为:  最小振幅为:  由上面两式可得调幅信号的调制因素为:  对于调制深度而言,它是小于等于 1 的,并且调制深度越大,调制波形的外包络线凹陷越深,即调制越深。 以实际波形为例,当调制深度为 50% 时,对于幅值为 1 的正弦波,其调制波形如下:  最大振幅为 1×(1+0.5)= 1.5,最小振幅为 1 ×(1-0.5) = 0.5。 而当调制深度提升至 100% 时,我们可以观察到调制波凹陷程度明显变深,最小振幅达到 0:  对于 PEPS 的 IMMO 功能而言,在 NJJ29C0 等 LF Driver 与钥匙进行 LF 场通信的过程中,就会开启 Open Loop 功能:将天线 TXP 端的开关打开,TXN 端则连通到地。对于 IMMO LF 场通讯,相对于数据传输速率 3.9K 的 PKE 而言,Driver 关闭时间 TWRP 是很短暂的,光靠基站端 LF 天线本身的品质因素实现电流衰减,需要足够大的品质因素支撑。因为根据 QEFF / fres,当品质因素越高,衰减时间越长,那么整体调制波的调制深度才越大。   但是对于低品质因素的天线而言,其调制深度很有可能达不到要求。NXP 钥匙的数据表要求调制深度大于或等于 95%,否则将无法提供可靠的 IMMO 通讯,进而引发 IMMO 通讯失败。 为此我们可以软件配置将 IMMO 的 open loop 功能开启: uint8 IMMO_INIT()
{ /* OPNLOOP enabled;1000mAp during transmission;1000mAp during reception */ SPICmd_ConfigImmoDriver((OPMLOOP_IMMO_ENABLED | TXCUR_1000mAp), (TXCUR_1000mAp));
/* TLOG_1(BPLM pulse time for logic 1) = 28*T0, TLOG_0(BPLM pulse time for logic 0) = 20*T0(T0 = 1 / 125kHz) */ /* TSTOP(Duration of stop pulse) = 38*T0, TWRP(Low duration of write pulse) = 8*T0 */ SPICmd_ConfigImmoBplm((TLOG1_28T0 | TLOG0_20T0), (TSTOP_38T0 | TWRP_08T0));
/* 5Bit equalizer(5bit "1"), TRWT(Receiver wait time for transponder response) = 202 * T0 */ /* TSYNC is added to TRWT and intended for fine adjustment of TRWT = 0 * T0 */ SPICmd_ConfigImmoReceiver((TRWT_202T0 | EQU_MODE_5bit), (TSYNCcenter0T0));
//hly_change_20191011_start #if (SLEEP_NEED == 1)//In single antenna operation, MEAS_ANT_IMP_ADVANCED //can be executed without entering SLEEP state before
/* to enter SLEEP state */ SPICmd_StartSleep();
FTM1_Delay(500);//0.5ms
/* to leave SLEEP state */ JokerStopSleep();
FTM1_Delay(500);//0.5ms
#endif
/* measure impedance of antenna connected to TX4 */ SPICmd_MeasAntImpAdvanced(DR4P, NULL);
/* read the operation status, wait for SF_IMPMEAS */ SPICmd_GetOpStatus();
FTM1_Delay(12500);//12.5ms
/* clear impedance measurement ready, SC_IMPMEAS flag */ SPICmd_ClearOpStatus(SC_IMPMEAS);
#if (GETANTIMPEFF_NEED == 1) /*optional, because the measured impedance values are JOKER internally used even without GET_ANT_IMP_EFFECTIVE command */ SPICmd_GetAntImpEffective(DR4P, NULL); #endif
/* SF_RXREADY shall trigger the INT pin */ SPICmd_SetOpMask(SM_RXREADY);
//hly_change_20191011_end
return 0; }
开启 open loop 功能之后,天线电流将会快速衰减,此时即使是相对较低品质因素的天线,调制系数也能够到达 100%,从而提升通讯质量。


三、参考文档
[1] NJJ29C0B SPI Command Set.pdf (Rev. 2 — 14 Sep 2017) [2] an697511 - AN-SCA 1602-C NJJ29C0C (JOKER) Application note (1.1).pdf (Rev. 1.1 — 9 July 2021) |