一种兼容多种红外指令的编码方法及系统与流程

文档序号:12367996阅读:337来源:国知局
一种兼容多种红外指令的编码方法及系统与流程

本发明属于红外技术领域,尤其是涉及到一种兼容多种红外指令的编码方法及系统。



背景技术:

随着电器种类的增多,通过不同的红外遥控器控制不同的电器,使用多个遥控器会非常笨重和操作复杂,尤其是在同一个区域范围内,不同种类的红外遥控器很容易混淆,给用户带来了很多不必要的麻烦。同时每个厂家独立的红外编码格式,有很大的使用局限性,适用的范围很窄。



技术实现要素:

本发明的目的在于,为了克服现有技术中存在的问题,提供一种兼容多种红外指令的编码方法。

为此,本发明采用以下技术方案来实现上述目的:

一种兼容多种红外指令的编码方法,包括以下步骤:

步骤1:接收红外分析仪发送的红外指令信息;红外指令经过红外分析仪检测分析后,将相关的红外指令信息发送到编码系统。

步骤2:构建比特位转化协议;所述比特位转化协议是分析红外指令中对逻辑‘0’和逻辑‘1’的表示方法,编码系统在接收到红外指令信息后,通过分析红外指令中对逻辑‘0’和逻辑‘1’的表示方法,得到高低电平的持续时间,确定比特位转化协议的构建原理。

步骤3:构建引导电平段;编码系统通过解析接收到的红外指令信息,得到该红外指令中引导电平的持续时间,首先判断引导电平的持续时间是否是4位数,如果不足4位,要在其对应的高位补0,然后将引导电平的持续时间表示为16进制,最后以两个字节为一个电平,形成所有的电平,并将所有的电平串接起来形成引导电平段。

步骤4:对电平段进行小端模式转化;云端和设备端之间的通信模式不同,因此需要将设备端的通信模式转化为小端模式,将步骤3中得到的引导电平段数据转化成小端模式,然后在引导电平段的首部添加标志位和总字节长度,形成完整的电平段。

步骤5:构建引导电平单元;为了方便引导电平信息的传输,需要将所有的引导电平段串接起来,然后在首部添加引导电平段的个数,形成完整的引导电平单元。

步骤6:构建特殊电平单元;多个特殊电平段构成特殊电平单元,本发明的特殊电平段包括逻辑‘0’电平段和逻辑‘1’电平段,根据引导电平段的构建规则,得到逻辑‘0’电平段和逻辑‘1’的电平段,将两者串接起来,然后在首部添加特殊电平段的个数,形成完整的特殊电平单元。

步骤7:构建传输协议;传输协议由特殊电平单元、引导电平单元串接而成,然后在首部添加本协议的通用编号‘00’,形成完整的传输协议。

步骤8:构建数据单元;数据单元由多个数据段构成,数据段中的每个比特位都表示逻辑‘0’或逻辑‘1’,按照传输的最小单元是一个字节,即8个比特位,因此将数据段以8个比特位为一个单位,封装成多个字节,对于比特位位数不是8的整数倍,在数据最高位之前补‘0’,将所有的字节串接起来,然后在首部添加补‘0’的个数和字节的总长度,形成数据段,将所有的数据段串接起来,在首部添加数据段总个数,完成完整的数据单元。

步骤9:对编码后的数据校验判断;将编码后的特殊电平单元、引导电平单元和数据单元,按照红外指令编码封装的逆过程解析出对应的数据,然后和对应的原始数据进行不同的校验运算,如果全部校验正确,执行步骤10,否则执行步骤2。

步骤10:存储红外指令编码;将经过编码的红外指令存储在数据库中。

所述步骤1中,所述红外指令可以是不同厂家的红外指令,也可以是同一厂家的不同红外指令;所述红外分析仪对红外指令的分析检测是采集红外指令中电平的持续时间。

所述步骤2中,不同厂家对逻辑‘0’电平和逻辑‘1’电平的电平持续时间定义不同。

所述步骤3中,所述引导电平在红外指令中起引导作用,一般位于红外指令的首部、中间和尾部,并且引导电平的持续时间一般比较长,更容易被红外分析仪检测和设备识别。

所述步骤4中,所述将引导电平段转化为小端模式是方便云端对红外编码的处理。所述标志位是为了标志引导电平段的开始,标志位可以是任何一种特殊的符号,只要能区别于红外指令中电平持续时间的编码即可,本发明提供的默认引导电平标志位是‘0B’。所述总字节长度包括标志位在内的字节总长度。

所述步骤5中,所述引导电平段串接,是按照红外指令信息从高位到低位的顺序依次串接。

所述步骤6中,所述特殊电平单元的构建是为了后续红外指令编码被调用后,解析逻辑电平的持续时间所用到。

所述步骤8中,所述在首部添加补‘0’的个数,即使没有在数据段的原始数据最高位添加‘0’,也要将字符串‘00’添加到数据段的首部;所述字节的总长度包含已经添加了补‘0’个数在内的字节总长度。

所述步骤9中,所述校验,是对红外编码后的信息进行逆向解析。经过解析,对得到的引导电平持续时间和原始数据的持续时间进行减运算,如果为零,则校验正确;对得到的特殊电平持续时间,即逻辑‘0’电平持续时间和逻辑‘1’电平持续时间,如果持续时间在厂家定义的范围之内,则校验正确;对得到的数据段内容和数据段原始数据进行逻辑异或运算,如果为零,则校验正确。

进一步地,根据红外指令的特点,以及红外指令编码传输和解析的方便,本协议规定,数据段个数最少为1,电平段的个数比数据段个数多一个。

对于直接以数据段开始的红外指令,虚构持续时间均为0的一高一低两个电平添加在首部。对于尾部以数据段结束的红外指令,同样是虚构持续时间均为0的一高一低两个电平加在尾部。

数据段部分一定是连续的,中间不能被任何非0或非1的高低电平隔断,否则就应该认为是两个数据段。

特别地,标志位、长度和数据段的表示是不需要经过大小端的转化。

本发明的另外一个目的在于,提供一种兼容多种红外指令的编码系统。

为此,本发明的上述目的通过以下技术方案来实现:

一种兼容多种红外指令的编码系统,所述编码系统包括:

- 红外指令接收模块,所述红外指令接收模块用于接收红外指令分析仪发送来的红外指令信息;

- 红外指令解析模块,所述红外指令解析模块用于对红外指令接收模块接收到的红外指令信息进行解析得到不同电平的持续时间和不同厂家对逻辑“0”和逻辑“1”的定义;

- 红外指令编码模块,所述红外指令编码模块用于根据不同的编码规则对不同红外指令信息中不同的电平进行编码,并将编码后的信息进行封装;

- 红外编码校验模块,所述红外编码校验模块用于根据红外指令的编码规则,通过逆向解析得到解析数据,然后和原始数据进行不同的运算,校验编码的红外指令是否正确;以及

- 红外编码存储模块,所述红外编码存储模块用于对整个红外编码过程中接收的数据,以及对编码过程中产生的中间数据进行存储。

本发明所述提供的兼容多种红外指令的编码方法通过接收不同种类的红外指令,然后根据不同的编码规则,形成编码信息,该方法能够兼容多种红外指令,拓展了现有红外编码方法的局限性;本发明所提供的兼容多种红外指令的编码系统可以兼容多种不同类型的红外指令,简化了用户的操作复杂度,提高了效率。

附图说明

图1为本发明所提供的一种兼容多种红外指令的编码方法的流程图;

图2为本发明所提供的一种以引导码开始的红外指令的示意图;

图3为本发明所提供的一种以直接以数据段开始的红外指令的示意图;

图4位本发明所提供的一种分析后的红外指令的示意图;

图5为本发明所提供的一种兼容多种红外指令的编码系统的示意图。

具体实施方式

参照附图和具体实施例对本发明作进一步详细地描述。

实施例1

如图1,在本实施例中,提供一种兼容多种红外指令的编码方法,包括以下步骤:

S01:编码系统接收并解析得到红外指令。红外指令经过红外分析仪分析检测后,得到红外指令的结构,然后将相关的红外指令信息发送到编码系统。

红外指令包含两种,一种是以引导码开始的红外指令,一种是以直接以数据段开始的红外指令。

对于直接以数据段开始的红外指令,虚构持续时间均为0的一高一低两个电平添加在首部。对于尾部以数据段结束的红外指令,同样是虚构持续时间均为0的一高一低两个电平加在尾部。

如图2展示了一种是以引导码开始的红外指令,包括引导码、数据码和结束码。

如图3展示了一种是以直接以数据段开始的红外指令,在首部和尾部分别虚构了均为0的一高一低两个电平。

本实施例中以引导码开始的红外指令进行举例分析。

S102:构建比特位转化协议。比特位转化协议即确定逻辑“0”和逻辑“1”的表示方法。构建比特位转化协议,是通过分析红外指令的构建原理,得到高低电平的持续时间。通过高低电平持续时间的不同,确定比特位逻辑“0”或逻辑“1”的表示形式。所有的比特位均由一个高电平和一个低电平共同组成。

如图4所示,对图2中的红外指令进行分析后,可以得到该红外指令中逻辑“0”的高电平持续时间为550±200μs,低电平的持续时间为500±200μs。只要两个相邻电平同时满足高电平在350μs~750μs之间、低电平在300μs~700μs之间,就表示一个逻辑“0”;该红外指令中逻辑“1”的高电平持续时间为550μs±200μs,低电平持续时间为1600μs±200μs。只要两个相邻电平同时满足高电平在350μs~750μs之间、低电平持续时间在1400μs~1800μs之间,就表示一个逻辑“1”。

S103:构建引导电平段。通过分析接收到的红外指令,得到引导电平段中高低电平的持续时间及其个数。然后将高低电平的持续时间以16机制数据表示,为了减少冗余信息,本协议规定2个字节表示一个电平,对于电平持续时间位数不足4位的,需要在高位补‘0’,然后将高低电平的值串接起来,组成一个电平段。

如图4所示,可以看到该红外指令中包含两个引导电平段,开始电平段“Lead code”和结束电平段“End code”。其中开始电平段“Lead code”中,高电平持续时间9000μs、低电平持续时间4500μs,结束电平段“End code”中,高电平持续时间550μs,低电平持续时间2000μs。将开始电平段“Lead code”的电平持续时间{9000,4500}表示为16进制是{2328,1194},结束电平段“End code”的电平持续时间{550,2000},由于其高电平持续时间位数不足4位,故在其高位补‘0’,将“End code”的电平持续时间{0550,2000}表示为16进制是{0226,4E20}。串接后的“Lead code”的编码为{23281194},“End code”的编码为{02264E20}。

S104:对引导电平段进行小端模式转化,并在引导电平段的首部添加标志位和长度标识。云端和设备端的通信端口模式不同,云端是大端模式,设备端是小端模式,为了便于设备端的处理,将引导电平段数据转化成小端模式,然后在每个引导电平段的首部添加标志位‘0B’和引导电平段的字节长度,形成最终的引导电平段。

例如:将S103中“Lead code”的编码变为小端模式为{28239411},“End code”的编码变为小端模式为{2602204E},然后在相应的电平编码首部添加标志位和电平字节长度,“Lead code”最终编码为{050B28239411},“End code”最终编码为{050B2602204E}。

S105:构建引导电平单元。为方便红外指令数据的传输,需要对引导电平段进行封装。将所有引导电平段依次串接,并在其首部添加电平段的个数。

例如:将S104中的引导电平段“Lead code”和“End code”依次串接起来,在其首部添加电平段的个数为“02”,形成最终的引导电平单元为{02050B28239411050B2602204E}。

S106:构建特殊电平单元。特殊电平单元是由特殊电平段构成。本发明中的特殊电平段包括逻辑‘0’电平段和逻辑‘1’电平段。将逻辑‘0’电平段和逻辑‘1’电平段编码后依次串接,形成最终的特殊电平。

例如:在S102中,逻辑‘0’电平的持续时间为{550,500},逻辑‘1’电平的持续时间为{550,1600}。逻辑‘0’编码为16进制形式为{0226,01F4},将高低电平串接,然后转化为小端模式,最后添加标志位和字节长度,形成最终编码为{050B2602F401}。逻辑‘1’编码为16进制形式为{0226,0640},将高低电平串接,然后转化为小端模式,最后添加标志位和字节长度,形成最终编码为{050B26024006}。将逻辑‘0’电平段和逻辑‘1’电平段的编码串接起来,然后在首部添加特殊电平段个数,形成最终编码{02050B2602F401050B26024006}。

S107:构建传输协议。将特殊电平单元,引导电平单元依次串接起来,并在首部加上本协议通用编号‘00’,以16进制表示,形成了完整的传输协议。

例如:将S106中特殊电平单元的编码{02050B2602F401050B26024006},S105中引导电平单元的编码{02050B28239411050B2602204E}依次串接起来,并在首部添加本协议通用编号‘00’,形成最终完整的传输协议,其传输协议的编码为{0002050B2602F401050B2602400602050B28239411050B2602204E}。

S108:构建数据单元。数据传输的最小单元是字节,即8个比特位,因此每8个比特位封装为一个字节,并用其16进制形式表示。封装之前,首先需要对数据位数进行判断,对于数据位数不是8的整数倍,采用在高位补‘0’的方式补足8位。然后对数据进行封装,最后在首部添加补‘0’的个数,形成数据段。对多个数据段依次串接,在首部添加数据段的个数,形成完整的数据单元。

例如:假设某个数据段原始数据是{01001011010},首先在高位补‘0’,将其位数补至8的整数倍数,补‘0’后的结果是{0000001001011010},共补了5个‘0’,然后将补位后的数据转化16进制字符串{4B40},为了防止补的‘0’被误认为是有效数据,在首部加上补‘0’的个数,即‘05’,这样最终的数据段的构建结果是{054B40}。

如图4所示的红外指令数据中只含有一条数据信息,其原始数值为{0010000010101000110000000000000000110000},将其表示为16进制的数据为{20A8C00030},因该红外指令数据刚好是8的整数倍,补了0个‘0’,数据长度是6个字节,则数据段编码为{060020A8C00030}。由于该红外指令只有一个数据段,所以最终的数据单元的编码形式为{01060020A8C00030}。

S109:对编码的数据信息校验判断。对编码后得到的引导电平单元、特殊电平单元和数据单元进行逆向解析,得到对应单元的解析数据,并和相应的原始数据进行不同的校验运算,如果解析数据全部校验通过,则转入S110,否则转入S102。

例如:对S107中的数据单元的编码{01060020A8C00030}进行逆向解析,首先是‘01’表示该编码是一个数据段,‘06’表示该编码含有6个字节,‘00’表示该编码高位没有补‘0’,数据串即为{20A8C00030},将其16进制的编码转化为2进制的数字串为{0010000010101000110000000000000000110000},通过和该数据段的原始数据{0010000010101000110000000000000000110000}进行异或运算,结果为零,校验正确;对S105的引导电平{02050B28239411050B2602204E}进行逆向解析,得到的解析数据{9000,4500}和{550,2000},和原始数据进行减运算,结果为零,校验正确;对S106的特殊电平单元{02050B2602F401050B26024006}进行逆向解析,得到解析数据{550,500}和{550,1600},和原始数据对比,持续时间在原始数据的范围之内,校验通过。数据校验全部正确,转入S110。

S110:存储红外指令编码。经过上述红外指令编码过程,形成了完整的红外指令编码,然后将编码信息存储到数据库。

实施例2

如图5,本实施例中,提供一种兼容多种红外指令的编码系统,编码系统包括:

红外指令接收模块201,红外指令接收模块201用于接收红外指令信息,该红外指令信息可以是经红外分析仪分析检测得到,红外指令信息中包括电平持续时间、厂家对逻辑‘0’和逻辑‘1’定义等信息。

红外指令解析模块202,红外指令解析模块202用于解析红外指令信息,经过解析可以得到引导电平的持续时间和引导电平个数、厂家对逻辑‘0’电平和逻辑‘1’电平的定义,以及数据信息持续时间和数据段个数。

例如:通过解析图2所示的红外指令信息,可以得到两个引导电平,持续时间分别为{9000,45000}和{550,2000};厂家定义逻辑“0”电平,高电平持续时间为550±200μs,低电平的持续时间为500±200μs,逻辑“1”电平,高电平持续时间为550μs±200μs,低电平持续时间为1600μs±200μs;以及该红外指令信息中1个数据段{0010000010101000110000000000000000110000}。

红外指令编码模块203,红外指令编码模块203根据不同的编码规则,将红外指令中不同的电平信息编码为不同的电平单元。首先通过高位补‘0’的方式,将引导电平、特殊电平持续时间的位数补足为4位,数据段位数补足为8的整数倍,然后将不同的电平以16进制形式表示,并在数据段首部添加补‘0’个数,对于引导电平和特殊电平,进行小端模式转化。最后将电平段依次串接,且在首部添加标志位和电平段个数,形成电平单元。进一步,特殊电平单元和引导电平单元依次串接,在首部添加本协议通用编码,封装成传输协议。

例如:S202中引导电平{550,2000},其高电平持续时间位数补足4位,在其首部补‘0’后以16进制表示为{0226,4E20},然后将高低电平依次串接,并转化为小端模式,首部添加标志位和字节长后形成电平段编码{050B2602204E}。S202中数据内容为{0010000010101000110000000000000000110000},以8个比特位为一个字节,以16进制表示为{20A8C00030},然后添加补‘0’个数和字节总长度,形成数据段{060020A8C00030}。S202中两个引导电平按照编码规则形成引导电平段,再将电平段依次串接,并在首部添加电平段个数形成引导电平单元{02050B2602F401050B26024006}。将S202中特殊电平单元和引导电平单元依次串接后在首部添加本协议通用编码‘00’,形成最终的传输协议,其具体编码为{0002050B2602F401050B2602400602050B28239411050B2602204E}。

红外编码校验模块204,红外编码校验模块204用于校验编码后数据是否正确。首先对编码后的数据信息进行逆向解析操作,分别得到引导电平的解析数据、特殊电平单元的解析数据和数据段的解析数据。将引导电平的解析数据和引导电平原始数据进行减运算,结果为零,则引导电平校验通过;特殊电平的解析数据和特殊电平原始数据对比,如果解析数据范围在原始数据范围之内,则特殊电平校验通过;数据信息的解析数据和数据信息的原始数据进行异或运算,结果为零,则数据段校验通过。当全部信息校验通过后,校验结束。

例如:S203中数据段编码为{060020A8C00030},‘06’表示该数据段字节长度为6,‘00’表示数据段首部没有添加‘0’,将16进制的数据段{020A8C00030}表示为2进制的数据为{0010000010101000110000000000000000110000},和数据段的原始数据{0010000010101000110000000000000000110000}进行异或运算,结果为零,则数据段校验通过。

红外编码存储模块205,红外编码存储模块205用于保存编码过程中所有的数据,包括红外指令信息的原始数据以及在编码过程中产生的中间数据。

例如:红外编码存储模块205存储红外分析仪发送的红外指令信息,如引导电平的持续时间,数据段的原始数据{9000,45000}等,以及编码过程中产生的中间数据,如引导电平编码为引导电平段{050B28239411}。

前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1