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