433M无线传输中的那些坑
433M 无线的中心频率为433.92MHZ
常见的无线传输协议:
image.png
如何保证无线传输的稳定性
每次传输一定要确认多传输几包数据
解码芯片解码的波形
image.png image.png通过波形可以发现,解码芯片和输入信号的波形不完全一致,具体表现在
(1) 最开始数据的前导码没有波形
(2) 波形时间有误差,可以看出客户提供的芯片具有较大的误差。不是由于定时器的原因(之前一致是以为定时器的原因)
(3) 不同的解码芯片的表现是不一样的。
(4) 客户提供的芯片0.3MS的低电平,解码只有2.2MS,误差比较大
(5) 两者解码的第一个字节的数据都有可能不对,为了保证准确性,舍弃第一包采样的数据。采样第二字节和第三字节。
常用的解码方式:
1.利用一个定时器定时40us产生一次中断,在中断中去读取RF_PIN 引脚的状态,其中有两个寄存器r_cycle_tmr和r_l_cnt分别代表一个有效位的时间长度和该有效位低电平的时间长度,当位长r_cycle_tmr在下面两个限定值范围内代表该位是有效的
define c_cycle_max (1000+300)/40+1
define c_cycle_min (1000-300)/40-1
上式中1000代表发射额定位长,±300表示误差范围,40是40Us中断一次。
当位有效时根据r_l_cnt和r_cycle_tmr的关系判断该位是0还是1
if((r_l_cnt * 2) < r_cycle_tmr )表示为位1,否则位0
当r_cycle_tmr > c_cycle_max时判断是否是解码成功,当成功解到24位是表示解码成功
需要注意的是,由于只有40us的中断,不能在定时中断中做过多的其他的事情。
2.其他解码方式:
软件解码方法 2(反码):
从第一个上升沿开始记时,并不断检测电平变化,一有电平变化,立即记录电平宽度
B1,再继续记时直至出现第二个下降沿,记录两个下降沿的间隔 B2,重复以上步骤,得到B3,B4,判断 B1,B2,B3,B4 是否在各自允许的误差范围内,是则保存 B1,B3,译出一个
码位,否则认为误码,丢弃。连续正确检测 12 个码位。