文章特点:数据解码方面实在是没什么信心,存在分析错乱的可能性,所幸发出来共同探讨,恳请鞭策。

0x01 概述

这是一款工作在315Mhz频段的无线遥控门铃,根据查阅官方手册以及芯片信息,确定其采用了eV1527 百万组编码芯片。这是一款无线发码专用集成电路,采用 CMOS 工艺制造,拥有 20 位内码,可预烧 100 万组内码组合,发射频率支持315Mhz与433Mhz。本文仅对基于录制的信号波形图进行简单分析,详细发码结构可参考相关文档。

EV1527芯片说明:http://www.sc-tech.cn/ev1527.pdf
EV1527码位波形图:http://wenku.baidu.com/view/1b54c361ddccda38376baf7c.html

编码模块特写:

0x02 信号分析

首先通过gqrx或SDR#对无线门铃的工作频率进行精确定位,我自己这款检测到的频率值为315.1Mhz,而公司的门铃则与说明书标称的一样为315Mhz ;

出现不同是因为EV1527芯片可根据电压和振荡电阻的匹配情况来确定其振荡频率,电压越高,频率越大,电阻越大,频率越小,从组合来看可以构成无数种振荡频率,大大降低了重复几率。

接下来对工作频段数据进行捕获录制,执行以下命令:

hackrf_transfer -r hell.iq -f  -s  -n 

解释:记录数据到文件hell.iq、指定工作频率为315.1Mhz,指定采样率8Msps/s,指定采样样本数为40M,采样时间也就是5秒

并在5秒内按下遥控器按钮,此时铃声响起,数据也被记录下来了

重放信号以测试样本可靠性:

hackrf_transfer -t hell.iq -f  -s  -a  -l  -x 

解释:指定发射信号源文件,指定工作频率315.1Mhz,指定采样率8Msps,开启天线增益控制,指定RX LNA(IF)增益为40,指定TX VGA(IF)增益为47

如果听见铃声响起,那说明这段信号是有效的,如果没有响起,可能是录制指定的频率不对或采样到的信号样本不完整,可多次尝试录制,如果是车钥匙等其他设备,其信号只有一次或几次有效性,俗称滚动码,这点请注意。

如果从单纯分析信号的角度考量,现阶段不一定需要重放信号;

现在我们使用音频处理软件 Audacity 对hell.iq文件进行信号分析,我们可以通过其展现信号波形图来判断信号的调制方式并加以分析

打开程序后点选“文件”—“导入”—“原始数据”— 配置如下

导入成功后显示如下图:

上面有14段完整的信号采样,我们选择一段信号后点击放大镜来进一步观察信号特征

上面是两段相同的脉冲信号,由1和0组成 ,因为我们已经预先知晓了该无线模块的调制模式为ASK/OOK 所以接下来的分析比较简单,这里面的OOK是ASK的一种特殊调制模式,叫做(On-Off-Keying),简单说它就是摩尔斯电码的工作方式。由于OOK的抗噪声性能不如其他调制方式,所以该调制方式在目前的卫星通信、数字微波通信中没有被采用,但是由于该调制方式的实现简单,在遥控、RFID等领域中仍然有着广泛应用。

我们将第一个最窄宽度的蓝色条状物当作标准宽度 1,空白区域当作0,空白区域的宽度能容纳几个标准宽度蓝条,就代表有几个0,以此类推,较宽的蓝色条状物能容纳几个标准宽度蓝条就代表有几个1。

经过计算和统计后,我们得出如下数据:


在我们按住遥控按钮的过程中,信号实际上是在持续不断的重复发射的,后面距离第二段脉冲信号经过计算大约有30个0,所以整段数据为


根据EV1527芯片说明,当工作电压在12V、振荡阻值80K情况下,其脉冲周期 T≈400μs,即0.4毫秒,脉冲周期是指前后相邻脉冲的间隔时间,这一参数将在后面模拟仿真时使用到。

由上面两组相同的信号样本结合芯片说明可知这是两组相同的帧码,每一帧码有25位,由同步码、内码、数据码组成,一帧码发完马上发下一帧码。

时序图:

数据解码:

接下来对上面捕获的数据进行解码,其他位我们可以这样理解,第一位SYN也就是1000,这段我们不予分析(实在不会,这是一段高低电平比t:31t的脉冲信号 ),后面的部分可以分为“百万组内码”和“数据码”,数据码我们已知是后四组,也就是1000100011101000,根据上诉分析可解出4个数字代表一位,每个数字脉冲周期是4t,这里的1代表高电平,0代表低电平,则1000可解为0,因为4t+12t先高后低表示0码,而1110可解为12t+4t先高后低,代表1码,最后整段解码得出0010这个发码组合,参考芯片说明一共有15种按键组合,当门铃被按下后则发出对应的发码组合给接收器中的EV1527芯片,接收器收到后就会处理响应,播放铃音了。

内码部分按照上述原理解码后得出:01011001101101010100,将二进制转换后得出 十进制:367444 十六进制:0x59B54 也就是这款芯片的百万组编码号了。

公司门铃内码解码后得出:1101001101101100101 十进制:432997 十六进制:0x69B65

0x03 数据汇总

#自己的门铃
产品型号:朗瑞特 LR- 直流款
发射模块:eV1527 百万组编码芯片
调制模式:ASK/OOK
工作频率:.1Mhz
Vector:(, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , )
#公司门铃
产品型号:朗瑞特 LR- 交流款
发射模块:eV1527 百万组编码芯片
调制模式:ASK/OOK
工作频率:315Mhz
Vector:(, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , )

0x04 模拟信号源发射

Repate模块用于设置脉冲周期;

由于我们的框图中使用采样率为1MHz,那么想让每个数字所占用的时间t=0.4ms的话,则需要使Vector Source里的每个数字重复 1e6*0.5*10^(-3)=400 次。于是将Repeat模块的Interpolation设置为400即可。

Gnuradio框图:

HackRF实现无线门铃信号分析重放的更多相关文章

  1. 永不消逝的电波(二)HackRF入门:家用无线门铃信号重放

    0×00 前言 在第一篇文章:永不消逝的电波(一):无线电入门篇 我们了解了一下无线电的发展史以及无线电的一些物理知识,在第二篇里我们将用HackRF录制家用门铃的无线信号,然后重放门铃信号. 门铃从 ...

  2. HackRF 无线门铃信号录制与重放

    本文内容.开发板及配件仅限用于学校或科研院所开展科研实验! 淘宝店铺名称:开源SDR实验室 HackRF链接:https://item.taobao.com/item.htm?spm=a1z10.1- ...

  3. 基于Qt的信号分析简单应用软件的设计

    一.需求描述: 1.读取data.asc文件,分析其连续性: 2.绘制信号图像,并保存. 二.UI界面组成: 该应用的UI由以下几个控件组成: 3个PushButton:打开文件.图像保存.退出: 1 ...

  4. VTC Fsync_out信号分析

    VTC Fsync_out信号分析 1.GUI配置 Vertical position的值289是根据Frame/Field 0 Vertical settings一栏中sync start来设置的. ...

  5. QPushButton 点击信号分析

    QPushButton 点击信号分析 QPushButton有三个很重要的信号跟点击有关 pressed clicked toggled 表面上看,pressed和clicked都会在点击按钮时触发, ...

  6. 信号分析——从傅里叶变化到FFT

    我们眼中的世界就像皮影戏的大幕布,幕布的后面有无数的齿轮,大齿轮带动小齿轮,小齿轮再带动更小的. 在最外面的小齿轮上有一个小人——那就是我们自己. 我们只看到这个小人毫无规律的在幕布前表演,却无法预测 ...

  7. 2.3 linux中的信号分析 阻塞、未达

    信号的阻塞.未达: linux中进程1向进程2发送信号,要经过内核,内核会维护一个进程对某个信号的状态,如下图所示: 当进程1向进程2发送信号时,信号的传递过程在内核中是有状态的,内核首先要检查这个信 ...

  8. 2.2 linux中的信号分析

    信号: 信号是UNIX系统响应某些状况而产生的事件,进程在接收到信号时会采取相应的行动. 信号是因为某些错误条件而产生的,比如内存段冲突.浮点处理器错误或者非法指令等. 信号是在软件层次上对中断的一种 ...

  9. wait & waitpid 以及子进程传给父进程的信号分析

    wait() 和 waitpid() wait() 系统调用挂起调用进程的执行直到有一个孩子终止.调用 wait(&status) 等价于: waitpid(-1, &status, ...

随机推荐

  1. 重启Apache报错apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName ... waiting的解决方法

    启动apache提示 : apache2: Could not reliably determine the server's fully qualified domain name, using 1 ...

  2. TCP

    TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议. 在因特网协议族中,TCP层是位于IP层之上,应用层之下的中间层 ...

  3. vs2010 ctrl+F5闪退解决方法

    设置项目的属性页中的“配置属性”->“链接器”->“系统”->“子系统”->“控制台”(即增加“/SUBSYSTEM:CONSOLE”链接选项)

  4. JS回调函数(callback)

    在使用Jquery的时候,用到Callback(),回调函数的概念.而且很多. 比如: $.ajax({ url:"test.json", type: "GET" ...

  5. jQuery学习小结1-CSS操作+事件

    一.DOM对象和jQuery 对象互换 1.jQuery对象 就是通过jQuery包装DOM对象后产生的对象.jQuery对象是jQuery独有的,其可以使用jQuery里的方法.比如: $(&quo ...

  6. httpClient 4.x post get方法

    public static String doPost(String url, String encoding, String contentType, String sendData) throws ...

  7. EF 7 Code First

    加载方式三种 1. Eager Loading 2. Lazy Loading 3.Explicit Loading 使用EF在与关系型数据库的交互中不可避免地需要加载数据,如何加载数据变得至关重要. ...

  8. memached 服务器lru算法

    1.LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的.LRU算法的提出,是基于这样一个事实:在前面几条指令中使用频繁的页面很可能在后面的几条 ...

  9. 判断子元素(or属性)是否存在

    if(typeof($("#aid").attr("rel"))=="undefined") 即可

  10. FLASH AS 不显示中文

    我修改一个as游戏,发现公告显示不了,整整折腾了2天. flash TextField 汉字不显示,英文会显示,如果是汉字夹杂数字,只把数字显示了,汉字被忽略了.   有人说嵌入字体,网上一搜索,好麻 ...