微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 一种嵌入式基带系统定时器装置的研究

一种嵌入式基带系统定时器装置的研究

时间:12-05 来源:互联网 点击:


①在操作系统定时器链表中,所有定时器按照剩余超时时间顺序排列。
②系统默认低精度硬件定时器为主定时器,主定时器始终开启,每个周期长度为TL。
③主定时器超时后,系统定时器处理函数检查定时链表,若满足超时条件则启动该定时超时函数,同时对所有定时器剩余超时时间进行减TL操作。
④若链表头定时器不满足超时时间,则仅对所有定时器减TL操作。
⑤若链表定时器剩余超时时间小于TL,即该定时器为TH高精度要求定时器。此时,根据该高精度定时器的剩余超时时间TH,设置启动高精度硬件定时器(即辅定时器)。
⑥辅定时器在TH时间后超时,触发辅定时器超时函数。
系统中若存在连续多个TH定时器,则依据超时顺序依次设置辅定时器,完成对连续多个TH定时器定时激活操作。
本方案将定时器精度较低的主定时器作为系统准硬件定时器。为提高系统时钟,当软件定时器剩余超时时间小于主定时器最小时间片时,才启动定时精度较高的辅定时器,为定时精度高的软件定时器提高硬件定时。这样有效地减少了硬件定时器的无效中断次数,提高了系统效率。定时器原理图如图1所示。
2.2 实现流程
设置一个主定时器和一个辅定时器,则将主定时器作为系统的基准定时器。如果主定时器每次超时,则对软件定时器链表中的软件定时器剩余超时时间长度进行修改,将软件定时器超时时间长度减去主定时器最小时间片长度,作为该软件定时器的剩余超时时间长度。
如果剩余超时时间长度不大于0,则触发满足超时条件的软件定时器定时中断。如果软件定时器剩余超时时间长度小于主定时器最小时间片,则设置辅定时器定时长度为剩余超时时间长度最小的软件定时器的剩余超时时间长度,此时启动辅定时器。主定时器流程如图2所示。

如果辅定时器超时,则将对软件定时器链表中的软件定时器剩余超时时间长度进行修改。将软件定时器剩余超时时间长度减去辅定时器定时长度,作为该软件定时器剩余超时时间长度。如果超时时间长度不大于0,则触发满足条件的软件定时器定时中断。如果软件定时器剩余超时时间长度小于主定时器最小时间片,则设置辅定时器定时长度为剩余超时时间长度最小的软件定时器的剩余超时时间长度;否则,关闭辅定时器。辅定时器流程如图3所示。


2.3 软件定时器的增加
操作系统定时器增加时,根据新定时器的超时时间顺序,插入到系统定时器列表中,同时保证系统定时器剩余超时时间的有序性。若新插入定时器剩余超时时间小于TL,即插入定时器为高精度定时器,需要按照下列流程处理:
①如果插入前定时器列表头的定时器不是高精度定时器,则判断当前链表头定时器的剩余超时时间t是否大于新插入定时器时间x。其中,t为主定时器剩余超时时间;x为新插入定时器剩余超时时间;m为当前时刻,10是指TD—SCDMA的定时精度为10 ms。
②若xt,则将该定时器插入到定时器列表头中,启动辅助定时器。
③若x≥t,则对新增定时器剩余超时时间按照公式x=x-t+10进行修正,再根据修正的值的大小,将其插入到链表头定时器后链表中,定时器增加流程1如图4所示。

如果插入前定时器列表头的定时器是高精度定时器,定时器增加流程2如图5所示。根据当前辅定时器超时时间时刻t与新插入定时器x超时时间关系进行处理,步骤如下:

①若xt,则调整辅定时器超时时间为x,同时修正链表中第二个元素剩余超时时间长为y—x。其中,t为辅定时器超时时间时刻,x为新加入定时器剩余超时时间。
②若x≥t,修正新插入辅定时器超时时间为x=x-t,同时根据当前x的值按超时顺序将其插入到队列中。

结语
在嵌入式系统的设计中,很多应用中的时间特性都是很重要的参数,尤其在TD—LTE/TD—SCDMA双模基带系统的开发中显得尤为重要。在基带操作系统中,一般维护的一个定时器列表无法满足定时器需求。若设置定时器时间较短,则可能加重系统中断服务程序的负荷,若设置时间片较长,则无法满足协议时间的精度要求。故本优化方案中,在高精度定时器达到超时时刻时,才启动辅定时器,用辅定时器控制触发高精度定时器的超时动作,减少辅定时器的中断次数。另外,也不需要动态调整主定时器的时钟设置,可以保证操作系统软时钟稳定、准确,能够同时满足多模终端对操作系统定时器的要求。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top