蜂鸟无线LR43B无线射频接收模块调试记录

目录

1、设计目的

2、设计难点

3、初步方案

4、成功方案

5、代码实现


1、设计目的

采用蜂鸟无线LR43B无线射频接收模块,对遥控器发送的无线信号解码。按下按键1,继电器打开;按下按键2,继电器关闭。

2、设计难点

LR43B无线接收模块不同于传统的解码芯片PT2262。

PT2262是芯片解码,遥控器遥控是输出的D0-D3引脚可以直接输出高低电平;而LR43B无线模块无论是否有遥控信号,输出引脚DAT均有波形输出,如下图所示。笔者购买这个模块之前并不知道这一点,即使在实验时观察到了这一点,下意识感觉是这个乱码可以轻松通过软件和正常的波形信号进行区分,事实证明这个解码并不是很顺利。

↑↑↑  图一:无遥控信号时的输出波形  ↑↑↑


↑↑↑  图二:有遥控信号时的输出波形  ↑↑↑

3、初步方案

我们可以看到图二中,有遥控信号时输出的波形规整,每一帧数据间隔相同。那么,是否可以从这个时间间隔5ms入手,来判断是否是有遥控信号时的波形呢?笔者进行了尝试。

具体的方法是,

1、检测引脚中断模式设为上升沿+下降沿双边出发,当检测到下降沿后,开始计时,

2、等检测到下一个上升沿,判断两帧之间时间间隔大小,

3、如果两帧之间时间间隔time_cnt是5ms左右,则认为是正常的有遥控信号的波形,

4、采用1中同样的方法,把一帧波形的高低电平记录下来,解码。

这个方案是失败的,因为即使无遥控信号,模块输出的高低电平也会存在一种可能:下降沿后到上升沿之间的时间间隔是5ms左右,这样判断很容易引起误动作。

4、成功方案

第一次失败后,由于一时找不到合适的方法区分有遥控波形和无遥控波形,笔者只好把这个设计工作搁置了几天。第二次鼓起勇气处理这个难题时,笔者把有遥控信号时的一帧报文用示波器展开查看,突然想到,正常的波形有上升沿有下降沿,但是无论怎么变化,其电平变化的次数是相同的(49次),是否能够从这个电平翻转次数入手,来实现遥控波形的识别呢?答案是肯定的。

具体的方法是:

1、检测引脚中断模式设为上升沿+下降沿双边出发,当检测到下降沿后,开始计时,

2、等检测到下一个上升沿,判断第一步的两帧之间时间间隔大小,

3、如果两帧之间时间间隔time_cnt是5ms左右,则开始重复识别高电平和低电平时间,并记录电平翻转次数reverse_cnt,

4、当电平翻转次数reverse_cnt等于49时,且两帧之间的时间间隔在5ms左右时,认为这一帧数据是有遥控时的波形。

5、根据采集到的波形高低电平时长,解码。

这个方案是成功的,相比第一种方案的仅仅判断帧间隔time_cnt,多了电平翻转次数reverse_cnt的判断,在此基础上解码,后面的工作就一马平川。

5、代码实现

下面是代码的具体实现,此处笔者仅贴出了关键代码。如果读者需要了解更多细节或是获取整个代码工程,可以私聊。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 成长之路 设计师:Amelia_0503 返回首页