李 飛,范林濤
(河北遠(yuǎn)東哈里斯通信有限公司,河北石家莊 050200)
TETRA系統(tǒng)是ETSI為了滿足歐洲各國的專業(yè)部門對移動通信的需求而設(shè)計(jì)制訂的、采用統(tǒng)一標(biāo)準(zhǔn)的開放性系統(tǒng),可以提供集群、非集群通訊,支持話音、電路數(shù)據(jù)、短信息、分組數(shù)據(jù)等業(yè)務(wù)的直接模式通信,同時還支持多種附加業(yè)務(wù)。該系統(tǒng)以其良好的開放性、增強(qiáng)的保密性以及較高的頻譜資源利用率,在全球許多國家得到了廣泛的應(yīng)用,近些年,在我國也得到了普遍重視并取得了快速發(fā)展。
如圖1所示,TETRA數(shù)字集群空中接口協(xié)議自上而下可以分為網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層和物理層。UMAC層位于邏輯鏈路控制層(LLC)和下媒體接入控制層(LMAC)之間,3者共同構(gòu)成了協(xié)議棧的數(shù)據(jù)鏈路層,完成數(shù)據(jù)從網(wǎng)絡(luò)層到物理層的映射。
圖1 UMAC在TETRA空中接口協(xié)議中的位置
根據(jù)標(biāo)準(zhǔn)描述,UMAC層協(xié)議的主要功能如下:
①隨機(jī)接入管理和維護(hù);② 無線信道資源管理;③ 時隙保留和授予;④ 信令組合與分解;⑤ 業(yè)務(wù)信道挪用;⑥ 邏輯信道復(fù)用;⑦ 二層地址管理;⑧功率控制。
UMAC軟件的硬件環(huán)境選用了數(shù)字信號處理(DSP)/高級精簡指令處理器(ARM)器件(TI公司OMAP L138),該器件內(nèi)部包含1個TMS320C674x浮點(diǎn)DSP核心和1個ARM926EJ-S ARM處理器核心。
如圖2所示,UMAC運(yùn)行在ARM平臺上,平臺操作系統(tǒng)是Linux;LMAC運(yùn)行在DSP上,DSP和ARM通過DSP-Link技術(shù)通信。
圖2 UMAC協(xié)議軟件的軟硬件環(huán)境
如圖3所示,將TETRA空中接口協(xié)議UMAC層軟件進(jìn)行如下劃分。
圖3 UMAC層協(xié)議棧模塊劃
程序模塊用直角方框表示,模塊及模塊間存在互相調(diào)用關(guān)系和共享數(shù)據(jù)關(guān)系;數(shù)據(jù)塊用圓角方框表示,存儲了軟件所處理的各種數(shù)據(jù)。UMAC軟件各模塊功能說明如下:
①控制信令處理模塊:負(fù)責(zé)與LLC層直接交互控制信令,完成控制信令的基本收發(fā)功能;
②廣播信令處理模塊:負(fù)責(zé)接收處理來自LLC的廣播信令,完成廣播信令的基本收發(fā)功能;
③層管理模塊:負(fù)責(zé)接收來自LLC的時隙配置信令,設(shè)定UMAC層各時隙的工作模式;
④媒體處理模塊:負(fù)責(zé)媒體數(shù)據(jù)的發(fā)送處理和接收處理,完成媒體數(shù)據(jù)的基本收發(fā)功能;
⑤接入處理模塊:負(fù)責(zé)處理MS的隨機(jī)接入請求和時隙授予請求;
⑥用戶數(shù)據(jù)單元(PDU)/業(yè)務(wù)數(shù)據(jù)單元(SDU)操作模塊:負(fù)責(zé)下行信令的編碼與組合及上行信令的解碼與重建,負(fù)責(zé)生成或者解析處理 UMAC層PDU;
⑦信道挪用模塊:負(fù)責(zé)接收和發(fā)送采用挪用業(yè)務(wù)信道資源方式傳送的控制信令;
⑧MAC塊創(chuàng)建組裝模塊:負(fù)責(zé)邏輯信道與物理信道的映射、下行MAC塊的組裝工作;
⑨TMV數(shù)據(jù)發(fā)送接收模塊:負(fù)責(zé)與LMAC交互媒體接入控制(MAC)數(shù)據(jù)塊,完成MAC塊的基本收發(fā)功能。
圖中其他方塊代表了上述模塊需要處理的數(shù)據(jù)。
按照上述軟硬件設(shè)計(jì),UMAC軟件需要解決如下幾個核心問題。
根據(jù)圖2可知,UMAC軟件位于ARM處理器的Linux操作系統(tǒng)中,LMAC固件位于DSP處理器中,設(shè)計(jì)要解決UMAC和LMAC的通信問題。
LMAC固件負(fù)責(zé)按照時隙定時進(jìn)行空中接口數(shù)據(jù)的接收與發(fā)送??罩薪涌诘亩〞r操作非常嚴(yán)格,每個時隙長度為14.167 ms。UMAC需要在每個時隙組裝好的MAC塊發(fā)送到LMAC,Linux系統(tǒng)軟件定時器無法實(shí)現(xiàn)如此高精度的定時,所以,需要LMAC固件來為UMAC軟件提供時鐘同步,設(shè)計(jì)同時需要解決這一問題。
TETRA提供的最典型的業(yè)務(wù)是組呼與個呼,而UMAC負(fù)責(zé)將這些組呼和個呼的媒體數(shù)據(jù)發(fā)送到各個目標(biāo)基站及錄音服務(wù)器。因此,如何將媒體數(shù)據(jù)分發(fā)到多個目的地址和如何同時從多個源地址接收數(shù)據(jù)并區(qū)分出數(shù)據(jù)所屬不同的信道是UMAC軟件需要解決的一個重要問題。
空中接口無線資源極其珍貴,每個時隙傳輸?shù)臄?shù)據(jù)量極為有限,每個時隙傳輸信令的最大長度僅為268 bit。有效地使用無線資源要求UMAC層軟件高效地將各種數(shù)據(jù)組裝進(jìn)MAC塊,這是UMAC軟件需要解決的第3個問題。
為解決上述UMAC軟件的核心問題,提出如下解決方案。
DSPLINK是 TI基于 DAVICI架構(gòu)處理器的ARM與DSP通信機(jī)制。DSPLlNK提供了一套通用的API,從應(yīng)用層抽象出ARM與DSP的物理連接特性,從而降低用戶開發(fā)程序的復(fù)雜度。DSPLink提供了包括PROC、CHNL、MSGQ、POOL和 NOTIFY 等多種通信機(jī)制。
如圖4所示,LMAC底層靠硬件電路提供時隙定時和超幀復(fù)位定時,UMAC層無需啟動軟件定時,而是通過DSPLINK的NOTIFY通信機(jī)制實(shí)現(xiàn)與LMAC的同步,軟件定義了2個NOTIFY信號,分別為讀指示信號和寫指示信號。
圖4 UMAC和LMAC的通信機(jī)制
由于ARM與DSP核位于同一芯片上,2個內(nèi)核共用1片存儲芯片,除了NOTIFY機(jī)制之外,UMA和LMAC可以直接使用共享內(nèi)存通信,采用這種方式降低了系統(tǒng)設(shè)計(jì)的復(fù)雜度。
LMAC向UMAC發(fā)送數(shù)據(jù)時,首先將數(shù)據(jù)寫入共享內(nèi)存,然后通過讀指示通知UMAC讀數(shù)據(jù),在指示消息中攜帶超幀號、復(fù)幀號、幀號和時隙號以保證UMAC和LMAC時隙同步。UMAC收到讀指示之后,從共享內(nèi)存讀取進(jìn)行數(shù)據(jù)。
同樣,當(dāng)LMAC從共享內(nèi)存中讀走一個時隙的數(shù)據(jù)之后,通過寫指示消息通知LMAC寫數(shù)據(jù),在指示消息中攜帶超幀號、復(fù)幀號、幀號和時隙號以保證UMAC和LMAC時隙同步。UMAC收到寫指示之后,將自己組織好的相應(yīng)時隙的MAC塊寫入共享內(nèi)存。
整個TETRA系統(tǒng)中心與各基站及錄音服務(wù)器采用IP網(wǎng)絡(luò)架構(gòu),基站及錄音服務(wù)器之間使用多播技術(shù)進(jìn)行媒體數(shù)據(jù)的發(fā)送及接收。某個MS發(fā)起1個呼叫(組呼、個呼)時,交換中心會為該呼叫分配1個信道編號(C)、多播IP地址(A)、呼叫標(biāo)簽標(biāo)(F)以及上下行屬性(D)。
基站側(cè)的UMAC軟件收到攜帶多播地址的信道分配指令之后按照如下方法處理:
①加入多播地址A以向該多播地址發(fā)送數(shù)據(jù)及從該多播地址接收數(shù)據(jù);
②將信道編號(C)、多播地址(A),呼叫標(biāo)簽(F)以及上下行屬性(D)加入多播地址--信道ID映射表中;
③UMAC從DSPLINK接口收到的某一個信道的媒體數(shù)據(jù),查找映射表中D為上行屬性的、C為該信道編號的A值和F值;為媒體數(shù)據(jù)添加RTP頭和F信息,將處理后的數(shù)據(jù)發(fā)送給多播地址A;
④UMAC從IP網(wǎng)絡(luò)收到多播數(shù)據(jù)之后,分離RTP頭及F信息;查找映射表中D為下行屬性的、F值相同的C值,表示該數(shù)據(jù)應(yīng)該從信道C發(fā)送MS。
呼叫結(jié)束后,交換中心通知UMAC,UMAC退出多播樹,并將映射表中的相關(guān)信息刪除。
如圖5所示,MAC模塊在下行方向負(fù)責(zé)將控制信令原語(TMA)、廣播信令原語(TMB)、層管理信令原語(TMC)、媒體數(shù)據(jù)原語(TMD)接收到的數(shù)據(jù)及上層PDU、該層PDU組裝入下行MAC塊,以便通過LMAC原語(TMV)發(fā)送到LMAC。
圖5 MAC塊的組裝示意圖
每臺BS支持4臺收發(fā)信機(jī),每個收發(fā)信機(jī)支持4時隙復(fù)用。因此每個UMAC協(xié)議棧最多支持16個時隙(TS0~TS15)的MAC塊構(gòu)建。UMAC根據(jù)當(dāng)前時隙的信道配置信息,將不同類型的數(shù)據(jù)組裝進(jìn)當(dāng)前MAC塊,這個過程被稱為邏輯信道的復(fù)用。UMAC同時將盡可能多的數(shù)據(jù)裝入MAC塊,以便充分利用無線資源。
MAC塊的組裝采取在每個時隙的時間內(nèi)對每個載波的4個時隙各輪流組裝1次的策略。以1個載波為例描述MAC塊的創(chuàng)建組裝流程。將1個載波的4個時隙標(biāo)志為:A、B、C、D。在UMAC將A時隙的MAC塊發(fā)送給LMAC之后,并沒有馬上開始組裝下一幀的A時隙數(shù)據(jù),而是采用如下流程:
①檢查有無數(shù)據(jù)需要裝入B時隙的MAC塊,如果有則裝入,由于B時隙數(shù)據(jù)緊跟即將發(fā)送,所以如果B的MAC塊尚未裝滿,需要將該MAC塊用空PDU填充,之后生成該時隙的AACH信息,并裝入MAC塊;② 檢查有無數(shù)據(jù)需要裝入C時隙的MAC塊,如果有則裝入;③ 檢查有無數(shù)據(jù)需要裝入D時隙的MAC塊,如果有則裝入;④由于A時隙的數(shù)據(jù)已經(jīng)發(fā)送,所以需要重新初始化A時隙的MAC塊,然后檢查有無數(shù)據(jù)需要裝入A時隙的MAC塊,如果有則裝入。
這一流程,每個時隙的 MAC塊在一幀時間(56.67 ms)之內(nèi)具有4次組裝機(jī)會,有利于提高M(jìn)AC塊的利用效率,更重要的是頻繁的檢查可以將下行的數(shù)據(jù)盡快裝入MAC塊,有效縮短了數(shù)據(jù)在UMAC緩存的時間,提高了UMAC層發(fā)送數(shù)據(jù)的效率。
對UMAC層軟件的測試,分為3個步驟完成,分別是的軟件白盒測試、軟件黑盒測試及BS系統(tǒng)集成測試。軟件白盒測試,對每個函數(shù)編寫測試用例,要求達(dá)到所有函數(shù)語句覆蓋、核心處理函數(shù)判定/條件覆蓋;軟件黑盒測試,編寫程序模擬上層的LLC協(xié)議軟件以及下層的LMAC協(xié)議軟件,通過Socket發(fā)送數(shù)據(jù)驅(qū)動UMAC軟件的運(yùn)行,要求為協(xié)議棧的每一個功能設(shè)計(jì)測試用例;集成測試是將BS作為一個整體進(jìn)行測試。但是需要指出的是,以下幾個測試用例證明了上述幾個UMAC軟件的關(guān)鍵技術(shù)是正確的:
①M(fèi)S開機(jī),通過隨機(jī)接入向MS發(fā)送注冊請求,MS注冊成功;②某一BS下的MS發(fā)起個呼,呼叫建立、通話及釋放未出現(xiàn)異常;③ 某一BS下的MS發(fā)起組呼并講話,其他BS下的MS可以聽到清晰的話音;④MS連續(xù)發(fā)起100次呼叫,呼叫接通率100%,呼叫建立時間小于500 ms。
按照該設(shè)計(jì)方法實(shí)現(xiàn)的UMAC軟件具有傳輸延時低、資源利用率高的優(yōu)點(diǎn),可以滿足協(xié)議要求的功能和在基站部署的需要。在國外TETRA設(shè)備完全占領(lǐng)中國市場的今天,為國內(nèi)TETRA技術(shù)的發(fā)展,起到了極大的推動作用。隨著時間的推進(jìn),該軟件必將跟隨基站設(shè)備,廣泛應(yīng)用在鐵路、民航和公安等多個領(lǐng)域,具有較強(qiáng)的實(shí)用性和先進(jìn)性。
[1]ETSI EN 300392-2Terrestrial Trunked Radio(TETRA)Voice plus Data(V+D).Part 2:Air Interface(AI)[S].
[2]鄭祖輝,陸錦華,丁銳,等.數(shù)字集群移動通信系統(tǒng)[M].北京:電子工業(yè)出版社,2008:372-342.
[3]羅明.基于IP的TETRA系統(tǒng)的研究[D].武漢:武漢大學(xué),2004.
[4]李延波.TETRA空中接口協(xié)議棧軟件設(shè)計(jì)與實(shí)現(xiàn)[D]. 天津:天津大學(xué),2007.
[5]仲達(dá)帆.TETRA數(shù)字集群系統(tǒng)上MAC層上行信道的研究與開發(fā)[D].北京:北京交通大學(xué),2008.
[6]宋政育,孫昕.TETRA數(shù)字集群系統(tǒng)上MAC層協(xié)議棧的開發(fā)[J].移動通信,2009(12):35-39.
[7]孫昕,李海.TETRA數(shù)字集群空中接口協(xié)議棧體系結(jié)構(gòu)分析[J].移動通信,2008(3):34-37.