一種嵌入式基帶系統定時器裝置的研究
摘要:在TD—LTE多模基帶系統中,不同的網絡模式協議時間對定時器的要求有所不同。實時時延處理是通信協議的基本組成部分,直接體現協議的時序關系。而定時又是時延的核心內容,故定時器在通信協議的開發中有著至關重要的作用。本文描述了一種嵌入式系統定時器的實現方法,能有效地減少系統無效中斷次數,提高系統效率。
關鍵詞:基帶系統;嵌入式系統;定時器;系統效率
引言
在嵌入式系統中,通常都會采用實時操作系統,而實時操作系統依賴于系統時鐘進行任務切換的控制。系統時鐘是特定的周期性中斷,系統時鐘的周期取決于不同的實時操作系統需求,通常嵌入式實時操作系統的系統時鐘周期為10~200 ms。系統時鐘使得內核可以將任務延時若干個系統時鐘周期,在當前任務等待事件發生時,提供等待超時依據。系統時鐘的周期越小,系統調度的時間精度越高,但由于每個系統周期都會產生中斷,因而帶來的系統額外開銷越大。在本文中提出了一種嵌入式系統中定時器的實現方法,在能夠準確反映協議內容的前提下,減少無效中斷次數,解決多模系統下高效與高精度定時器沖突問題,提高定時器的實現效率,從而提高整個系統的效率。
1 原始定時器方案
在不同的嵌入式系統中,不同的應用、事件可能存在不同的定時精度的要求,而嵌入式系統的定時精度取決于硬件定時器的精度,因此硬件定時器的精度必須能夠滿足嵌入式系統中最高的定時精度。對于TD—LTE/TD—SCDMA雙模基帶系統,TD—LTE協議棧事件需要1 ms級別的定時精度,而TD—SCDMA協議時間僅僅需要10ms級別的定時精度。
對于存在多種定時精度要求的嵌入式系統,目前的方案對定時器的實現方法是,采用一個能夠滿足系統最高定時精度要求的硬件定時器作為系統的基準定時器,以提供操作系統所需的系統時鐘和軟件定時器的時鐘源。這種實現方法能夠滿足大多數系統的定時器需求,但存在問題。
由于作為基準定時器的硬件定時器需要一直處于啟動狀態,基準定時器在每個最小時間片都會產生硬件定時中斷,在沒有高定時精度要求的軟件定時器激活的情況下,基準定時器會產生大量無效的中斷(當前的硬件定時器中斷超時處理中,若沒有軟件定時器超時,則系統判決
后,直接退出,不觸發任何軟件定時器中斷)。
在TD—LTE/TD—SCDMA雙模基帶系統中,如果使用最小時間片為1 ms的硬件定時器作為基準定時器,與使用10 ms的硬件定時器作為基準定時器相比,單位時間內其基準定時器的硬件定時中斷次數增大了10倍;而在實際使用中發現,90%的硬件定時中斷是無效中斷,這些無效中斷浪費了大量的系統資源,降低了系統效率。
2 定時器優化方案
本文提出了一種嵌入式系統定時器實現方法,在系統中設置一個主定時器及一個輔定時器,將主定時器作為系統的基準定時器。主定時器超時的時候,修改剩余超時時間長度,并且剩余超時時間長度不小于主定時器最小時間片的軟件定時器,剩余超時時間長度;如果有軟件定時器剩余超時時間長度小于主定時器最小時間片,且不為0,則啟動輔定時器為該軟件定時器提供硬件定時。如果輔定時器超時,則修改剩余超時時間長度小于主定時器最小時間片的軟件定時器剩余超時時間長度;如果還有其他軟件定時器剩余超時時間長度小于主定時器最小時間片且不為0,修改輔定時器定時長度,否則關閉輔定時器。
2.1 定時器實現原理
系統時鐘的基準時鐘觸發是由嵌入式系統的硬件定時器提供的,硬件定時器同時還為嵌入式系統的軟件定時器提供時鐘源,操作系統可以創建多個軟件定時器,軟件定時器的最小時間片取決于硬件定時器的最小時間片(軟件定時器的超時時間長度為硬件定時器最小時間片的整數倍)。操作系統可以在需要的時候執行軟件定時器的創建、打開、關閉和刪除操作,為了方便實現,操作系統管理軟件定時器的一種方法是以軟件定時器鏈表的形式來管理軟件定時器。
軟件定時器鏈表中各軟件定時器根據剩余超時時間長度順序排序,剩余超市時間長度小的軟件定時器排在鏈表前面,剩余超時時間大的軟件定時器排在鏈表后面。硬件定時器每次超時時,都會對軟件定時器鏈表中的各個軟件定時器剩余超時時間長度進行修改(將軟件定時器剩余超時時間長度減去本次硬件定時器超時時間長度,作為該軟件定時器的剩余超時時間長度)。
在本方案中,設置兩個定時器,即主定時器和輔定時器,并將主定時器作為系統的基準定時器。其中,主定時器是低精度硬件定時器,輔定時器為高精度硬件定時器;低精度硬件定時器用于管理系統所有軟定時器(包括高精度定時和低精度定時)。高精度硬件定時器用于管理高精度定時裝置,并且主定時器的定時精度不低于實時操作系統的系統時鐘精度要求的硬件定時器,輔定時器的定時精度不低于嵌入式系統最高定時精度要求的硬件定時器。定時器原理如圖1所示。設置系統高精度時間片為TH(TieketHigh),低精度時間片為TL(TicketLow),具體描述如下:
評論