一种实时性领域的多优先级硬件定时器
未命名
10-09
阅读:138
评论:0
1.本发明属于实时性技术领域,涉及一种实时性领域的多优先级硬件定时器。
背景技术:
2.实时系统中通常存在多个具有不同优先级和执行周期的任务。若要保证系统的实时性和可靠性,就必须进行严格的任务调度和控制。在这种情况下,定时器是一个非常重要的工具,它可以定时触发一些行为,如周期性任务和延迟等待等。传统的定时器主要分为软件定时器和硬件定时器。
3.传统的软件定时器通常是基于软件实现的,其实现方式一般如下:定义一个全局变量timer_counter,表示定时器计数器,用于记录系统启动以来经过的时间,初始值为0。定义一个定时器处理函数timer_isr,用于处理定时器中断。该函数将根据定时器的设定,在定时器到达设定时间时触发中断。定义一个定时器初始化函数timer_init,用于初始化定时器相关的参数。该函数需要设置定时器的计数模式、计数速率、定时时间等参数,以及关联定时器处理函数timer_isr。在系统初始化时,调用定时器初始化函数timer_init进行初始化。在系统运行时,定时器计数器timer_counter将持续不断地累加。当定时器计数器达到设定的定时时间时,定时器中断被触发,执行定时器处理函数timer_isr。在定时器处理函数timer_isr中,根据具体的需求进行相关处理。例如,可以将定时器中断视为一个事件,通知相关的任务进行处理。
4.传统软件定时器存在以下问题:传统定时器的精度受到系统时钟精度和操作系统调度延迟等因素的影响,无法满足实时系统对高精度计时的需求。通常是使用链表和数组等数据结构来管理定时器,这种方式需要遍历所有定时器来查找和处理,效率较低。通常是用户态的,如果定时器处理函数有问题,可能会导致系统崩溃或出现安全漏洞。通常只支持固定的触发方式和计时模式,无法灵活地扩展和定制。通常只能支持单一优先级,无法区分不同任务的定时器的优先级,因而会造成以下问题:低优先级任务的定时器中断会对高优先级任务的执行造成干扰,影响高优先级任务的响应时间。优先级反转,低优先级先于高优先级响应,在调度层面看相当于低优先级任务抢占了高优先级任务,影响调度性能以及实时性。
5.传统的硬件定时器通常由一个或多个计数器、一个或多个比较器和一个或多个中断控制器组成,其实现方式如下:定义一个或多个计数器寄存器,用于计数。计数器通常是一个定长的二进制计数器,当计数器溢出时,将产生一个中断。定义一个或多个比较器寄存器,用于设定定时器的触发时间。当计数器的值等于比较器的值时,将产生一个中断。定义一个中断控制器,用于控制定时器中断的触发和处理。中断控制器可以接收来自计数器和比较器的中断信号,并将中断信号转发给处理器。在系统初始化时,配置定时器的计数模式、计数速率、比较器的设定值等参数。在系统运行时,定时器的计数器将持续不断地累加,当计数器的值等于比较器的设定值时,定时器中断将被触发。在定时器中断处理函数中,根据具体的需求进行相关处理。例如,可以将定时器中断视为一个事件,通知相关的任务进行
处理。
6.传统硬件定时器存在以下问题:传统的硬件定时器通常只能支持单一优先级,无法进行多优先级调度和管理,也无法区分不同任务的定时器。这使得它难以用于复杂的多任务处理系统。传统的硬件定时器通常需要在初始化时设定定时器的触发时间,一旦设定,就无法在运行时动态调整。这使得它难以应对动态的系统需求。
技术实现要素:
7.为解决上述技术问题,本发明的目的是提供一种实时性领域的多优先级硬件定时器,能够支持多任务和多优先级,能够区分不同任务,支持多种计时模式和触发方式,能够满足不同实时任务的需求。
8.本发明提供一种实时性领域的多优先级硬件定时器,包括相互连接的定时器单元和优先级控制单元;
9.所述定时器单元包括:计时模块以及与所述计时模块连接的多个比对寄存器;计时模块和每个比对寄存器构成一个硬件定时器,计时模块在被优先级控制单元使能后以特定的频率进行计数,当计时模块中的值大于或等于比对寄存器的值时,相应的比对寄存器便会产生定时中断信号;
10.所述优先级控制单元包括:中断仲裁模块、低优先级屏蔽寄存器、计时使能寄存器、定时器id寄存器和多个优先级配置寄存器;所述低优先级屏蔽寄存器分别与多个比对寄存器、多个优先级配置寄存器以及中断仲裁模块连接;
11.所述计时器使能寄存器用于对计时模块进行使能;所述优先级配置寄存器用于根据处理器的指令对相应的比对寄存器进行优先级的配置;所述低优先级屏蔽寄存器用于对低优先级的硬件定时器的中断信号进行屏蔽;所述中断仲裁模块用于对硬件定时器的中断信号进行仲裁,经过中断仲裁后将定时器id寄存器内容更新为优先级最高的硬件定时器的id号,并将该硬件定时器的中断信号转发给处理器。
12.进一步的,当在执行高优先级任务时,处理器将低优先级屏蔽寄存器更新为该高优先级任务的优先级,所有低于该优先级的定时中断信号都将被屏蔽。
13.进一步的,处理器为低优先级屏蔽寄存器、计时使能寄存器、定时器id寄存器、优先级配置寄存器以及比对寄存器分配相应的访问地址;其中优先级配置寄存器和比对寄存器按顺序进行编址,硬件定时器的id号从0开始进行分配;
14.所述处理器通过内存映射输入输出的方式根据分配的访问地址对多优先级硬件定时器的所有寄存器进行读写。
15.进一步的,处理器通过写入与硬件定时器对应的优先级配置寄存器来将该硬件定时器配置为不同的优先级,并且在运行时动态调整硬件定时器的优先级;优先级配置寄存器的最高位用于记录所对应的硬件定时器当前是否空闲,其余位用于记录对应的硬件定时器的优先级;如果硬件定时器空闲,那么该硬件定时器产生的中断信号也会被低优先级屏蔽寄存器屏蔽。
16.进一步的,定时器id寄存器中存储的硬件定时器的id号会被处理器读取,用于判定该硬件定时器的定时中断属于哪个任务。
17.进一步的,当某个任务需要申请一个硬件定时器时,首先按照id号的顺序读取第
一个硬件定时器所对应的优先级配置寄存器的值,并根据该优先级配置寄存器的值的最高位是否为0来判断所对应的硬件定时器是否空闲;如果空闲,则分配成功,修改该优先级配置寄存器的最高位为1,同时将该硬件定时器的优先级一同写入优先级配置寄存器;如果不空闲,则访问下一个硬件定时器所对应的优先级配置寄存器再次进行判断。
18.进一步的,所述计时模块和每个比对寄存器通过内存映射输入输出的方式进行读写。
19.本发明的一种实时性领域的多优先级硬件定时器,至少具有以下
20.有益效果:
21.1.与软件定时器相比,本发明的多优先级硬件定时器具有高精度的特点,可以根据需求,对定时器的计时精度进行配置,上限仅受处理器的时序及硬件晶振的最高频率的限制。
22.2.无需对定时器进行查找和处理。定时器将直接由硬件进行管理,大大提高了定时器的处理效率。
23.3.支持多任务和多优先级,可以区分定时器单元中不同任务的硬件定时器,也可以根据任务的不同需求进行优先级的配置,更加灵活适应各种任务的要求。同时将硬件定时器按照优先级进行分类和管理,不同优先级的硬件定时器可以独立触发,并且中断仲裁模块可以通过判断优先级来决定是否响应对应的硬件定时器中断,进而决定是否执行调度算法进行调度和处理。避免了低优先级任务对高优先级任务的干扰,也避免了可能出现的系统响应缓慢甚至出现死锁等问题,大大提高了系统的实时性和可靠性。
24.4.软件层面的处理函数,是在操作系统的内核上实现的,既提高了定时器的处理效率,也保证了系统的安全性。
25.5.具有灵活的配置和扩展方式,硬件方面通过类似加速器的实现方式,具有灵活且可扩展的特性,用户可以根据自己的需求进行定制化的配置和调整,甚至增加新的功能;软件方面则更为灵活,用户既可以对该定时器直接进行使用,也可以基于这些定时器,进行封装,设计新的定时器库,充分发挥该定时器的特性。
26.6.可动态对定时器的时间以及优先级进行调整,避免了传统的硬件定时器在这方面存在的问题。
27.7.计时使能寄存器的设计,使得实际进行多任务配置和执行时更加符合理论研究时的假设条件,即从时间轴上来看,真正做到了多个任务同时释放执行。
28.8.软件定时器需要占用cpu资源来进行计时操作,而本发明的多优先级硬件定时器由硬件控制,不需要占用cpu资源,可以让cpu专注于其他任务的执行。
29.9.本发明的多优先级硬件定时器由硬件控制,不受软件的影响,可以实现更高的实时性,能够更精确地执行计时任务。
30.10.本发明的多优先级硬件定时器可以更好地利用系统资源,将高优先级任务与低优先级任务进行有效区分,减少了低优先级任务对高优先级任务的干扰,提高了高优先级任务的响应速度。
附图说明
31.图1是本发明的一种实时性领域的多优先级硬件定时器的结构框图;
32.图2是本发明的优先级控制单元的结构框图。
具体实施方式
33.如图1和2所示,本发明的一种实时性领域的多优先级硬件定时器,包括相互连接的定时器单元和优先级控制单元。所述定时器单元包括:计时模块以及与所述计时模块连接的多个比对寄存器;计时模块和每个比对寄存器构成一个硬件定时器,计时模块在被优先级控制单元使能后以特定的频率进行计数,当计时模块中的值大于或等于比对寄存器的值时,相应的比对寄存器便会产生定时中断信号。
34.所述优先级控制单元包括:中断仲裁模块、低优先级屏蔽寄存器、计时使能寄存器、定时器id寄存器和多个优先级配置寄存器;所述低优先级屏蔽寄存器分别与多个比对寄存器、多个优先级配置寄存器以及中断仲裁模块连接。所述计时器使能寄存器用于对计时模块进行使能;所述优先级配置寄存器用于根据处理器的指令对相应的比对寄存器进行优先级的配置;所述低优先级屏蔽寄存器用于对低优先级的硬件定时器的中断信号进行屏蔽;所述中断仲裁模块用于对硬件定时器的中断信号进行仲裁,经过中断仲裁后将定时器id寄存器内容更新为优先级最高的硬件定时器的id号,并将该硬件定时器的中断信号转发给处理器。
35.具体实施时,所述计时模块和每个比对寄存器通过内存映射输入输出的方式进行读写。
36.具体实施时,当在执行高优先级任务时,处理器将低优先级屏蔽寄存器更新为该高优先级任务的优先级,所有低于该优先级的定时中断信号都将被屏蔽。
37.具体实施时,处理器为低优先级屏蔽寄存器、计时使能寄存器、定时器id寄存器、优先级配置寄存器以及比对寄存器分配相应的访问地址;其中优先级配置寄存器和比对寄存器按顺序进行编址,硬件定时器的id号从0开始进行分配;所述处理器通过内存映射输入输出的方式根据分配的访问地址对多优先级硬件定时器的所有寄存器进行读写。
38.具体实施时,处理器通过写入与硬件定时器对应的优先级配置寄存器来将该硬件定时器配置为不同的优先级,并且在运行时动态调整硬件定时器的优先级;优先级配置寄存器的最高位用于记录所对应的硬件定时器当前是否空闲,其余位用于记录对应的硬件定时器的优先级;如果硬件定时器空闲,那么该硬件定时器产生的中断信号也会被低优先级屏蔽寄存器屏蔽。
39.具体实施时,定时器id寄存器中存储的硬件定时器的id号会被处理器读取,用于判定该硬件定时器的定时中断属于哪个任务。
40.实施例
41.当某个任务需要申请一个硬件定时器时,首先按照id号的顺序读取第一个硬件定时器所对应的优先级配置寄存器的值,并根据该优先级配置寄存器的值的最高位是否为0来判断所对应的硬件定时器是否空闲;如果空闲,则分配成功,修改该优先级配置寄存器的最高位为1,同时将该硬件定时器的优先级一同写入优先级配置寄存器;如果不空闲,则访问下一个硬件定时器所对应的优先级配置寄存器再次进行判断。
42.任务申请到一个定时器后,可以通过读取当前计时模块中的计数值,根据自己的定时需求,计算并配置相应的比对寄存器。例如:计时模块的计数频率为a(hz),当前计时器
模块的计数值为x,而该任务需要计时b(s),那么将x+a
×
b的值写入相应的比对寄存器即可。
43.当同一时间段内定时器单元产生多个中断信号时,低优先级屏蔽寄存器首先将优先级低于其优先级的硬件定时器发出的中断信号屏蔽掉,其余的中断信号进入优先级控制单元进行仲裁,选出优先级最高的中断信号发送给处理器,并将定时器id寄存器内容更新为优先级最高的硬件定时器的id号。处理器读取定时器id寄存器中存储的id号,判定该硬件定时器的定时中断属于哪个任务,并执行该任务。
44.具体实施时,任务如果要注销一个定时器的话,只需要将对应的优先级配置寄存器的最高位配置为0。
45.具体实施时,在任务执行开始时,可以将低优先级屏蔽寄存器配置为该任务的优先级,来将所有低优先级的定时器中断进行屏蔽,这样既避免了低优先级的定时器中断对当前任务的干扰,也避免了出现优先级反转的情况。
46.具体实施时,若运行过程中需要对任务的优先级进行调整,那么可以对所分配的硬件定时器的优先级配置寄存器进行修改。
47.具体实施时,若运行过程中需要对定时器时间进行调整,那么可以对所分配的硬件定时器的比对寄存器进行修改。
48.具体实施时,一些理论研究工作存在多个周期性任务同时释放执行的需求,但实际上的硬件定时器是一直在进行计时的,这便会导致各个任务释放执行的时间并不是相同的,但通过计时使能寄存器,可以做到所有任务创建完成后再开启计时,那么便能满足多个任务同时释放执行的需求,为相关理论研究消除了多个任务同时释放执行时存在的误差。并且计时使能寄存器的设计使用户对定时器的运用变得更为灵活。
49.本发明的一种实时性领域的多优先级硬件定时器主要由定时器单元和优先级控制单元构成,定时器单元用来进行定时,优先级控制单元用来实现定时器单元中计时模块的使能、优先级的配置、硬件定时器的分配以及低优先级硬件定时器的中断信号的屏蔽等功能。
50.本发明的一种实时性领域的多优先级硬件定时器中的寄存器可通过内存映射输入输出(memory-mapped i/o,mmio)的方式进行读写,也可以通过自定义指令的方式进行控制。
51.本发明的计时使能寄存器的设计,可以使用户对定时器的运用变得更为灵活,且能满足一些研究工作的需求。
52.本发明的低优先级屏蔽寄存器的设计,可以实现对低优先级硬件定时器的中断信号的屏蔽,这样既避免了低优先级的硬件定时器的中断信号对当前任务的干扰,也避免了出现优先级反转的情况。
53.本发明的优先级配置寄存器的设计,可以用来对硬件定时器的优先级进行配置,同时优先级配置寄存器的最高位作为硬件定时器的空闲标志位,可以将空闲标志修改操作与优先级分配操作合并为一个操作进行执行。
54.本发明的定时器id寄存器的设计,实现了对不同硬件定时器的中断的区分,中断处理程序通过读取该寄存器,便可得知该硬件定时器的中断属于哪个任务。这种设计既降低了硬件接口的复杂度,也使得整个中断处理流程更加简洁直观。
55.本发明的多优先级硬件定时器每次产生的操作都会基于当前各寄存器的配置进行。得益这种实现逻辑,定时器的优先级和时间均可在运行时进行动态调整。
56.以上所述仅为本发明的较佳实施例,并不用以限制本发明的思想,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
1.一种实时性领域的多优先级硬件定时器,其特征在于,包括相互连接的定时器单元和优先级控制单元;所述定时器单元包括:计时模块以及与所述计时模块连接的多个比对寄存器;计时模块和每个比对寄存器构成一个硬件定时器,计时模块在被优先级控制单元使能后以特定的频率进行计数,当计时模块中的值大于或等于比对寄存器的值时,相应的比对寄存器便会产生定时中断信号;所述优先级控制单元包括:中断仲裁模块、低优先级屏蔽寄存器、计时使能寄存器、定时器id寄存器和多个优先级配置寄存器;所述低优先级屏蔽寄存器分别与多个比对寄存器、多个优先级配置寄存器以及中断仲裁模块连接;所述计时器使能寄存器用于对计时模块进行使能;所述优先级配置寄存器用于根据处理器的指令对相应的比对寄存器进行优先级的配置;所述低优先级屏蔽寄存器用于对低优先级的硬件定时器的中断信号进行屏蔽;所述中断仲裁模块用于对硬件定时器的中断信号进行仲裁,经过中断仲裁后将定时器id寄存器内容更新为优先级最高的硬件定时器的id号,并将该硬件定时器的中断信号转发给处理器。2.如权利要求1所述的实时性领域的多优先级硬件定时器,其特征在于,当在执行高优先级任务时,处理器将低优先级屏蔽寄存器更新为该高优先级任务的优先级,所有低于该优先级的定时中断信号都将被屏蔽。3.如权利要求1所述的实时性领域的多优先级硬件定时器,其特征在于,处理器为低优先级屏蔽寄存器、计时使能寄存器、定时器id寄存器、优先级配置寄存器以及比对寄存器分配相应的访问地址;其中优先级配置寄存器和比对寄存器按顺序进行编址,硬件定时器的id号从0开始进行分配;所述处理器通过内存映射输入输出的方式根据分配的访问地址对多优先级硬件定时器的所有寄存器进行读写。4.如权利要求3所述的实时性领域的多优先级硬件定时器,其特征在于,处理器通过写入与硬件定时器对应的优先级配置寄存器来将该硬件定时器配置为不同的优先级,并且在运行时动态调整硬件定时器的优先级;优先级配置寄存器的最高位用于记录所对应的硬件定时器当前是否空闲,其余位用于记录对应的硬件定时器的优先级;如果硬件定时器空闲,那么该硬件定时器产生的中断信号也会被低优先级屏蔽寄存器屏蔽。5.如权利要求1所述的实时性领域的多优先级硬件定时器,其特征在于,定时器id寄存器中存储的硬件定时器的id号会被处理器读取,用于判定该硬件定时器的定时中断属于哪个任务。6.如权利要求3所述的实时性领域的多优先级硬件定时器,其特征在于,当某个任务需要申请一个硬件定时器时,首先按照id号的顺序读取第一个硬件定时器所对应的优先级配置寄存器的值,并根据该优先级配置寄存器的值的最高位是否为0来判断所对应的硬件定时器是否空闲;如果空闲,则分配成功,修改该优先级配置寄存器的最高位为1,同时将该硬件定时器的优先级一同写入优先级配置寄存器;如果不空闲,则访问下一个硬件定时器所对应的优先级配置寄存器再次进行判断。7.如权利要求1所述的实时性领域的多优先级硬件定时器,其特征在于,所述计时模块和每个比对寄存器通过内存映射输入输出的方式进行读写。
技术总结
本发明的一种实时性领域的多优先级硬件定时器,包括定时器单元和优先级控制单元;定时器单元包括:计时模块和多个比对寄存器;计时模块和每个比对寄存器构成一个硬件定时器,当计时模块中的值大于或等于比对寄存器的值时产生中断信号;优先级控制单元包括:中断仲裁模块、低优先级屏蔽寄存器、计时使能寄存器、定时器ID寄存器和优先级配置寄存器;计时器使能寄存器对计时模块进行使能;优先级配置寄存器用于配置比对寄存器的优先级;低优先级屏蔽寄存器用于屏蔽低优先级的中断信号;中断仲裁模块用于对硬件定时器的中断信号进行仲裁,经过中断仲裁后将定时器ID寄存器内容更新为优先级最高的硬件定时器的ID号,将该中断信号转发给处理器。发给处理器。发给处理器。
技术研发人员:王书墨 倪仁涛 冯庆巍 邓庆绪 刘向峰 邱芃尧 张皓天
受保护的技术使用者:东北大学
技术研发日:2023.07.03
技术公布日:2023/10/8
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种褐菖鮋鱼苗的运输装置的制作方法 下一篇:一种兼容硬盘托架的制作方法
