大数跨境

新来的师妹写了个433MHz软解程序只有20m通信距离,我手把手指点后距离提升到100m+

新来的师妹写了个433MHz软解程序只有20m通信距离,我手把手指点后距离提升到100m+ 芯片之家
2025-11-25
1

公司新来一个实习生,给她布置了一个任务,对433MHz的遥控器协议进行单片机的软件解码。

妹子很快进入状态,用现成的硬件在进行代码的编写与调试。

2天后,妹子说做完了,并很自信的给我展示给我看,说,效果还可以。

我说,你装整机,然后去室外测试下实际距离。

不一会儿,妹子跑过来跟我说,经理,我短距离测试还可以,为啥超过10几米感觉就不太灵敏了?

硬件确认是没问题的,之前的软件可以通信100米以上,于是,看了下妹子写的代码。

433协议的简图是这样的,600us的高电平与300us的低电平代表1,300us的高电平与600us的低电平代表0,这里我们先不考虑头码之类的,只说明原理。

妹子的代码是用定时器进行捕获采集的,可能下意识的看到每个波形有时间,于是就通过定时器捕获的方式采集每个高低电平的时间长度,再通过一定的余量去判断高低电平。

这里解码是可以,短距离也可以,但实际情况下,在户外,长距离,433Mhz会混进去很多随机干扰杂波,如下图:

可以看到,600us的高电平,会突然混进来一个时间很短的5us的低电平脉冲,如果采用定时器捕获,这里就会被干扰信号打断,影响接收,导致解码失败。

那怎么优化呢?

于是告诉妹子,师妹,你可以采用定时器定时采集的方式识别高低电平,比如,50us进行一次高低电平的判断,600us,高电平采样到12次就可以认为是高电平,因为是50us定点采样一次,就可以有效的过过滤掉极短时间的脉冲干扰。

再加上软件的一些机制,比如连续采样到两次同样的电平才会认为是有效电平,种种机制加上,MCU负担小,接收还稳定。

师妹按照我说的方法修改后,通信距离果然达到了100米,于是,拽着非要请师兄去吃饭了......

关于433MHz协议的软件解码,大家还有什么好的方法,欢迎留言沟通。

↑↑↑ 点击领取6层板打样券 ↑↑↑ 

【声明】内容源于网络
0
0
芯片之家
1234
内容 1436
粉丝 0
芯片之家 1234
总阅读252
粉丝0
内容1.4k