基于红外协议的红外码发送电路、芯片、遥控设备及空调的制作方法

文档序号:17845143发布日期:2019-06-11 21:38阅读:265来源:国知局
基于红外协议的红外码发送电路、芯片、遥控设备及空调的制作方法

本发明涉及通讯技术领域,特别是涉及一种基于红外协议的红外码发送电路、芯片、遥控设备及空调。



背景技术:

很多遥控设备可以基于红外协议来控制相关智能设备的运行,例如,遥控器可以向空调发送红外码,关闭空调的运行。

遥控设备使用的红外协议,其数据格式相对比较复杂。若完全由软件程序通过通用输入/输出口(gpio)去模拟其红外发送过程,其软件实现的复杂程度比较大,需要的代码量比较大。

发明人在实现本发明的过程中,发现传统技术至少存在以下问题:在软件模拟发送红外码的过程中,处理器一直处于工作状态,其功耗比较高。



技术实现要素:

本发明实施例一个目的旨在提供一种基于红外协议的红外码发送电路、芯片、遥控设备及空调,其解决了传统技术存在功耗高的技术问题。

为解决上述技术问题,本发明实施例提供以下技术方案:

在第一方面,本发明实施例提供一种基于红外协议的红外码发送电路,所述红外码发送电路包括:载波时长控制模块;处理模块,其与所述载波时长控制模块连接,用于根据待发送红外码在红外协议内所属的阶段类型,配置所述载波时长控制模块,使得所述载波时长控制模块产生使能信号,所述使能信号用于确定所述待发送红外码的载波发生时间点与载波时长,并所述使能信号的电平类型在所述待发送红外码的载波期间内和非载波期间内皆为不变的;载波产生模块,其与所述载波时长控制模块连接,用于根据所述待发送红外码在红外协议内所属的阶段类型,产生pwm类型的载波信号,并将所述pwm类型的载波信号与所述使能信号作逻辑运算,生成并发送所述待发送红外码。

可选地,所述载波产生模块还与所述处理模块连接,用于响应于所述处理模块的输入配置,调整所述pwm类型的载波信号的周期与电平宽度。

可选地,在所述待发送红外码的载波期间内时,所述使能信号的电平类型为高电平;在所述待发送红外码的非载波期间内时,所述使能信号的电平类型为低电平。

可选地,所述逻辑运算为与运算。

可选地,按照发送时序,所述红外协议的阶段类型包括:头码带载波阶段、头码无载波阶段、前数据0码、前数据1码、前半位结束码、间隔电平、后数据0码、后数据1码、后半位结束码及f码间间隔电平。

可选地,所述处理模块用于根据待发送红外码在红外协议内所属的阶段类型,配置所述载波时长控制模块,包括:所述处理模块根据待发送红外码在红外协议内所属的阶段类型,向所述载波时长控制模块配置所述待发送红外码的载波时长。

可选地,所述处理模块还用于:将全部所述待发送红外码发送完毕后,进入休眠状态。

可选地,所述处理模块还用于:重新配置所述载波时长控制模块与所述载波产生模块,使得所述红外码发送电路作为脉冲发生器。

可选地,所述载波时长控制模块包括:载波时长控制器;寄存器模块,其包括多个端口,所述寄存器模块与所述处理模块和所述载波产生模块连接,用于接收所述处理模块的配置,预存有与所述待发送红外码对应的时长配置值,并且还用于配置所述载波产生模块;多路选择器,其包括多路数据通道,所述多路选择器的输入端通过所述多路数据通道与所述寄存器模块的多个端口对应连接,所述多路选择器的输出端与所述载波时长控制器连接;状态控制器,其与所述多路选择器和所述载波时长控制器连接,用于根据待发送红外码在红外协议内所属的阶段类型,选通所述多路选择器的对应数据通道,使得与所述待发送红外码的时长配置值载入所述载波时长控制器;数据存储器,其分别与所述状态控制器和所述处理模块连接,用于存储待发送的数据码,其中,待发送红外码包括待发送的数据码。

可选地,所述载波产生模块包括:pwm发生器,其包括两路信号通道,用于接收所述寄存器模块输入的配置;触发器,其包括置位端、复位端及触发输出端,所述触发器的置位端与复位端分别相应地与所述pwm发生器的两路信号通道连接;与门,其包括第一输入端、第二输入端及与门输出端,所述与门的第一输入端与所述触发器的触发输出端连接,所述与门的第二输入端用于输入所述使能信号,所述与门的与门输出端用于输出所述待发送红外码。

在第二方面,本发明实施例提供一种芯片,所述芯片包括任一项所述的基于红外协议的红外码发送电路。

在第三方面,本发明实施例提供一种遥控设备,所述遥控设备包括任一项所述的基于红外协议的红外码发送电路。

在第四方面,本发明实施例一种空调,所述空调包括所述的遥控设备。

在本发明各个实施例提供的基于红外协议的红外码发送电路中,处理模块根据待发送红外码在红外协议内所属的阶段类型,配置载波时长控制模块,使得载波时长控制模块产生使能信号,使能信号用于确定待发送红外码的载波发生时间点与载波时长,并使能信号的电平类型在待发送红外码的载波期间内和非载波期间内皆为不变的。载波产生模块根据待发送红外码在红外协议内所属的阶段类型,产生pwm类型的载波信号,并将pwm类型的载波信号与使能信号作逻辑运算,生成并发送待发送红外码。因此,发送红外码的过程可以由红外码发送电路完成,处理模块在发送过程中可以进入休眠状态,从而降低功耗,并降低软件的编程难度。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是本发明实施例提供一种基于红外协议并处于发码状态下的f0码波形示意图;

图2是是本发明实施例提供一种基于红外协议并处于发码状态下的fm码波形示意图;

图3是本发明实施例提供一种头码的波形示意图;

图4是本发明实施例提供一种半结束位的波形示意图;

图5是本发明实施例提供一种数据0码的波形示意图;

图6是本发明实施例提供一种数据1码的波形示意图;

图7是本发明实施例提供一种基于红外协议的红外码发送电路的结构示意图;

图8是本发明实施例提供一种载波时长控制模块的电路结构示意图;

图9是本发明实施例提供一种基于红外协议并处于发码状态下的示意图;

图10是本发明实施例提供一种载波产生模块的电路结构示意图;

图11是本发明实施例提供一种基于手动发码模式下的配置过程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明实施例提供的基于红外协议的红外码发送电路可以应用于芯片。其中,该芯片可以结合其它外围电路模块组成遥控设备。用户利用该遥控设备,向智能设备发送与红外协议匹配的红外信号,控制智能设备的运行。例如:该智能设备为空调,用户利用该遥控设备遥控空调停止运行。

请参阅图1,图1是本发明实施例提供一种基于红外协议并处于发码状态下的f0码波形示意图。如图1所示,按照发送时序,红外协议包括8个阶段,分别为:

s1:头码带载波阶段;

s2:头码无载波阶段;

s3:前数据码;

s4:前半位结束码;

s5:间隔电平;

s6:后数据码;

s7:后半位结束码;

s8:f码间间隔电平。

其中,对于s3的前数据码,其可以为n位的数据0码或者数据1码。同理,对于s6的前数据码,其可以为n位的数据0码或者数据1码。

因此,按照发送时序,红外协议的阶段类型包括10个阶段类型,其分别为:头码带载波阶段、头码无载波阶段、前数据0码、前数据1码、前半位结束码、间隔电平、后数据0码、后数据1码、后半位结束码及f码间间隔电平。

在一些实施例中,一些fm码可以只包括以上阶段的几个。例如,如图2所示,fm码只包括s1、s2、s3、s4阶段。

值得提醒的是:在图1或图2中,其高电平表示在高电平所处的时间段内有红外载波信号的输出,而低电平表示在低电平所处的时间段内没有红外载波信号的输出。例如:请参阅图3,图3是本发明实施例提供一种头码的波形示意图。如图3所示,有红外载波信号的头码是具有预设时长的方波信号,没有红外载波信号的头码是具有预设时长的低电平信号。然而,如图1或图2,头码在高电平期间段内一直都是高电平。其实,如前所述,头码在高电平期间段内的高电平只是表示在高电平所处的时间段内有红外载波信号的输出,其并未真正地表示在高电平期间段内,发码时,其一直输出高电平。其真正的波形图形如图3所示。之所以用图1或图2所示的波形表示发码过程,是出于方便表达,本领域技术人员应当明白。

同理可得,本发明实施例还提供半结束位的波形示意图,如图4所示,在此不赘述其与图1或图2的区别所在。

本发明实施例还提供数据0码与数据1码的波形示意图。请一并参阅图5与图6。在图5中,数据0码有红外载波信号的时间段为0.63ms(毫秒),无红外载波信号的时间段为0.56ms。在图6中,数据1码有红外载波信号的时间段为0.63ms(毫秒),无红外载波信号的时间段为1.66ms。在实际操作过程中,智能设备通过识别无红外载波信号的时间段便可以识别出数据0码或数据1码。

如前所述,传统技术通过软件模拟红外码的发送,其功耗比较大。因此,本发明实施例提供一种基于红外协议的红外码发送电路,用于至少可以此类技术问题。

请参阅图7,图7是本发明实施例提供一种基于红外协议的红外码发送电路的结构示意图。如图7所示,该红外码发送电路700:载波时长控制模块71、处理模块72及载波产生模块73。处理模块72与载波时长控制模块71连接,载波产生模块73与载波时长控制模块71连接。其中,载波产生模块73能够产生20~60khz的pwm波。

处理模块72用于根据待发送红外码在红外协议内所属的阶段类型,配置载波时长控制模块71,使得载波时长控制模块71产生使能信号,使能信号用于确定待发送红外码的载波发生时间点与载波时长,并使能信号的电平类型在待发送红外码的载波期间内和非载波期间内皆为不变的。

举例而言:当待发送红外码为头码,其在红外协议内所属的阶段类型为头码带载波阶段,于是,处理模块72向载波时长控制模块71配置待发送红外码的载波时长,使得载波时长控制模块71在头码带载波阶段的起始时间点,发送电平类型为高电平、时长为8-20ms的使能信号。进一步的,当待发送红外码为头码,其在红外协议内所属的阶段类型为头码无载波阶段,处理模块72配置载波时长控制模块71,使得载波时长控制模块71在头码无载波阶段的起始时间点,发送电平类型为低电平、时长为8-20ms的使能信号。

再举例而言:当待发送红外码为前数据码,其在红外协议内所属的阶段类型为数据0码,于是,处理模块72配置载波时长控制模块71,使得载波时长控制模块71在数据0码的起始时间点,发送电平类型为高电平、时长为0.63ms的使能信号,在非载波期间内使能信号为低电平。

进一步的,载波产生模块73用于根据待发送红外码在红外协议内所属的阶段类型,产生pwm类型的载波信号,并将pwm类型的载波信号与使能信号作逻辑运算,生成并发送待发送红外码。

举例而言:当待发送红外码为头码,其在红外协议内所属的阶段类型为头码带载波阶段,高电平的使能信号与pwm类型的载波信号作与逻辑运算,于是,生成的待发送红外码在高电平的使能信号对应时长内与pwm类型的载波信号相同。当低电平的使能信号与pwm类型的载波信号作与逻辑运算,于是,生成的待发送红外码在低电平的使能信号对应时长内为低电平。

在一些实施例中,使能信号的电平类型与逻辑运算可以根据红外协议来调整。例如:在待发送红外码的载波期间内时,使能信号的电平类型为高电平。在待发送红外码的非载波期间内时,使能信号的电平类型为低电平。逻辑运算为与运算。

在一些实施例中,载波产生模块73还与处理模块72连接,用于响应于处理模块72的输入配置,调整pwm类型的载波信号的周期与电平宽度,其中,该电平宽度包括高电平宽度与低电平宽度。在实际中,通过调整载波信号的周期与电平宽度有诸多好处,例如:为了降低功耗,其可以通过配置,缩小载波信号的周期与电平宽度。

在一些实施例中,处理模块72还用于:将全部待发送红外码发送完毕后,进入休眠状态。因此,其能够尽量降低功耗,这对于遥控设备而言是至关重要的。

在一些实施例中,由于本发明实施例提供的红外码发送电路能够实现方波信号的输出,在该红外码发送电路处于闲置状态时,还可以利用该红外码发送电路完成其它功能。例如:在不需要使用红外发送功能时,处理模块72还用于:重新配置载波时长控制模块71与载波产生模块73,使得红外码发送电路作为脉冲发生器。其中,该脉冲发生器可以为计数器、计时器等等。

为了详细阐述本发明实施例提供的红外码发送电路,本发明实施例结合图8、图9及图10,详细阐述该红外码发送电路的工作原理。

下面,本发明实施例再进一步详细介绍红外码发送电路的硬件架构,值得提醒的是,对红外码发送电路的硬件架构所作出的阐述并不用于限制本发明的保护范围,其只是用于辅助理解本发明实施例的目的。

如图8所示,载波时长控制模块71包括:载波时长控制器711、寄存器模块712、多路选择器713、状态控制器714及数据存储器715。

如图9所示,载波时长控制器711在发送相应的码位时,从寄存器模块712中载入相应的时长配置值如head_h、head_l、dat0_h、dat0_l……endpos_h,到level_cnt寄存器,并且从该值开始,在1mhz的时钟下level_cnt寄存器进行递减计数,一直减到0,在这期间驱动载波时长控制模块71的使能端一直为0或1,然后跳转到下一个阶段,以此来产生相应时间长度的载波产生模块73的使能信号。

寄存器模块712包括多个端口,寄存器模块712与处理模块72和载波产生模块73连接,用于接收处理模块72的配置,预存有与待发送红外码对应的时长配置值,并且还用于配置载波产生模块73。

多路选择器713包括多路数据通道,多路选择器713的输入端通过多路数据通道与寄存器模块712的多个端口对应连接,多路选择器713的输出端与载波时长控制器711连接。

如图8所示,寄存器模块712包括若干个寄存器,处理模块72可以通过apb接口将要配置的数值写到对应寄存器。每个阶段类型的待发送红外码对应的电平类型及电平宽度可以分别由对应的寄存器配置。具体配置如下:

头码:头码带载波阶段与头码无载波阶段的持续时间长度可以由寄存器head_h及head_l分别配置。

数据0码:其包括带载波部分与无载波部分,两者的持续时间长度可以由寄存器dat0_h及dat0_l分别配置。

数据1码:其包括带载波部分与无载波部分,两者的持续时间长度可以由寄存器dat1_h及dat1_l分别配置。

前半位结束码:半位结束码只有带载波部分,其持续时间长度可以由寄存器endpre_h配置。

后半位结束码:半位结束码只有带载波部分,其持续时间长度可以由寄存器endpos_h配置。

间隔电平:其只有无载波部分,可以由寄存器interval配置。

前数据位数:前数据码是由n位的数据0码或数据1码组成的,此处的n为前数据位数,n的值可以由寄存器pre_bits配置。

后数据位数:后数据码是由m位的数据0码或数据1码组成的,此处的m就是后数据位数,m的值可以由寄存器pos_bits配置。

f码间间隔电平:两个f码之间的间隔低电平,由fn_interval配置。

寄存器prc用于配置载波产生模块73产生的pwm类型的载波信号的周期,寄存器pwc用于配置其高电平宽度。

对于红外码的上述阶段类型,其皆有独立的使能控制位,当该控制位为0时,该阶段将被跳过。具体描述如下:

en_headh:s1阶段头码带载波阶段的使能控制位;

en_headl:s2阶段头码无载波阶段的使能控制位;

en_predat:s3阶段前数据码的使能控制位;

en_endpre:s4阶段前半位结束码的使能控制位;

en_interval:s5阶段间隔电平的使能控制位;

en_posdat:s6阶段后数据码的使能控制位;

en_endpos:s7阶段后半位结束码的使能控制位;

en_fninter:s8阶段f码间间隔电平使能控制位;

请再次参阅图2,图2所示的fm码可以看成是f0码的特例,即其只有s1、s2、s3、s4阶段,即使能控制位应配置为:

en_headh=1,en_headl=1,en_predat=1,en_endpre=1,en_interval=0,en_posdat=0,en_endpos=0,en_fninter=0。

状态控制器714与多路选择器713和载波时长控制器711连接,用于根据待发送红外码在红外协议内所属的阶段类型,选通多路选择器713的对应数据通道,使得与待发送红外码的时长配置值载入载波时长控制器711。

数据存储器715分别与状态寄存器714和处理模块72连接,用于存储待发送的数据码,其中,待发送红外码包括待发送的数据码。其中,在红外码发送电路启动前,处理模块72先将要发送的前数据位及后数据位的数据组合成若干个32bit的数据,然后依次写入该数据存储器715,在发送过程中(即发送前数据位及后数据位的过程),状态控制器714会自动去数据存储器715中按顺序取出数据比特流,然后控制载波时长控制器711产生对应的调制波。其中,该数据存储器715可以为fifo存储器。

请参阅图10,载波产生模块73包括:pwm发生器731、触发器732及与门733。

pwm发生器731包括两路信号通道,用于接收寄存器模块712输入的配置。例如:接收寄存器prc与寄存器pwc的配置。

触发器732包括置位端、复位端及触发输出端,触发器732的置位端与复位端分别相应地与pwm发生器731的两路信号通道连接。

与门733包括第一输入端、第二输入端及与门输出端,与门733的第一输入端与触发器732的触发输出端连接,与门733的第二输入端用于输入使能信号,与门733的与门输出端用于输出待发送红外码。

下面,本发明实施例结合图8至图10详细阐述红外码发送电路的工作原理。值得提醒的是,该红外码发送电路可以工作三种模式下:1、自动发码模式;2、手动发码模式;3、通用timer模式。

a、对于自动发码模式。

红外码发送电路在自动发码模式下,其能够自动地依次完成以上各个阶段的发码步骤,并在发送红外码的过程中,只要fifo存储器不满,便可以将下一个f码的数据写进fifo存储器中,并继续发送。

在处于s3阶段或s6阶段时,fifo存储器中的数据将会被硬件一一读出,并将其数据位从最高位或最低位(可配置)一一移出,当该位为0时,该红外码发送电路会自动发送数据0码的波形;当该位为1时,该红外码发送电路会自动发送数据1码的波形。

红外码发送电路发送红外码的过程如下:

1、通过处理模块72通过apb总线对寄存器模块712配置好相关时长,如head_h、head_l、dat0_h、dat0_l……endpos_h。

2、通过处理模块72通过apb总线配置好前数据位数(pre_bits)及后数据位数(pos_bits)。

3、将要发送的数据组合成若干个32bit的数据写入fifo存储中。

4、软件去写控制寄存器中的发送触发位(kst),该红外码发送电路就会依次自动的发送头码、前数据码、前半位结束码、间隔电平、后数据码、后半位结束码。以上每个阶段(头码、前数据码、前半位结束码、间隔电平、后数据码、后半位结束码)发送完成之后均会有相应的中断及标志位产生。

5、此时处理模块72空闲时,其可以去执行其它任务或者休眠,当红外码发送完毕之后,会有发送完成的中断信号去通知或者唤醒处理模块72。

6、要发送下一个红外码时,将重复以上步骤。

b、手动发码模式。

首先,在发送红外码时,可以将图1所示的红外码波形拆分成如图3、4、5及6所示的一个个受调制的pwm波。

在发送红外码时,需要软件将红外码拆解成如上的一个个码位(即头码、数据0码、数据1码、半位结束码),每发送一个波形(码)前,软件需要配置好有载波的时间长度及无载波时间长度,分别用dat0_h及dat0_l进行配置,在红外码发送电路内部会自动将head_h及head_l分别作为dat0_h及dat0_l的buffer寄存器。

因此,在发送第一个红外码位前,先将第一个时间配置值往dat0_h及dat0_l写,紧接着将第二个时间配置值往dat0_h及dat0_l写。写完后数据保存的位置如图11所示。

其次,软件写触发位去触发红外码发送电路发送红外波形,当第一个码位的波形发送完成之后,红外码发送电路会自动按第二个时间配置值去发送第二个红外波形,同时会产生中断信号去通知处理模块72将下一个码位的时间配置值写到dat0_h及dat0_l中。

重复以上码位发送过程,直至所有码位均发送完毕。

当所有码位都发送完成之后,软件再去关掉红外码发送电路的使能位。

c、通用timer模式。

当在某些不用发送红外码的场合,其可以将红外码发送电路用作16bit的普通定时器或者pwm发生器,波形从ir_out引脚输出。此时,prc及pwc两个8位的寄存器将组合成一个16bit的计数器,head_h用于配置计数周期,head_l用于配置脉宽。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

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