一种嵌入式数字振荡无线遥控器控制方法与流程

文档序号:14837575发布日期:2018-06-30 13:04阅读:234来源:国知局
一种嵌入式数字振荡无线遥控器控制方法与流程

本发明涉及嵌入式数字振荡无线遥控器领域,特别是一种嵌入式数字振荡无线遥控器控制方法。



背景技术:

目前,无线遥控器主要通过内部振荡器产生时钟信号来校准载波频率,用于信号脉冲调制、指令控制和信号解调传播电信号发送与接收,与采用外部陶瓷振荡器的传统无线遥控器一样具有体积小、功耗低、功能强的优点,又解决了传统遥控器依靠外部陶振振荡器工作频率易受外部环境干扰、通讯距离短、精度低、成本高的问题困扰。由于嵌入式数字振荡无线遥控器主系统时钟(MCLK)是通过遥控器内部RC振荡器进行校准来获取时钟进行信号调制,不需要外部陶瓷晶振或者石英晶振振荡器元件来产生频率,不受传统遥控器温度低起振困难以及随着温度、电压,时间等变量影响变化,送信频率跟随变化造成性能受限,死机,停止响应,影响用户体验效果。正因为有如此多的优点,所以嵌入式数字振荡无线遥控器被众多厂家与用户所接受。目前各生产厂家在设计嵌入式数字振荡无线遥控器时,其送信通常有两种方式:上电自载入校准振荡器和内部振荡器取平均。采用上电自载入校准振荡器方式送信受限于预制器的环境温度和工作电压,以及芯片个体工艺差异和编程器预制值不准,容易引起遥控器死机;内部振荡器值取平均方式虽然能解决这一问题,但仍然有一定的缺陷,但时间长后,载波频率累加误差偏移,送信距离变短,需要用户不断更换电池来获的较好的载波和送信功耗,使用十分不便。



技术实现要素:

为解决上述问题,本发明的目的在于提供一种嵌入式数字振荡无线遥控器控制方法,能够提高无线遥控器的抗干扰能力、增大其通讯距离以及延长其使用寿命。

本发明解决其问题所采用的技术方案是:

一种嵌入式数字振荡无线遥控器控制方法,其特征在于,包括以下步骤:

S1:无线遥控器上电重置初始化主系统时钟(MCLK)、辅助系统时钟(ACLK)、看门狗工作时钟和T16B定时器;

S2:选择辅助系统时钟(ACLK)为实时时钟RTC并设置1/128秒为测量点;

S3:将主系统时钟振荡器OSC3作为事件计数器时钟源;

S4:开启辅助系统时钟振荡器OSC1和实时时钟RTC,实时时钟RTC开始计数;

S5:判断前次实时时钟RTC中128Hz基准时间是否为高电平,当为高电平时执行步骤S6,否则继续返回执行步骤S5;

S6:判断前次实时时钟RTC中128Hz基准时间是否为低电平,当为低电平时执行步骤S7,否则继续返回执行步骤S6;

S7:事件计数器时钟源启动且当前事件计数器目标值预先设置为0;

S8:判断当前实时时钟RTC中128Hz基准时间是否为高电平,当为高电平时执行步骤S9,否则继续返回执行步骤S8;

S9:判断当前实时时钟RTC中128Hz基准时间是否为低电平,当为低电平时执行步骤S10,否则继续返回执行步骤S9;

S10:确定当前同步事件计数值,记录并存储当前同步事件计数值;

S11:根据当前同步事件计数值得出在基准时间内主系统时钟振荡器OSC3的时钟振荡次数:Fosc3=当前同步事件计数值*128;

S12:根据时钟振荡次数Fosc3查表得出T16B定时器的载波频率和周期值常数;

S13:得出送信基本脉冲宽度=载波时间*16;

S14:开启载波送信。

进一步地,所述步骤S10中确定当前同步事件计数值包括以下步骤:

a:判断同步事件计数值是否处于目标可变限定对象最小值和目标可变限定对象最大值之间,当是时则记录并存储同步事件计数值;

b:判断记录同步事件计数值的次数是否达到目标次数,当是时则执行步骤c;

c:判断第1次的同步事件计数值是否大于第2次的同步事件计数值,当是时则执行步骤d;

d:判断第1次的同步事件计数值与第2次的同步事件计数值之差是否大于内部数字振荡器固定频率值,当大于时则认为是非法事件值,记录的同步事件计数值清零,重新测量,否则执行步骤e;

e:判断第1次的同步事件计数值是否大于第3次的同步事件计数值,当是时则执行步骤f;

f:判断第1次的同步事件计数值与第3次的同步事件计数值之差是否大于内部数字振荡器固定频率值,当大于时则认为是非法事件值,记录的同步事件计数值清零,重新测量,否则执行步骤g;

g:判断第3次的同步事件计数值是否大于第2次的同步事件计数值,当是时则执行步骤h,否则执行步骤i;

h:判断第3次的同步事件计数值减去第2次的同步事件计数值的差是否大于内部数字振荡器固定频率值,当大于时则认为是非法事件值,记录的同步事件计数值清零,重新测量,否则获取到一个可变的目标频率值;

i:判断第2次的同步事件计数值减去第3次的同步事件计数值的差是否大于内部数字振荡器固定频率值,当大于时则认为是非法事件值,记录的同步事件计数值清零,重新测量,否则获取到一个可变的目标频率值。

进一步地,所述步骤S11中计算时钟振荡次数还包括以下方法:

根据当前同步事件计数值得出在基准时间内主系统时钟振荡器OSC3的时钟振荡次数:Fosc3=当前同步事件计数值*128+64。

进一步地,所述步骤S1中T16B定时器包括型号为T16B1MC的定时器或型号为T16B1CCR0的定时器。

本发明的有益效果是:本发明采用的一种嵌入式数字振荡无线遥控器控制方法,通过选择内部振荡器的方式,在环境恶劣的场合下遥控器也能正常工作;另外能够根据不同时段、不同工作电压和不同温差特性,在空闲时段进行自我校准,尽最大可能提高嵌入式数字陶振无线遥控器的送信载波精度,实现嵌入式数字陶振无线遥控器高效且经济性运转。

附图说明

下面结合附图和实例对本发明作进一步说明。

图1是本发明一种嵌入式数字振荡无线遥控器控制方法的流程图;

图2是本发明一种嵌入式数字振荡无线遥控器控制方法的控制原理示意图。

具体实施方式

参照图1和图2,本发明一种嵌入式数字振荡无线遥控器控制方法的流程图和控制原理示意图,所述嵌入式数字振荡无线遥控器的控制是基于外部辅助系统时钟(ACLK)数字校准主系统时钟系统振荡器频率来获取得到送信的载波频率的模式来实现,并采用辅助系统时钟(ACLK)测量出来目标频率自动调整遥控器载波频率和脉冲时间,包括以下步骤:

S1:无线遥控器上电重置初始化主系统时钟(MCLK)、辅助系统时钟(ACLK)、看门狗工作时钟和T16B定时器;

S2:选择辅助系统时钟(ACLK)为实时时钟RTC并设置1/128秒为测量点;

S3:将主系统时钟振荡器OSC3作为事件计数器时钟源;

S4:开启辅助系统时钟振荡器OSC1和实时时钟RTC,实时时钟RTC开始计数;

S5:判断前次实时时钟RTC中128Hz基准时间是否为高电平,当为高电平时执行步骤S6,否则继续返回执行步骤S5;

S6:判断前次实时时钟RTC中128Hz基准时间是否为低电平,当为低电平时执行步骤S7,否则继续返回执行步骤S6;

S7:事件计数器时钟源启动且当前事件计数器目标值预先设置为0;

S8:判断当前实时时钟RTC中128Hz基准时间是否为高电平,当为高电平时执行步骤S9,否则继续返回执行步骤S8;

S9:判断当前实时时钟RTC中128Hz基准时间是否为低电平,当为低电平时执行步骤S10,否则继续返回执行步骤S9;

S10:确定当前同步事件计数值,记录并存储当前同步事件计数值;

S11:根据当前同步事件计数值得出在基准时间内主系统时钟振荡器OSC3的时钟振荡次数:Fosc3=当前同步事件计数值*128;

S12:根据时钟振荡次数Fosc3查表得出T16B定时器的载波频率和周期值常数;

S13:得出送信基本脉冲宽度=载波时间*16;所述载波频率和载波时间互为倒数,因此可以由载波频率得出载波时间。

S14:开启载波送信。

进一步地,所述步骤S1中T16B定时器包括型号为T16B1MC的定时器或型号为T16B1CCR0的定时器。

在上述方案中当检测实时时钟RTC128Hz基准时间时,由于遥控器实时时钟RTC和T16B时钟一直是在运行中,且中断刷新时间和显示,故而在检测实时时钟RTC128Hz基准时间需要禁用全局中断,等待下一次基准时间RTC128Hz由“1”变“0”时,开启全局中断,恢复时间和显示刷新。

采用以上方案后,本发明具有以下优点:第一是选择内部振荡器,在环境恶劣的场合下遥控器也能正常工作;第二是能够根据不同时段、不同工作电压以及不同温差特性,在空闲时段进行自我校准,尽最大可能提高嵌入式数字陶振无线遥控器的送信载波精度,实现嵌入式数字陶振无线遥控器高效和经济性运转。

进一步地,所述步骤S10中确定当前同步事件计数值包括以下步骤:

a:判断同步事件计数值是否处于目标可变限定对象最小值和目标可变限定对象最大值之间,当是时则记录并存储同步事件计数值;

b:判断记录同步事件计数值的次数是否达到目标次数,当是时则执行步骤c;

c:判断第1次的同步事件计数值是否大于第2次的同步事件计数值,当是时则执行步骤d;

d:判断第1次的同步事件计数值与第2次的同步事件计数值之差是否大于内部数字振荡器固定频率值,当大于时则认为是非法事件值,记录的同步事件计数值清零,重新测量,否则执行步骤e;

e:判断第1次的同步事件计数值是否大于第3次的同步事件计数值,当是时则执行步骤f;

f:判断第1次的同步事件计数值与第3次的同步事件计数值之差是否大于内部数字振荡器固定频率值,当大于时则认为是非法事件值,记录的同步事件计数值清零,重新测量,否则执行步骤g;

g:判断第3次的同步事件计数值是否大于第2次的同步事件计数值,当是时则执行步骤h,否则执行步骤i;

h:判断第3次的同步事件计数值减去第2次的同步事件计数值的差是否大于内部数字振荡器固定频率值,当大于时则认为是非法事件值,记录的同步事件计数值清零,重新测量,否则获取到一个可变的目标频率值;所述可变的目标频率值是经过不同时段、不同工作电压和不同温区的事件值记录判断得出的。所述同步事件计数值是1/128分频计数值,可变目标频率值是经过计算查表过滤后的同步计数值。

i:判断第2次的同步事件计数值减去第3次的同步事件计数值的差是否大于内部数字振荡器固定频率值,当大于时则认为是非法事件值,记录的同步事件计数值清零,重新测量,否则获取到一个可变的目标频率值。所述同步事件计数值是1/128分频计数值,可变目标频率值是经过计算查表过滤后的同步计数值。

上述改进方案可有效防止遥控器内部振荡器在数字校准时,内部振荡器会因异常情况超出标称频率范围而进行闭环机制自我保护,保证系统运作的可靠性。

进一步地,所述步骤S11中计算时钟振荡次数还包括以下原则:

根据当前同步事件计数值得出在基准时间内主系统时钟振荡器OSC3的时钟振荡次数:Fosc3=当前同步事件计数值*128+64。如果主系统时钟T16B时钟源为OSC3,当前同步事件计数值(n)为1/128秒内OSC3的时钟振荡次数,如果测量RTC128Hz的基准时间在最大为-1的T16B计数误差,将导致Fosc3出现-1至-128的误差,因此作为补偿,我们可以用公式Fosc3=当前同步事件计数值(n)*128+64作为四舍五入的计算结果。

上述改进方案可有效防止遥控器对内部振荡器校准时,因2个不同时钟事件计数器时钟机器指令未对齐超前校准造成计算误差,造成128的倍数误差而影响载波计算精度。

为了便于说明本发明的控制方法,下面结合附图,对本发明嵌入式数字振荡无线遥控器的控制方法加以详细说明,如测定某一款固定规格型号的无线遥控器主时钟振荡器频率具有如下技术参数和环境参数:

如表格1,在电源电压VDD=1.6V-3.3V的情况下,温度值与目标频率值之间的关系:

表格1

如表格2,在温度Ta=25℃的情况下,电源电压值与目标频率值之间的关系:

表格2

如表格3,目标频率值与送信载波频率之间的关系:

表格3

当获取到可变温度与可变电压目标频率OSC3Clock后,可以计算出送信载波频率,以目标PWM波形的周期和脉宽作为参数,与主频计算获得周期和脉宽两个常数变量值,具体计算公式如下:

周期常数:TM_CYC=(CYC×OSC3Clock/1000000+500)/1000

脉宽常数:TM_CHW=(CHW×OSC3Clock/1000000+500)/1000

其中CYC是PWM周期(ns),CHW是高电平脉宽(ns),OSC3是主系统时钟(MCLK)高速振荡器的主频(固定主频或者通过测量计算得到的主频);最终将(TM_CYC‐1)和(TM_CHW‐1)写入载波控制单元。

作为载波频率改进部分,在载波算法均以ns作为计算单位是为了提高计算精度。假设无线遥控器工作主频为4MHz,每个时钟周期为0.25us,因此最小误差只能控制在±0.125us内,即±125ns。

那么在主系统时钟(MCLK)目标频率4MHz时,无线遥控器载波PWM频率36700Hz、占空比1/3,即周期27248ns,高电平脉宽9083ns,则常数计算结果为:

周期常数变量值:

TM_CYC=(CYC×OSC3/1000000+500)/1000≈109.492,取整109。

脉宽常数变量值:

TM_CHW=(CHW×OSC3/1000000+500)/1000≈36.832,取整36。

为提高运行效率,作为算法改进一部分,上述算法中,参数相乘结果将超过32位,超出16位处理器运算能力,且多次乘除法运算导致运算时间增加,因此需要将上述公式简化。

由于主系统时钟OSC3主频误差对于载波误差影响不大,且主频数值至少需占用22位,因此将主频参数减少到9位(右移13位即除以8192),上述算法被修改为:

TM_CYC=(CYC×(OSC3/8192)×8192/1000000+500)/1000

TM_CHW=(CHW×(OSC3/8192)×8192/1000000+500)/1000

再次简化并四舍五入后确定为:

TM_CYC=(CYC×((OSC3+4096)>>13)×32/15625+125)/250

TM_CHW=(CHW×((OSC3+4096)>>13)×32/15625+125)/250

注:主频数据移位和四舍五入后,主频误差增加了约4096/4000000=±0.1%,但并不对应最终的载波误差。

作为算法改进一部分,为了进一步提高运行速度,可以将一定主频范围内的常数预先计算好,做成数组保存,然后直接采用查表法获得需要的常数。为了避免使用乘除法,数据表的预设值均以8192Hz为最小单位;以3596288Hz(3596288/8192=439)为最小频率;以4407296Hz(4407296/8192=538)为最大频率;数据表包含100(538‐439+1=100)项常数预置值。

为说明本发明的实施效果,传统的无线遥控器频率在常温-20℃~50℃,主系统时钟频率偏差为3.6MHz~4.4MHz,正常运行主频是4.0MHz那么标称载波周期常数值为1000/36.7KHz×1/Fosc3=108,在遥控器随着温度和电压变化后,频率变低时OSC3=3.6MHz时,误差为±36710/3600000=±1%;频率变高时OSC3=4.4MHz时,误差为±36710/2/4400000=±0.83%,而采用嵌入式数字频率校准的遥控器后,根据表格3目标频率值与送信载波频率之间的关系,查表得到载波频率误差控制在±0.4%,远远小于采用传统频率误差,因此嵌入式数字频率校准控制方法是先获取不同时段、不同工作电压和不同温区的事件值记录下来,经过判断得到可变的目标频率值,固定将一定主频范围内的常数预先计算好,做成数组存储,然后直接采用查表法获得需要的常数,可以做到频率与常数跟随,大大解决了频率平滑度,极大降低了送信过程中载波峰值突变造成电流过大烧坏红外发射管的问题。

在此,特别进行说明,上述的提供的表格中的数据仅为说明本发明的一种实施效果,没有将全工况条件全部的技术数据列出来,在实际使用过程中测定的数据越多,计算结果就越准确,通讯速度越快。

在上述实施例中,对本发明的最佳实施方式做了描述,很显然,在本发明的发明构思下,仍可做出很多变化,在实际使用过程中嵌入式数字振荡无线遥控器可以与原工作方式同时使用,无需切换便可实现节能的效果,另外,上述嵌入式数字振荡无线遥控器的控制方法也可以用在有显示和无显示无线红外遥控器,以及有线遥控器等产品上。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。

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