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