一种识别多种遥控器的方法、设备的制作方法

文档序号:6735942阅读:282来源:国知局
一种识别多种遥控器的方法、设备的制作方法
【专利摘要】本发明实施例公开了一种识别多种遥控器的方法、设备。本发明涉及通信领域,采用按帧匹配红外遥控器协议的方法,使得一个机顶盒可以识别多种红外遥控器协议,进而降低了机顶盒厂商的机顶盒软件维护成本。本发明实施例提供的方法包括:接收遥控器发送的红外波形;将所述遥控器发送的红外波形转换为对应的高低电平对;将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;将所述红外帧与已注册的红外遥控器协议进行匹配;根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值。
【专利说明】一种识别多种遥控器的方法、设备
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种识别多种遥控器的方法、设备。
【背景技术】
[0002]机顶盒应用领域不同,地方服务供应商所采用的红外遥控器及其协议并不相同,机顶盒芯片供应商所提供的软件包需要支持所有被采用的机顶盒遥控器以及需要具备一定的扩展性才能应对市场需求及市场变化。遥控器协议大致可以分为两类,一类是由有明显引导码头+固定位(bit)个数+结束码组成,例如:NEC简化重复码红外协议(NEC withsimple repeat code,简称NEC simple)、NEC完全重复码红外协议(NEC with full repeatcode,简称 NEC full)和 Philips RC-6 红外协议(Philips RC-6,简称 RC-6)等;另一类是由没有引导码+固定bit个数+结束码组成,例如:Philips RC-5红外协议(Philips RC-5,简称RC-5)、刷卡型遥控器协议等。
[0003]在现有技术中,遥控器发出的红外波形经单板红外接收头转换成高低电平信号后,由主芯片的输入脚输入主芯片,由主芯片中的中央处理器(Central Processing Unit,简称CPU)转发给Linux红外线遥控(Linux Infrared Remote Control,简称LIRC)的驱动缓存,用户态守护进程(decoder daemon)从驱动缓存中读出电平信号再结合配置文件(lircd.conf)解析成键值,然后通过套接字(socket)发送给应用程序。
[0004]发明人发现现有技术中至少存在以下问题:每款遥控器对应的红外遥控器协议不同,由于一个机顶盒只能识别一种红外遥控器协议,从而使机顶盒厂商增加了机顶盒中的软件维护成本。

【发明内容】

[0005]本发明实施例提供一种识别多种遥控器的方法、设备,采用按帧匹配红外遥控器协议的方法,使得一个机顶盒可以识别多种红外遥控器协议,进而降低了机顶盒厂商的机顶盒软件维护成本。
[0006]为达到上述目的,本发明实施例采用的技术方案是,
[0007]第一方面,提供了一种识别多种遥控器的方法,所述方法包括:
[0008]接收遥控器发送的红外波形;
[0009]将所述遥控器发送的红外波形转换为对应的高低电平对;
[0010]将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;
[0011]将所述红外帧与已注册的红外遥控器协议进行匹配;
[0012]根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值。
[0013]在第一种可能的实现方式中,根据第一方面,
[0014]所述红外遥控器协议包括第一类红外遥控器协议和第二类红外遥控器协议,其中,所述第一类红外遥控器协议包含固定位bit个数、结束码、明显引导码,所述第二类红外遥控器协议包含固定位bit个数、结束码、无明显引导码;[0015]相应的,所述将所述红外帧与已注册的红外遥控器协议进行匹配,可以包括:
[0016]将所述红外帧与所述第一类红外遥控器协议进行匹配;
[0017]若所述红外帧与任意所述第一类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第二类红外遥控器协议进行匹配;
[0018]或者,
[0019]将所述红外帧与所述第二类红外遥控器协议进行匹配;
[0020]若所述红外帧与任意所述第二类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第一类红外遥控器协议进行匹配。
[0021]在第二种可能的实现方式中,结合第一种可能的实现方式,所述将所述红外帧与所述第一类红外遥控器协议进行匹配,包括:
[0022]将所述红外帧的前M个bit与第一红外遥控器协议的引导码进行匹配,其中,所述M与所述第一红外遥控器协议引导码bit数相同;
[0023]若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码匹配,将所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码进行匹配,其中,所述N与所述第一红外遥控器协议的固定bit数相同;
[0024]若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码匹配,则确定所述红外帧与所述第一红外遥控器协议匹配成功。
[0025]在第三种可能的实现方式中,结合第二种可能的实现方式,所述将所述红外帧与所述第一类红外遥控器协议进行匹配,还可以包括:
[0026]若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码不能匹配成功,将所述红外帧与第二红外遥控器协议进行匹配;
[0027]或者,
[0028]若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码不能匹配成功,将所述红外帧与所述第二红外遥控器协议进行匹配。
[0029]在第四种可能的实现方式中,结合第一种可能的实现方式,所述将所述红外帧与所述第二类红外遥控器协议进行匹配,包括:
[0030]将所述红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码进行匹配,其中,所述J与所述第三红外遥控器协议的固定bit数相同;
[0031]若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码匹配,则确定所述红外帧与所述第三红外遥控器协议匹配成功。
[0032]在第五种可能的实现方式中,结合第四种可能的实现方式,所述将所述红外帧与所述第二类红外遥控器协议进行匹配,还包括:
[0033]若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码不能匹配成功,将所述红外帧与第四红外遥控器协议进行匹配。
[0034]在第六种可能的实现方式中,结合第一方面或第一种可能的实现方式,所述将所述红外帧与已注册的红外遥控器协议进行匹配,还可以包括:
[0035]若所述红外帧与已注册的全部红外遥控器协议均不能匹配成功,将所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码进行匹配,其中,所述P根据所述已注册的全部红外遥控器协议的类型确定;[0036]若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码匹配,则确定所述红外帧与所述红外遥控器协议匹配成功。
[0037]在第七种可能的实现方式中,结合第六种可能的实现方式,所述方法还包括:
[0038]若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码不能匹配成功,则丢弃所述红外帧最前面的高低电平对,并将所述裸电平队列中与所述红外帧尾部相邻的电平对与所述红外帧剩余的电平对组成新的红外帧,再将所述新的红外帧与所述红外遥控器协议进行匹配,直到所述新的红外帧与所述红外遥控器协议匹配成功或者所述裸电平队列为空为止。
[0039]在第八种可能的实现方式中,结合第一方面或第一种可能的实现方式或第二种可能的实现方式或第三种可能的实现方式或第四种可能的实现方式或第五种可能的实现方式或第六种可能的实现方式或第七种可能的实现方式,所述方法还可以包括:
[0040]更新所述已注册的红外遥控器协议。
[0041]第二方面,提供了一种多种遥控器的设备,所述设备包括:
[0042]接收单元,用于接收遥控器发送的红外波形;
[0043]转换单元,用于将所述遥控器发送的红外波形转换为对应的高低电平对;
[0044]储存单元,用于将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;
[0045]匹配单元,用于将所述红外帧与已注册的红外遥控器协议进行匹配;
[0046]解析单元,用于根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值。
[0047]在第一种可能的实现方式中,结合第二方面,所述红外遥控器协议包括第一类红外遥控器协议和第二类红外遥控器协议,其中,所述第一类红外遥控器协议包含固定位bit个数、结束码、明显引导码,所述第二类红外遥控器协议包含固定位bit个数、结束码、无明显引导码;
[0048]相应的,
[0049]所述匹配单元还用于:将所述红外帧与所述第一类红外遥控器协议进行匹配;若所述红外帧与任意所述第一类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第二类红外遥控器协议进行匹配;
[0050]或者,
[0051]所述匹配单元还用于:将所述红外帧与所述第二类红外遥控器协议进行匹配;若所述红外帧与任意所述第二类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第一类红外遥控器协议进行匹配。
[0052]在第二种可能的实现方式中,结合第一种可能的实现方式,
[0053]所述匹配单元还用于:将所述红外帧的前M个bit与第一红外遥控器协议的引导码进行匹配,其中,所述M与所述第一红外遥控器协议引导码bit数相同;若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码匹配,将所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码进行匹配,其中,所述N与所述第一红外遥控器协议的固定bit数相同;若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码匹配,则确定所述红外帧与所述第一红外遥控器协议匹配成功。[0054]在第三种可能的实现方式中,结合第二种可能的实现方式,所述匹配单元还用于:若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码不能匹配成功,将所述红外帧与第二红外遥控器协议进行匹配;
[0055]或者,
[0056]所述匹配单元还用于:若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码不能匹配成功,将所述红外帧与所述第二红外遥控器协议进行匹配。
[0057]在第四种可能的实现方式中,结合第一种可能的实现方式,
[0058]所述匹配单元还用于:将所述红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码进行匹配,其中,所述J与所述第三红外遥控器协议的固定bit数相同;若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码匹配,则确定所述红外帧与所述第三红外遥控器协议匹配成功。
[0059]在第五种可能的实现方式中,结合第四种可能的实现方式,
[0060]所述匹配单元还用于:若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码不能匹配成功,将所述红外帧与第四红外遥控器协议进行匹配。
[0061 ] 在第六种可能的实现方式中,结合第二方面或第一种可能的实现方式,
[0062]所述匹配单元还用于:若所述红外帧与已注册的全部红外遥控器协议均不能匹配成功,将所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码进行匹配,其中,所述P根据所述已注册的全部红外遥控器协议的类型确定;若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码匹配,则确定所述红外帧与所述红外遥控器协议匹配成功。
[0063]在第七种可能的实现方式中,结合第六种可能的实现方式,
[0064]所述匹配单元还用于:若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码不能匹配成功,则丢弃所述红外帧最前面的高低电平对,并将所述裸电平队列中与所述红外帧尾部相邻的电平对与所述红外帧剩余的电平对组成新的红外帧,再将所述新的红外帧与所述红外遥控器协议进行匹配,直到所述新的红外帧与所述红外遥控器协议匹配成功或者所述裸电平队列为空为止。
[0065]在第八种可能的实现方式中,结合第二方面或第一种可能的实现方式或第二种可能的实现方式或第三种可能的实现方式或第四种可能的实现方式或第五种可能的实现方式或第六种可能的实现方式或第七种可能的实现方式,所述设备还包括:
[0066]更新单元,用于更新所述已注册的红外遥控器协议。
[0067]第三方面,提供了一种识别多种遥控的设备,所述设备包括:
[0068]红外接收头,用于接收遥控器发送的红外波形;将所述遥控器发送的红外波形转换为对应的高低电平对;
[0069]处理器,用于将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;将所述红外帧与已注册的红外遥控器协议进行匹配;根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值;
[0070]存储器,用于存储所述已注册的红外遥控器协议。
[0071]在第一种可能的实现方式中,根据第三方面,
[0072]所述红外遥控器协议包括第一类红外遥控器协议和第二类红外遥控器协议,其中,所述第一类红外遥控器协议包含固定位bit个数、结束码、明显引导码,所述第二类红外遥控器协议包含固定位bit个数、结束码、无明显引导码;
[0073]相应的,所述处理器具体用于:
[0074]将所述红外帧与所述第一类红外遥控器协议进行匹配;
[0075]若所述红外帧与任意所述第一类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第二类红外遥控器协议进行匹配;
[0076]或者,
[0077]将所述红外帧与所述第二类红外遥控器协议进行匹配;
[0078]若所述红外帧与任意所述第二类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第一类红外遥控器协议进行匹配。
[0079]在第二种可能的实现方式中,结合第一种可能的实现方式,所述处理器具体用于:
[0080]将所述红外帧的前M个bit与第一红外遥控器协议的引导码进行匹配,其中,所述M与所述第一红外遥控器协议引导码bit数相同;
[0081]若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码匹配,将所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码进行匹配,其中,所述N与所述第一红外遥控器协议的固定bit数相同;
[0082]若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码匹配,则确定所述红外帧与所述第一红外遥控器协议匹配成功。
[0083]在第三种可能的实现方式中,结合第二种可能的实现方式,所述所述处理器具体用于:
[0084]若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码不能匹配成功,将所述红外帧与第二红外遥控器协议进行匹配;
[0085]或者,
[0086]若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码不能匹配成功,将所述红外帧与所述第二红外遥控器协议进行匹配。
[0087]在第四种可能的实现方式中,结合第一种可能的实现方式,所述处理器具体用于:
[0088]将所述红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码进行匹配,其中,所述J与所述第三红外遥控器协议的固定bit数相同;
[0089]若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码匹配,则确定所述红外帧与所述第三红外遥控器协议匹配成功。
[0090]在第五种可能的实现方式中,结合第四种可能的实现方式,所述处理器还用于:
[0091]若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码不能匹配成功,将所述红外帧与第四红外遥控器协议进行匹配。
[0092]在第六种可能的实现方式中,结合第三方面或第一种可能的实现方式,所述处理器还用于:
[0093]若所述红外帧与已注册的全部红外遥控器协议均不能匹配成功,将所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码进行匹配,其中,所述P根据所述已注册的全部红外遥控器协议的类型确定;
[0094]若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码匹配,则确定所述红外帧与所述红外遥控器协议匹配成功。
[0095]在第七种可能的实现方式中,结合第六种可能的实现方式,所述处理器还用于:
[0096]若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码不能匹配成功,则丢弃所述红外帧最前面的高低电平对,并将所述裸电平队列中与所述红外帧尾部相邻的电平对与所述红外帧剩余的电平对组成新的红外帧,再将所述新的红外帧与所述红外遥控器协议进行匹配,直到所述新的红外帧与所述红外遥控器协议匹配成功或者所述裸电平队列为空为止。
[0097]在第八种可能的实现方式中,结合第三方面或第一种可能的实现方式或第二种可能的实现方式或第三种可能的实现方式或第四种可能的实现方式或第五种可能的实现方式或第六种可能的实现方式或第七种可能的实现方式,所述处理器还用于:
[0098]更新所述已注册的红外遥控器协议。
[0099]本发明实施例提供的一种识别多种遥控器的方法、设备,通过接收遥控器发送的红外波形;将所述遥控器发送的红外波形转换为对应的高低电平对;将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;将所述红外帧与已注册的红外遥控器协议进行匹配;根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值;实现识别多种红外遥控器协议,进而降低了机顶盒厂商的机顶盒软件维护成本。克服了现有技术中每款遥控器对应的红外遥控器协议不同,由于一个机顶盒只能识别一种红外遥控器协议,从而使机顶盒厂商增加了机顶盒中的软件维护成本的缺陷。
【专利附图】

【附图说明】
[0100]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0101]图1为本发明实施例提供的一种识别多种遥控器的方法的流程图;
[0102]图2为本发明实施例提供的另一种识别多种遥控器的方法的流程示意图;
[0103]图3为本发明实施例提供的一种中断处理流程示意图;
[0104]图4为本发明实施例提供的一种底半步处理流程示意图;
[0105]图5为本发明实施例提供的一种裸电平队列处理流程示意图;
[0106]图6为本发明实施例提供的一种飞利浦无线电码5红外遥控器协议(PhilipsRadio Code-5简称RC5)的完整帧格式示意图;
[0107]图7为本发明实施例提供的一种RC5协议的调制方式示意图;
[0108]图8为本发明实施例提供的一种容错处理流程示意图;
[0109]图9为本发明实施例提供的一种多种遥控器的设备示意图;
[0110]图10为本发明实施例提供的另一种多种遥控器的设备示意图,
[0111]图11为本发明实施例提供的再一种多种遥控器的设备示意图。【具体实施方式】
[0112]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0113]一方面,本发明实施例提供一种识别多种遥控器的方法的流程图,参见图1,所述方法包括:
[0114]101:多种遥控器的设备接收遥控器发送的红外波形;
[0115]示例性的,本发明实施例提供的识别多种遥控器的方法可以应用于多种设备对红外波遥控器的识别,例如,可以应用于机顶盒对多种机顶盒遥控器的识别,空调对多种空调遥控器的识别等等。本发明实施例对此不进行限制。
[0116]102:多种遥控器的设备将所述遥控器发送的红外波形转换为对应的高低电平对;
[0117]103:多种遥控器的设备将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;
[0118]104:多种遥控器的设备将所述红外帧与已注册的红外遥控器协议进行匹配;
[0119]示例性的,已注册的红外遥控器协议可以为用户在多种遥控器的设备已登记的红外遥控器协议。
[0120]示例性的,红外遥控器协议包括第一类红外遥控器协议和第二类红外遥控器协议,其中,第一类红外遥控器协议包含固定位bit个数、结束码、明显引导码,第二类红外遥控器协议包含固定位bit个数、结束码、无明显引导码;
[0121]相应的,所述将所述红外帧与已注册的红外遥控器协议进行匹配,可以包括:
[0122]将红外帧与第一类红外遥控器协议进行匹配;
[0123]若红外帧与任意第一类红外遥控器协议均不能匹配成功,则将红外帧与第二类红外遥控器协议进行匹配;
[0124]或者,
[0125]将红外帧与第二类红外遥控器协议进行匹配;
[0126]若红外帧与任意第二类红外遥控器协议均不能匹配成功,则将红外帧与第一类红外遥控器协议进行匹配。
[0127]示例性的,所述将所述红外帧与所述第一类红外遥控器协议进行匹配,可以包括:
[0128]将红外帧的前M个bit与第一红外遥控器协议的引导码进行匹配,其中,M与第一红外遥控器协议引导码bit数相同;
[0129]若确定红外帧的前M个bit与第一红外遥控器协议的引导码匹配,将红外帧再偏移N个bit后与第一红外遥控器协议的结束码进行匹配,其中,N与第一红外遥控器协议的固定bit数相同;
[0130]若确定红外帧再偏移N个bit后与第一红外遥控器协议的结束码匹配,则确定红外帧与第一红外遥控器协议匹配成功。
[0131]示例性的,所述将所述红外帧与所述第一类红外遥控器协议进行匹配,还可以包括:
[0132]若确定红外帧的前M个bit与第一红外遥控器协议的引导码不能匹配成功,将红外帧与第二红外遥控器协议进行匹配;
[0133]或者,
[0134]若确定红外帧再偏移N个bit后与第一红外遥控器协议的结束码不能匹配成功,将红外帧与第二红外遥控器协议进行匹配。
[0135]示例性的,所述将所述红外帧与所述第二类红外遥控器协议进行匹配,可以包括:
[0136]将红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码进行匹配,其中,J与第三红外遥控器协议的固定bit数相同;
[0137]若确定红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码匹配,则确定红外帧与第三红外遥控器协议匹配成功。
[0138]示例性的,所述将所述红外帧与所述第二类红外遥控器协议进行匹配,还包括:
[0139]若确定红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码不能匹配成功,将红外帧与第四红外遥控器协议进行匹配。
[0140]示例性的,所述将所述红外帧与已注册的红外遥控器协议进行匹配,还可以包括:
[0141]若红外帧与已注册的全部红外遥控器协议均不能匹配成功,将红外帧向前偏移P个bit后与红外遥控器协议的结束码进行匹配,其中,P根据已注册的全部红外遥控器协议的类型确定;
[0142]若确定红外帧向前偏移P个bit后与红外遥控器协议的结束码匹配,则确定红外帧与红外遥控器协议匹配成功。
[0143]示例性的,所述方法还可以包括:
[0144]若确定红外帧向前偏移P个bit后与红外遥控器协议的结束码不能匹配成功,则丢弃红外帧最前面的高低电平对,并将裸电平队列中与红外帧尾部相邻的电平对与红外帧剩余的电平对组成新的红外帧,再将新的红外帧与红外遥控器协议进行匹配,直到新的红外帧与红外遥控器协议匹配成功或者裸电平队列为空为止。
[0145]当然,在某些情况,终端设备(比如机顶盒、智能电视等)中的红外遥控器协议可以在销售给用户后,由用户进行注册。在这种情况下,终端设备在某些时刻可能只装载了一种红外遥控器协议,这时候就可以将红外帧与所述装载了的红外遥控器协议进行比对,如果匹配,则识别键值,如果匹配失败则忽视,发送无法识别的信息,或者通过显示器显示无法识别的息。
[0146]105:多种遥控器的设备根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值。
[0147]示例性的,所述方法还可以包括:
[0148]更新所述已注册的红外遥控器协议。
[0149]本发明实施例提供的一种识别多种遥控器的方法,可以应用于机顶盒,通过接收遥控器发送的红外波形;将所述遥控器发送的红外波形转换为对应的高低电平对;将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;将所述红外帧与已注册的红外遥控器协议进行匹配;根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值;实现识别多种红外遥控器协议,进而降低了机顶盒厂商的机顶盒软件维护成本。克服了现有技术中每款遥控器对应的红外遥控器协议不同,由于一个机顶盒只能识别一种红外遥控器协议,从而使机顶盒厂商增加了机顶盒中的软件维护成本的缺陷。
[0150]下面通过具体实施例对上述方法实施例进行说明。参见图2,可以包括以下步骤:
[0151]201:接收遥控器发送的红外波形;
[0152]示例性的,本发明实施例以应用于识别机顶盒的多种遥控器为例进行说明,多种遥控器的设备可以配置在机顶盒内,机顶盒可以包含单板红外接收头和主芯片,主芯片上加载有应用程序和驱动软件,驱动软件可以包含驱动层、协议适配层、协议处理层。可以由单板红外接收头接收遥控器发送的红外波形。
[0153]202:将遥控器发送的红外波形转换为对应的高低电平对;
[0154]示例性的,单板红外接收头将接收的红外波形转换为对应的高低电平对。
[0155]203:将高低电平对依次储存于裸电平队列,形成红外波形对应的红外帧;
[0156]示例性的,单板红外接收头将高低电平对发送给机顶盒中的主芯片并产生中断,并由中央处理器(Central Processing Unit,简称CPU)上报给驱动软件指示有高低电平对到达。
[0157]示例性的,驱动层在中断处理过程将高低电平对储存到裸电平队列中,并激活底半步处理,以及当先入先出队列(First Input First Output,简称FIFO)出错时,进行错误处理。优选的,中断处理过程需要快速完成并退出,以便CPU能处理其他任务。
[0158]示例性的,本发明实施例中的主芯片上包含定时器,用于检查是否溢出中断,当定时器超过一定的数值时,该数值由定时器的具体类型来决定,产生溢出中断;当定时器没有超过该数值时,没有产生溢出中断。
[0159]示例性的,如图3所示,为本发明实施例提供的一种中断处理流程示意图,如图所示,当有中断发生时,首先判断是否有溢出中断,若没有溢出中断,再判断是否接高低电平收或接收超时中断,若接收到高低电平或接收到超时中断,则读取电平对,再判断应用程序是获取键值还是获取高低电平对,若获取的是高低电平对,则不需要驱动软件解析协议及遥控器按键值的方式,将接收到的高低电平对加入到裸电平队列中,再激活底半步,再清除中断;若获取的是键值,则将接收到的电平队列加入到键值队列,再唤醒读操作,再清除中断,中断处理结束;当有中断发生时,若溢出中断,则清空硬件FIFO清除中断,再判断当前高低电平队中断水线是否大于1,若当前高低电平队中断水线大于1,则判断是否接收高低电平对或接收超时中断;若当前高低电平队列中断水线不大于1,则降低高低电平队中断水线,再判断是否接收高低电平对或接收超时中断。
[0160]204:将红外帧进行底半步处理;
[0161]示例性的,底半步处理用于当中断处理不能快速完成任务时,在底半步处理中完成中断处理不能快速完成的任务。在本发明实施例中,底半步处理中需要完成的任务包含发起裸电平队列处理以及在裸电平处理出错时完成最终的容错处理。
[0162]示例性的,如图4所示,为本发明实施例提供的一种底半步处理流程示意图,如图所示,当中断激活底半步时,先判断裸电平队列是否处理失败,若裸电平队列处理失败,再启动容错定时器,底半步处理结束;若裸电平队列没有处理失败,则底半步处理结束。
[0163]205:将所述红外帧与已注册的红外遥控器协议进行匹配;
[0164]示例性的,已注册的红外遥控器协议可以注册在协议适配层中,也可以注册在其它任意一个可以储存红外遥控器协议的储存单元,本发明实施例对此不进行限制。
[0165]示例性的,若红外遥控器协议注册在协议适配层中,则已注册的红外遥控器协议可以为用户在协议适配层中已登记的红外协议描述符,本发明实施例对此不进行限制。
[0166]示例性的,协议适配层用于向驱动层提供遍历红外遥控器协议的接口,向协议处理层提供容纳红外遥控器协议的内置能支持的红外协议描述符的存储空间。
[0167]示例性的,协议处理层主要完成从裸电平队列中识别红外遥控器协议和解析键值,其中,红外遥控器协议包括两类协议,一类是有明显引导码+固定位(bit)个数+结束码,另一类是没有明显引导码+固定位(bit)个数+结束码。
[0168]示例性的,本发明实施例中采用协议描述符的方法来描述红外遥控器协议的组成,也可以采用其它方式来描述红外遥控器的组成,但本发明实施例对此不进行限制。协议描述符可以为“ ir_pr0t0C0l ”,本发明实施例中描述红外遥控器协议的方法可以为链表节点、具体协议名称、协议类别、标志位、帧格式描述、协议识别钩子、协议识别、解析时所需要的私有数据、协议解析钩子、协议识别出错时的处理钩子、协议解析时出错时的处理钩子和协议使能位,但本发明实施例对此不进行限制。
[0169]示例性的,描述红外遥控器协议的方法可以为:
[0170]
【权利要求】
1.一种识别多种遥控器的方法,其特征在于,所述方法包括: 接收遥控器发送的红外波形; 将所述遥控器发送的红外波形转换为对应的高低电平对; 将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧; 将所述红外帧与已注册的红外遥控器协议进行匹配; 根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值。
2.根据权利要求1所述的识别多种遥控器的方法,其特征在于, 所述红外遥控器协议包括第一类红外遥控器协议和第二类红外遥控器协议,其中,所述第一类红外遥控器协议包含固定位bit个数、结束码、明显引导码,所述第二类红外遥控器协议包含固定位bit个数、结束码、无明显引导码; 相应的,所述将所述红外帧与已注册的红外遥控器协议进行匹配,包括: 将所述红外帧与所述第一类红外遥控器协议进行匹配; 若所述红外帧与任意所述第一类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第二类红外遥控器协议进行匹配; 或者, 将所述红外帧与所述第二类红外遥控器协议进行匹配; 若所述红外帧与任意所述第二类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第一类红外遥控器协议进行匹配。
3.根据权利要求2所述的识别多种遥控器的方法,其特征在于,所述将所述红外帧与所述第一类红外遥控器协议进行匹配,包括: 将所述红外帧的前M个bit与第一红外遥控器协议的引导码进行匹配,其中,所述M与所述第一红外遥控器协议引导码bit数相同; 若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码匹配,将所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码进行匹配,其中,所述N与所述第一红外遥控器协议的固定bit数相同; 若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码匹配,则确定所述红外帧与所述第一红外遥控器协议匹配成功。
4.根据权利要求3所述的识别多种遥控器的方法,其特征在于,所述将所述红外帧与所述第一类红外遥控器协议进行匹配,还包括: 若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码不能匹配成功,将所述红外帧与第二红外遥控器协议进行匹配; 或者, 若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码不能匹配成功,将所述红外帧与所述第二红外遥控器协议进行匹配。
5.根据权利要求2所述的识别多种遥控器的方法,其特征在于,所述将所述红外帧与所述第二类红外遥控器协议进行匹配,包括: 将所述红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码进行匹配,其中,所述J与所述第三红外遥控器协议的固定bit数相同; 若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码匹配,则确定所述红外帧与所述第三红外遥控器协议匹配成功。
6.根据权利要求5所述的识别多种遥控器的方法,其特征在于,所述将所述红外帧与所述第二类红外遥控器协议进行匹配,还包括: 若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码不能匹配成功,将所述红外帧与第四红外遥控器协议进行匹配。
7.根据权利要求1或2所述的识别多遥控器的方法,其特征在于,所述将所述红外帧与已注册的红外遥控器协议进行匹配,还包括: 若所述红外帧与已注册的全部红外遥控器协议均不能匹配成功,将所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码进行匹配,其中,所述P根据所述已注册的全部红外遥控器协议的类型确定; 若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码匹配,则确定所述红外帧与所述红外遥控器协议匹配成功。
8.根据权利要求7所述的识别多种遥控器的方法,其特征在于,所述方法还包括: 若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码不能匹配成功,则丢弃所述红外帧最前面的高低电平对,并将所述裸电平队列中与所述红外帧尾部相邻的电平对与所述红外帧剩余的电平对组成新的红外帧,再将所述新的红外帧与所述红外遥控器协议进行匹配,直到所述新的红外帧与所述红外遥控器协议匹配成功或者所述裸电平队列为空为止。
9.根据权利要求1-8任一项所述的识别多种遥控器的方法,其特征在于, 所述方法还包括:更新所述已注册的红外遥控器协议。
10.一种多种遥控器的设备,其特征在于,所述设备包括: 接收单元,用于接收遥控器发送的红外波形; 转换单元,用于将所述遥控器发送的红外波形转换为对应的高低电平对; 储存单元,用于将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧; 匹配单元,用于将所述红外帧与已注册的红外遥控器协议进行匹配; 解析单元,用于根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值。
11.根据权利要求10所述的多种遥控器的设备,其特征在于, 所述红外遥控器协议包括第一类红外遥控器协议和第二类红外遥控器协议,其中,所述第一类红外遥控器协议包含固定位bit个数、结束码、明显引导码,所述第二类红外遥控器协议包含固定位bit个数、结束码、无明显引导码; 相应的, 所述匹配单元还用于:将所述红外帧与所述第一类红外遥控器协议进行匹配;若所述红外帧与任意所述第一类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第二类红外遥控器协议进行匹配; 或者, 所述匹配单元还用于:将所述红外帧与所述第二类红外遥控器协议进行匹配;若所述红外帧与任意所述第二类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第一类红外遥控器协议进行匹配。
12.根据权利要求11所述的多种遥控器的设备,其特征在于, 所述匹配单元还用于:将所述红外帧的前M个bit与第一红外遥控器协议的引导码进行匹配,其中,所述M与所述第一红外遥控器协议引导码bit数相同;若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码匹配,将所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码进行匹配,其中,所述N与所述第一红外遥控器协议的固定bit数相同;若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码匹配,则确定所述红外帧与所述第一红外遥控器协议匹配成功。
13.根据权利要求12所述的多种遥控器的设备,其特征在于, 所述匹配单元还用于:若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码不能匹配成功,将所述红外帧与第二红外遥控器协议进行匹配; 或者, 所述匹配单元还用于:若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码不能匹配成功,将所述红外帧与所述第二红外遥控器协议进行匹配。
14.根据权利要求11所述的多种遥控器的设备,其特征在于, 所述匹配单元还用于 :将所述红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码进行匹配,其中,所述J与所述第三红外遥控器协议的固定bit数相同;若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码匹配,则确定所述红外帧与所述第三红外遥控器协议匹配成功。
15.根据权利要求14所述的多种遥控器的设备,其特征在于, 所述匹配单元还用于:若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码不能匹配成功,将所述红外帧与第四红外遥控器协议进行匹配。
16.根据权利要求10或11所述的多种遥控器的设备,其特征在于, 所述匹配单元还用于:若所述红外帧与已注册的全部红外遥控器协议均不能匹配成功,将所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码进行匹配,其中,所述P根据所述已注册的全部红外遥控器协议的类型确定;若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码匹配,则确定所述红外帧与所述红外遥控器协议匹配成功。
17.根据权利要求16所述的多种遥控器的设备,其特征在于, 所述匹配单元还用于:若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码不能匹配成功,则丢弃所述红外帧最前面的高低电平对,并将所述裸电平队列中与所述红外帧尾部相邻的电平对与所述红外帧剩余的电平对组成新的红外帧,再将所述新的红外帧与所述红外遥控器协议进行匹配,直到所述新的红外帧与所述红外遥控器协议匹配成功或者所述裸电平队列为空为止。
18.根据权利要求10-17任一项所述的多种遥控器的设备,其特征在于,所述设备还包括: 更新单元,用于更新所述已注册的红外遥控器协议。
【文档编号】G08C23/04GK103546791SQ201310481565
【公开日】2014年1月29日 申请日期:2013年10月15日 优先权日:2013年10月15日
【发明者】刘伦佐, 李宁, 廖开福 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1