專利名稱:一種終端無線通信協(xié)議棧軟件定時(shí)器管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通訊終端,具體涉及一種終端無線通信協(xié)議棧軟件定時(shí)器管理方法。
背景技術(shù):
在嵌入式系統(tǒng)軟件設(shè)計(jì)和實(shí)現(xiàn)無線通信協(xié)議棧時(shí),我們需要使用定時(shí)器模塊來管理無線通信協(xié)議中規(guī)定的定時(shí)器單元Timer。定時(shí)器模塊通常使用嵌入式系統(tǒng)的中斷或者晶振來計(jì)時(shí),并在設(shè)定的硬件計(jì)數(shù)器時(shí)間到來后通知相關(guān)定時(shí)器所屬任務(wù)進(jìn)行相應(yīng)的定時(shí)器超時(shí)處理。定時(shí)器是協(xié)議棧中非常重要的一個(gè)數(shù)據(jù)結(jié)構(gòu),基本上每個(gè)協(xié)議模塊都有對(duì)應(yīng)的定時(shí)器單元。終端協(xié)議棧軟件所使用的操作系統(tǒng)將定時(shí)器模塊作為一個(gè)任務(wù),每次啟動(dòng)某個(gè)協(xié)議棧任務(wù)的一個(gè)定時(shí)器單元該任務(wù)就會(huì)給定時(shí)器模塊任務(wù)發(fā)送一條消息,然后定時(shí)器模塊任務(wù)會(huì)管理并計(jì)算每個(gè)定時(shí)器的超時(shí)時(shí)刻,當(dāng)某個(gè)定時(shí)器超時(shí)時(shí)間到來后會(huì)再發(fā)送一條消息通知定時(shí)器所屬任務(wù)進(jìn)行超時(shí)的處理。當(dāng)定時(shí)器單元所屬的任務(wù)要停止該定時(shí)器時(shí),也需要發(fā)送一條消息通知定時(shí)器模塊任務(wù)停止對(duì)該定時(shí)器的時(shí)間計(jì)數(shù)。因此,一個(gè)定時(shí)器單元在啟動(dòng)、停止和超時(shí)操作時(shí)會(huì)分別對(duì)應(yīng)操作系統(tǒng)任務(wù)間中的一條消息信號(hào),因此以GSM/GPRS系統(tǒng)中的無線數(shù)據(jù)業(yè)務(wù)為例,在GPRS協(xié)議棧中的數(shù)據(jù)鏈路控制RLC層協(xié)議定義了一個(gè)定時(shí)器組T3198。對(duì)應(yīng)于每一個(gè)滑動(dòng)窗口都有一個(gè)T3198定時(shí)器,RLC協(xié)議規(guī)定每個(gè)臨時(shí)數(shù)據(jù)塊流Temporary BlockFlow,簡(jiǎn)稱TBF,上滑動(dòng)窗口的大小為64,因此這個(gè)定時(shí)器組有64個(gè)定時(shí)器。每個(gè)T3198定時(shí)器在傳輸完一個(gè)RLC數(shù)據(jù)塊后啟動(dòng),超時(shí)后認(rèn)為該數(shù)據(jù)塊收到NAK應(yīng)答,即需要重傳。當(dāng)GPRS數(shù)據(jù)流量很大的時(shí)候,每個(gè)窗口塊對(duì)應(yīng)的T3198定時(shí)器會(huì)頻繁啟動(dòng)和超時(shí),造成大量定時(shí)器模塊和RLC模塊任務(wù)之間的消息傳遞。實(shí)際環(huán)境下進(jìn)行GPRS撥號(hào)上網(wǎng)過程中,對(duì)RLC層實(shí)時(shí)處理消息類型的跟蹤結(jié)果表明,當(dāng)進(jìn)行GPRS數(shù)據(jù)業(yè)務(wù)的時(shí)候,RLC層任務(wù)處理的消息隊(duì)列中有60%的消息是定時(shí)器消息,其中T3198定時(shí)器占了絕大多數(shù)。因?yàn)槎〞r(shí)器的啟動(dòng)、停止和超時(shí)都需要與定時(shí)器任務(wù)進(jìn)行消息交互,這都需要操作系統(tǒng)的調(diào)度,無形之中增加了很多系統(tǒng)開銷,同時(shí)對(duì)RLC任務(wù)的運(yùn)行效率也帶來了很大負(fù)面影響。其結(jié)果造成了終端協(xié)議棧軟件系統(tǒng)的性能降低,數(shù)據(jù)傳輸?shù)乃俾薀o法達(dá)到較高的水平。。
發(fā)明內(nèi)容
本發(fā)明需要解決的技術(shù)問題是提供一種終端無線通信協(xié)議棧軟件定時(shí)器管理方法,可以減少由定時(shí)器頻繁啟動(dòng)和超時(shí)造成的操作系統(tǒng)消息隊(duì)列內(nèi)存消耗和任務(wù)間調(diào)度帶來的開銷。
本發(fā)明的上述第一個(gè)技術(shù)問題這樣解決,提供一種終端無線通信協(xié)議棧軟件定時(shí)器管理方法,包括以下步驟1.1)設(shè)定需要管理定時(shí)器的超時(shí)值和定時(shí)器隊(duì)列的數(shù)據(jù)結(jié)構(gòu);1.2)當(dāng)被管理的定時(shí)器啟動(dòng)的時(shí)候,根據(jù)啟動(dòng)時(shí)的系統(tǒng)幀號(hào)和對(duì)應(yīng)所述超時(shí)值計(jì)算該定時(shí)器的超時(shí)時(shí)間值;1.3)被管理定時(shí)器所屬任務(wù)根據(jù)物理層上傳消息中的當(dāng)前系統(tǒng)幀號(hào)和對(duì)應(yīng)所述超時(shí)時(shí)間值計(jì)算該定時(shí)器是否超時(shí)并根據(jù)超時(shí)結(jié)果進(jìn)行相應(yīng)處理。
按照本發(fā)明提供的定時(shí)器管理方法,所述超時(shí)時(shí)間值是相對(duì)時(shí)間,等于所述啟動(dòng)時(shí)的系統(tǒng)幀號(hào)加上由所述超時(shí)值換算過來的對(duì)應(yīng)系統(tǒng)幀號(hào)增加數(shù)。
按照本發(fā)明提供的定時(shí)器管理方法,所述相應(yīng)處理包括根據(jù)所述當(dāng)前系統(tǒng)幀號(hào)和超時(shí)值重新設(shè)置該定時(shí)器的超時(shí)時(shí)間值。
按照本發(fā)明提供的定時(shí)器管理方法,所述步驟1.2)和1.3)之間還包括被管理定時(shí)器所屬任務(wù)通過將對(duì)應(yīng)定時(shí)器從定時(shí)器隊(duì)列刪除或置停止位來停止執(zhí)行步驟1.3)。
按照本發(fā)明提供的定時(shí)器管理方法,所述步驟1.3)使用超時(shí)標(biāo)志位,還包括根據(jù)所述計(jì)算選擇是否置位,進(jìn)一步包括所述所屬任務(wù)根據(jù)對(duì)應(yīng)定時(shí)器是否存在所述超時(shí)標(biāo)志位選擇進(jìn)行所述相應(yīng)處理與否。
按照本發(fā)明提供的定時(shí)器管理方法,所述步驟1.3)中的計(jì)算還包括對(duì)所述定時(shí)器隊(duì)列中其他定時(shí)器的計(jì)算和置位。
按照本發(fā)明提供的定時(shí)器管理方法,所述無線通信包括但不限制于GSM/GPRS/EGPRS系統(tǒng)、TD-SCDMA系統(tǒng)或WCDMA系統(tǒng)。
按照本發(fā)明提供的定時(shí)器管理方法,所述無線通信協(xié)議包括但不限制于GPRS協(xié)議、EGPRS協(xié)議、WCDMA協(xié)議或TD-SCDMA協(xié)議。
按照本發(fā)明提供的定時(shí)器管理方法,所述協(xié)議棧包括物理層、MAC層、RLC層、LLC層或SNDCP層。
本發(fā)明提供的一種終端無線通信協(xié)議棧軟件定時(shí)器管理方法,使用定時(shí)器隊(duì)列代替,并進(jìn)一步通過物理層Layer1提供的系統(tǒng)幀號(hào)對(duì)應(yīng)時(shí)間來管理定時(shí)器隊(duì)列,優(yōu)化了無線通信協(xié)議棧軟件的定時(shí)器管理方法,大大減少了使用定時(shí)器模塊帶來的定時(shí)器頻繁啟動(dòng)和超時(shí)造成的操作系統(tǒng)消息隊(duì)列內(nèi)存消耗和任務(wù)間調(diào)度帶來的開銷;根據(jù)實(shí)際測(cè)試效果表明該方法增加了協(xié)議棧軟件的運(yùn)行效率,大大提高了數(shù)據(jù)傳輸速率。
下面結(jié)合附圖和具體實(shí)施例進(jìn)一步對(duì)本發(fā)明進(jìn)行詳細(xì)說明。
圖1是GPRS協(xié)議棧終端和網(wǎng)絡(luò)側(cè)之間的協(xié)議層示意圖。
圖2是本發(fā)明以GPRS協(xié)議棧RLC層為例管理定時(shí)器的具體實(shí)施過程圖。
具體實(shí)施例方式
首先,說明本發(fā)明的應(yīng)用范圍本發(fā)明適用于各種無線通信系統(tǒng),包括了GSM/GPRS/EGPRS系統(tǒng),TD-SCDMA系統(tǒng)以及WCDMA等系統(tǒng);其對(duì)應(yīng)終端使用各種不同終端協(xié)議棧軟件與系統(tǒng)通訊,GSM/GPRS系統(tǒng)中的GPRS協(xié)議僅是其中一種,其他無線通信系統(tǒng)終端協(xié)議棧軟件也同樣適用本發(fā)明(包括EGPRS協(xié)議,其在協(xié)議架構(gòu)上與GPRS相同)。
第二步,說明本發(fā)明工作原理
㈠在終端協(xié)議棧軟件中設(shè)定每個(gè)需要管理定時(shí)器的超時(shí)值和定時(shí)器隊(duì)列的數(shù)據(jù)結(jié)構(gòu),并修改定時(shí)器的啟動(dòng)和停止函數(shù)。修改后的函數(shù)不需要再向定時(shí)器模塊任務(wù)發(fā)送消息,而是由本地?cái)?shù)據(jù)結(jié)構(gòu)直接維護(hù)定時(shí)器的超時(shí)值。
㈢對(duì)于如何對(duì)定時(shí)器計(jì)時(shí)的問題,本發(fā)明采用了由Layer1提供給上層的無線通信系統(tǒng)幀號(hào)來進(jìn)行計(jì)時(shí)的方法。當(dāng)被管理的定時(shí)器啟動(dòng)的時(shí)候,根據(jù)當(dāng)前系統(tǒng)幀號(hào)加上超時(shí)時(shí)間,得到定時(shí)器的超時(shí)時(shí)間值。
㈢每次Layer1調(diào)用的時(shí)候,會(huì)傳遞給協(xié)議棧上層任務(wù)消息并攜帶當(dāng)前的系統(tǒng)幀號(hào)。被管理定時(shí)器所屬的任務(wù)根據(jù)消息中的當(dāng)前幀號(hào)計(jì)算定時(shí)器數(shù)組是否有超時(shí),如果超時(shí)將對(duì)應(yīng)的定時(shí)器狀態(tài)置位。在隨后處理的時(shí)候定時(shí)器所屬任務(wù)判斷不同定時(shí)器的狀態(tài),如果發(fā)現(xiàn)有超時(shí)的定時(shí)器則進(jìn)行相應(yīng)處理。
這樣協(xié)議棧定時(shí)器組就不會(huì)產(chǎn)生大量的消息信號(hào)在任務(wù)之間傳遞,操作系統(tǒng)的負(fù)荷也大大降低。這毫無疑問能夠大大提高GSM/GPRS協(xié)議棧的效率。
最后,以GPRS協(xié)議、協(xié)議棧為例,結(jié)合GPRS協(xié)議棧的RLC層模塊的具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說明㈠GPRS協(xié)議通用分組無線業(yè)務(wù)GPRS在數(shù)據(jù)鏈路層Layer2上按GSM04.60業(yè)務(wù)規(guī)范分為數(shù)據(jù)鏈路控制Radio Link Control層和媒體接入控制Medium Access Control層(TD-SCDMA以及WCDMA系統(tǒng)在數(shù)據(jù)鏈路層Layer2層同樣分為了RLC層和MAC層),簡(jiǎn)稱RLC層和MAC層,主要負(fù)責(zé)發(fā)送和接收數(shù)據(jù)隊(duì)列的管理、數(shù)據(jù)塊分段重組和對(duì)無線分組業(yè)務(wù)流的控制等功能。
㈡GPRS協(xié)議棧如圖1所示,GPRS通信系統(tǒng)的GPRS協(xié)議棧終端101和網(wǎng)絡(luò)側(cè)之間協(xié)議層位于無線終端設(shè)備Mobile Station,簡(jiǎn)稱MS,與無線通信網(wǎng)絡(luò)103之間,終端101與無線通信網(wǎng)絡(luò)103之間通過Um空中接口102通訊,該協(xié)議棧包括Layer1物理層,MAC層105,RLC層106,LLC層107,SNDCP層108。層間的箭頭連線表示終端和無線網(wǎng)絡(luò)之間有邏輯或者物理連接存在。
(三)本發(fā)明與GPRS協(xié)議棧的RLC層模塊對(duì)應(yīng)的定時(shí)器管理實(shí)施過程,如圖2所示,具體包括以下步驟201)在RLC層上設(shè)定64個(gè)T3198的超時(shí)值和定時(shí)器隊(duì)列的數(shù)據(jù)結(jié)構(gòu)及函數(shù);202)某個(gè)T3198定時(shí)器啟動(dòng)時(shí),根據(jù)物理層Layer1提供給上層的幀號(hào)加上超時(shí)時(shí)間,得到該定時(shí)器的超時(shí)時(shí)間值;203)每次物理層Layer1調(diào)用的時(shí)候根據(jù)當(dāng)前幀號(hào)計(jì)算T3198定時(shí)器數(shù)組的當(dāng)前時(shí)間;204)判斷隊(duì)列中是否有T3198定時(shí)器超時(shí);超時(shí)進(jìn)入步驟205),否則返回步驟203);205)將對(duì)應(yīng)的定時(shí)器狀態(tài)置位;206)RLC任務(wù)相應(yīng)函數(shù)對(duì)超時(shí)進(jìn)行處理,處理完成后返回到步驟203;這樣通過使用物理層Layer1提供的系統(tǒng)幀號(hào)對(duì)應(yīng)時(shí)間來管理定時(shí)器隊(duì)列,減少了定時(shí)器任務(wù)和不同定時(shí)器單元所屬任務(wù)之間的頻繁消息通信,大大降低了定時(shí)器操作帶來的開銷,提高了系統(tǒng)的性能。
權(quán)利要求
1.一種終端無線通信協(xié)議棧軟件定時(shí)器管理方法,其特征在于,包括以下步驟1.1)設(shè)定需要管理定時(shí)器的超時(shí)值和定時(shí)器隊(duì)列的數(shù)據(jù)結(jié)構(gòu);1.2)當(dāng)被管理的定時(shí)器啟動(dòng)的時(shí)候,根據(jù)啟動(dòng)時(shí)的系統(tǒng)幀號(hào)和對(duì)應(yīng)所述超時(shí)值計(jì)算該定時(shí)器的超時(shí)時(shí)間值;1.3)被管理定時(shí)器所屬任務(wù)根據(jù)物理層上傳消息中的當(dāng)前系統(tǒng)幀號(hào)和對(duì)應(yīng)所述超時(shí)時(shí)間值計(jì)算該定時(shí)器是否超時(shí)并根據(jù)超時(shí)結(jié)果進(jìn)行相應(yīng)處理。
2.根據(jù)權(quán)利要求1所述定時(shí)器管理方法,其特征在于,所述超時(shí)時(shí)間值是相對(duì)時(shí)間,等于所述啟動(dòng)時(shí)的系統(tǒng)幀號(hào)加上由所述超時(shí)值換算過來的對(duì)應(yīng)系統(tǒng)幀號(hào)增加數(shù)。
3.根據(jù)權(quán)利要求1所述定時(shí)器管理方法,其特征在于,所述相應(yīng)處理包括根據(jù)所述當(dāng)前系統(tǒng)幀號(hào)和超時(shí)值重新設(shè)置該定時(shí)器的超時(shí)時(shí)間值。
4.根據(jù)權(quán)利要求1所述定時(shí)器管理方法,其特征在于,所述步驟1.2)和1.3)之間還包括被管理定時(shí)器所屬任務(wù)通過將對(duì)應(yīng)定時(shí)器從定時(shí)器隊(duì)列刪除或置停止位來停止執(zhí)行步驟1.3)。
5.根據(jù)權(quán)利要求1所述定時(shí)器管理方法,其特征在于,所述步驟1.3)使用超時(shí)標(biāo)志位,還包括根據(jù)所述計(jì)算選擇是否置位,進(jìn)一步包括所述所屬任務(wù)根據(jù)對(duì)應(yīng)定時(shí)器是否存在所述超時(shí)標(biāo)志位選擇進(jìn)行所述相應(yīng)處理與否。
6.根據(jù)權(quán)利要求1或6所述定時(shí)器管理方法,其特征在于,所述步驟1.3)中的計(jì)算還包括對(duì)所述定時(shí)器隊(duì)列中其他定時(shí)器的計(jì)算和置位。
7.根據(jù)權(quán)利要求1所述定時(shí)器管理方法,其特征在于,所述無線通信包括GSM/GPRS/EGPRS系統(tǒng)、TD-SCDMA系統(tǒng)或WCDMA系統(tǒng)。
8.根據(jù)權(quán)利要求1所述定時(shí)器管理方法,其特征在于,所述無線通信協(xié)議包括GPRS協(xié)議、EGPRS協(xié)議、WCDMA協(xié)議或TD-SCDMA協(xié)議。
9.根據(jù)權(quán)利要求1所述定時(shí)器管理方法,其特征在于,所述協(xié)議棧包括物理層、MAC層,RLC層,LLC層或SNDCP層。
全文摘要
本發(fā)明涉及一種終端無線通信協(xié)議棧軟件定時(shí)器管理方法,包括設(shè)定需要管理定時(shí)器的超時(shí)值和定時(shí)器隊(duì)列的數(shù)據(jù)結(jié)構(gòu);當(dāng)被管理的定時(shí)器啟動(dòng)的時(shí)候,根據(jù)啟動(dòng)時(shí)的系統(tǒng)幀號(hào)和對(duì)應(yīng)所述超時(shí)值計(jì)算該定時(shí)器的超時(shí)時(shí)間值;被管理定時(shí)器所屬任務(wù)根據(jù)物理層上傳消息中的當(dāng)前系統(tǒng)幀號(hào)和對(duì)應(yīng)所述超時(shí)時(shí)間值計(jì)算該定時(shí)器是否超時(shí)并根據(jù)超時(shí)結(jié)果進(jìn)行相應(yīng)處理。這種方法使用定時(shí)器隊(duì)列代替定時(shí)器模塊,并進(jìn)一步通過物理層Layer1提供的系統(tǒng)幀號(hào)對(duì)應(yīng)時(shí)間來管理定時(shí)器隊(duì)列,減少了定時(shí)器模塊和不同定時(shí)器單元所屬任務(wù)之間的頻繁消息通信,大大降低了定時(shí)器操作帶來的開銷,提高了系統(tǒng)的性能。
文檔編號(hào)H04L1/16GK101014049SQ20071006394
公開日2007年8月8日 申請(qǐng)日期2007年2月14日 優(yōu)先權(quán)日2007年2月14日
發(fā)明者董志, 呂永 申請(qǐng)人:中興通訊股份有限公司