著录项信息
专利名称 | 波形学习电路对红外线解码的方法 |
申请号 | CN200810302672.2 | 申请日期 | 2008-07-09 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2008-12-10 | 公开/公告号 | CN101320516 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G08C23/04 | IPC分类号 | G;0;8;C;2;3;/;0;4查看分类表>
|
申请人 | 四川长虹电器股份有限公司 | 申请人地址 | 四川省绵阳市高新区绵兴东路35号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 四川长虹电器股份有限公司 | 当前权利人 | 四川长虹电器股份有限公司 |
发明人 | 蔡勇 |
代理机构 | 成都虹桥专利事务所 | 代理人 | 李顺德 |
摘要
本发明涉及对红外遥控器发射波形进行解码并学习的实现方法。本发明所要解决的技术问题是提供一种全硬件实现的红外线解码的方法。波形学习电路对红外线解码的方法中,头码高电平计数器与头码低电平计数器用于还原头码波形;移位寄存器、第一缓存器、第二缓存器用于还原控制第一默认数据;位计数器、移位寄存器、第一缓存器或第二缓存器、第三缓存器用于还原控制第二默认数据;结束码高电平计数器与结束码低电平计数器用于还原结束码。本发明适用于红外遥控器波形学习电路的实现。
1.波形学习电路对红外线解码的方法,其特征在于,包括以下步骤:
a、波形学习启动;
b、采样逻辑发现有波形输入,进入下一步骤;
c、启动与输入波形同相位的时钟,启动头码高电平计数器记录高电平时的时钟脉冲个数,启动头码低电平计数器记录低电平时的时钟脉冲个数;
d、逻辑判断接收的头码数据是否有效,如是,保存高电平时的时钟脉冲个数至头码高电平计数器,保存低电平时的时钟脉冲个数至头码低电平计数器,进入下一步骤;如否,回到步骤a;
e、接收第一位控制数据,启动位高电平计数器记录高电平时的时钟脉冲个数;启动位低电平计数器记录低电平时的时钟脉冲个数;
f、逻辑判断接收的第一位控制数据是否有效,如是,将高电平时的时钟脉冲个数保存至第一缓存器,将低电平时的时钟脉冲个数保存至第二缓存器,位计数器加1,移入第一默认数据至移位寄存器;如否,回到步骤a;
g、接收下一位控制数据,位高电平计数器记录高电平时的时钟脉冲个数;位低电平计数器记录低电平时的时钟脉冲个数;将记录的高电平时的时钟脉冲个数与第一缓存器中存储的值比较、将记录的低电平时的时钟脉冲个数分别与第二缓存器中存储的值比较;当记录的高电平时的时钟脉冲个数与第一缓存器中存储的值相近,且低电平时的时钟脉冲个数与第二缓存器中存储的值相近时,则移入第一默认数据至移位寄存器,同时位计数器加1;当记录的高电平时的时钟脉冲个数与第一缓存器中存储的值相近,低电平时的时钟脉冲个数与第二缓存器中存储的值不相近时,则移入第二默认数据至移位寄存器,同时位计数器加1,将低电平时的时钟脉冲个数存入第三缓存器;当记录的高电平时的时钟脉冲个数与第一缓存器中存储的值不相近,低电平时的时钟脉冲个数与第二缓存器中存储的值相近时,则移入第二默认数据至移位寄存器,同时位计数器加1,将高电平时的时钟脉冲个数存入第三缓存器;
h、接收其余控制数据,位高电平计数器记录高电平时的时钟脉冲个数;位低电平计数器记录低电平时的时钟脉冲个数,并分别与对应的第一缓存器、第二缓存器中存储的值比较,如相近,则向移位寄存器移入第一默认数据,同时位计数器加1;否则向移位寄存器移入第二默认数据,同时位计数器加1;进入一下步骤;
i、判断是否收到结束码,如是,控制数据接收完毕,结束码高电平计数器启动,记录高电平时时钟脉冲个数至结束码高电平计数器,结束码低电平计数器启动,记录低电平时时钟脉冲个数至结束码低电平计数器,并保存结束码高电平计数器与结束码低电平计数器中的值;如否,返回本步骤。
2.如权利要求1所述波形学习电路对红外线解码的方法,其特征在于,所述第一默认数据为数据0;第二默认数据为数据1。
3.如权利要求1所述波形学习电路对红外线解码的方法,其特征在于,所述第一默认数据为数据1;第二默认数据为数据0。
4.如权利要求1、2或3所述波形学习电路对红外线解码的方法,其特征在于,所述头码高电平计数器与头码低电平计数器用于还原头码波形;所述位计数器、移位寄存器、第一缓存器、第二缓存器用于还原控制第一默认数据;所述步骤g中,当记录的高电平时的时钟脉冲个数与第一缓存器中存储的值相近,低电平时的时钟脉冲个数与第二缓存器中存储的值不相近时,所述位计数器、移位寄存器、第一缓存器、第三缓存器用于还原控制第二默认数据;所述步骤g中,当记录的高电平时的时钟脉冲个数与第一缓存器中存储的值不相近,低电平时的时钟脉冲个数与第二缓存器中存储的值相近时,所述位计数器、移位寄存器、第二缓存器、第三缓存器用于还原控制第二默认数据;所述结束码高电平计数器与结束码低电平计数器用于还原结束码。
技术领域\n本发明涉及对红外遥控器发射波形进行解码并学习的实现方法。\n背景技术\n目前,学习型遥控器主要用单片机通过软件编程实现;在需求较高的情况下,其芯片价格相对于掩膜IC来说成本更高。因此,用全硬件实现学习型遥控器将成为各遥控器厂商的首选,而学习型遥控器的芯片其关键电路部分是对遥控器发射波形的解码并学习,波形学习电路的质量直接关系到遥控器的学习成功率。\n发明内容\n本发明所要解决的技术问题是提供一种全硬件实现的红外线解码的方法。\n本发明为解决上述技术问题所采用的技术方案是,波形学习电路对红外线解码的方法,包括以下步骤:\na、波形学习启动;\nb、采样逻辑发现有波形输入,进入下一步骤;\nc、启动与输入波形同相位的时钟,启动头码高电平计数器记录高电平时的时钟脉冲个数,启动头码低电平计数器记录低电平时的时钟脉冲个数;\nd、逻辑判断接收的头码数据是否有效,如是,保存高电平时的时钟脉冲个数至头码高电平计数器,保存低电平时的时钟脉冲个数至头码低电平计数器,进入下一步骤;如否,回到步骤a;\ne、接收第一位控制数据,启动位高电平计数器记录高电平时的时钟脉冲个数;启动位低电平计数器记录低电平时的时钟脉冲个数;\nf、逻辑判断接收的第一位控制数据是否有效,如是,将高电平时的时钟脉冲个数保存至第一缓存器,将低电平时的时钟脉冲个数保存至第二缓存器,位计数器加1,移入第一默认数据至移位寄存器;如否,回到步骤a;\ng、接收下一位控制数据,位高电平计数器记录高电平时的时钟脉冲个数;位低电平计数器记录低电平时的时钟脉冲个数;将记录的高电平时的时钟脉冲个数与第一缓存器中存储的值比较、将记录的低电平时的时钟脉冲个数分别与第二缓存器中存储的值比较;当记录的高电平时的时钟脉冲个数与第一缓存器中存储的值相近,且低电平时的时钟脉冲个数与第二缓存器中存储的值相近时,则移入第一默认数据至移位寄存器,同时位计数器加1;当记录的高电平时的时钟脉冲个数与第一缓存器中存储的值相近,低电平时的时钟脉冲个数与第二缓存器中存储的值不相近时,则移入第二默认数据至移位寄存器,同时位计数器加1,将低电平时的时钟脉冲个数存入第三缓存器;当记录的高电平时的时钟脉冲个数与第一缓存器中存储的值不相近,低电平时的时钟脉冲个数与第二缓存器中存储的值相近时,则移入第二默认数据至移位寄存器,同时位计数器加1,将高电平时的时钟脉冲个数存入第三缓存器;\nh、接收其余控制数据,位高电平计数器记录高电平时的时钟脉冲个数;位低电平计数器记录低电平时的时钟脉冲个数,并分别与对应的第一缓存器、第二缓存器中存储的值比较,如相近,则向移位寄存器移入第一默认数据,同时位计数器加1;否则向移位寄存器移入第二默认数据,同时位计数器加1;进入一下步骤;\ni、判断是否收到结束码,如是,控制数据接收完毕,结束码高电平计数器启动,记录高电平时时钟脉冲个数至结束码高电平计数器,结束码低电平计数器启动,记录低电平时时钟脉冲个数至结束码低电平计数器,并保存结束码高电平计数器与结束码低电平计数器中的值;如否,返回本步骤;\n所述头码高电平计数器与头码低电平计数器用于还原头码波形;所述移位寄存器、第一缓存器、第二缓存器用于还原控制第一默认数据;所述步骤g中,当记录的高电平时的时钟脉冲个数与第一缓存器中存储的值相近,低电平时的时钟脉冲个数与第二缓存器中存储的值不相近时,所述位计数器、移位寄存器、第一缓存器、第三缓存器用于还原控制第二默认数据;所述步骤g中,当记录的高电平时的时钟脉冲个数与第一缓存器中存储的值不相近,低电平时的时钟脉冲个数与第二缓存器中存储的值相近时,所述位计数器、移位寄存器、第二缓存器、第三缓存器用于还原控制第二默认数据;所述结束码高电平计数器与结束码低电平计数器用于还原结束码。\n所述第一默认数据为数据0;第二默认数据为数据1;或者,所述第一默认数据为数据1;第二默认数据为数据0。\n本发明的有益效果是,能简单、高效地实现全硬件的遥控器红外线波形学习。\n附图说明\n图1为第一种情况的遥控器编码示意图;\n图2为第二种情况的遥控器编码示意图;\n图3为本发明流程图;\n图4为实施例NEC6122的编码波形。\n具体实施方式\n红外线遥控器发射波形(以下称为波形)的一般结构由头码、系统码、键码、结束码组成,其中系统码、键码在此统称为控制信息。其中,头码为波形开始标志,一般由一个高电平和一个低电平组成;结束码为波形结束标志,一般为一定宽度的脉冲。波形的载波频率在本实施例中为38KHZ。波形的编码通常采用脉冲宽度调制方式。如附图1、2所示,数据“0”和数据“1”的编码有两种情况,一种以低电平宽度的不同来区分编码,一种以高电平宽度的不同来区分编码。\n实现波形学习,需先对波形进行解码,再记录头码高低电平宽度,以及控制信息的的具体数值。如图3所示,整个学习过程一共有6个状态(S0、S1、S2、S3、S4、S5),系统复位后处于状态S0,等待波形输入。一旦采样逻辑发现波形输入遥控器随即处于状态S1,同时与输入波形载波同相位的38K时钟启动;头码高电平计数器启动,计数器负责记录38K载波的时钟脉冲个数,在波形处于头码低电平阶段时,头码低电平计数器启动,记录内部38K时钟脉冲个数;在状态S1,遥控器完成对有效的头码进行学习记数,其结果保存在头码高电平计数器和头码低电平计数器中。头码接收完毕后,判断逻辑判断接收的数据是否有效,如果有效则遥控器进入状态S2,开始接收控制数据的第一位,否则遥控器处于状态S0,重新等待输入。状态S2与头码接收相似,位高电平计数器负责记录控制数据的高电平38K载波的时钟脉冲个数,位低电平计数器负责记录波形处于低电平时内部38K时钟脉冲个数。数据接收完毕后,判断逻辑判断接收是否有效,如果有效计数器中的值被存入缓存器1与缓存器2,位计数器加1,移位寄存器对第一位数据默认为数据“0”,因此移入一个数据“0”,然后遥控器进入状态S3;无效则进入状态S0。在状态S3,遥控器持续接收剩余的控制数据,每接收完一位数据都将把高电平计数器和低电平计数器中的值与缓存器1、缓存器2中的值进行比较,如果两者相近则移位积存器移入一个数据“0”,否则移入数据“1”同时位计数器加1。由图1、2可知,数据“1”与数据“0”要么高电平不同,要么低电平不同,当向移位积存器中移入第一个数据“1”的时候,将与缓存器数值相差很大的计数器中的值存入第三个缓存器。待所有数据接收完毕后,遥控器进入状态S4,接收结束码。结束码的接收与头码接收相似(图3中未示出),其结果被保存至结束码高电平计数器与结束码低电平计数器,当结束码为遥控器的一位数据时,结束码将作为一位控制数据被移入到移位积存器中,保存结束码的存储器将没有数据(即为0)。结束码接收完毕后,如果此时波形接收完毕,遥控器进入状态S5,否则返回状态S4;状态S5用于遥控器保存学得的结果,保存完毕后遥控器进入状态S0,进行下一轮波形的学习。遥控器需要保存头码高、低电平计数器,全部缓存器,位计数器,移位寄存器,结束码高、低电平计数器的值。在将这些值还原为波形时候,首先还原头码,然后根据位计数器中的值,移出移位寄存器的有效数据位,如果移位寄存器移出数据“0”则遥控器用缓存器1和2中的数据还原波形,如果移出数据“1”,则遥控器用缓存器1(或2)和3中的数据还原。在所有有效位被移出后,再还原结束码。从而得到与最初接收波形相同的遥控器控制波形。\n实施例\n以常用的NEC6122编码格式的波形为列,来更为清楚的说明该算法的学习过程。如附图4所示为NEC6122的编码波形,图中的黑色部分为38K载波。\n当有波形输入后,遥控器学习功能启动,头码高、低电平计数器先后启动,记下头码的宽度,分别为342和171;判断逻辑得出该数值有效,遥控器随即进入接收第一位数据状态,接收完毕后缓存器1和2中的值分别为21、21,判断逻辑得出该值有效,位计数器加1,移位寄存器为XXX0(假定该寄存器宽度为64位);遥控器进入接收其它数据位状态,在接收到第7位数据的时候,位高、低电平计数器中的值分别为21、63,与缓存器1和2相比相差很远因此向移位寄存器移入一个数据“1”,63这个值也将被保存在缓存器3。当所有数据接收完后移位寄存器中的值为X00000010_11111101_10000000_011111111_1,位计数器中的值为33位。控制数据接收完毕后,开始接收结束码,由于该波形结束码被当作一位控制数据被接收。因此在该状态保存在结束码高、低电平计数器的值为0。那么最终将保存的数据有:342、171、21、21、63、33、X00000010_11111101_10000000_011111111_1、0和0。342和171还原为波形头码,21、21还原为数据“0”的波形,21、63还原为数据“1”的波形,33为波形的控制位数,0和0表明无结束码或者结束码已被发送控制数据代替。
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |