- A+
本文转自:看雪社区
长期在论坛潜水,可老当看客不太好,但是自己最近又没研究出啥名堂,所以发篇以前写的小白文,各位大佬莫笑呀O(∩_∩)O~
思路如下:
1、拆无线钥匙查芯片型号(略)
2、翻芯片手册理解信号编码方式
3、采集无线信号进行分析
4、模拟无线信号
芯片型号eV1527。查阅芯片手册可知:
1)同步信号有1个高电平,3个低电平。当信号接收器检测到同步信号时,可知前方有一大波数据来袭,便做好接收数据指令的准备。
2)数据H有3个高电平,1个低电平
3)数据L有1个高电平,3个低电平
4)一条指令数据的构成由同步信号、C0~C19(一般是设备唯一码)、再加四个数据(不同数据组合对应不同指令)构成
至于一个电平到底要维持多久呢,由芯片手册可知:
给芯片不同的电压、不同的振荡频率都会导致不同的电平周期,所以要知道电平周期,直接实测法最快捷!
硬件:315M接收模块、逻辑分析仪、供电模块(这里我随便找个U转串模块给315M接收模块供电)
软件:Logic 1.2.18(逻辑分析仪上位机软件)
注意我这里特地给315M接收模块加了个天线,实测不加天线根本收不到信号。
设置采样率为2M,一边按无线钥匙,一边采集,采集了有10s的数据。可以看到图中很有规律的锯齿方块,这个就是采集到的信号对应的电平输出。当你按下按键的那一刻,无线遥控器会发送大量重复数据,所以你所看到的每个锯齿方块其实都是一样的。
放大查看,以第一个小锯齿方块为例:
这时候,你应该已经知道了指令数据是:HLLLHLLLLHLHLHHHHHHHLHLL
刨去C0~C19,真正的指令其实就是LHLL
换一个按键采集信号,你会发现指令数据只有最后四位发生变化,此处略。
硬件:315M发射模块、控制板(我用的msp430 launchpad,12年去蹭TI的研讨会送的,我竟然还没扔)
(msp430 launchpad的P1^0连接315M发射模块的data端)
说什么模拟,其实就是给315M发射模块一串高高低低的电平信号,然后要保证电平周期和上面采集到的电平信号周期一致。比如说,在模拟同步信号的时候,你要先给315M发射模块0.321ms的高电平,再给10.38ms的低电平。有一丢丢误差没关系,大概照着原信号做,别太离谱就行。
上代码:
#include <msp430.h> //这个宏仅针对8MHz #define delay_us(us) __delay_cycles(8*(us)) #define delay_ms(ms) __delay_cycles(8000*(ms)) int main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer BCSCTL1 = CALBC1_8MHZ; //设置 DCO 频率为8MHz DCOCTL = CALDCO_8MHZ; char close_door_signal[128]={'1','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0', '1','1','1','0','1','0','0','0','1','0','0','0','1','0','0','0','1','1','1','0','1','0','0','0','1','0','0','0','1','0','0','0','1','0','0', '0','1','1','1','0','1','0','0','0','1','1','1','0','1','0','0','0','1','1','1','0','1','1','1','0','1','1','1','0','1','1','1','0','1','1', '1','0','1','1','1','0','1','1','1','0','1','0','0','0','1','1','1','0','1','0','0','0','1','0','0','0'}; int i; P1DIR |= 0x01;// Set P1.0 to output direction P1OUT = 0x00;//low voltage delay(1000); while(1){ P1OUT = 0x00;//low voltage delay_us(333); for(i=0;i<128;i++){ (close_door_signal[i]=='1')?(P1OUT=0x01):(P1OUT=0x00); delay_us(333); } } return 0; }
现在你已经get了如何以最低成本克隆无线遥控器, 315M接收模块+发射模块一共才5块钱,其他工具都是现成的,就算买也不贵。
接下来你可以试试多测测不同款的无线钥匙,电瓶车的、车库的、汽车的……也可以尝试用sdr硬件去开无线锁……
也可以参考一下我一年多以前写的代码,刚翻出来的,有点小错误,别介意。
有人也许会问:你怎么知道这信号在315M?嗯,我用电视棒测的~而且钥匙芯片上面有标注315M。