查看原文
其他

好玩不贵的无线遥控器克隆指南

抓狂的小丸子 看雪学院 2019-05-26

长期在论坛潜水,可老当看客不太好,但是自己最近又没研究出啥名堂,所以发篇以前写的小白文,各位大佬莫笑呀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。



看雪ID:抓狂的小丸子

bbs.pediy.com/user-772701



本文由看雪论坛 抓狂的小丸子  原创

转载请注明来自看雪社区





热门技术文章推荐:





戳原文,看看大家都是怎么说的?

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存