一种遥控射频信号接收软件解码方法

文档序号:9489330阅读:1029来源:国知局
一种遥控射频信号接收软件解码方法
【技术领域】
[0001]本发明涉及一种遥控射频信号接收软件解码方法。
【背景技术】
[0002]传统的遥控射频接收软件采用的解码方法由于计算信号时序要求的原因,在解码程序段内不允许执行其它程序动作,只能按照顺序程序的方法执行解码,而解读一串射频数据一般需要耗时30ms以上,在此时间段内会导致主体软件其它重要动作的暂时停顿,而在软件执行连续的解码动作时,主程序停顿时间更长,影响到其它程序如串口数据接收、A/D信号采集等动作。
[0003]传统的解码方式有两种,一种是采用顺序程序循环调用,在程序段内关闭中断,不执行其它动作,直到退出解码程序段。另一种是采用中断检测引导码的进入方式,把解码程序放在中断程序段内,在中断程序内完成解码动作,在解码期间也不能执行其它动作,只能等到解码完毕退出中断。

【发明内容】

[0004]本发明的目的在于提供一种遥控射频信号接收软件解码方法,解决由于解码造成主程序长时间停顿影响其它事件处理的问题。
[0005]本发明为解决其技术问题采用的技术方案是:
一种遥控射频信号接收软件解码方法,包括:
定义解码状态机,解码状态机具有代码为0、1、2、3、4、5六种状态;
应用外部触发中断判断为下降沿中断还是上升沿中断;
若为下降沿触发中断,判断解码状态机的状态:
若解码状态机的状态为0,低电平进入解码,定时计数器置0,使能计数,设置定时计数器溢出值,溢出则复位,初始化解码程序,解码状态机跳转至1,解码状态机跳转后返回主程序;
若解码状态机的状态为2,读取定时计数器判断引导码时序,定时计数器置0,使能计数,若读取错误,解码状态机跳转至0,否则跳转至3,解码状态机跳转后返回主程序;
若解码状态机的状态为4,读取定时计数器判断接收数据时序,定时计数器置0,使能计数,若读取错误,解码状态机跳转至0,否则跳转至5,解码状态机跳转后返回主程序;若为上升沿触发中断,判断解码状态机的状态:
若解码状态机的状态为0或1,高电平进入解码,定时计数器置0,使能计数,设置定时计数器溢出值,溢出则复位,初始化解码程序,解码状态机跳转至2,解码状态机跳转后返回主程序;
若解码状态机的状态为3,读取定时计数器判断引导码时序,定时计数器置0,使能计数,若读取错误,解码状态机跳转至0,否则跳转至4,解码状态机跳转后返回主程序;
若解码状态机的状态为5,读取定时计数器判断接收数据时序,定时计数器置0,使能计数,若读取错误,解码状态机跳转至0,返回主程序;否则接收数据处理,再返回主程序; 解码成功后,数据复位,解码状态机跳转至0,返回主程序。
[0006]进一步,所述应用外部触发中断包括将遥控接收器的OUT引脚连接到微处理器的一个具有外部触发中断能力的I/o端口,当发生外部中断时,判断是否来自该的I/O端口的中断信号,若是,则进一步判断为下降沿中断还是上升沿中断。
[0007]再进一步,所述微处理器采用芯片STM32F100R8。
[0008]本发明的有益效果是:应用外部触发中断检测遥控射频信号的上升和下降沿,结合定时计数器中断,定义解码状态机,通过上升下降沿触发解码状态机和定时计数器,控制解码程序运行过程并读取信号数据,达到软件解码目的。这样的解码方法主程序只需在信号触发中断时处理一小段控制解码状态机的代码(数十个几十微秒的中断处理),不需要在顺序程序中长期等待(大于30毫秒的连续时间段),从而解决上述主程序长时间停顿影响其它事件处理的问题。
【附图说明】
[0009]以下结合附图和实例对发明作进一步说明。
[0010]图1是本发明的流程示意图。
【具体实施方式】
[0011]参照图1,本发明的一种遥控射频信号接收软件解码方法,主要是基于以下硬件资源进行:芯片采用STM32F100R8,内核为ARM 32-bit Cortex?-M3 ;开发软件平台采用KeiluVis1n5,V5.12 ;所用芯片资源包括I/O外部中断,定时计数器,此处应用PC15端口,TIM7定时计数器。
[0012]所述方法具体包括:
定义解码状态机,解码状态机具有代码为0、1、2、3、4、5六种状态;
将遥控接收器的OUT引脚连接到芯片的PC15端口,当发生外部中断时,判断是否来自PC15端口的中断信号,若是,则进一步判断为下降沿中断还是上升沿中断;
若为下降沿触发中断,判断解码状态机的状态:
若解码状态机的状态为0,低电平进入解码,定时计数器置0,使能计数,设置定时计数器溢出值,溢出则复位,初始化解码程序,解码状态机跳转至1,解码状态机跳转后返回主程序;
若解码状态机的状态为2,读取定时计数器判断引导码时序,定时计数器置0,使能计数,若读取错误,解码状态机跳转至0,否则跳转至3,解码状态机跳转后返回主程序;
若解码状态机的状态为4,读取定时计数器判断接收数据时序,定时计数器置0,使能计数,若读取错误,解码状态机跳转至0,否则跳转至5,解码状态机跳转后返回主程序;若为上升沿触发中断,判断解码状态机的状态:
若解码状态机的状态为0或1,高电平进入解码,定时计数器置0,使能计数,设置定时计数器溢出值,溢出则复位,初始化解码程序,解码状态机跳转至2,解码状态机跳转后返回主程序;
若解码状态机的状态为3,读取定时计数器判断引导码时序,定时计数器置0,使能计数,若读取错误,解码状态机跳转至0,否则跳转至4,解码状态机跳转后返回主程序;
若解码状态机的状态为5,读取定时计数器判断接收数据时序,定时计数器置0,使能计数,若读取错误,解码状态机跳转至0,返回主程序;否则接收数据处理,再返回主程序。
[0013]本发明应用外部触发中断检测遥控射频信号的上升和下降沿,结合定时计数器中断,定义解码状态机,通过上升下降沿触发解码状态机和定时计数器,控制解码程序运行过程并读取信号数据,达到软件解码目的。这样的解码方法主程序只需在信号触发中断时处理一小段控制解码状态机的代码(数十个几十微秒的中断处理),不需要在顺序程序中长期等待(大于30毫秒的连续时间段),从而解决上述主程序长时间停顿影响其它事件处理的问题。
[0014]以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。
【主权项】
1.一种遥控射频信号接收软件解码方法,其特征在于,包括: 定义解码状态机,解码状态机具有代码为O、1、2、3、4、5六种状态; 应用外部触发中断判断为下降沿中断还是上升沿中断; 若为下降沿触发中断,判断解码状态机的状态: 若解码状态机的状态为O,低电平进入解码,定时计数器置O,使能计数,设置定时计数器溢出值,溢出则复位,初始化解码程序,解码状态机跳转至I,解码状态机跳转后返回主程序; 若解码状态机的状态为2,读取定时计数器判断引导码时序,定时计数器置O,使能计数,若读取错误,解码状态机跳转至O,否则跳转至3,解码状态机跳转后返回主程序; 若解码状态机的状态为4,读取定时计数器判断接收数据时序,定时计数器置O,使能计数,若读取错误,解码状态机跳转至O,否则跳转至5,解码状态机跳转后返回主程序; 若为上升沿触发中断,判断解码状态机的状态: 若解码状态机的状态为O或1,高电平进入解码,定时计数器置O,使能计数,设置定时计数器溢出值,溢出则复位,初始化解码程序,解码状态机跳转至2,解码状态机跳转后返回主程序; 若解码状态机的状态为3,读取定时计数器判断引导码时序,定时计数器置O,使能计数,若读取错误,解码状态机跳转至O,否则跳转至4,解码状态机跳转后返回主程序; 若解码状态机的状态为5,读取定时计数器判断接收数据时序,定时计数器置O,使能计数,若读取错误,解码状态机跳转至O,返回主程序;否则接收数据处理,再返回主程序。2.根据权利要求1所述的一种遥控射频信号接收软件解码方法,其特征在于:所述应用外部触发中断包括将遥控接收器的OUT引脚连接到微处理器的一个具有外部触发中断能力的I/O端口,当发生外部中断时,判断是否来自该的I/O端口的中断信号,若是,则进一步判断为下降沿中断还是上升沿中断。3.根据权利要求2所述的一种遥控射频信号接收软件解码方法,其特征在于:所述微处理器采用芯片STM32F100R8。
【专利摘要】本发明公开了一种遥控射频信号接收软件解码方法,应用外部触发中断检测遥控射频信号的上升和下降沿,结合定时计数器中断,定义解码状态机,通过上升下降沿触发解码状态机和定时计数器,控制解码程序运行过程并读取信号数据,达到软件解码目的。
【IPC分类】G08C17/02, G06F9/48
【公开号】CN105242968
【申请号】CN201510732869
【发明人】温汉光
【申请人】江门市银狐美容美发设备有限公司
【公开日】2016年1月13日
【申请日】2015年10月30日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1