像这种315433M接收模块的解码芯片是不是内置有程序

像这种315433M接收模块的解码芯片是不是内置有程序,第1张

解码芯片内必有程序而且只针对特定的编码进行学习,其学习程序编写失当就很容易在学习完毕后无法进行实际的遥控解码。再者接收模块的保真度欠佳时更加困难。依你目前状况是两个接收模块的保真度(还原度)相差太大,而原先厂商是针对原模块的特性去编写程序的。一般这种超再生接收的还原度都很差,尤其在近距离一两公尺以内其失真更大,要不你先将学习过的内容全部清除后,距离拉远一些再试试。

PCF10模块三个引脚:VCC接9V DC电源+、GND接9V电源-、DATA接单片机I/O口;

PCR1A模块四个引脚:VCC接5V DC电源+、DATA接单片机I/O口、DATA接单片机I/O口、GND接5V电源-。

备注:PCR1A模块有两个DATA接口,接单片机I/O口肯定没错,但两接口接收后波形的相位及初始电平就只有你自己测试了,这与你解码有关。

直接通过串口通信应该是不行的,超再生接收电路没有收到发射信号时也有很多杂波输出,这会影响串口中断。但用其他的编码方式通信还是可以的,只是遵循一定的编解码协议就行了,解码程序还需克服杂波干扰。

常见的无线传输协议:

每次传输一定要确认多传输几包数据

通过波形可以发现,解码芯片和输入信号的波形不完全一致,具体表现在

(1) 最开始数据的前导码没有波形

(2) 波形时间有误差,可以看出客户提供的芯片具有较大的误差。不是由于定时器的原因(之前一致是以为定时器的原因)

(3) 不同的解码芯片的表现是不一样的。

(4) 客户提供的芯片0.3MS的低电平,解码只有2.2MS,误差比较大

(5) 两者解码的第一个字节的数据都有可能不对,为了保证准确性,舍弃第一包采样的数据。采样第二字节和第三字节。

1.利用一个定时器定时40us产生一次中断,在中断中去读取RF_PIN 引脚的状态,其中有两个寄存器r_cycle_tmr和r_l_cnt分别代表一个有效位的时间长度和该有效位低电平的时间长度,当位长r_cycle_tmr在下面两个限定值范围内代表该位是有效的

上式中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 个码位。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11176777.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存