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