拆解一个无线门铃,学习EV1527芯片的编解码

EV1527接收发送程序Proteus仿真:

链接:https://pan.baidu.com/s/1wA8AIUhK0yAdBLovfmmOcw 
提取码:18jf 

EV1527实际硬件接收发送程序: 使用STC15W4K56S4   keil4编译

链接:https://pan.baidu.com/s/12SJHiG7ZZGH0OQcHInX3OQ?pwd=1jy8 
提取码:1jy8 

EV1527数据手册:   

链接:https://pan.baidu.com/s/1RARhTqEsCnwZW7-pIqdTZg 
提取码:qmos 

        通过拆解一个无线门铃,分析EV1527芯片的编码,利用单片机接收并解码,用单片机模拟EV1527数据格式发送。

        EV1527芯片有20位的地址码,这20位地址码已经由芯片厂商事先烧录好,也就是做片子的时候就写好了,你买到手里的芯片都有一个不同的地址码,2^20=1048576,一百多万个。也就是厂家在生产完这一百多万块芯片后,又开始从0编码。但即使这样,你买到手里的芯片重码的几率还是微乎其微,因此可以放心使用。

中间那个声表稳频器件是315M的,可知这个门铃的载波频率是315MHz。

       8脚SOP封装芯片就是EV1527,它的3腿是GND,4腿就是数据发送端,分别连接两根导线,接逻辑分析仪。

EV1527管脚分布:

资料上的EV1527数据格式是这样的:

        1个T是8个OSC,它由与EV1527芯片相连的特定电阻和电压决定,有个相关表格可以进行查询,见手册。

怎么表示0,1,f,和同步码。

位0:【4T高+12T低】 +【4T高+12T低】

       这里,可以将4T称为窄脉冲,将12T称为宽脉冲,还有一种长的宽脉冲,是124T。用它们就可以表示所有数据了。

位1:【12T高+4T低】 +【12T高+4T低】

悬空码F:【4T高+12T低】  +  【12T高 + 4T低】

同步码:【4T高 + 124T低】

再写得简单些:

窄=4T,宽=12T,长宽=124T

位0:00  窄宽,窄宽

位1:11  宽窄,宽窄

悬空吗F:01  窄宽,宽窄

同步码:窄+长宽

实际测量到的波形:

使用逻辑分析仪测量输出波形,每按下一次电铃按键,出现这样的波形:

可以看出,每次按铃,由同步码引导的数据被发送了8次。

测量得到窄脉冲=346us,长宽脉冲=10.732ms,宽脉冲=1.04ms

EV1527的发码格式:

首先发送一个同步码:窄脉冲+长宽脉冲

接着发送20位地址码:

接着发送4位数据码:

解读一下逻辑分析仪测量的数据:

       经过实际解读,发现,它和资料上介绍的不太一样。实际硬件的发码方式是同样的数据发8遍,每一遍由同步码,地址码20位,数据码4位组成,而且不重复,也就是0bit,就用窄+宽表示,1bit,用宽+窄表示,没有地址悬空码F。

解读一下这些信息:

其中绿色的是C0---C19共20位地址码:0100 1011  0001  1010  0110

由于发送数据的时候是从最低位开始发送的,因此真正的地址码应该反过来看,也就是:01100101100011010010 就是十六进制数字 Addr=0x658D2;

黄色是D0,D1,D2,D3,共4位数据码: 0001,反过来就是1000就是0x08;

每按下一次电铃按键,相同的信息发送8次,这就是实际硬件的输出信息。

下面使用单片机来模拟信号的发送。

超再生发送模块的1接P3.2,2接Vcc,3接地,连接超再生315M发射模块

使用STC15W4K56S4芯片,11.0592MHz

地址和数据均从最低位开始发送。

编写接收程序:

        规定EV1527一共发送8次数据,接收其中的5次,如果有3次相同,就认为收到了正确的数据。

        一定要注意,发送时,无论地址还是数据都是从最低位开始发送的,因此,接收的时候,需要将它们反序,才能得到正确的地址码和数据码。

例如这里的地址码是  0x0658D2

十六进制:   6        5         8         D        2

二进制:   0110  0101   1000   1101   0010

接着发送数据码:0x02

二进制          0010

接收时将它们从一个unsigned long 型变量的最高位依次右移,得到:

十六进制:     2       6        5          8         D       2           0       0

二进制:     0010  0110  0101   1000   1101   0010    0000  0000

       数据码是橙色的,右移28位得到。

       地址码,首先屏蔽掉最高的4位,与0x0FFFFFFFL做与,长整形要写L,然后右移8位得到。

        接收使用STC15W4K56S4,硬件连接使用P3.2,也就是中断INT0。模块使用超外差(超再生)接收模块。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值