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

技术编号:12704149 阅读:249 留言:0更新日期:2016-01-14 00:23
本发明专利技术公开了一种遥控射频信号接收软件解码方法,应用外部触发中断检测遥控射频信号的上升和下降沿,结合定时计数器中断,定义解码状态机,通过上升下降沿触发解码状态机和定时计数器,控制解码程序运行过程并读取信号数据,达到软件解码目的。

【技术实现步骤摘要】

本专利技术涉及。
技术介绍
传统的遥控射频接收软件采用的解码方法由于计算信号时序要求的原因,在解码程序段内不允许执行其它程序动作,只能按照顺序程序的方法执行解码,而解读一串射频数据一般需要耗时30ms以上,在此时间段内会导致主体软件其它重要动作的暂时停顿,而在软件执行连续的解码动作时,主程序停顿时间更长,影响到其它程序如串口数据接收、A/D信号采集等动作。传统的解码方式有两种,一种是采用顺序程序循环调用,在程序段内关闭中断,不执行其它动作,直到退出解码程序段。另一种是采用中断检测引导码的进入方式,把解码程序放在中断程序段内,在中断程序内完成解码动作,在解码期间也不能执行其它动作,只能等到解码完毕退出中断。
技术实现思路
本专利技术的目的在于提供,解决由于解码造成主程序长时间停顿影响其它事件处理的问题。本专利技术为解决其技术问题采用的技术方案是: ,包括: 定义解码状态机,解码状态机具有代码为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,返回主程序。进一步,所述应用外部触发中断包括将遥控接收器的OUT引脚连接到微处理器的一个具有外部触发中断能力的I/o端口,当发生外部中断时,判断是否来自该的I/O端口的中断信号,若是,则进一步判断为下降沿中断还是上升沿中断。再进一步,所述微处理器采用芯片STM32F100R8。本专利技术的有益效果是:应用外部触发中断检测遥控射频信号的上升和下降沿,结合定时计数器中断,定义解码状态机,通过上升下降沿触发解码状态机和定时计数器,控制解码程序运行过程并读取信号数据,达到软件解码目的。这样的解码方法主程序只需在信号触发中断时处理一小段控制解码状态机的代码(数十个几十微秒的中断处理),不需要在顺序程序中长期等待(大于30毫秒的连续时间段),从而解决上述主程序长时间停顿影响其它事件处理的问题。【附图说明】以下结合附图和实例对专利技术作进一步说明。图1是本专利技术的流程示意图。【具体实施方式】参照图1,本专利技术的,主要是基于以下硬件资源进行:芯片采用STM32F100R8,内核为ARM 32-bit Cortex?-M3 ;开发软件平台采用KeiluVis1n5,V5.12 ;所用芯片资源包括I/O外部中断,定时计数器,此处应用PC15端口,TIM7定时计数器。所述方法具体包括: 定义解码状态机,解码状态机具有代码为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,返回主程序;否则接收数据处理,再返回主程序。本专利技术应用外部触发中断检测遥控射频信号的上升和下降沿,结合定时计数器中断,定义解码状态机,通过上升下降沿触发解码状态机和定时计数器,控制解码程序运行过程并读取信号数据,达到软件解码目的。这样的解码方法主程序只需在信号触发中断时处理一小段控制解码状态机的代码(数十个几十微秒的中断处理),不需要在顺序程序中长期等待(大于30毫秒的连续时间段),从而解决上述主程序长时间停顿影响其它事件处理的问题。以上所述,只是本专利技术的较佳实施例而已,本专利技术并不局限于上述实施方式,只要其以相同的手段达到本专利技术的技术效果,都应属于本专利技术的保护范围。【主权项】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,读取定时计数器判断接收数据本文档来自技高网...

【技术保护点】
一种遥控射频信号接收软件解码方法,其特征在于,包括:定义解码状态机,解码状态机具有代码为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,返回主程序;否则接收数据处理,再返回主程序。...

【技术特征摘要】

【专利技术属性】
技术研发人员:温汉光
申请(专利权)人:江门市银狐美容美发设备有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1