一种调度运动控制器与伺服轴的连接和信息交换的时间片的制作方法

文档序号:15205192发布日期:2018-08-21 07:53阅读:134来源:国知局

本发明涉及一种时间片,尤其涉及一种调度运动控制器与伺服轴的连接和信息交换的时间片。



背景技术:

时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法。每个进程被分配一时间段,称作它的时间片,即该进程允许运行的时间。

如果在时间片结束时进程还在运行,则cpu将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则cpu当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。

时间片轮转调度中唯一有意义的一点是时间片的长度。从一个进程切换到另一个进程是需要一定时间的、保存和装入寄存器值及内存映像,更新各种表格和队列等。



技术实现要素:

为了方便调度运动控制器与伺服轴的连接和信息交换,本发明提供一种调度运动控制器与伺服轴的连接和信息交换的时间片。

本发明采用以下技术方案实现:一种时间片,其包括管理单元phase_period_counter、定时器ts_timer、双比较器compare_unit;管理单元phase_period_counter是一个相位、周期及计数器的管理单元,用来管理时间片是工作在相位状态还是周期计数状态;双比较器compare_unit每接收一个中断信号输出两个中断信号:ts_int_0和ts_int_1;

管理单元phase_period_counter接收相位偏移值t_phase、周期运行时间长度值t_period、同步控制时钟syno、单个脉冲信号load_phase、全局使能时间片通道信号global_en、使能定时器信号timer_en,并输出相位偏移phase_period_value、定时器ts_timer清零并重新开始计时信号set_ts_0、装载比较值ts_timer_en、相位偏移状态激活信号phase_active;

定时器ts_timer接收所述使能定时器信号timer_en、所述计时信号set_ts_0、所述装载比较值ts_timer_en,并输出过程值ts_timer_value、

双比较器compare_unit接收所述使能定时器信号timer_en、两个比较器的给定值comp_value_1与comp_value_2、两个比较器的使能comp_en_1与comp_en_2、所述计时信号set_ts_0、所述装载比较值ts_timer_en,并输出两个中断信号ts_int_0、ts_int_1;

其中,相位偏移状态激活信号phase_active一旦激活,定时器ts-timer、双比较器comparator_unit将中断;两个中断信号ts_int_0、ts_int_1输出到中断控制器;第一个同步时钟控制信号syno到来之际,全局使能时间片通道信号global_en=1、使能定时器信号timer_en=1,则管理单元phase_period_counter工作在period状态,输出相位偏移phase_period_value为相位偏移值t_phase,同时计时信号set_ts_0=1使定时器ts-timer清零并从0开始增计数;计时信号set_ts_0=1同时装载比较值ts_timer_en=1,在定时器ts-timer开始计数之前装载两个比较器的给定值comp_value_1、comp_value_2,此后的周期运行时间长度值t_period内,定时器ts-timer计数,当定时器ts-timer的当前值ts_count=comp_value_1时,输出中断信号ts_int_0;当定时器ts-timer的当前值ts_count=comp_value_2时,输出中断信号ts_int_1。

作为上述方案的进一步改进,相位偏移值t_phase是同步控制时钟syno的整数倍,t_phase=n×syno,代表相位偏移值t_phase的大小等于n个同步控制时钟脉冲的长度;相位偏移值t_phase用来纠正因系统抖动而造成的中断信号偏差。

作为上述方案的进一步改进,相位偏移值t_phase是动态改变的,并在下一个周期运行时间长度值t_period到来之前,计时信号set_ts_0=0,中断运行定时器ts_timer、比较器comparator_unit,中断时间=相位偏移值t_phase。

作为上述方案的进一步改进,周期运行时间长度值t_period是同步控制时钟syno的整数倍,t_period=m×syno,就是代表周期运行时间长度值t_period的大小等于m个同步控制时钟脉冲的长度;在周期运行时间长度值t_period的时间段内,周期地产生中断信号。

作为上述方案的进一步改进,周期运行时间长度值t_period是动态改变的,管理单元phase_period_counter会在当前运行周期结束后使用新的数值;在计时信号set_ts_0=1的时候并且定时器清零重新计时之前把新的比较值输出给双比较器compare_unit。

作为上述方案的进一步改进,两个比较器的给定值comp_value_1与comp_value_2是动态改变的,每个周期运行时间长度值t_period的时间段内,双比较器compare_unit会自动计算新的比较值,然后在装载比较值ts_timer_en=1的时候装载新的比较值。

作为上述方案的进一步改进,在第一个周期运行时间长度值t_period过程中,系统计算出中断输出因为抖动需要偏移x个syno,才能保证双比较器compare_unit输出的中断信号满足同步性要求时,在第一个周期运行时间长度值t_period结束时,全局使能时间片通道信号global_en=1、使能定时器信号timer_en=0、单个脉冲信号load_phase=1,则管理单元phase_period_counter工作在period状态,相位偏移phase_period_value为相位偏移值t_phase,同时相位偏移状态激活信号phase_active=1、装载比较值ts_timer_en=0,禁用定时器ts_timer和双比较器compare_unit,计时信号set_ts_0=1、在工作状态开始之前装载最新的comp_value_1、comp_value_2,此后的x个同步控制时钟syno内,没有中断信号输出。

进一步地,在第一个周期运行时间长度值t_period结束之后,第二个周期运行时间长度值t_period开始之前,全局使能时间片通道信号global_en=1、使能定时器信号timer_en=1、单个脉冲信号load_phase=0,管理单元phase_period_counter再次工作在period状态,在新的周期运行时间长度值t_period开始之前,装载最新的comp_value_1、comp_value_2。

本发明通过每个时间片通道输出两个中断,进而调度运动控制器与伺服轴的连接和信息交换,时间片的数量是根据进程的数量紧密关联的,运动控制器能携带几个轴,就需要几个时间片。运动控制核心程序就是在时间片规定的时间内执行时间片中断程序_n,控制驱动轴数的轮转。因此,本发明的研究核心是:通过对多个时间片的管理实现对伺服轴的轮流调度,并通过动态调节每个时间片内相位偏移值t_phase的长度,使得各个时间片同步,由此实现各个伺服轴的同步运行。

附图说明

图1是应用本发明时间片的arm内核的运动控制框架。

图2是图1中时间片管理的结构示意图。

图3是图2中时间片管理的细化结构图。

图4是图3中时间片的结构示意图。

图5是图3时间片管理的信号时序图。

具体实施方式

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

本发明时间片及应用于若干所述时间片的管理与控制方法应用于arm内核的运动控制框架(仅运动控制有关),如图1所示。arm内核,通过指令缓存i-cache、地址缓存d_cache与片内ahb_master通讯。

本发明的研究核心是:通过对多个时间片的管理实现对伺服轴的轮流调度,并通过动态调节每个时间片内相位偏移值t_phase的长度,使得各个时间片同步,由此实现各个伺服轴的同步运行。本发明以下实施例的内容虽然以arm内核为例,但不局限于arm内核,本发明旨在描述一种方法,事实上这种方法同样可以适用于mips内核cpu、×86内核cpu等。

在图1中,中断控制单元、运行时管理、时间片管理均通过各自的ahb接口对驱动器端口控制_pll和驱动器端口mac+phy进行控制。

驱动器端口mac+phy输出接驱动器端口,比如rj45。中断控制单元、运行时管理、时间片管理、驱动器端口控制_pll和驱动器端口mac+phy均通过各自的ahb接口经ahb_if转换,与ahb_master通讯。

本实施例将详细描述时间片及应用于若干所述时间片的管理与控制方法如何控制和规划驱动器端口控制_pll和驱动器端口mac+phy。

如图2所示,时间片管理策略,每个时间片通过时间片ahb_接口单元与ahb_bus双向通讯,每个时间片各自输出两个中断,时间片_0和时间片_1。中断信号统一输送到中断控制总线上,由中断控制单元统一调度。

时间片的数量是根据进程的数量紧密关联的,运动控制器能携带几个轴,就需要几个时间片。运动控制核心程序就是在时间片规定的时间内执行时间片中断程序_n,控制驱动轴数的轮转。时间片总数=1+运动控制器携带轴的数量。

比如,西门子数控系统sinumerikncu730.3,最大可控轴数31,则运动控制的时间片数量=31+1=32个。有一个时间片运行着运动控制核心程序,不参与控制驱动轴数的轮转。在图2中,n——时间片数量。图2细化后的图如图3所示。

在图3中,驱动器端口控制及驱动器端口控制_pll,虚线框中=时间片单元,时间片通道,n个,其同步控制时钟来自驱动器端口控制_pll,运行时管理、驱动器端口控制的同步控制时钟来自驱动器端口控制_pll。

ts_int_00、ts_int_01:ts=timeslice缩写,以下同;int=interrupt缩写,以下同。ts_int_00=时间片0的0号中断,ts_int_01=时间片0的1号中断。以下同。

tsm=timeslicemanagement,时间片管理缩写int_tsm0=中断控制_时间片0,即中断控制单元内,对时间片0号通道的中断控制管理。以下同。

所有:运行时管理、中断控制管理、驱动器端口控制及驱动器端口控制_pll都是通过对应的ahb-if接口单元,管理控制着时间片单元。

请参阅图4,单个的时间片结构为:每一个时间片=管理单元phase_period_counter、定时器ts_timer、双比较器compare_unit,这是本发明的特色之一,与目前的时间片均不同。

在图4中,phase_period_counter:是一个相位、周期及计数器的管理单元,用来管理时间片是工作在相位状态还是周期计数状态。

comparator_unit:是一个双比较器,每个比较器输出一个中断信号,双比较器输出两个中断信号:ts_int_0和ts_int_1。

syno:同步控制时钟,来自驱动器端口控制_pll,用途:用来同步所有时间片的输出。这也是本发明的特色之一,可以采用多个时间片进行有效管理与控制,达到本发明的有益效果。

global_en:全局使能时间片通道,global_en='1',在初始化的同时使能所有时间片通道的。global_en=0,将所有的时间切片复位,但保留相位、周期等寄存器的值。

phase:向phase_period_counter管理单元输入相位偏移值t_phase,t_phase是同步控制时钟syno的整数倍,比如t_phase=3×syno,就是代表相位值的大小等于3个同步控制时钟脉冲的长度。相位偏移值用来纠正因系统抖动而造成的中断信号偏差,即人为地增加一段偏移量,从而人为地制造中断输出偏移,从而是输出中断信号满足同步要求。相位偏移值t_phase是动态改变的,有、还是没有相位偏移值t_phase、t_phase值是多少都由软件自动计算,并在下一个t_period到来之前,set_ts_0=0,中断运行定时器定时器ts-timer、比较器comparator_unit,中断时间=t_phase。这也是本发明的特色之一,是本发明运行的关键。

period:向phase_period_counter管理单元输入周期运行时间长度值t_period,t_period是同步控制时钟syno的整数倍,比如t_period=9×syno,就是代表相位值的大小等于m=9个同步控制时钟脉冲的长度。用于周期运行,在t_period时间段内,周期地产生中断信号。t_period是动态改变的,由软件自动计算,phase_period_counter会在当前运行周期结束(phase_period_counter经过零点位置,)后使用新的数值。在set_ts_0=1的时候并且定时器清零重新计时之前把新的比较值输出给比较器单元。这也是本发明的特色之一,是本发明运行的关键。

load_phase:单个脉冲信号,激活phase_active,使得phase_period_counter管理单元工作在phase状态。

timer_en:使能定时器。

phase_period_value:phase_period_counter管理单元输出的相位偏移t_phase或定时周期设定值t_period。

ts_timer_value:定时器ts_timer输出的定时器过程值。

comp_value_1、comp_value_2:给比较器输入的给定值1和给定值2,给定值1/2是动态改变的,每个t_period内,软件都会自动计算新的比较值,然后在ts_timer_en=1的时候装载新的比较值。这也是本发明的特色之一。

comp_en_1、comp_en_2:比较器1使能、比较器2使能,用于产生中断信号1、中断信号2。

phase_active:相位偏移状态激活,一旦激活,定时器ts-timer、比较器comparator_unit将中断。

ts_timer_en:比较器comparator_unit使能,装载比较值comp_value_1、comp_value_2。

set_ts_0:定时器ts-timer清零并重新开始计时。

ts_int_0、ts_int_1:时间片管理单元输出到中断控制器的中断信号0、中断信号1。

请结合图3、图5举例说明本发明的应用于若干所述时间片的管理与控制方法。在图5中,从左到右,第一个同步时钟控制信号syno到来之际,global_en=1、timer_en=1、phase_period_counter管理单元工作在period状态,输出:phase_period_value为t_period(图中t_period=9×syno)、同时set_ts_0=1使能定时器ts-timer、定时器清零并从0开始增计数,set_ts_0=1同时ts_timer_en=1,在定时器开始计数之前装载比较值comp_value_1、comp_value_2,此后的t_period内,定时器计数,当定时器的当前值ts_count=comp_value_1时,输出ts_int_0。

当定时器的当前值ts_count=comp_value_2时,输出ts_int_1。

在此过程中系统自动计算下一个周期的comp_value_1、comp_value_2、t_period、t_phase。

在第一个t_period过程中,系统计算出中断输出因为抖动需要偏移3个syno,才能保证比较器输出的中断信号满足同步性要求。因此,在第一个t_period结束时(定时器ts-timer取得最大值),global_en=1、timer_en=0、load_phase=1,phase_period_counter管理单元工作在phase状态,phase_period_value为t_phase(图中t_phase=3×syno),同时phase_active=1、ts_timer_en=0,禁用定时器和比较器,set_ts_0=1、在phase状态开始之前装载最新的comp_value_1、comp_value_2,此后的3个syno内,没有中断输出。

t_phase结束之后,第二个t_period开始之前,global_en=1、timer_en=1、load_phase=0,phase_period_counter管理单元再次工作在period状态,在新的t_period开始之前,装载最新的comp_value_1、comp_value_2,以下内容同第一个t_period。

综上所述,本发明的有益效果为:通过时间片管理实现对伺服轴的轮流调度(控制),但更重要的意义是通过动态调节每个时间片内t_phase的长度,使得各个时间片同步,由此实现各个伺服轴的同步运行。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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