文獻標識碼: A
文章編號: 0258-7998(2013)02-0015-03
為了加速TD-LTE(Long Term Evolution)在中國的全面成長和產業(yè)鏈的的形成,2011年我國啟動了“新一代寬帶無線移動通信網”重大專項。本文介紹了在國家重大專項“TD-LTE無線綜合測試儀表開發(fā)”的基礎上,對TD-LTE網絡端 MAC(Medium Access Control)調度的實現(xiàn)。目前關于MAC層的文獻有不少,但大都局限于簡單的協(xié)議研究和設計[1]。在協(xié)議棧里所有的數(shù)據(jù)都需要通過MAC層的調度才能走向空中接口和時間軸上,MAC層是實現(xiàn)實時性和調度機制的樞紐[2],所以設計MAC層子幀調度方案顯得尤為重要。
1 Nucleus操作機制
Nucleus主控程序的操作機制是采用等待檢測機制[3],不斷循環(huán)檢測當前執(zhí)行任務或高級中斷的封閉循環(huán),僅當有中斷到達、未處理任務設置或復位時才跳出循環(huán)。主控程序首先檢測當前是否有高優(yōu)先級中斷被激活,如果有,則跳出循環(huán)進入高優(yōu)先級中斷處理服務函數(shù);如果沒有,則繼續(xù)檢測當前是否有未處理激活任務。如果有未處理激活任務,則轉入任務處理模塊;如果沒有,則返回繼續(xù)檢測。
TD-LTE系統(tǒng)為每層設置狀態(tài)機入口函數(shù),函數(shù)設計為一個死循環(huán)。函數(shù)從相應層隊列中接收消息,根據(jù)當前不同狀態(tài)進入相應消息處理函數(shù)[4];最后將承載消息內存釋放,依次循環(huán),直到隊列為空時掛起當前任務,跳出循環(huán),返回操作系統(tǒng)。圖1為MAC狀態(tài)機入口函數(shù)的處理機制。在隊列中所有消息接收完成后,系統(tǒng)將在隊列中掛起MAC任務,返回操作系統(tǒng)主控程序[5]。
2 MAC調度
根據(jù)TD-LTE整體硬件設計,經過實際調試,對于不同大小消息,DSP和FPGA處理消息的總時間為0.8 ms~0.9 ms,ARM處理MAC層消息的總時間為0.4 ms~0.5 ms。從而得出,消息處理的總時間為1.2 ms~1.4 ms。圖2為消息在實際調試中的處理時間:示波器通道1高電平為ARM處理消息所消耗時間(為465 μs);通道2高電平為DSP和FPGA處理消息所消耗時間(為882 μs)??倳r間為1 347 μs。所以MAC層必須提前2子幀配置消息, MAC調度設計方案[6]才能得到實現(xiàn)。
在代碼實現(xiàn)中,MAC調度器維護一個消息發(fā)送標志數(shù)組assignment_flag[i][j],其中,0≤i<10,0≤j<1 023。數(shù)組的行代表子幀號,列代表幀號。這樣,assignment_flag[i][j]總共可表示10 240個子幀時刻。由于每一調度時刻只允許發(fā)送一個任務,因此在第j幀的第i子幀有消息發(fā)送任務被配置后,assignment_flag[i][j]被置1。每當有新消息被調度發(fā)送時,任務調度指針p_assignment_flag將查詢assignment_flag[i][j]變量,如果assignment_flag[i][j]不為1,則將消息配置在assignment_flag[i][j]-2的時刻發(fā)送至物理層。如圖3所示,設在第39幀的子幀9收到RLC層新數(shù)據(jù)發(fā)送任務,p_assignment_flag指針繼續(xù)向后查詢,可得第40幀中第3子幀無發(fā)送任務。調度器將assignment_flag[3][40]變量置1,并提前2個子幀,在40幀的子幀1將此消息發(fā)送至物理層。
3 MAC子幀中斷服務函數(shù)
子幀中斷信號由FPGA提供,每1 ms觸發(fā)1次中斷,MAC層的任務調度將通過子幀中斷觸發(fā)。當每1 ms的子幀中斷到達時,子幀中斷觸發(fā)MAC層進入子幀中斷服務函數(shù)INT_Schedule。下面是子幀中斷服務函數(shù)INT_Schedule的實現(xiàn)方案。
(1)同步。進入INT_Schedule函數(shù)讀取當前幀號和子幀號并保存至本地,以達到本地與硬件計數(shù)同步。
(2)狀態(tài)選擇。在同步之后,根據(jù)MAC當前狀態(tài)進入狀態(tài)分支。
(3)任務執(zhí)行判斷。在進入MAC當前狀態(tài)分支后,調度器將規(guī)劃的待發(fā)送消息的發(fā)送幀號和子幀號與當前幀號和子幀號對比,如果相等則轉入步驟(4);如果不相等,則跳出狀態(tài)分支,轉入步驟(5)。
(4)消息發(fā)送。進入原語組裝函數(shù),組裝原語直接發(fā)送給物理層。
(5)跳出子幀中斷服務函數(shù)。
此方案的處理方法比較簡潔,在消息數(shù)據(jù)量非常小時具有可執(zhí)行性。但隨著數(shù)據(jù)量逐漸增大,MAC組裝原語的數(shù)據(jù)搬移時間也隨之變長。MAC層處理消息時間為465 μs,從而子幀中斷擴展至約0.5 ms,使得ARM芯片一直處于硬件中斷中,造成其他低優(yōu)先級中斷無法響應。更加嚴重的是,如果子幀中斷時間大于1 ms,則下一個子幀中斷也將無法響應,使得TD-LTE系統(tǒng)無法正常運行,所以該方案缺乏可執(zhí)行性。為此,對該方案進行以下改進。
3.1 子幀中斷處理改進方案1
(1)同步。進入INT_Schedule后,MAC首先讀取當前幀號和子幀號并保存至本地使用。
(2)狀態(tài)選擇。在同步之后,MAC根據(jù)當前狀態(tài)進入狀態(tài)分支。
(3)任務執(zhí)行判斷。在進入MAC當前狀態(tài)分支后,MAC將之前規(guī)劃的待發(fā)送消息的發(fā)送幀號和子幀號與當前幀號和子幀號對比,如果相等則轉入步驟(4);否則轉入步驟(5)。
(4)發(fā)送消息。向MAC隊列發(fā)送一條消息,消息體為空,消息頭附帶所要發(fā)送的原語ID,激活一個MAC任務。
(5)跳出子幀中斷服務函數(shù)。
由于發(fā)送隊列所占用的時間特別短,子幀中斷服務函數(shù)很快結束跳出中斷。該方案巧妙地將發(fā)送原語交至操作系統(tǒng)執(zhí)行,操作系統(tǒng)在循環(huán)檢測中檢測到存在MAC任務時即進入MAC狀態(tài)機處理MAC任務,使耗時較多的數(shù)據(jù)搬移放到了MAC狀態(tài)機中去執(zhí)行,很好地解決了原始方案中子幀中斷耗時長的問題。但在操作系統(tǒng)任務繁多時,子幀中斷中激活的MAC任務并不會立即得到執(zhí)行,而是在操作系統(tǒng)中排隊等待。由于子幀中斷規(guī)劃的MAC任務要求很強的實時性,長時間的排隊等待將使得MAC任務被延遲執(zhí)行,最終導致消息不能實時發(fā)送,所以該方案也缺乏實時性。
3.2 子幀中斷處理改進方案2
(1)利用子幀中斷處理函數(shù)INT_Schedule完成以下操作:
①激活高級中斷HISR。
②跳出子幀中斷服務函數(shù)。
(2)利用高優(yōu)先級中斷服務函數(shù)HISR_Schedule完成以下操作:
①同步。進入INT_Schedule后,MAC首先讀取當前幀號和子幀號并保存至本地使用。
②狀態(tài)選擇。在同步之后,MAC根據(jù)當前狀態(tài)進入狀態(tài)分支。
③任務執(zhí)行判斷。在進入MAC當前狀態(tài)分支后,MAC將之前規(guī)劃的待發(fā)送消息的發(fā)送幀號和子幀號與當前幀號和子幀號對比,如果相等轉入步驟(4);如果不相等,轉入步驟(5)。
④發(fā)送消息。如果此時滿足了發(fā)送消息的條件,MAC立即組裝原語直接發(fā)送給物理層。
⑤跳出HISR服務函數(shù)。
由于該方案的子幀中斷只占用一個激活高優(yōu)先級中斷的時間,使得子幀中斷的時間變得非常短,滿足了子幀中斷快速跳出的特性。高優(yōu)先級中斷的優(yōu)先級別比一般任務高,在激活HISR后,在操作系統(tǒng)循環(huán)檢測中將優(yōu)先處理HISR進入HISR_Schedule函數(shù),把消息發(fā)送至物理層,使該方案避免了任務隊列的等待時間,有效滿足了MAC任務的實時性。圖4為改進的HISR中斷服務函數(shù)示意圖。
圖5是子幀中斷優(yōu)化方案2的示波器截圖,圖中通道3波形為子幀中斷,通道1高電平為MAC層處理消息時需要耗費時間長度(為465 μs)。從圖5中可以看出,子幀中斷的時間非常的短,幾乎可以忽略不計。而在子幀中斷結束時,MAC任務被很快地得到了執(zhí)行,說明HISR的改進方案使得MAC層任務優(yōu)先得到了執(zhí)行。
本文給出了TD-LTE系統(tǒng)中MAC層子幀調度和子幀中斷函數(shù)的實現(xiàn)機制。通過示波器測出MAC層與物理層之間消息處理的時間偏移,提出子幀調度方案,并驗證了其正確性;通過幾個子幀中斷函數(shù)的比較,找到了運用HISR設計子幀中斷函數(shù)的最佳方案,并得到了最佳的效果。最后通過板級調試驗證了本設計方案具有較強的獨立性和實時性,優(yōu)化了系統(tǒng)資源利用率,實現(xiàn)了任務中斷與任務調度的高強度反復的穩(wěn)定性。
參考文獻
[1] 陳燕燕.LTE基站MAC-PHY API接口的設計和實現(xiàn)[D].北京:北京郵電大學,2011.
[2] 李小文,李貴勇,陳賢亮,等.TD-SCDMA第三代移動通信系統(tǒng)、信令及實現(xiàn)[M].北京:人民郵電出版社,2003:402-405.
[3] 李小文,肖壘.應用RTOS的TD-LTE無線綜測儀的實現(xiàn)[J].自動化儀表,2012,33(2):25-28.
[4] 道理.Nucleus體系結構分析及應用研究[D].長沙:中南大學,2007.
[5] 管武.基于ARM的嵌入式測控平臺的設計及實現(xiàn)[D].上海:上海大學,2008.
[6] 魏振華,洪炳熔,喬永強,等.嵌入式實時操作系統(tǒng)Nucleus中線程控制部件的實現(xiàn)方法[J].計算機應用研究,2003,20(4):97-99.