掌桥专利:专业的专利平台
掌桥专利
首页

一种红外遥控解码方法、装置、解码设备以及存储介质

文献发布时间:2024-04-18 19:59:31


一种红外遥控解码方法、装置、解码设备以及存储介质

技术领域

本申请涉及家电控制技术领域,尤其涉及的是一种红外遥控解码方法、装置、解码设备以及存储介质。

背景技术

红外遥控广泛应用于家电控制领域(如空调,电视机,电风扇等),目前应用最广泛红外协议是NEC协议。

现在的软件解码方法是用TIM定时器为时基,在TIM更新中断中累加高低电平的时间,来区分起始位,以及编码0,编码1和结束位,从而进行解码。这种方式不仅要对载波进行无效判断,而且还要频繁进入中断,减缓MCU的执行效率,从而加大了解码时间。如果TIM的时钟不准,还会提高解码的错误率,导致遥控的响应的速度变慢,以及多次按下遥控器才能响应,导致用户的体验变差。

因此,现有技术还有待于改进和发展。

发明内容

鉴于上述现有技术的不足,本申请的目的在于提供一种红外遥控解码方法、装置、解码设备以及存储介质,以解决现有技术中采用累加高低电平时间的解码方法错误率高的问题。

本申请的技术方案如下:

一种红外遥控解码方法,包括:

接收红外遥控的编码信号;

捕获编码信号中各个方波的脉宽值以及周期值,并根据脉宽值以及周期值计算占空比;

根据占空比进行解码。

本申请的进一步设置,所述捕获编码信号中各个方波的脉宽值以及周期值包括:

在编码信号的首次上升沿时对计数器进行复位;

对编码信号的下降沿进行输入捕获,并记录当前计数器的计数值,得到脉宽值;

对编码信号的N-1次上升沿进行中断,并记录当前计数器的计数值,得到周期值;其中,N为正整数。

本申请的进一步设置,所述对编码信号的N-1次上升沿进行中断,并记录当前计数器的计数值,得到周期值的步骤包括:

在记录当前计数器的计数值,得到周期值后,对计数器进行复位。

本申请的进一步设置,所述根据脉宽值以及周期值计算占空比的步骤包括:若占空比大于或等于三分之二,为先导码;

若占空比为二分之一,则为逻辑0;

若占空比为四分之一,则为逻辑1;

若占空比小于五分之一,则为结束位。

本申请的进一步设置,所述根据占空比进行解码的步骤还包括:

若为先导码,则对编码信号的下一个下降沿进行输入捕获;

若非先导码,则在编码信号的下一个上升沿时对计数器进行复位。

本申请的进一步设置,所述根据占空比进行解码的步骤还包括:

当收到有效解码1或解码0时,对解码数据变量左移一位,并且累加0或1。

本申请的进一步设置,所述捕获编码信号中各个方波的脉宽值以及周期值之前的步骤包括:

对编码信号进行滤波。

本申请还提供了一种装置,包括:

接受单元,用于接收遥控器发出的红外信号;

处理单元,用于捕获编码信号中各个方波的脉宽值以及周期值,并根据脉宽值以及周期值计算占空比;

解码单元,用于根据占空比进行解码。

本申请还提供了一种解码设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现如上所述红外遥控解码方法的步骤。

本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述提供的红外遥控解码方法。

本申请所提供的一种红外遥控解码方法、装置、解码设备以及存储介质;所述红外遥控解码方法包括先接收红外遥控的编码信号;再捕获编码信号中各个方波的脉宽值以及周期值,并根据脉宽值以及周期值计算占空比;最后根据占空比进行解码。本申请通过采用占空比的方式进行解码,由于脉宽值与周期值都是同时计时,采用同一基准,因此,若是定时器的时钟不准,造成脉宽值存在误差时,同样,周期值也存在等量的误差,那么,当两者的误差相除,那么总的误差则会抵消,以此降低解码的错误率,进而提高解码的准确率。

附图说明

为了更清楚的说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。

图1是本申请中NEC协议的原理图。

图2是本申请中红外遥控解码方法的流程图。

图3是本申请中红外遥控解码方法另一个实施例的流程图。

图4是本申请中装置的结构原理图。

图5是本申请中红外接收管的电路图。

具体实施方式

本申请提供一种红外遥控解码方法、装置、解码设备以及存储介质,为使本申请的目的、技术方案及效果更加清楚、明确,以下参照附图并举实例对本申请进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

相关技术中,对红外信号进行解码时,会通过定时器对红外信号的高低电平累加时间,并通过累加的高低电平时间来区分起始位、编码1、编码0以及结束位。若定时器的时钟不准,那么则会影响解码的正确率。

为了解决这一技术问题,本申请实施例中,采用占空比的方式进行解码,其中,占空比是脉宽值除以周期值。由于脉宽值与周期值都是同时计时,采用同一基准,因此,若是定时器的时钟不准,造成脉宽值存在误差时,同样,周期值也存在等量的误差,那么,当两者的误差相除,那么总的误差则会抵消,以此降低解码的错误率,进而提高解码的准确率。

为便于更好的理解本申请实施例,下面对本申请实施例涉及的红外遥控的NEC红外协议进行说明。

在带有红外遥控的装置中,存在红外发射模块以及红外接收模块。红外发射模块会将红外光信号进行编码,并对编码数据放在一定频率的载波上,形成一串脉冲信号,然后再将脉冲信号传输至红外接收模块,红外接收模块则会对脉冲信号进行解码。

其中,NEC红外协议是目前红外遥控使用最普遍的信号传输协议。NEC协议则是采用脉冲间距编码来表示红外光信号的,即一个脉冲后面的低电平持续时间为T,则表示二进制信息“0”,一个脉冲后面的低电平持续时间为2T,则表示二进制信息“1”。如图1所示,NEC协议在传输数据时,会先发送一个先导码,先导码的脉冲串长度有9ms,紧接着是4.5ms的低电平,然后才开始地址码和数据码的传输。先导码后面是8位地址码和8位数据码,其中地址码和数据码后面又分别紧跟着8位反码,这样可以确保指令的正确性。

下面对本申请实施例技术方案进行详细阐述:

图2是本实施例提供的一种红外遥控编码方法的流程图,如图2所示,该方法包括如下步骤:

S100、接收红外遥控的编码信号。

具体地,所述编码信号是基于NEC红外协议进行编码的红外信号。接收单元接收到编码信号后,则会将编码信号输出至处理单元,以供处理单元进行解码。

S200、捕获编码信号中各个方波的脉宽值以及周期值,并根据脉宽值以及周期值计算占空比。

具体地,如图1所示,编码信号由若干个方波组成,而编码信号中先导码、编码0、编码1以及结束位的脉宽值以及周期值都是不同的。因此,通过捕获编码信号中各个方波的脉宽值以及周期值,并根据脉宽值以及周期值计算占空比,不仅可以对编码信号进行解码,并且采用占空比的方式进行解码,可以通过误差相抵,以降低编码的错误率。

下面示出一种捕获编码信号中各个方波的脉宽值以及周期值的具体过程。

在一种实施例中,S200中捕获编码信号中各个方波的脉宽值以及周期值,具体可以为:

S210、在编码信号的首次上升沿时对计数器进行复位。

S220、对编码信号的下降沿进行输入捕获,并记录当前计数器的计数值,得到脉宽值。

S230、对编码信号的N-1次上升沿进行中断,并记录当前计数器的计数值,得到周期值;其中,N为正整数。

具体来说,当处理器收到编码信号时,则会在编码信号的首次上升沿到来时,控制计数器进行复位,即使计数器所计数的值进行初始化。同时随着编码信号的持续进入,计数器开始持续计数,并在编码信号的下降沿到来时进行捕获,即以输入捕获的形式获取下降沿,并在此刻记录计数器的计数值,此时的计数值为脉宽值。而在编码信号非首次上升沿到来时,则会启动中断捕获,并记录此刻计数器的计数值,此时的计数值为周期值。

需要说明的是,脉宽值与周期值捕获的方式不同,对于脉宽值则是采用输入捕获,即在此时只会将计数值输入至寄存器保存,不会停止编码信号的输入进程。而对于周期值则是采用中断捕获,此时不仅会记录计数值,还会暂停编码信号的输入进程。由于需要计算占空比进行解码,因此必须需要进行中断,因此,本实施例则会在捕获周期值时进行计算占空比。

一般来说,现有技术中对红外信号进行解码时,需要对各个方波的上升沿以及下降沿都要进行中断,以获得两个中断之间的差值,即高电平时间或者低电平时间。而在本实施例中,则是先采用了计数器进行复位,以复位时刻作为基点,则只用对各个方波的下降沿进行捕获,且只在后续各个方波的上升沿进行中断,就可以得到当前脉宽值以及当前周期值。从而大大减少进入中断的次数,提高MCU的执行效率。并又采用占空比的形式进行解码,避免因时钟不准,从而降低解码错误率。使产品的响应更迅速,提高用户体验。

在一种实施例中,所述对编码信号的N-1次上升沿进行中断,并记录当前计数器的计数值,得到周期值的步骤包括:

S231、在记录当前计数器的计数值,得到周期值后,对计数器进行复位。

可以理解的是,在所述编码信号的上升沿到来时,都会对计数器进行复位,不过在编码信号的N-1次上升沿到来时,会先记录当前计数器的计数值,得到周期值后对计数器进行清零,同时进行中断,在中断时计算占空比,其中,所述占空比为所述脉宽值除以所述周期值。也就是说,在第N-1个方波触发中断的时刻是第N个方波的起始计数的时刻。

下面示出一种根据脉宽值以及周期值计算占空比的具体过程。

在一种实施例中,如图3所示,S200中根据脉宽值以及周期值计算占空比,具体可以为:

S240、若占空比大于或等于三分之二,为先导码;若占空比为二分之一,则为逻辑0;若占空比为四分之一,则为逻辑1;若占空比小于五分之一,则为结束位。

具体来说,对于NEC红外协议,先导码代表编码信号的起始位,即代表开始发送数据,结束位代表数据传输完成。二进制的“0”以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示;二进制的“1”以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示。因此,解码时,代表逻辑0的方波则占空比为50%左右,代表逻辑1的方波则占空比为25%左右。需要说明的是,占空比的误差可以在2%的范围内。例如:占空比为49%以及52%都可以表示为逻辑0。

在一种实施例中,如图3所示,S200中根据脉宽值以及周期值计算占空比还包括:

S250、若为先导码,则对编码信号的下一个下降沿进行输入捕获;若非先导码,则在编码信号的下一个上升沿时对计数器进行复位。

具体地,从时间顺序来说,在进行中断得到当前周期值时,计算首个方波的占空比,先判断该方波是否为先导码,若为先导码,则代表编码信号开始正常发送数据,此时则继续判断后续的方波信号,即开始输入捕获下降沿,并在下一个上升沿时计算占空比,依次判断是否为逻辑1,逻辑0以及结束位。以此进入循环,直至收到判断方波为结束位时,输出解码数据,代表解码完成。若遇到编码信号中的首个方波不是先导码时,则代表此时为乱码,则在编码信号的下一个上升沿时对计数器进行复位,使计数器进行清零。

在一种实施例中,如图3所示,所述根据占空比进行解码的步骤还包括:

S310、当收到有效解码1或解码0时,对解码数据变量左移一位,并且累加0或1。

如果通过判断得到编码信号为有效信号,即解码1或者解码0时,则会在寄存器中对加密数据变量左移一位,并且累加0或1,即对解码1或解码0进行保存。

在一种实施例中,如图3所示,所述捕获编码信号中各个方波的脉宽值以及周期值之前的步骤包括:

S000、对编码信号进行滤波。

具体地,通过定时器对编码信号进行滤波,这样不仅不需要对载波进行无效判断,而且还大大减少进入中断的次数,进一步提高了执行效率。

本申请还提供了一种装置,如图4所示,所述装置包括:接受单元,用于接收遥控器发出的红外信号;处理单元,用于捕获编码信号中各个方波的脉宽值以及周期值,并根据脉宽值以及周期值计算占空比;解码单元,用于根据占空比进行解码。

具体地,所述处理单元包括定时器,其中,定时器包括滤波器、寄存器以及计数器;所述计数器用于在编码信号的首次上升沿时进行复位以及进行实时计数;所述寄存器用于对所述编码信号的下降沿进行输入捕获,并记录当前计数器的计数值,得到当前脉宽值,以及对所述编码信号的N-1次上升沿进行中断,并记录当前计数器的计数值,得到周期值;其中,N为正整数。所述滤波器用于对所述编码信号进行滤波。

需要说明的是,对所述编码信号的下降沿进行输入捕获以及对所述编码信号的N-1次上升沿进行中断这两个操作,可以是两个寄存器进行操作,也可以是同一个寄存器进行操作,具体不做限制。

在一种实施例中,所述接收单元采用红外接收管接收红外信号。

具体地,如图5所示,所述接收单元包括红外接收管,所述红外接收管U1的输出端与处理单元连接,用于接收到的红外信号输出至所述处理单元,以供处理单元进行解码。

本申请还提供了一种解码设备。所述解码设备可以是上述方法实施例中的服务器。

所述编码设备可包括:存储器以及处理器;存储器,所述储存器用于存储计算机程序,并将该程序代码传输给该处理器。换言之,该处理器可以从储存器中调用并运行计算机程序,以实现本实施例汇总的红外遥控解码方法。

本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令被处理器执行实现的红外遥控解码方法。

综上所述,本申请提供了一种红外遥控解码方法、装置、解码设备以及存储介质;所述红外遥控解码方法包括先接收红外遥控的编码信号;再捕获编码信号中各个方波的脉宽值以及周期值,并根据脉宽值以及周期值计算占空比;最后根据占空比进行解码。本申请通过采用占空比的方式进行解码,由于脉宽值与周期值都是同时计时,采用同一基准,因此,若是定时器的时钟不准,造成脉宽值存在误差时,同样,周期值也存在等量的误差,那么,当两者的误差相除,那么总的误差则会抵消,以此降低解码的错误率,进而提高解码的准确率。

应当理解的是,本申请的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本申请所附权利要求的保护范围。

技术分类

06120116521260