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

2023-11-04 22:30

本文主要是介绍拆解一个无线门铃,学习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数据格式发送。

中间那个声表稳频器件是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。模块使用超外差(超再生)接收模块。

这篇关于拆解一个无线门铃,学习EV1527芯片的编解码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/cnxayv/article/details/133443051
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/345602

相关文章

全屋WiFi 7无死角! 华硕 RP-BE58无线信号放大器体验测评

《全屋WiFi7无死角!华硕RP-BE58无线信号放大器体验测评》家里网络总是有很多死角没有网,我决定入手一台支持Mesh组网的WiFi7路由系统以彻底解决网络覆盖问题,最终选择了一款功能非常... 自2023年WiFi 7技术标准(IEEE 802.11be)正式落地以来,这项第七代无线网络技术就以超高速

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

无线路由器哪个品牌好用信号强? 口碑最好的三个路由器大比拼

《无线路由器哪个品牌好用信号强?口碑最好的三个路由器大比拼》不同品牌在信号覆盖、稳定性和易用性等方面各有特色,如何在众多选择中找到最适合自己的那款无线路由器呢?今天推荐三款路由器让你的网速起飞... 今天我们来聊聊那些让网速飞起来的路由器。在这个信息爆炸的时代,一个好路由器简直就是家庭网编程络的心脏。无论你

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用