一种软时钟的实现方法及应用装置的制造方法

文档序号:9765624阅读:468来源:国知局
一种软时钟的实现方法及应用装置的制造方法
【技术领域】
[0001]本申请涉及通信领域,具体涉及一种软时钟的实现方法及应用装置。
【背景技术】
[0002]系统在进行信息交互时,生成软时钟,MCU会对软时钟进行监控,然后进行其他的逻辑处理。
[0003]现有实现方法是在配置软时钟之后,设置一个硬件定时器,中断次数的记数值。在硬件定时器中断处理中,减少该计数器的值,当减为零时,表示该定时器定时时间到。若系统需要同时开启多个软时钟,系统生成多个计数器,定时器中断函数需要针对多个计数器进行处理,定时器中断函数处理的内容也就增多了,这就降低了系统的执行效率。但是当系统需要多个硬件定时事件时,系统内将设有多个硬件定时器,这时需要启动多个硬件定时器,但是硬件定时器的数量是有限的,当在同一时段内需要的定时事件大于此上限时,将不能达到使用要求,从而会引起诸多不便,难以满足不同系统的需要。同时启动多个硬件定时器,增大了配置代码的复杂度,同时也增加了处理器的功耗。

【发明内容】

[0004]有鉴于此,本申请提供一种软时钟的实现方法及应用装置。
[0005]本申请提供一种软时钟的实现方法,包括以下步骤:
[0006]步骤1、装置供电后,通过硬件定时器和时钟频率维持一个系统时钟;
[0007]步骤2、所述M⑶接收软时钟指令,M⑶启动定时器逻辑;
[0008]步骤3、所述M⑶在执行完定时器逻辑之后启动中断逻辑;
[0009]步骤4、所述中断逻辑完成后,MCU进行软时钟的超时判断,MCU根据判断结果发送指令。
[0010]进一步,所述硬件定时器根据时钟频率维持一个系统时钟,所述系统时钟在上电后从零开始运行,所述硬件定时器处理时更新系统时钟的值。
[0011 ]进一步,所述MCU的定时器逻辑记录所述软时钟的当前系统时间与定时时长。
[0012]进一步,所述MCU的中断逻辑循环查询定时时长与当前系统时间计算出的超时时亥IJ,若当前系统时间大于等于软时钟的超时时刻,则表示软时钟时间到,若当前系统时间小于软时钟的超时时刻,则继续循环查询。
[0013]本申请还提供一种软时钟的应用装置,包括:
[0014]供电单元,用于给软时钟的应用装置供电;
[0015]振荡电路,供电后产生时钟频率,并将产生的时钟频率传送给MCU;
[0016]显示单元,用于显示系统时钟的值;
[0017]MCU,在接收到软时钟指令时,启动定时器逻辑;在定时器逻辑完成之后启动中断逻辑;在中断逻辑完成后,进行软时钟的超时判断,并根据判断结果发送指令。
[0018]进一步,所述M⑶上设置有硬件定时器、频率采集单元,所述硬件定时器用于更新时钟计数次数,所述频率采集单元用于时钟频率的采集,MCU根据硬件定时器和时钟频率维持一个系统时钟。
[0019]进一步,所述供电单元设置有开关,控制电路的连通。
[0020]进一步,所述振荡电路上设置有晶体振荡器、电容。
[0021]进一步,所述晶体振荡器为有源振荡器。
[0022]上述本申请提出的一种软时钟的实现方法及应用装置,获得了以下技术效果:
[0023]本申请提出的一种软时钟的实现方法及应用装置,减少了系统在硬件定时器中的耗时,通过硬件定时器和时钟频率维持一个系统时钟,仅在定时器中断时,更新系统时钟即可。当系统需要设定多个软时钟时,仅根据当前的系统时间,计算出超时时间值,系统循环查询软时钟是否超时,不会因为多个时钟计数器而影响硬件定时器的运行,可以满足不同系统的需要,提高了系统的执行效率,提升了用户体验。
【附图说明】
[0024]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0025]图1是一种软时钟的实现方法图。
[0026]图2是系统有两个软时钟时的系统流程图。
[0027]图3是一种软时钟的应用装置的结构示意图。
[0028]图4是振汤电路的电路图。
【具体实施方式】
[0029]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
[0030]本申请实施例提供了一种软时钟的实现方法,如图1所示,包括以下步骤:
[0031 ]步骤1、装置供电后,通过硬件定时器和时钟频率维持一个系统时钟;
[0032]具体地,系统时钟是依据时钟频率,在硬件定时器的基础上实现的。
[0033]更具体地,所述系统时钟在上电后从零开始运行,设定硬件定时器的次数,所述硬件定时器溢出中断时更新系统时钟的值。例如系统时钟频率为48MHz,配置硬件定时器240000次时产生溢出中断,则硬件定时器的中断周期为240000*( 1/48000000) = 5ms,即每隔5ms产生一次中断,设定一个全局变量,每进入一次中断函数,则该变量增一,每增大200,表示系统时钟增加了 Is。每次中断函数处理时,更新系统时钟的值,然后硬件定时器恢复为初始值,并重复进行计数动作。
[0034]步骤2、所述M⑶接收软时钟指令,M⑶启动定时器逻辑;
[0035]具体地,所述MCU的定时器逻辑记录所述软时钟的当前系统时间与定时时长,并将超时时刻记录下来。当启动多个软时钟时,分别根据各个软时钟的当前系统时间与定时时长,计算出各个软时钟的超时时刻,并记录下来。
[0036]步骤3、所述M⑶在执行完定时器逻辑之后启动中断逻辑;
[0037]具体地,M⑶执行完定时器逻辑之后启动中断逻辑,所述MCU的中断逻辑循环查询根据定时时长与所述软时钟的当前系统时间计算出的超时时刻,若当前的系统时间大于等于所述软时钟的超时时刻,则表示软时钟时间到,关闭软时钟,并执行相应的应用逻辑;若当前系统时间小于所述软时钟的超时时刻,则系统继续循环查询。如果要获取剩余时间,用设定的超时时间减去当前系统时间即为剩余时间。仅需将所述软时钟的超时时刻与当前的系统时间进行对比,不需要同时开启多个计数器,只需要维持一个系统时钟,定时器中断函数处理的内容减少,提高了系统的执行效率,提升了用户的使用体验。
[0038]步骤4、所述中断逻辑完成后,MCU进行软时钟的超时判断,MCU根据判断结果发送指令。
[0039]具体地,所述中断逻辑完成后,MCU进行软时钟的超时判断,若软时钟的超时时刻大于等于当前系统时间,则关闭软时钟,如在USB设备中,显示交易超时,交易失败;若系统时间的软时钟未超时,则系统继续循环查询软时钟的超时时刻,若在指令完成时,系统查询软时钟的超时时刻未超时,则完成指令,进行下一步的逻辑操作。
[0040]如图2所示,为系统有两个软时钟时的系统流程图。
[0041 ]如图2所示,上电后,系统时钟从零开始运行,根据硬件定时器和时钟频率维持一个系统时钟。
[0042]当前系统时钟Sg_CurTime(即当前的系统时间SgjurTimehMCU接收一个软时钟指令,启动软时钟TMRl,M⑶启动定时器逻辑,定时时长为Tl,则可计算出TMRl的超时时刻为TMRlEndTime = g_CurTime+Tl。同样的,MCU接收另一个软时钟指令,设置另一个软时钟,启动软时钟TMR2,定时时长为T2,则可计算出TMR2的超时时刻为TMR2EndTime = g_CurTime+T2o
[0043]M⑶在执行完定时器逻辑之后启动软时钟TMRl和TMR2的
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1