引言
随着汽车电子技术的不断发展和加密技术的日新月异,既满足使用的方便性,又具有防盗窃的可靠性的技术在不断地推陈出新。传统的固定码方案防盗能力差,目前几乎完全被淘汰。分组滚动码方案(KeeLoq),采用了16位计数器,最快可在几秒内被破解,原因在于其编码规律容易被专用解码器获知,存在安全漏洞。
本文将跳码技术应用在遥控门禁系统中,将跳码芯片MT3108作为编码器,系统由电子钥匙(EKey)、门控终端、中央控制器(简称中控器)组成,并采用PIC18F4520单片机完成软件解码和锁具的控制。软件编程采用MPLAB作为开发环境,使用C语言编程,提高了可移植性。
1 系统的结构和工作原理
本设计分为钥匙终端和车载电路两部分。车载电路周期性地主动发送LF编码信号,寻找在1~2 m的距离内是否有合法的钥匙。LF信号周期一般为几百ms,频率为125 kHz。一旦钥匙处于1~2 m内,便可接收到低频编码信号,对数据进行判断以检验其合法性。如果编码是有效的,则跳码芯片MT3108对当前指令或默认指令进行加密,加密后的指令通过315 MHz的射频调制信号发射出去。车载射频接收电路对接收到的315 MHz的调制信号进行解调,PIC18F4520单片机负责对解调后的数据进行软件解码,得出具体的指令,从而对锁具进行控制。系统结构原理图如图1所示。
图1 系统结构原理图
2 系统硬件设计
智能钥匙的硬件主要用来接收LF信号,并把输入的指令加密后通过高频载波发射出去,下面详细介绍硬件原理。
2.1 智能钥匙模块
智能钥匙模块由125 kHz低频接收电路、MT3108跳码编码电路及315 MHz发射电路组成。
(1) 125 kHz低频接收电路
图2中L1、L2、L3正交放置,均由7.2 mH电感、220 pF的电容及100 kΩ的电阻构成频率为125 kHz的RLC谐振选频电路。
图2 125 kHz低频接收电路
导纳:
发生谐振时满足:ωC=1ωL
在没有接收到125 kHz低频信号时,电感相当于短路,流过1 kΩ电阻的电流约为0.93 μA,X+与X-压差<1 mV,而当携带钥匙接近1~2 m时,电路发生谐振,阻抗为100 kΩ,此时X+与X-压差约100 mV,Y+、Y-及Z+、Z-亦是如此。如图2所示。
电压比较单元采用了低功耗单电源比较器MAX9075、MAX9077,耗电仅3 μA,其失调电压为1 mV,即输入电压的切换点为1 mV,因此互为正交的三个线圈中任何一个接收到低频信号后,XO、YO及ZO中至少有一个将跳变为高电平,从而使得Q4~Q6中至少有一个导通,LF_DAT跳变为高电平,如同按键被按下一样,实现自动触发按键。如图2所示。
(2) 编码及射频发射电路
MT3108芯片通过3 V纽扣电池供电。如图3所示,跳码芯片MT3108提供了内置的按键接口S0~S3,内部为每个引脚配置了下拉电阻。无键按下或者不在125 kHz接收范围内时,MT3108失电,以降低功耗。当用户按键或近距离低频谐振自动触发按键时,S3为高电平,NMOS管Q3导通,使得PMOS管Q1导通,MT3108的VDD得电,触发芯片发送相应按键所要表述的键值的PWM波,通过315 MHz发送电路发送出去。
图3 跳码芯片及315 MHz发射电路
2.2 车载电路设计
车载模块分为低频发送电路、射频接收电路及中央控制电路。为查询钥匙是否在1~2 m范围内,车载模块总是每隔几百ms发送频率为125 kHz的低频编码信号,并接收射频信号,将解调后的编码送给中控单片机验证,再控制门锁。
(1) 低频发射电路
低频发射电路由TN8118驱动芯片和串联LC谐振电路构成。该芯片输出阻抗只有7 Ω,使得输出回路的品质因素大大提高。TN8118放大来自单片机的125 kHz的低频信号的功率,当LC串联谐振电路频率与PWM频率一致时,通过电感的电流最大,发送的信号最强。低频发射电路如图4所示。
图4 低频发射电路
(2) 射频接收模块
315 MHz接收模块采用超高频、低噪声无线数据传输模块GWR5C1,体积小,一致性好,传输速率最高为20 kbps。引脚2接PIC单片机引脚RA5。射频接收电路如图5所示。
图5 射频接收电路
(3) 中控单元
门控终端用于接收电子钥匙发来的跳码信息,然后进行解密,并发送至中控器请求验证。中控器包括微处理器PIC18F4520、矩阵键盘、存储器、门锁驱动等。它接收门控终端发来的请求验证消息,进行验证、记录开门信息、更新门状态,并根据验证结果发送开门信号给相应的开锁机构。中央控制电路如图6所示。
图6 中央控制电路
3 跳码加密技术及软件设计
3.1 跳码芯片对数据的加密
MT3108使用前必须对芯片内部64字节的EEPROM进行编程,在其中保存所有配置信息和加密参数。
若遥控有键按下,则MT3108上电并被唤醒,延时消抖后获取按键信息。若所有键被按下,则进入学习模式;否则,取得按键信息,并加密同步计数值、识别码和按键信息形成跳码。无按键但距离接近1~2 m时,LF电路发来的串行数据也可以触发加密电路形成跳码。
即使连续两次按键一样,发送的跳码信息也会不同。一次发送完成后,如该按键还处于按下状态,则发送数据结构中的RPT位置1。传输的编码数据共86位,第一部分44位未加密信息包括 RPT 位(1位)、VLOW位(1位)、按键信息(4位)和用户序列号(16位)顺序组合得到。第二部分16位随机数信息是由均是16 位的随机数和系统序列号按位异或后得到的。第三部分是经过加密运算后得到的48位跳码信息。加密前的48位数据由2部分组成:第1部分由均是16位的随机数和系统序列号按位异或后得到;第两部分由相同的32位随机数和32位同步计数器值按位异或后生成。编码数据格式如表1所列。
表1 编码数据格式
PWM数据传输的格式:开头为由EEPROM确定数量(设为n)的引导码,占空比为1/6,共6n×TE宽度;接着是长度为10TE宽度的低电平数据头;然后是实际编码信息,每位长度为3TE,格式为1X0,X=0表示高电平,X=1表示低电平,总长度为3TE×86=258 TE;最后是30 TE的低电平警戒位。
PWM数据传输格式如图7所示。
图7 PWM数据传输格式
3.2 软件解码
根据PWM数据格式,首先判断接收引导码。若低电平宽度大于5Te_max、高电平宽度>Te_max,则认为是非数据信号,合格的引导码高低电平比例为1:5,由于传输过程中存在变形,可将门限提高至1:2~1:7。
if((rec_l_cnt > (2 * rec_h_cnt)) && (rec_l_cnt < (7 * rec_h_cnt )))
receiver_flg = 1;//接收到引导码
由于引导码有多个,则找到引导码后需跳过其余的引导码,并等待宽度为10TE的低电平数据头,然后再接收实际数据信息(86位)。
接收86位数据信息时,为接收方便,可先收取前80位的数据,最后6位的数据单独接收。接收时,分别获取高电平时间rec_h_cnt和低电平时间rec_l_cnt。若rec_h_cnt<rec_l_cnt,则接收的数据为1,否则为0,逐次移位存在数组receive_dat[0]~ receive_dat[10]中,receive_dat[10]存放的是最后6位,需要右移2位右对齐。
对接收到的数据进行解密:由于接收到的PWM波跳码数据高地位与解码库内部解码所需数据相反,因此需要交换receive_dat[03]数据位置。
for(i = 0; i < 3; i++){
data_buf = receive_dat[i];
receive_dat[i] = receive_dat[5-i];
receive_dat[5-i] = data_buf;
}
将receive_dat[8]、receive_dat[9]的数据位置互换,然后提取PWM波中的USN数据,即可用于解密。调用解密库函数decrypt()进行解码,解码流程如图8所示。
decrypt((uchar*)(&receive_dat[8]),(uchar *)receive_dat);
解码后的CNT可用于数据验证以提高安全性,根据用户序列号正确性进行开门操作。
图8 解码流程
结语
本文分析了基于MicroTiVo公司的MT3108芯片和微芯公司的PIC18F4520单片机的无钥匙智能汽车门禁系统的硬件和软件设计,针对门禁系统的安全性设计,开发了一款门禁系统。主要特点:
① 交互通信的125 kHz低频感应距离为1.5 m,高频通信距离为70~80 m。
② 钥匙体积小,功耗低。静态功耗约3.2 μA,动态功耗约4 mA。
③ 跳码芯片采用了公匙跳码算法,提高了安全性。
本设计确保了每次密码的唯一性,密码不易被盗取,可广泛应用于车辆、厂房、办公等安防领域。