发明内容
有鉴于此,本发明实施例提出一种用于红外遥控的解码方法和解码装置,可以适用于红外遥控常用的四种编码。
本发明实施例提出的一种用于红外遥控的解码方法,包括如下步骤:
接收红外遥控的编码信号;
在预先设置的跳变时间点,根据编码信号的电平状态对标识符的取值进行跳变操作;所述标识符的取值为0或1,跳变操作为将标识符的取值从0变为1或从1变为0;
在预先设置的采样时间点对跳变过程中的标识符的取值进行采样,将采样结果作为解码结果输出。
在一个实施例中,所述红外遥控的编码信号为9012码或NEC码;
则所述在预先设置的跳变时间点,根据编码信号的电平状态对标识符的取值进行跳变操作包括:
A、在编码信号由低电平跳变为高电平的时间点,将计时器清零;首次执行时,标识符的初值为1;
B、在编码信号由高电平跳变为低电平的时间点,计时器开始计时;
C、当计时器的计时长度达到预先设置的X1时间点时,标识符跳变为0,所述X1小于1.12ms;
D、当计时器的计时长度超过所述X1时间点、且未达到预先设置的X2时间点的范围内,若编码信号由低电平跳变为高电平,则将计时器清零,将标识符设置为1,并转至所述步骤B,若所述计时长度范围内编码信号保持为低电平,则继续执行步骤E;所述X2大于1.12ms且小于2.25ms;
E、当计时器的计时长度达到预先设置的X2时间点后,将标识符设置为1转至所述步骤A。
所述X1为0.56ms,所述X2为1.69ms。
所述采样时间点为编码信号由低电平跳变为高电平的时间点。
在另一实施例中,所述红外遥控的编码信号为RC5码;
则所述在预先设置的跳变时间点,根据编码信号的电平状态对标识符的取值进行跳变操作包括:
在每个逻辑的第二个电平的中间时刻点,将标识符跳变为所述编码信号当前电平状态的反码。
所述采样时间点在所述跳变时间点之后,且采样时间点与跳变时间点之差小于450μs。
在又一实施例中,所述红外遥控的编码信号为AIR码;
则所述在预先设置的跳变时间点,根据编码信号的电平状态对标识符的取值进行跳变操作包括:
a、当编码信号由高电平跳变为低电平,计时器清零并重新开始计时;首次执行时,标识符的初值为1;
b、当计时器的计时长度达到预先设置的X4时间点时,标识符跳变为0,所述X4小于160μs;
c、当计时器的计时长度超过所述X4时间点、且未达到预先设置的X5时间点的范围内,编码信号由低电平跳变为高电平,则将计时器清零,将标识符设置为1,并转至所述步骤b,若所述计时长度范围内编码信号保持为低电平,则继续执行步骤d;,所述X5大于160μs且小于360μs;
d、当计时器的计时长度达到预先设置的X5时,标识符跳变为1并转至所述步骤a。
所述采样时间点为编码信号从高电平跳变到低电平的时间点。
本发明实施例还提出一种用于红外遥控的解码装置,包括:
输入接口,用于接收红外遥控的编码信号;
标识符模块,在预先设置的跳变时间点,根据编码信号的电平状态对标识符的取值进行跳变操作;
采样模块,在预先设置的采样时间点对所述标识符模块的标识符当前值进行采样;
输出接口,用于将所述采样模块的采样结果作为解码结果输出。
该解码装置进一步包括:
初始化模块,用于根据所要解码的编码信号的类型,对所述标识符模块和采样模块进行初始化。
在一种实施例中,编码信号为NEC码或9012码,标识符模块包括一计时器,所述初始化模块对标识符模块进行初始化包括:
将所述计时器的计时起点设置为编码信号由高电平跳变为低电平的时间点;设置计时长度X1和X2,X1小于1.12ms,X2大于1.12ms且小于2.25ms;将标识符的初值设置为1;
则所述标识符模块在输入接口收到编码信号后,执行如下操作:
在编码信号由低电平跳变为高电平的时间点,将计时器清零,并将标识符设置为1;
在编码信号由高电平跳变为低电平的时间点,计时器开始计时;
当计时器的计时长度达到预先设置的X1时间点时,标识符跳变为0;
当计时器的计时长度超过所述X1时间点、且未达到预先设置的X2时间点的范围内,若编码信号由低电平跳变为高电平,则将计时器清零,将标识符跳变为1;
当计时器的计时长度达到预先设置的X2时间点时,将标识符跳变为1。
所述初始化模块对采样模块进行初始化为:将采样模块的采样时间点设置为编码信号由低电平跳变为高电平的时间点。
在另一实施例中,编码信号为RC5码,所述初始化模块对标识符模块进行初始化包括:
将标识符模块的跳变时间点设置为每个逻辑的第二个电平的中间时刻点;
则所述标识符模块在输入接口收到编码信号后,执行如下操作:
在每个逻辑的第二个电平的中间时刻点,将标识符跳变为所述编码信号当前电平状态的反码。
所述初始化模块对采样模块进行初始化为:将采样模块的采样时间点设置为采样时间点在所述跳变时间点之后,且采样时间点与跳变时间点之差小于450μs。
在又一实施例中,编码信号为AIR码,标识符模块包括一计时器,所述初始化模块对标识符模块进行初始化包括:
将所述计时器的计时起点设置为编码信号由高电平跳变为低电平的时间点;设置计时长度X4和X5,X1小于160μs,X5大于160μs且小于360μs;将标识符的初值设置为1;
则所述标识符模块在输入接口收到编码信号后,执行如下操作:
当编码信号由高电平跳变为低电平,计时器清零并重新开始计时;
当计时器的计时长度达到预先设置的X4时间点时,标识符跳变为0;
当计时器的计时长度超过所述X4时间点、且未达到预先设置的X5时间点的范围内,编码信号由低电平跳变为高电平,则将计时器清零,将标识符设置为1;
当计时器的计时长度达到预先设置的X5时,标识符跳变为1。
所述初始化模块对采样模块进行初始化为:将采样模块的采样时间点设置为编码信号由高电平跳变为低电平的时间点。
从以上技术方案可以看出,该解码方法针对这四种码型共同的特点,在特定时刻点改变标识符的状态,并在恰当的时刻点对标识符进行采样,采样结果作为解码结果输出,不需要判断电平的长度,而且可以快速得到解码结果。
具体实施方式
本发明方案包括两个基本过程:标识符跳变过程和采样过程。标识符跳变过程是在预先设置的跳变时间点,根据接收红外遥控的编码信号的电平状态对标识符的取值进行跳变操作;所述标识符的取值为0或1,跳变操作为将标识符的取值从0变为1或从1变为0;采样过程是在预先设置的采样时间点,对跳变过程中的标识符的取值进行采样,将采样结果作为解码结果输出。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细阐述。
由图1可见,9012码和NEC码的不同逻辑值的特征体现在低电平的长度,而且长度相差较大,相邻逻辑值以高电平为间隔。因此可以将输入电平由低电平跳变为高电平的时间点作为采样时间点,利用标识符在低电平时间内的变化情况实现解码。图4示出了本发明实施例针对9012码和NEC码的解码原理示意图。其中,标识符的跳变方法如下:
A、在编码信号由低电平跳变为高电平的时间点,将计时器清零;首次执行时,标识符的初值为1;
B、在编码信号由高电平跳变为低电平的时间点,计时器开始计时;
C、当计时器的计时长度达到预先设置的X1时间点时,标识符跳变为0,所述X1小于1.12ms;
D、当计时器的计时长度超过所述X1时间点、且未达到预先设置的X2时间点的范围内,若编码信号由低电平跳变为高电平,则将计时器清零,将标识符设置为1,并转至所述步骤B,若所述计时长度范围内编码信号保持为低电平,则继续执行步骤E;所述X2大于1.12ms且小于2.25ms;
E、当计时器的计时长度达到预先设置的X2时间点后,将标识符设置为1转至所述步骤A。
那么在采样时间点采到的标识符的值为解码结果。
如图4所示,X1必须小于短电平的长度,较佳地,X1为短电平的中间长度,短电平代表的是逻辑0中的1.12ms的低电平,则X1=0.56ms。X2必须大于短电平的长度,并且小于长电平长度,较佳地,X2为长电平的3/4长度,长电平代表的是逻辑1中的2.25ms的低电平,则X2=1.69ms。
图5所示为根据以上解码方法,对于一小段9012码和NEC码的编码样本进行解码的时序图。其中,
Irc_clk:代表的是时钟频率;
Inputted_data_9012_nec:代表的是输入的9012码和NEC码编码;
real_data:代表的是这些输入编码所表示的二进制内容;
level_flag:代表的是输入码的变化情况,用于解码;
jump_to_low:代表的是level_flag信号要跳为低电平,是一个标识符信号;
jump_to_high:代表的是level_flag信号要跳为高电平,是一个标识符信号;
sample_decoded_9012_nec:代表的是采样解码时刻点;
decoded_9012_nec:代表的是采样后的解码值。低电平代表0,高电平代表1。
由图5可见,采样后的解码值是与输入编码代表的二进制内容是一致的,只是在时间上整体有所延迟。
由图2可见,RC5码的逻辑值反映在电平上,是高电平和低电平之间的先后关系,相邻逻辑值只能通过电平长度来识别当前电平是横跨两个逻辑还是一个逻辑,因此可以利用标识符反映当前电平的情况完成解码,每个逻辑的第二个电平的中间时刻点X3作为标识符跳变时间点。本发明实施例提出的针对RC5码的解码原理如图6所示,标识符在每个电平的X3时刻点跳变,跳变值为该电平的反码,而采样时间点为跳变之后某个时间点,该时间点与跳变时间点的时间差小于900μs/2=450μs,那么采样点采到的标识符的值为解码结果。
图7所示为根据以上解码方法,对于一小段RC5码的编码样本进行解码的时序图。其中,
Irc_clk:代表的是时钟频率;
Inputted_data_rc5:代表的是输入的RC5码编码;
real_data:代表的是这些输入编码所表示的二进制内容;
level_flag:代表的是输入码的变化情况,用于解码;
jump_to_low:代表的是level_flag信号要跳为低电平,是一个标识符信号;
jump_to_high:代表的是level_flag信号要跳为高电平,是一个标识符信号;
sample_decoded_rc5:代表的是采样时刻点,在每个逻辑值的第二个电平的中点,相邻采样点的间隔为1800μs;
decoded_rc5:代表的是采样后的解码值。低电平代表0,高电平代表1。
由图7可见,采样后的解码值是与输入编码代表的二进制内容是一致的,只是在时间上整体有所延迟。
由图3可见,AIR码与9012码和NEC码相似,不同之处在于每个AIR码的逻辑是高电平在低电平之后,而9012码和NEC码的逻辑是低电平在高电平之后。AIR码的解码方式与9012码和NEC码类似,只是采样时间点变为输入电平由高电平跳为低电平的时间点,如图8所示。标识符的跳变方法如下:
a、当编码信号由高电平跳变为低电平,计时器清零并重新开始计时;首次执行时,标识符的初值为1;
b、当计时器的计时长度达到预先设置的X4时间点时,标识符跳变为0,所述X4小于160μs;
c、当计时器的计时长度超过所述X4时间点、且未达到预先设置的X5时间点的范围内,编码信号由低电平跳变为高电平,则将计时器清零,将标识符设置为1,并转至所述步骤b,若所述计时长度范围内编码信号保持为低电平,则继续执行步骤d;,所述X5大于160μs且小于360μs;
d、当计时器的计时长度达到预先设置的X5时,标识符跳变为1并转至所述步骤a。
图9所示为根据以上解码方法,对于一小段AIR码的编码样本进行解码的时序图。其中,
Irc_clk:代表的是时钟频率;
Inputted_data_air:代表的是输入的AIR码编码;
real_data:代表的是这些输入编码所表示的二进制内容;
level_flag:代表的是输入码的变化情况,用于解码;
jump_to_low:代表的是level_flag信号要跳为低电平,是一个标识符信号;
jump_to_high:代表的是level_flag信号要跳为高电平,是一个标识符信号;
sample_decoded_air:代表的是采样解码时刻点;
decoded_air:代表的是采样后的解码值。低电平代表0,高电平代表1。
由图9可见,采样后的解码值是与输入编码代表的二进制内容是一致的,只是在时间上整体有所延迟。
由上述分析可见,这4种码的解码都需要在某一时刻点改变标识符的状态,不需要判断电平的长度,而且可以快速得到解码结果。本发明提出用于红外遥控的解码方法可以概括为如图10所示流程:
步骤101:接收红外遥控的编码信号;
步骤102:在预先设置的跳变时间点,根据编码信号的电平状态对标识符的取值进行跳变操作;
步骤103:在预先设置的采样时间点对跳变过程中的标识符的取值进行采样,将采样结果作为解码结果输出。
当所述红外遥控的编码信号为9012码或NEC码时;
则所述在预先设置的跳变时间点,根据编码信号的电平状态对标识符的取值进行跳变操作包括:
A、在编码信号由低电平跳变为高电平的时间点,将计时器清零;首次执行时,标识符的初值为1;
B、在编码信号由高电平跳变为低电平的时间点,计时器开始计时;
C、当计时器的计时长度达到预先设置的X1时间点时,标识符跳变为0,所述X1小于1.12ms;
D、当计时器的计时长度超过所述X1时间点、且未达到预先设置的X2时间点的范围内,若编码信号由低电平跳变为高电平,则将计时器清零,将标识符设置为1,并转至所述步骤B,若所述计时长度范围内编码信号保持为低电平,则继续执行步骤E;所述X2大于1.12ms且小于2.25ms;
E、当计时器的计时长度达到预先设置的X2时间点后,将标识符设置为1转至所述步骤A。较佳地,所述X1为0.56ms,所述X2为1.69ms。
所述采样时间点为编码信号由低电平跳变为高电平的时间点。
当所述红外遥控的编码信号为RC5码时,所述在预先设置的跳变时间点,根据编码信号的电平状态对标识符的取值进行跳变操作包括:
在每个逻辑的第二个电平的中间时刻点,将标识符跳变为所述编码信号当前电平状态的反码。
所述采样时间点在所述跳变时间点之后,且采样时间点与跳变时间点之差小于450μs。
当所述红外遥控的编码信号为AIR码时,所述在预先设置的跳变时间点,根据编码信号的电平状态对标识符的取值进行跳变操作包括:
a、当编码信号由高电平跳变为低电平,计时器清零并重新开始计时;首次执行时,标识符的初值为1;
b、当计时器的计时长度达到预先设置的X4时间点时,标识符跳变为0,所述X4小于160μs;
c、当计时器的计时长度超过所述X4时间点、且未达到预先设置的X5时间点的范围内,编码信号由低电平跳变为高电平,则将计时器清零,将标识符设置为1,并转至所述步骤b,若所述计时长度范围内编码信号保持为低电平,则继续执行步骤d;,所述X5大于160μs且小于360μs;
d、当计时器的计时长度达到预先设置的X5时,标识符跳变为1并转至所述步骤a。
所述采样时间点为编码信号从高电平跳变到低电平的时间点。
本发明实施例提出一种用于红外遥控的解码装置,其框图如图11所示,包括:
输入接口201,用于接收红外遥控的编码信号;
标识符模块202,在预先设置的跳变时间点,根据编码信号的电平状态对标识符的取值进行跳变操作;
采样模块203,在预先设置的采样时间点对所述标识符模块的标识符当前值进行采样;
输出接口204,用于将所述采样模块203的采样结果作为解码结果输出。
为了便于针对这四种编码类型进行适应性调整,该解码装置进一步包括:
初始化模块205,用于根据所要解码的编码信号的类型,对所述标识符模块202和采样模块203进行初始化。
编码信号为NEC码或9012码,标识符模块202包括一计时器,所述初始化模块205对标识符模块202进行初始化包括:
将所述计时器的计时起点设置为编码信号由高电平跳变为低电平的时间点;设置计时长度X1和X2,X1小于1.12ms,X2大于1.12ms且小于2.25ms;将标识符的初值设置为1;
则所述标识符模块202在输入接口201收到编码信号后,执行如下操作:
在编码信号由低电平跳变为高电平的时间点,将计时器清零,并将标识符设置为1;
在编码信号由高电平跳变为低电平的时间点,计时器开始计时;
当计时器的计时长度达到预先设置的X1时间点时,标识符跳变为0;
当计时器的计时长度超过所述X1时间点、且未达到预先设置的X2时间点的范围内,若编码信号由低电平跳变为高电平,则将计时器清零,将标识符跳变为1;
当计时器的计时长度达到预先设置的X2时间点时,将标识符跳变为1。
所述初始化模块205对采样模块203进行初始化为:将采样模块203的采样时间点设置为编码信号由低电平跳变为高电平的时间点。
若编码信号为RC5码,所述初始化模块205对标识符模块202进行初始化包括:
将标识符模块202的跳变时间点设置为每个逻辑的第二个电平的中间时刻点;
则所述标识符模块202在输入接口201收到编码信号后,执行如下操作:
在每个逻辑的第二个电平的中间时刻点,将标识符跳变为所述编码信号当前电平状态的反码。
所述初始化模块205对采样模块203进行初始化为:将采样模块203的采样时间点设置为采样时间点在所述跳变时间点之后,且采样时间点与跳变时间点之差小于450μs。
若编码信号为AIR码,标识符模块包括一计时器,所述初始化模块205对标识符模块202进行初始化包括:
将所述计时器的计时起点设置为编码信号由高电平跳变为低电平的时间点;设置计时长度X4和X5,X1小于160μs,X5大于160μs且小于360μs;将标识符的初值设置为1;
则所述标识符模块202在输入接口201收到编码信号后,执行如下操作:
当编码信号由高电平跳变为低电平,计时器清零并重新开始计时;
当计时器的计时长度达到预先设置的X4时间点时,标识符跳变为0;
当计时器的计时长度超过所述X4时间点、且未达到预先设置的X5时间点的范围内,编码信号由低电平跳变为高电平,则将计时器清零,将标识符设置为1;
当计时器的计时长度达到预先设置的X5时,标识符跳变为1。
所述初始化模块205对采样模块203进行初始化为:将采样模块203的采样时间点设置为编码信号由高电平跳变为低电平的时间点。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。