国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

應用RTOS的TD-LTE無線綜測儀的實現(xiàn)

2012-07-26 11:04李小文
自動化儀表 2012年2期
關鍵詞:隊列內(nèi)存消息

李小文 肖 壘,2

(重慶市移動通信重點實驗室1,重慶 400065;重慶郵電大學通信與信息工程學院2,重慶 400065)

0 引言

隨著我國通信市場需求的進一步增加,現(xiàn)階段對通信前沿技術的研究呈現(xiàn)迅速增長的態(tài)勢,與此同時,公眾對通信軟件服務質(zhì)量的要求也越來越嚴格。這使得人們對通信軟件的實時性、可靠性要求越來越高,從而催生了通信行業(yè)對新一代無線通信系統(tǒng)的研究與開發(fā)。

在2011年世界移動通信大會上,4 G網(wǎng)絡的發(fā)展成為各界關注的焦點,TD產(chǎn)業(yè)聯(lián)盟已將重點放在TDLTE端到端的產(chǎn)業(yè)鏈成果上。由此可以預測,日后通信行業(yè)對TD-LTE產(chǎn)品的測試擁有極大的潛在需求。在對TD-LTE終端綜合測試儀的設計過程中,采用了Nucleus操作系統(tǒng)。Nucleus PLUS是由美國ATI公司開發(fā)設計的實時操作系統(tǒng)(real-time operating system,RTOS)嵌入式產(chǎn)品,它是一種實時、搶占、多任務內(nèi)核,被應用于有強實時性要求的應用領域。由于RTOS中大約95%的程序由ANSI C編寫,所以非常便于移植,現(xiàn)已被廣泛應用于通信、航天航空、自動化控制和國防等領域[1]。TD-LTE終端綜合測試儀目前已經(jīng)進入試驗階段,正式產(chǎn)品已在2011年4月底完成。

1 Nucleus PLUS簡介

Nucleus PLUS操作系統(tǒng)是目前應用較為廣泛的操作系統(tǒng)之一,其核心區(qū)代碼不超過20 kB。它采用軟件組件的方法,每個組件可以完成特定的功能。組件通常由使用C或匯編語言編寫的模塊組成,為外部應用程序提供清晰的接口。Nucleus PLUS不但提供源程序代碼,且具有性價比高、易學易用、功能模塊豐富等特點[2]。

Nucleus PLUS系統(tǒng)結(jié)構如圖1所示。

從圖1可知,Nucleus PLUS開發(fā)平臺提供多種模塊,用戶僅需編寫任務模塊和中斷服務程序(interrupt service routines,ISR),然后利用各模塊接口獲取相應服務,由Nucleus PLUS操作系統(tǒng)調(diào)度多個用戶任務并行運行,從而共享系統(tǒng)資源。Nucleus PLUS根據(jù)優(yōu)先級和時間片調(diào)度各任務分時、分優(yōu)先級地占用系統(tǒng)資源,各任務間通過郵箱、隊列或管道進行通信,使用信號量、事件組和信號進行同步與互斥。同時,Nucleus PLUS提供分區(qū)內(nèi)存和動態(tài)內(nèi)存兩種存儲器管理機制,并提供定時器,用于處理周期性事件、任務超時[3]。

2 TD-LTE無線綜測儀簡介

TD-LTE終端綜合測試儀可以實現(xiàn)TD-LTE系統(tǒng)下行物理通道發(fā)生、呼叫建立、釋放和尋呼、上下行功率控制等多種功能。其主要用來精確測量TD-LTE終端的各種射頻指標,可模擬TD-LTE基站、無線網(wǎng)絡控制器(radio network controller,RNC)和核心網(wǎng)的信令功能,測試TD-LTE終端在多種狀態(tài)下的性能指標。TD-LTE終端綜合測試儀廣泛應用于TD-LTE終端的設計、研發(fā)、生產(chǎn)、認證以及維修等領域。

TD-LTE終端綜合測試儀能對被測終端發(fā)起如頻率誤差(error of frequency,F(xiàn)OE)、誤差向量幅度(error vector magnitude,EVM)、比特誤碼率(bit error rate,BER)和塊誤碼率(block error ratio,BLER)等各種基本測量,進行射頻(radio frequency,RF)工作模式、串行數(shù)據(jù)處理等模式的設置,以及實現(xiàn)小區(qū)激活、去激活和重配置等。它為出廠終端設備的檢測提供了最直觀的測試方式,同時也為TD-LTE終端設備的開發(fā)提供了極大的便利。TD-LTE終端綜合測試儀對出廠終端進行測量的基本方式如圖2所示。

圖2中,TD-LTE終端綜合測試儀模擬網(wǎng)絡端對終端進行測試。為防止測試中測試信號外泄對正常無線信號造成干擾,測試中需使用專用的測試線將被測終端連接至測試儀表。綜測儀前端面板可簡單劃分為顯示和控制兩個區(qū)域。顯示區(qū)域用來顯示測試結(jié)果,如測試波形、圖形等;控制區(qū)域用來配置并發(fā)送測試命令,如開機請求、小區(qū)激活請求和測量請求等指令。在測試中,還需將測試用計算機與綜測儀相連,從而更詳細地顯示或者處理得到的各種測試數(shù)據(jù)[4-5]。

3 系統(tǒng)設計

3.1 系統(tǒng)任務劃分

系統(tǒng)任務的劃分是實時通信系統(tǒng)設計中最關鍵的一步,只有合理地劃分各任務,系統(tǒng)的設計才能得到簡化,同時也使后續(xù)的調(diào)試更為方便。如任務劃分不恰當,則系統(tǒng)硬件的設計和軟件的調(diào)試會存在較大困難,系統(tǒng)甚至會出現(xiàn)致命的錯誤。在對TD-LTE終端測試儀表軟件部分進行設計中,根據(jù)不同的功能實現(xiàn)特點,系統(tǒng)被劃分為八個任務[6],它們分別是PDN網(wǎng)關(PDN-gateway,PGW)、業(yè)務網(wǎng)關(service-gateway,SGW)、增強型會話管理(EPS session management,ESM)、增強型移動性管理(EPS mobility management,EMM)、無線資源控制(radio resource control,RRC)、分組數(shù)據(jù)匯聚(packet data convergence protocol,PDCP)、無線鏈路控制(radio link control,RLC)以及媒體接入控制(medium access control,MAC)。任務共有執(zhí)行、就緒、掛起、停止和完成這五個不同狀態(tài)屬性,但任何任務只能處于其中一種狀態(tài)。在多任務系統(tǒng)中,只有在競爭到系統(tǒng)資源的情況下任務才能得到執(zhí)行。任務擁有的資源情況是不斷被改變的,因此,任務的狀態(tài)也不斷隨之變化。

任務的優(yōu)先級代表該任務對工作內(nèi)容的優(yōu)先程度。Nucleus PLUS實時操作系統(tǒng)可提供基于任務優(yōu)先級的搶占式調(diào)度,它提供0~255共256個不同的優(yōu)先級,0代表最高優(yōu)先級,255代表最低優(yōu)先級。對于重要的任務,可賦予較高的優(yōu)先級;反之亦然。在該系統(tǒng)的實現(xiàn)過程中,通過整體分析,考慮到越底層的處理需要越高的優(yōu)先級。因此,對各任務優(yōu)先級分配如下:MAC的優(yōu)先級分配為40,RLC的優(yōu)先級分配為50,PDCP的優(yōu)先級分配為60,RRC的優(yōu)先級分配為70,EMM的優(yōu)先級分配為80,ESM的優(yōu)先級分配為90,SGW的優(yōu)先級分配為100,PGW的優(yōu)先級分配為110。

3.2 任務間通信

Nucleus PLUS實時操作系統(tǒng)提供任務間同步、互斥以及通信機制。在對該系統(tǒng)進行設計時,各任務不是相互獨立的,它們之間存在各種聯(lián)系。因此,必須處理好任務間通信,才能使系統(tǒng)達到最佳的使用效率,避免發(fā)生死鎖甚至崩潰等災難性后果。

在系統(tǒng)設計過程中,使用消息隊列實現(xiàn)消息間通信。消息隊列由消息隊列控制塊統(tǒng)一進行管理,系統(tǒng)可以動態(tài)地分配或回收消息隊列控制塊。當一個消息被創(chuàng)建以后,Nucleus PLUS內(nèi)核將會為其分配一個唯一的隊列控制塊(queue control block,QCB)和標志,同時分配消息存儲緩沖區(qū)、一個或多個任務等待列表等。消息隊列的創(chuàng)建者可通過接口程序設置隊列長度與最大消息長度。一個任務包括兩個列表:發(fā)送任務等待列表和接收任務等待列表。僅當消息隊列為空時,才開始填充接收任務等待列表;同樣地,僅當消息隊列為滿時,才開始填充發(fā)送任務等待列表[7]。

任務在等待一個空隊列時會被掛起,同樣地,當任務試圖發(fā)送一個消息到滿隊列中時也會被掛起。圖3通過RRC隊列簡單展示了隊列通信的基本原理。根據(jù)系統(tǒng)前期設計,對應八個任務創(chuàng)建了八個消息隊列,隊列長度為30(可存儲30條不同消息),消息最大長度為1(只需存儲消息首地址)。用戶創(chuàng)建RRC隊列后,該隊列處于空狀態(tài),此時EMM、PDCP、RLC和MAC等任務都可以將消息發(fā)送至RRC隊列而無需等待。當RRC隊列中存滿30條消息后,隊列即被存滿,無空間接收其他消息,所以圖3中任務EMM與任務MAC將會進入發(fā)送等待隊列而被掛起。同時,對于該隊列進行接收的任務RRC,可以從隊列中取出相應消息,當隊列中的消息個數(shù)為0時,接收任務RRC即被掛起,直到隊列中又存儲了消息。

圖3 消息隊列示意圖Fig.3 Sketch map of message queue

3.3 內(nèi)存管理

內(nèi)存分配組件負責管理Nucleus PLUS所有的內(nèi)存設備。在對系統(tǒng)設計時,根據(jù)實際需要為它分配五個內(nèi)存池,每個內(nèi)存池中包括一定數(shù)目的、固定大小的內(nèi)存單元,分別為52 B、140 B、352 B、2000 B 和60000 B,適用于不同的內(nèi)存需求。當任務申請內(nèi)存時,系統(tǒng)首先檢查其合法性,對于合法的內(nèi)存申請,系統(tǒng)選擇對應內(nèi)存池并按照先后順序分配固定大小內(nèi)存單元,同時在該內(nèi)存池中進行相應記錄[8]。

任務MAC需要申請40 B的內(nèi)存空間,系統(tǒng)根據(jù)MAC該次申請的內(nèi)存大小(0<40<52)選擇對應的內(nèi)存池PM_POOL_1。緊接著,根據(jù)可用首地址(Pm_available_list)中存儲的地址值(指針(N+1)),系統(tǒng)將編號為(N+1)的內(nèi)存單元分配給MAC任務,并將該內(nèi)存單元中的地址(N+1)設置為空,此時可用首地址中存儲的就是下一個未分配的內(nèi)存單元N的首地址(指針N),并標記了該內(nèi)存空間的使用情況。當RRC任務需要釋放內(nèi)存單元時,只需將該內(nèi)存單元的首地址(指針M)告知系統(tǒng),系統(tǒng)根據(jù)內(nèi)存池標示 PM_POOL_1知道該單元屬于內(nèi)存池1;然后將該內(nèi)存單元的地址域(空)設置為可用首地址中的值(指針N),同時將可用首地址的值設置為該內(nèi)存單元的首地址(指針M),即說明該內(nèi)存單元可以被再次使用。

內(nèi)存申請與釋放的基本步驟如圖4所示。

圖4 內(nèi)存申請與釋放Fig.4 Allocation and release of memory

3.4 任務調(diào)度

根據(jù)在運行過程中能否響應中斷的情況,可將任務分為搶占式調(diào)度和非搶占式調(diào)度。Nucleus PLUS操作系統(tǒng)提供基于優(yōu)先級的搶占式調(diào)度,同時也提供基于時間片的輪轉(zhuǎn)調(diào)度。時間片輪轉(zhuǎn)調(diào)度是指當同優(yōu)先級的多個就緒任務,需要根據(jù)就緒的先后順序,分配一定的時間片給先就緒的任務,運行完后再執(zhí)行后就緒的任務。在測試儀表軟件的實現(xiàn)中并未定義同優(yōu)先級的任務,所以只需利用操作系統(tǒng)提供的基于優(yōu)先級的搶占式調(diào)度[9-10]。

基于優(yōu)先級的搶占式調(diào)度過程如圖5所示。在系統(tǒng)運行后,任務RRC需占用系統(tǒng)資源,此時CPU未被任何其他任務占用,申請被允許。任務RRC執(zhí)行完成后,向任務PDCP發(fā)送相關處理指令,任務PDCP接收到該指令后需申請相應資源,系統(tǒng)根據(jù)資源占用情況分配一定資源給 PDCP,觸發(fā)其進行處理。在任務PDCP的執(zhí)行過程中,優(yōu)先級高的任務MAC需要占用系統(tǒng)資源,系統(tǒng)將PDCP掛起,并運行就緒的MAC任務,直到MAC運行完成后才開始執(zhí)行掛起的任務PDCP。在PDCP執(zhí)行的過程中,任務EMM需占用系統(tǒng)資源進行處理,但由于其優(yōu)先級低于正在執(zhí)行的任務,所以必須等待;當PDCP執(zhí)行完成后,系統(tǒng)才開始EMM任務的處理。

圖5 任務調(diào)度Fig.5 Task scheduling

圖5中,當EMM任務執(zhí)行完成后,它會向ESM任務發(fā)送一個處理信號,要求ESM任務進行處理。此時若系統(tǒng)發(fā)現(xiàn)并無優(yōu)先級高的任務調(diào)用資源,則任務ESM開始執(zhí)行。經(jīng)過一段時間,優(yōu)先級較高的PDCP任務需要占用資源,系統(tǒng)將使用權交給任務PDCP,而在其執(zhí)行過程中,優(yōu)先級更高的RLC任務需要調(diào)用系統(tǒng)資源,此時系統(tǒng)將使用權交給任務RLC,然后交還給掛起的任務PDCP與任務ESM。任務調(diào)用過程完成后,系統(tǒng)掛起所有任務。

3.5 整體體設計

在底層硬件支持、射頻發(fā)射模塊以及應用層實現(xiàn)的基礎上,結(jié)合系統(tǒng)軟件部分,就可以完全實現(xiàn)TDLTE終端綜合測試儀。綜測儀的整體設計如圖6所示。

圖6 整體設計圖Fig.6 Overall design

圖6中,當綜測儀開機后,首先對底層硬件、射頻發(fā)射模塊以及應用層相關組件進行初始化,然后對操作系統(tǒng)進行初始化,包括隊列、應用以及匯編初始化。應用層初始化部分是重點,它由用戶自行設計,大體上包括地址分配、串口和終端初始化、任務創(chuàng)建、定時器創(chuàng)建及其初始化。

如前所述,根據(jù)綜測儀的設計,在創(chuàng)建任務時創(chuàng)建了八個不同的任務,其都由Nucleus PLUS操作系統(tǒng)進行調(diào)度并共享系統(tǒng)資源。當綜測儀開機完成后,測試人員可通過人機操作界面發(fā)送請求。該請求通過中斷的方式告知給Nucleus PLUS操作系統(tǒng),操作系統(tǒng)根據(jù)系統(tǒng)資源使用情況分配相應的資源給任務PGW,從而及時處理人機接口下發(fā)的請求。任務PGW將處理產(chǎn)生的消息發(fā)送至相應隊列(SGW隊列),觸發(fā)SGW任務執(zhí)行相應操作,此時操作系統(tǒng)又將分配相應資源給SGW任務使用CPU。如此循環(huán)往復,直到將消息(需要對被測終端進行操作)通過射頻模塊發(fā)送出去或觸發(fā)(配置綜測儀)綜測儀本身進行相應動作。

4 結(jié)束語

本文所設計的系統(tǒng)采用了實時多任務操作系統(tǒng)Nucleus PLUS。首先利用其任務分配機制將系統(tǒng)劃分成不同功能的多個任務,且不同的任務擁有不同的優(yōu)先級,高優(yōu)先級任務優(yōu)先占用系統(tǒng)資源;然后利用內(nèi)存分配機制為占用資源的任務分配合理空間,同時通過隊列實現(xiàn)各任務間的通信。對比于其他單任務操作系統(tǒng),采用該實時操作系統(tǒng)既可以滿足通信軟件對實時性和可靠性的高要求,又方便了系統(tǒng)調(diào)試。這種實現(xiàn)方案對其他類似的應用場合同樣具有一定的啟示作用。

[1]管武.基于ARM的嵌入式測控平臺的設計及實現(xiàn)[D].上海:上海大學,2008.

[2]胡曙輝,陳健.幾種嵌入式實時操作系統(tǒng)的分析與比較[J].單片機與嵌入式系統(tǒng)應用,2007(5):5-9.

[3]鄭宗漢.實時系統(tǒng)軟件基礎[M].北京:清華大學出版社,2003.

[4]李小文,李貴勇.TD-SCDMA第三代移動通信系統(tǒng)、信令及實現(xiàn)[M].北京:人民郵電出版社,2003.

[5]沈嘉.3GPP長期演進(LTE)技術原理與系統(tǒng)設計[M].北京:人民郵電出版社,2008.

[6]張曉輝,羅毅.μC/OS-Ⅱ在應用系統(tǒng)中任務劃分及優(yōu)先級設置[J].工業(yè)控制計算機,2005(7):40-44.

[7]羅蕾.嵌入式實時操作系統(tǒng)及其應用開發(fā)[M].2版.北京:北京航空航天大學出版社,2007.

[8]李侯清.嵌入式系統(tǒng)內(nèi)存管理簡述[J].經(jīng)濟技術協(xié)作信息,2010(33):128-129.

[9]朱麗英,蔡家楣.基于Nucleus PLUS的嵌入式系統(tǒng)的軟件設計[J].計算機應用于軟件,2005,22(2):33 -34.

[10]劉洲洲.基于嵌入式Nucleus系統(tǒng)的多進程實現(xiàn)方案[J].微處理機,2010(2):85-87.

猜你喜歡
隊列內(nèi)存消息
隊列隊形體育教案
隊列里的小秘密
基于多隊列切換的SDN擁塞控制*
一張圖看5G消息
筆記本內(nèi)存已經(jīng)在漲價了,但幅度不大,升級擴容無須等待
“春夏秋冬”的內(nèi)存
在隊列里
內(nèi)存搭配DDR4、DDR3L還是DDR3?
消息
消息
昌吉市| 桐乡市| 山西省| 武汉市| 崇仁县| 黔东| 马尔康县| 廉江市| 夏邑县| 青海省| 尉氏县| 太仆寺旗| 鲁甸县| 河北省| 江川县| 河西区| 潍坊市| 洪江市| 荔波县| 祥云县| 平凉市| 南投县| 湘西| 墨竹工卡县| 阿巴嘎旗| 东乌珠穆沁旗| 扎兰屯市| 临泽县| 荥经县| 宁津县| 阳曲县| 云浮市| 芦溪县| 元谋县| 同江市| 佛山市| 永清县| 肥东县| 江西省| 黄石市| 利津县|