红外信号的学习方法与流程

文档序号:12040245阅读:444来源:国知局
红外信号的学习方法与流程
本申请涉及一种学习型红外遥控器对红外信号的学习方法。

背景技术:
红外遥控器(IRRemoteControl)是利用波长为0.76~1.5μm之间的红外信号来传送控制信号的遥控设备,在工业控制、家电领域的应用广泛。所述红外信号由电信号转换而来,例如以红外光的有、无分别表示电信号的高、低电平。而所述电信号是红外控制码调制到载波上所形成的调制信号。红外控制码通常包括:引导码、系统码、数据码、系统码补码、数据码补码、同步码等。其中,系统码及其补码、数据码及其补码通常用于表示遥控指令。请参阅图1,遥控指令为一串二进制数字,红外控制码以高、低电平的组合来表示遥控指令。例如NEC协议格式定义:红外控制码中一个持续时间为0.5625ms的高电平与一个持续时间为0.5625ms的低电平的组合表示二进制数字0,一个持续时间为0.5625ms的高电平与一个持续时间为1.6875ms的低电平的组合表示二进制数字1。载波信号为方波信号。以脉冲调幅(PAM)方式将红外遥控码调制到载波上形成调制信号。脉冲调幅是指:红外控制码中的高、低电平分别以调制信号中的载波方波信号、低电平来表示。一旦得知红外信号的以下四个特征:红外控制码中的引导码和同步码的电平格式、红外控制码中的系统码及其补码和数据码及其补码用什么电平组合表示二进制数字0和1、红外控制码中的系统码及其补码和数据码及其补码的实际电平状态、以已知波形的信号作为载波信号的载波频率,就可以完整地掌握该红外信号。学习型红外遥控器(Self-LearningIRRemoteControl)可用来模拟已有的红外遥控器。其相当于钥匙坯子,可以刻出任意形状的钥匙。只要将已有的红外遥控器对准学习型红外遥控器发射红外信号,则学习型红外遥控器就能掌握该红外信号(称为“学习”)并具有原遥控器的所有功能。学习型红外遥控器分为两类:固定码格式学习的和波形拷贝方式学习的。前者需要预先收集大量已有的红外遥控器的红外信号,并保存每一种红外信号的格式。在对某一种红外遥控器的红外信号学习时,就从已保存的红外信号中寻找相应的格式进行解码。 其缺点是只能对事先已收集的红外信号进行学习。后者无须预先收集红外信号的格式,其在对某一种红外遥控器的红外信号学习时,将红外信号完全拷贝,然后自行判定其格式并保存。其优点是可以学习任意的红外遥控器,但对硬件的处理能力要求较高。现有的红外学习型遥控器在以波形拷贝方式学习红外信号时,直接过滤掉其中的载波,仅学习红外控制码,因而无法得知载波频率。这就导致红外学习型遥控器在发射所学习的红外信号时,还需要通过辅助手段增加频率准确的载波,并将所学习的红外控制码调制到载波上形成调制信号。

技术实现要素:
本申请所要解决的技术问题是提供一种红外遥控器对红外信号的学习方法,该方法属于波形拷贝方式,既能学习红外控制码,也能学习载波频率。为解决上述技术问题,本申请红外信号的学习方法包括如下步骤:第1步,红外收发模块接收环境中的红外信号,并向处理器输出接收后的红外信号;第2步,处理器从接收后的红外信号中通过学习得到红外控制码的电平状态、以及载波频率。本申请另一种红外信号的学习方法包括如下步骤:第1步,红外收发模块接收环境中的红外信号,并向处理器和载波过滤模块输出接收后的红外信号;第2步,处理器从接收后的红外信号中通过学习得到载波频率;第3步,载波过滤模块将接收后的红外信号转换为红外控制码,并输出给处理器;第4步,处理器从载波过滤模块转换的红外控制码中学习其电平状态;上述方法第2步和第3步的顺序可以互换。本申请给出了两种不同的红外信号的学习方法,分别适用于以软件方式从接收后的红外信号中学习到红外控制码、以硬件电路从接收后的红外信号中转换出红外控制码的情况。本申请可以同时得到红外控制码与载波频率两项参数,特别适用于学习型红外遥控器对已有的红外遥控器进行学习。附图说明图1是遥控指令与红外控制码的转换、以及红外控制码调制到载波信号的示意图;图2是一种学习型遥控器的主要结构示意图;图3是本申请红外信号的学习方法的第一实施例的流程图;图4是本申请红外信号的学习方法的第一实施例的第1步信号示意图;图5是本申请红外信号的学习方法的第一实施例的第2步第一种实现方式示意图;图6是本申请红外信号的学习方法的第一实施例的第2步第二种实现方式示意图;图7是另一种学习型遥控器的主要结构示意图;图8是本申请红外信号的学习方法的第二实施例的流程图;图9是本申请红外信号的学习方法的第二实施例的第4步第一种实现方式示意图;图10是本申请红外信号的学习方法的第二实施例的第4步第二种实现方式示意图;图11是本申请所学习到的红外控制码与原始的红外控制码存在细微差异的示意图;图12是本申请对所学习到的红外控制码进行整形的流程图。图中附图标记说明:10为红外收发模块;20为处理器;30为载波过滤模块。具体实施方式请参阅图2,这是一种学习型红外遥控器,包括:——红外收发模块10,接收环境中的红外信号,并向处理器20输出接收后的红外信号。——处理器20,从接收后的红外信号中通过学习得到红外控制码的电平状态和载波频率。这种学习型遥控器可由智能电子设备(如手机)来实现。红外收发模块10可集成到智能电子设备中,处理器20则可由智能电子设备的CPU兼任。请参阅图3,上述学习型红外遥控器对红外信号的学习方法包括如下步骤:第1步,红外收发模块10接收环境中的红外信号OutsideCarryPulseIn,并向处理器20输出接收后的红外信号(也称载波频率读取信号)CarryPulseIn。请参阅图4,所述红外收发模块10例如采用Vishay公司的TSMP77000红外接收传感器。当没有检测到环境中的红外信号(即环境中的红外信号始终为低电平)时,其始终输出高电平。当检测到了环境中的红外信号,其输出的接收后的红外信号与环境中的红外信号反相。因此,该型号的红外收发模块10的输出(接收后的红外信号)与输入(环境中的红外信号)整体而言是反相的。如果采用其他型号的红外收发模块10,则接 收后的红外信号与环境中的红外信号就整体而言也可能同相。第2步,处理器20从接收后的红外信号CarryPulseIn中通过学习得到红外控制码的电平状态(需先调整为与原始的红外控制码同相位)、以及载波频率。请参阅图5,这是上述方法第2步的第一种实现方式,以接收后的红外信号与环境中的红外信号反相为例。当处理器20检测到接收后的红外信号的第一个下降沿时启动定时器计时,直至紧邻的上升沿才停止计时,并记录计时值t1。处理器20在停止计时的同时立即清零定时器并再次开始计时,直至紧邻的下降沿才停止计时,并记录计时值t2。以此类推,处理器20记录t3、t4、……。直至处理器20在第n次开始计时后达到上限时间S后仍未检测到紧邻的下降沿,即出现t(n)≥S,则表明接收后的红外信号中的载波方波信号已经结束,这表示对应的红外控制码的高电平已经结束。所述定时器可以是处理器20内部的定时器,或者是外设的定时器。用于红外遥控的载波信号,其频率在一定范围内。假设载波方波信号的占空比为R,载波频率的最低值为X,最高值为Y,则上限时间S的取值为S>(1-R)/X。通常R的取值在10%~50%之间,因此上限时间S的取值例如为1/X。处理器20从t1累加到t(n-1)再额外加一遍t(n-2)作为接收后的红外信号中的载波方波信号的总时间T1,这表示真正的红外控制码的一个高电平(由载波方波信号调制)的总时间。处理器20还将计时值t(n)减去t(n-2)作为接收后的红外信号中的低电平的总时间T2,这表示真正的红外控制码的一个低电平(无载波方波信号调制)的总时间。t(n-2)表示落在t(n)区间的一个载波方波信号的高电平部分,也可由t2、t4、……或其平均值代替。处理器20通过记录真正的红外控制码的高、低电平顺序及持续时间,即学习了红外控制码的电平状态。理论上t1+t2=t3+t4=……,这就是载波方波信号的周期,因此其倒数就是载波方波信号的频率f=1/(t1+t2)=1/(t3+t4)=……。但在实际环境下,t1+t2与t3+t4可能只是大致相等而具有细微差异。此时计算多个载波频率取平均值即可,即载波频率f=(n-2)/2×{(t1+t2)+…+[t(n-3)+t(n-2)]}。此处的n必定为偶数。请参阅图6,这是上述方法第2步的第二种实现方式,仍以接收后的红外信号与环境中的红外信号反相为例。当处理器20检测到接收后的红外信号的第一个下降沿时启动第一定时器计时。当处理器20检测到接收后的红外信号的第一个上升沿时启动第二 定时器计时,直至紧邻的下降沿才停止第二定时器的计时,并记录计时值t2。随后处理器20清零第二定时器,并在检测到下一个上升沿时再次启动第二定时器计时,直至紧邻的下降沿才停止计时,并记录计时值t4。以此类推,处理器20记录t6、t8、……。直至处理器20在使第二定时器t(n)计时时,已达到上限时间S但仍未检测到紧邻的下降沿,即t(n)≥S,则表明接收后的红外信号的方波信号已经结束,这表示对应的红外控制码的高电平已经结束。在第二定时器t(n)计时的停止点位置的接收后的红外信号的下降沿,处理器20同时使第一定时器停止计时,第一定时器记录计时值T。两个定时器可以是处理器20内部的定时器,或者是外设的定时器。用于红外遥控的载波信号,其频率在一定范围内。假设载波方波信号的占空比为R,载波频率的最低值为X,最高值为Y,则上限时间S的取值为S>(1-R)/X。通常R的取值在10%~50%之间,因此上限时间S的取值例如为1/X。处理器20以T-t(n)+t(n-2)作为接收后的红外信号中的载波方波信号的总时间,这表示真正的红外控制码的一个高电平(由载波方波信号调制)的总时间T1。处理器20还将t(n)-t(n-2)作为接收后的红外信号中的低电平的总时间,这表示真正的红外控制码的一个低电平(无载波方波信号调制)的总时间。t(n-2)表示落在t(n)区间的一个载波方波信号的高电平部分,也可由t2、t4、……或其平均值代替。处理器20通过记录真正的红外控制码的高、低电平顺序及持续时间,即学习了红外控制码的电平状态。在接收后的红外信号中的载波方波信号的总时间T1中包含了n个载波方波信号,因此每个方波信号的周期为T1/n,对其取倒数就是载波方波信号的频率f=n/T1。图5、图6所示的上述方法第2步的二种实现方式,都是以接收后的红外信号与环境中的红外信号反相为例,因此根据接收后的红外信号所识别出的红外控制码还要经过反相后才是真正的红外控制码。如果接收后的红外信号与环境中的红外信号同相,显然原理是共通的,只需要将各种计时的起点和终点处的接收后的红外信号的上升沿与下降沿互换即可。此时,根据接收后的红外信号所识别出的就是真正的红外控制码。图3所示的红外信号的学习方法的第一实施例完全由处理器20以纯软件的方式从接收后的红外信号中学习红外控制码的电平状态和载波频率,这对处理器20的运算能力提出了较高要求。当接收后的红外信号较长,例如500ms时,处理器20需要持续监控其中的上升沿和下降沿以启动或停止计时器。处理器20通常要同时处理多项任务, 可能在500ms内被打断监控过程,例如要响应系统时钟等,这样容易对红外信号的学习造成干扰,同时给处理器20带来较重的负担。为了减轻处理器20的负担,也可采用另一种学习型红外遥控器,如图7所示。其包括:——红外收发模块10,接收环境中的红外信号,并向处理器20和载波过滤模块30输出接收后的红外信号。——处理器20,从接收后的红外信号中通过学习得到载波频率,还从红外控制码中学习其电平状态。——载波过滤模块30,将接收后的红外信号转换为红外控制码,并输出给处理器20。申请号为201320389091.3、申请日为2013年7月2日的中国实用新型专利申请就公开了图7所示的学习型红外遥控器,其中的红外收发电路相当于本申请中的红外收发模块10,其中的载波平滑电路与信号识别电路的总和相当于本申请中的载波过滤模块30。这种学习型遥控器也可由智能电子设备(如手机)来实现。红外收发模块10、载波过滤模块30可集成到智能电子设备中,处理器20可由智能电子设备的CPU担任。请参阅图8,上述学习型红外遥控器对红外信号的学习方法包括如下步骤:第1步,红外收发模块10接收环境中的红外信号OutsideCarryPulseIn,并向处理器20和载波过滤模块30输出接收后的红外信号(也称载波频率读取信号)CarryPulseIn。请参阅图4,所述红外收发模块10例如采用Vishay公司的TSMP77000红外接收传感器。当没有检测到环境中的红外信号(即环境中的红外信号始终为低电平)时,其始终输出高电平。当检测到了环境中的红外信号,其输出的接收后的红外信号与环境中的红外信号反相。因此,该型号的红外收发模块10的输出(接收后的红外信号)与输入(环境中的红外信号)整体而言是反相的。如果采用其他型号的红外收发模块10,则接收后的红外信号与环境中的红外信号就整体而言也可能同相。第2步,处理器20从接收后的红外信号CarryPulseIn中通过学习得到载波频率。请参阅图5,仍以接收后的红外信号与环境中的红外信号反相为例。当处理器20 检测到接收后的红外信号的第一个下降沿时启动定时器计时,直至紧邻的上升沿才停止计时,并记录计时值t1。处理器20在停止计时的同时立即清零定时器并再次开始计时,直至紧邻的下降沿才停止计时,并记录计时值t2。当t1、t2均小于上限时间S时,t1+t2就是载波方波信号的周期,因此其倒数就是载波方波信号的频率f=1/(t1+t2)。为确保准确,还可以同样方式进行多次计时,并以求平均值的方式得到载波频率。第3步,载波过滤模块30将接收后的红外信号转换为红外控制码,并输出给处理器20。申请号为201320389091.3、申请日为2013年7月2日的中国实用新型专利申请的图1就公开了一种以硬件电路实现的载波过滤模块30,其可将载波频率读取信号(即接收后的红外信号)CarryPulseIn转换为表征红外遥控信号有无的PulseIn信号(即转换后的红外控制码)输出。该转换后的红外控制码与真正的红外控制码就整体而言是反相的。上述方法第2步和第3步的顺序可以互换。第4步,处理器20从载波过滤模块30转换的红外控制码(需先调整为与原始的红外控制码同相位,称为学习到的红外控制码)中学习其电平状态。请参阅图9,这是上述方法第4步的第一种实现方式,以转换后的红外控制码与真正的红外控制码反相为例。当处理器20检测到转换后的红外控制码的第一个下降沿时启动定时器计时,直至紧邻的上升沿才停止计时,并记录计时值T1。处理器20在停止计时的同时立即清零定时器并再次开始计时,直至紧邻的下降沿才停止计时,并记录计时值T2。以此类推,处理器20记录T3、T4、……。所述定时器可以是处理器20内部的定时器,或者是外设的定时器。T1、T3、……就是真正的红外控制码的每个高电平的时间,T2、T4、……就是真正的红外控制码的每个低电平的时间。处理器20通过记录真正的红外控制码的高、低电平顺序及持续时间,即学习了红外控制码的电平状态。请参阅图10,这是上述方法第4步的第二种实现方式,仍以转换后的红外控制码与真正的红外控制码反相为例。当处理器20检测到转换后的红外控制码的第一个下降沿时启动定时器计时,随后每当处理器20检测到上升沿或下降沿时不停止计时,但均记录当时的计时值T1、T2、……。处理器20将相邻的两个计时值T(k-1)、T(k)的靠后者T(k)减去靠前者T(k-1)即得到真正的红外控制码的各个高、低电平的持续时间。处理器 20通过记录真正的红外控制码的高、低电平顺序及持续时间,即学习了红外控制码的电平状态。图9、图10所示的上述方法第4步的二种实现方式,都是以转换后的红外控制码与真正的红外控制码反相为例。如果采用其他类型的载波过滤模块30,则转换后的红外控制码与真正的红外控制码也可能同相,此时学习其电平状态显然原理是共通的,只需要将各种计时的起点和终点处的转换后的红外控制码的上升沿与下降沿互换即可。图8所示的红外信号的学习方法的第二实施例由于增加了载波过滤模块30,因而使得成本增加、设计复杂。但新增的载波过滤模块30通过硬件电路实现了将接收后的红外信号转换为红外控制码的工作,这使得处理器20只需要从接收后的红外信号中学习载波频率,因而大大减轻了处理器20的负担,从而对其计算能力的要求降低。图3和图8给出了本申请红外信号的学习方法的两个实施例,其经过软件处理或硬件电路所学习到的红外控制码(除了反相、同相问题以外)与原始的红外控制码之间不可避免地会存在细微差异,如图11所示。这是由于红外信号发射电路的误差、红外信号在环境中传播遇到的干扰、红外信号在接收传感器中引入的干扰等造成的。为此,本申请红外信号的学习方法的第一实施例的第2步中、第二实施例的第4步中,优选地处理器20先对所学习(或转换)到的红外控制码进行整形,再学习其电平状态。通过分析大量现有的红外遥控器的红外控制码的格式,申请人发现不同格式的红外控制码的高电平之间、低电平之间的宽度差异均在50%以上,因此本申请为高电平、低电平均设置一个容忍系数,优选的取值范围为5%~20%。当学习到的同一个红外控制码中的不同高电平、不同低电平的宽度差异在所述容忍系数范围内,则将其规整为高电平、低电平的标准宽度,所述标准宽度由宽度差异在所述容忍系数范围内的多个高电平、低电平取平均值而得。请参阅图12,上述对学习到的红外控制码进行整形的方法为:第1步,处理器20读取学习到的红外控制码的第一个高电平的宽度和紧邻的低电平的宽度,并记录为第一信号种类;第2步,随后,处理器20依次读取学习到的红外控制码的下一个高电平的宽度和紧邻的低电平的宽度;当该高电平的宽度与已记录的任何信号种类的高电平的宽度的差异在一定范围内, 且该电平之后紧邻的低电平的宽度与该同一信号种类的低电平的宽度的差异也在一定范围内,则将该高电平与紧邻的低电平归类为该信号种类;同时将该信号种类的高电平值、低电平值分别改为该信号种类中所有信号的高电平、低电平的平均值;所述平均值包括算术平均数、加权算术平均数等。否则,将该高电平与紧邻的低电平记录为新的信号种类;第3步,重复第2步直至读取到学习到的红外控制码的最后一个电平。通过上述方法得到的所有信号种类就对应于红外控制码中的引导码、系统码及其补码和数据码及其补码的0、1、同步码等。第4步,处理器将学习到的红外控制码中的每一个信号(一个高电平与紧邻的低电平的组合)都以已记录的一个信号种类的高电平值与低电平值的组合来替代,最终将学习到的红外控制码进行规整化。通过分析大量现有的红外遥控器的红外信号(调制信号),申请人还发现许多红外信号会重复发送代表同一个遥控指令的红外控制码,这通常是相应地红外遥控协议所规定的。为了减少学习型遥控器的存储量,优选地可以对所学习到的红外控制码进行去重,然后再学习其电平状态并保存在存储器中。所述去重可以采用现有的KMP匹配算法等。以上仅为本申请的优选实施例,并不用于限定本申请。对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1