具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例采用微控制器来对红外数据进行软编解码;在发送红外数据时,获取待发送的数据帧,将所述数据帧转换为对应的软编码帧后发射出去,所述软编码帧由引导码、8位PWM数据码以及奇偶校验码组成;在接收红外数据时,则按照预设的仲裁机制将待接收的软编码帧中的PWM数据码转换为对应的数据位值,得到与所述待接收的软编码帧对应的数据帧;从而实现了通过软件对红外数据进行编解码,所述软编码帧的周期比现有的硬编码帧短,有助于提高了红外遥控设备的远距离通讯能力以及抗干扰能力。本发明实施例还提供了相应的装置,以下分别进行详细的说明。
图1示出了本发明实施例提供的红外数据的编解码方法的实现流程。
在本发明实施例中,所述方法的执行主体为微控制器,应用于红外遥控系统中,比如红外线对战游戏系统等,可以是红外遥控器或者红外遥控设备。参阅图1,所述方法包括:
在步骤S101中,在发送红外数据时,获取待发送的数据帧,将所述数据帧转换为对应的软编码帧后发射出去,所述软编码帧由引导码、8位PWM数据码以及奇偶校验码组成。
在本发明实施例中,根据所述待发送的数据帧中的每一个数据位值,使用微控制器中的定时器输出与所述数据位值对应的载波信号,以将所述待发送的数据帧通过对应的软编码帧发射出去。其中,所述待发送的数据帧为二进制数据帧,8位PWM数据码中的每一个PWM数据码与待发送数据帧中的每一个数据位一一对应,最左边的PWM数据码为最高有效位,最右边的PWM数据码为最低有效位。示例性地,图2给出了本发明实施例提供的软编码帧的组成架构示意图。
可选地,当所述数据位值为1时,对应的PWM数据码为0.6ms的38KHz载波信号和0.5ms的无载波信号时间间隔;所述数据位值为0时,对应的PWM数据码为0.4ms的38KHz载波信号和0.6ms的无载波信号时间间隔。所述引导码为1ms的38KHz载波信号和0.4ms的无载波信号时间间隔。从而使得所述软编码帧的周期为10ms,有效地缩短了编码数据帧的长度,有助于增加红外线的远距离通信能力。
在步骤S102中,在接收红外数据时,按照预设的仲裁机制将待接收的软编码帧中的PWM数据码转换为对应的数据位值,得到与所述待接收的软编码帧对应的数据帧。
在这里,所述仲裁机制为根据待接收的软编码帧中每一个PWM数据码中的载波信号持续时长和无载波信号时间间隔来确定所述PWM数据码对应的数据位值,即确定所述PWM数据码对应的数据位值为1或者0,从而得到所述待接收的软编码帧对应的数据帧,有效地提高了数据解码的能力,在有干扰的环境下也能够进行正确的解码,提高了红外遥控设备的抗干扰能力。
本发明实施例采用微控制器来对红外数据进行软编解码;在发送红外数据时,获取待发送的数据帧,将所述数据帧转换为对应的软编码帧后发射出去,所述软编码帧由引导码、8位PWM数据码以及奇偶校验码组成;在接收红外数据时,则按照预设的仲裁机制将待接收的软编码帧中的PWM数据码转换为对应的数据位值,得到与所述待接收的软编码帧对应的数据帧;从而实现了通过软件对红外数据进行编解码,缩短了编码数据帧的长度,所述软编码帧的周期比现有的硬编码帧短,有助于提高了红外遥控系统的远距离通讯能力以及抗干扰能力。
在本发明实施例中,所述方法的执行主体为微控制器。可选地,所述微控制器为32位高性能ARMCortex-M3内核芯片STM32F103,主频率为72MHz,使用IAREmbeddedWorkbench集成开发环境。所述STM32F103芯片内部包括三个定时器,分别为定时器1、定时器2、定时器3。可选地,本发明实施例以所述三个定时器中的定时器2输出载波信号,以所述定时器3作为计数器。作为本发明的一个优选示例,图3示出了本发明实施例提供的红外数据的编解码方法中步骤S101的具体实现流程。
参阅图3,所述步骤S101包括:
在步骤S301中,初始化第一定时器用于输出38KHzPWM载波信号,配置第二定时器用作计数器。
在这里,所述第一定时器为微控制器STM32F103芯片中的定时器2,所述第二定时器为STM32F103芯片中的定时器3。在这里,所述第二定时器的每个滴答为10微秒,用于计算8位PWM载波信号的输出持续时间和无载波信号的时间间隔。
在步骤S302中,在发送红外数据帧时,触发所述第一定时器输出PWM载波信号,以发射引导码。
在步骤S303中,当所述PWM载波信号的输出持续时间达到第一阈值时,停止输出PWM载波信号,并触发第二定时器开始计算无载波信号的持续时间。
在本发明实施例中,所述引导码包括1ms的38KHz载波信号和0.4ms的无载波信号时间间隔。所述第一时间阈值可以为1ms。当所述引导码的PWM载波信号的输出持续时间达到1ms时,则停止输出所述引导码的PWM载波信号,并继续计算所述引导码的无载波信号持续时间。
在步骤S304中,当所述无载波信号的持续时间到达第二阈值时,获取所述待发送的数据帧中的待发送数据位值,触发所述第一定时器输出与所述待发送数据位值对应的PWM载波信号,并触发所述第二定时器计算与所述待发送数据位值对应的无载波信号时间间隔,以将所述数据位值转换对应的PWM数据码发射出去。
在这里,所述第二阈值可以为0.4ms。当所述引导码的无载波信号持续时间到达0.4ms时,开始将待发送的数据帧的每一个位值转换为对应的PWM数据码输出。具体为:获取待发送的数据位值;当所述数据位值为1(或0)时,触发第一定时器输出38KHz载波信号,持续时间到达0.6ms(或0.4ms)后,关闭第一定时器,触发第二定时器计算无载波信号时间间隔,在所述无载波信号持续时间间隔到达0.4ms(或0.6ms)后,所述待发送的数据位值发射完毕。继续获取所述待发送的数据帧中的下一个待发送的数据位值,依此将所述数据位值转换为对应的PWM数据码输出,直至所述待发送的数据帧中的所述待发送的数据位值发送完毕。
在步骤S305中,当8位的PWM数据码发送完后,获取奇偶校验码,触发所述第一定时器输出与所述奇偶校验码对应的PWM载波信号,并触发所述第二定时器计算与所述奇偶校验码对应的无载波信号时间间隔。
在这里,所述就奇偶校验码为1或者0。当所述奇偶校验码发送完毕时,所述待发送的数据帧已完整发射出去。
综上所述,在本发明实施例中,通过微控制器对待发送的数据帧进行软编码,得到与所述待发送的数据帧对应的软编码帧,所述软编码帧由引导码、8位PWM数据码以及奇偶校验码组成。其中引导码为1.4ms,每一个PWM数据码为1ms,所述奇偶校验码为1ms,所述软编码帧的周期约为10ms,有效地缩短了编码数据帧的长度,所述软编码帧的周期比现有的硬编码帧短,有助于提升红外遥控的远距离通讯能力。
作为本发明的另一个优选示例,图4示出了本发明实施例提供的红外数据的编解码方法中步骤S102的具体实现流程。在步骤S102中,所述仲裁机制为根据待接收的软编码帧中每一个PWM数据码中的载波信号持续时长和无载波信号时间间隔来确定所述PWM数据码对应的数据位值,即确定所述PWM数据码对应的数据位值为1或者0。
参阅图4,所述步骤S102包括:
在步骤S401中,当检测到引导码后,获取每一个PWM数据码中的PWM载波信号的持续时间及无载波信号时间间隔。
在这里,在接收红外数据前,微控制器STM32F103首先初始化接收状态机为IDLE,初始化外部中断线为上升沿、下降沿,并配置第二定时器为计数器,每个滴答为10微秒。第二定时器为STM32F103芯片中的定时器3。当STM32F103芯片检测到外部中断事件时,所述第二定时器开始计时,直至下一次外部中断事件产生。根据第二定时器的计时值判断两次外部中断事件之间的信号电平是否为引导码。若是,则确定检测到引导码,更新状态机,进入数据接收状态,获取每一个PWM数据码中的PWM载波信号的持续时间及无载波信号时间间隔。否则,不作任何处理,继续等待引导码,返回步骤S401。
在步骤S402中,比较所述PWM载波信号的持续时间和无载波信号时间间隔。
在步骤S403中,当所述PWM载波信号的持续时间大于所述无载波时间间隔时,确定数据帧中与所述PWM数据码对应的数据位值为1。
在步骤S404中,当所述PWM载波信号的持续时间小于所述无载波时间间隔时,确定数据帧中与所述PWM数据码对应的数据位值为0。
在本发明实施例中,微控制器时刻接收外部中断事件,若接收到引导码时,则按照PWM载波信号的持续时长与无载波信号的时间间隔将接收到的PWM数据码转换为对应的数据位值,优化了解码的方式,提高了数据解码的能力以及红外遥控的远距离通讯能力;且无需对发送端和接收端芯片地址引脚进行匹配设置,在多套设备在同一场合同时工作时也无需更改硬件设置,通过所述微控制器即可进行配对,实现了多套设备同一场合同时工作。
图5示出了本发明实施例提供的红外数据的编解码装置的组成结构,为了便于说明,仅示出了与本发明实施例相关的部分。
在本发明实施例中,所述装置用于实现图1至图4任一实施例所述的红外数据的编解码方法,是内置于微处理器的软件单元。所述微处理器为32位高性能ARMCortex-M3内核芯片STM32F103,主频率为72MHz,使用IAREmbeddedWorkbench集成开发环境。所述STM32F103芯片内部包括三个定时器,分别为、定时器1、定时器2、定时器3。将所述装置内置于红外遥控设备,实现红外数据的软编码发送和软解码接收。
参阅图5,所述装置包括:
编码模块51,用于在发送红外数据时,获取待发送的数据帧,将所述数据帧转换为对应的软编码帧后发射出去,所述软编码帧由引导码、8位PWM数据码以及奇偶校验码组成。
解码模块52,用于在接收红外数据时,按照预设的仲裁机制将待接收的软编码帧中的PWM数据码转换为对应的数据位值,得到与所述待接收的软编码帧对应的数据帧。
进一步地,所述装置还包括:
初始化模块53,用于初始化第一定时器用于输出38KHzPWM载波信号,配置第二定时器用作计数器。
在这里,所述第一定时器为微控制器STM32F103芯片中的定时器2,所述第二定时器为STM32F103芯片中的定时器3。
进一步地,所述编码模块51包括:
第一编码单元511,用于在发送红外数据帧时,触发所述第一定时器输出PWM载波信号,以发射引导码;当所述PWM载波信号的输出持续时间达到第一阈值时,停止输出PWM载波信号,并触发第二定时器开始计算无载波信号的持续时间。
第二编码单元512,用于当所述无载波信号的持续时间到达第二阈值时,获取所述待发送的数据帧中的待发送数据位值,触发所述第一定时器输出与所述待发送数据位值对应的PWM载波信号,并触发所述第二定时器计算与所述待发送数据位值对应的无载波信号时间间隔,以将所述数据位值转换对应的PWM数据码发射出去。
第三编码单元513,用于当8位的PWM数据码发送完后,获取奇偶校验码,触发所述第一定时器输出与所述奇偶校验码对应的PWM载波信号,并触发所述第二定时器计算与所述奇偶校验码对应的无载波信号时间间隔。
在本发明实施例中,所述待发送的数据帧为二进制数据帧;每一个数据位对应一个PWM数据码。其中,数据位值为1时,对应的PWM数据码为0.6ms的38KHz载波信号和0.4ms的无载波信号时间间隔;数据位值为0时,对应的PWM数据码为0.4ms的38KHz载波信号和0.6ms的无载波信号时间间隔。所述引导码为1ms的38KHz载波信号和0.4ms的无载波信号时间间隔。所述奇偶校验码为1ms,因此,所述软编码帧的周期约为10ms,有效地缩短了编码数据帧的长度,有助于提升红外遥控的远距离通讯能力。
进一步地,所述解码模块52包括:
获取单元521,用于当检测到引导码后,获取每一个PWM数据码中的PWM载波信号的持续时间及无载波信号时间间隔;
比较单元522,用于比较所述PWM载波信号的持续时间和无载波信号时间间隔;当所述PWM载波信号的持续时间大于所述无载波时间间隔时,确定数据帧中与所述PWM数据码对应的数据位值为1,当所述PWM载波信号的持续时间小于所述无载波时间间隔时,确定数据帧中与所述PWM数据码对应的数据位值为0。
在本发明实施例中,微控制器通过接收外部中断事件来检测引导码。若检测到引导码,则按照PWM载波信号的持续时长与无载波信号的时间间隔将接收到的PWM数据码转换为对应的数据位值,优化了解码方式,提高了数据解码的能力以及红外遥控的远距离通讯能力;且无需对发送端和接收端芯片地址引脚进行匹配设置,在多套设备在同一场合同时工作时也无需更改硬件设置,通过所述微控制器即可进行配对,实现了多套设备同一场合同时工作。
需要说明的是,本发明实施例中的装置可以用于实现上述方法实施例中的全部技术方案,其各个功能模块的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述实例中的相关描述,此处不再赘述。
本发明实施例采用微控制器来对红外数据进行软编解码;在发送红外数据时,获取待发送的数据帧,将所述数据帧转换为对应的软编码帧后发射出去,所述软编码帧由引导码、8位PWM数据码以及奇偶校验码组成;在接收红外数据时,则按照预设的仲裁机制将待接收的软编码帧中的PWM数据码转换为对应的数据位值,得到与所述待接收的软编码帧对应的数据帧;从而实现了通过软件对红外数据进行编解码,所述软编码帧的周期比现有的硬编码帧短,有助于提高了红外遥控系统的远距离通讯能力以及抗干扰能力。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块、单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元、模块单独物理存在,也可以两个或两个以上单元、模块集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。