概述
- 什么是433?
遥控设备以433M频率、RF433协议规则向环境中发射信号,接收方必须使用同样的433无线接收器才能成功采集到信号
- 什么是RF 433 协议?
我们对比波形来进行说明:采用RF433的遥控发射波形,由一个413us(高)+ 12.0ms(低)的前导波+24bits的数据组成,其中24bits的数据又由16bits遥控固定地址(各遥控地址不同)+8bits键值组成,见下图:
从图中数据位可以算出:遥控固定地址为0x905 ,发射码为0x01
前导波组成:450us高电平(误差±200us)+ 12.0 ms低电平(误差±2ms)
数据位,由逻辑‘0’或逻辑‘1’组成:
逻辑‘0’:450us高电平 + 1160 us低电平(误差±200us)
逻辑‘1’:450us高电平 + 1160 us低电平(误差±200us)
- 433数据捕获
3.1硬件准备
- 由于433采用的频率较高,所以首先需要一个us级别定时器用来作脉宽计算
- 一个IO能支持到433接收器电平跳变频率,通俗点说就是433接收器的高低电平能被硬件IO表达出来,这里一般用中断的方式触发
- 因为433接收器一旦与硬件IO对接就会频繁触发中断,按照处理优先级IRQ>SWI,所以首先MCU要能支持这种频繁触发的方式,且能及时清除中断,不能影响SWI的运行
3.2 软件准备
1. 能精确获取us级硬件时钟
2. IO电平波动时,能立即触发中断回调,且能同时捕获到上升、下降沿的触发
3.3 设计思想
有了前期软硬件部分的调试准备,已具备捕获433信号的能力,剩下就是软件部分处理逻辑了,我这边以BL2028N来进行说明:
- 注册一个任务用来获取us时间
- 初始化IO(与接收器对应的IO)为输入、边沿触发,用来反馈433接收器的电平信息,由于BL2028N只支持单边沿触发,所以想要捕获到完整一个周期,需要在中断中进行翻转,比如上升沿触发时,需在中断函数中将其设置为下降沿触发,捕获完下降沿后再将其设置为上升沿触发,不断进行采集,同时在中断函数中算出高低电平持续脉宽,进行换算得到最终的键值位
见上图可知,若初始为上升沿触发,再次上升沿触发时,即抓取到一个完整波形,所以可以在上升沿中断处理函数中完成波形的换算,关键部分代码:
3.注意由于433模块杂波较多,且采集时会有杂波,所以还要对波形上进行过滤,无效波及正常波形中穿插杂波的情况进行处理,一段完整的采集波形如下:
可以看出正常波形的周期都很规律,而杂波没有任何规律。
最后
以上就是欣喜小海豚为你收集整理的RF433数据抓取的全部内容,希望文章能够帮你解决RF433数据抓取所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复