徐 軍, 張曉宇
(華北科技學院 電信工程學院, 河北 燕郊 065201)
?
移動通信實驗系統軟硬件設計與實現
徐 軍, 張曉宇
(華北科技學院 電信工程學院, 河北 燕郊 065201)

目前高校通信類專業所用實驗設備主要完成調制、交織、信道編碼和系統信令實驗,較難配合3GPP標準來完成教學、科研、課程設計及畢業設計等實踐教學環節的任務。充分研究3GPP標準文檔后,在自主開發的ARM和DSP單板上完成了3G/4G系統UE側和eNodeB/NodeB側物理層、MAC、RLC、PDCP、RRC、NAS的開發。文中對單板結構進行了研究,對UE側和eNodeB側的操作系統進行了移植。對RRC、RLC、物理層實現的部分過程進行了描述。通過同樣硬件結構的兩塊單板,可以組成一個TD-LTE移動通信系統,較好地配合了教學和科研工作,對3GPP標準的演進過程的跟蹤教學與研究也有一定作用。
第三代合作伙伴項目; 數字信號處理器; 信道編解碼; 協議棧
大多數嵌入式設備都使用ARM[1-13]芯片作為微處理器,經過幾十年的發展,ARM技術已經發展得很成熟。但是由于多媒體以及大數據的發展,對數據的處理提出了很高要求,不僅要求系統具有很高的正確率,還要求有很高的處理速率。普通的ARM芯片不能達到要求,大大的限制了嵌入式設備的發展。而DSP[14-15]芯片卻能很好地解決這些問題。DSP芯片是一種特別適合于進行數字信號處理運算的微處理器,其主要應用是實時快速地實現各種數字信號處理算法。因此本文設計了ARM和DSP一體的嵌入式開發平臺。具有ARM和DSP各自的優點,既能起到控制芯片的功能,又能提高處理數據的能力。在此基礎上,搭建了Linux系統和VxWorks系統,植入操作系統使得操作更加方便人性化,同時使得軟件平臺的自由度大。同時,本文在自主開發的ARM和DSP單板上完成了3G和4G系統協議棧開發。實現了MAC[1,7]、RLC[4,6]、PDCP[8]、RRC[9]、NAS[10]、NBAP[5]、RANAP[2]、S1AP[3]等協議的開發。
1.1 硬件結構
系統主要芯片為ARM芯片,DSP芯片,FPGA芯片,并含有一個RS232接口、網絡接口及一個FLASH和兩塊SDRAM。在DSP子系統中包含一個FLASH、一塊SDRAM,FLASH用于存放DSP系統的程序;通過JTAG接口可以對DSP進行調試、下載DSP程序到FLASH中。DSP系統通過HPI方式與ARM進行數據交互。硬件架構是基于ARM和DSP的,兩者既是單獨存在也是彼此聯系著的,它們之間可以實現資源共享、數據傳輸、控制功能(雙向控制)等等,這些無疑是采用這種架構設計的最突出的優勢。同時,它們也是彼此分開的,對于ARM來說,起到主要的控制作用,可以看出,ARM可以控制很多其他擴展的模塊,比如USB模塊、串口模塊、網絡接口模塊、SDRAM模塊、FLASH模塊;對于DSP來說,其起到輔助的作用,同時,DSP芯片也是一部分模塊的控制單元,連接了其他的模塊,比如,SDRAM模塊和FLASH模塊。而在ARM和DSP之間,建立了用于連接兩者數據、資源的32位HPI協議程序,方便實現不同架構的資源共享。本硬件平臺可以滿足開發人員的多種應用要求,比如,串口模塊和USB模塊可以利用在數據傳輸相關的應用開發中,網絡接口模塊可以利用在網絡協議相關的應用開發中,SDRAM模塊和FLASH模塊可以使用在數據處理相關的應用開發中。這些擴展模塊可以滿足大部分的開發應用,同時,DSP的使用,又使得本軟件平臺的應用厚度增強。32位HPI的使用,使得ARM和DSP緊密結合在一起,達到資源共享,資源合理分配,智能調度的效果。
ARM芯片可以使用LINUX操作系統和VxWorks操作系統,3G,4G移動通信系統協議棧L2,L3,NAS層在ARM上實現。DSP和FPGA用于實現物理層算法。
1.2 硬件設計
硬件設計中包括幾個主要模塊的設計,包括ARM中心模塊的設計、DSP中心模塊的設計和系統電源模塊。選擇三星公司設計的S3C2410芯片完成多種外接模塊的設計。由于管腳較多,需要對管腳進行分組,每一組為一層,進行多層板的設計,本次設計的ARM中心模塊的多層設計,分別以A、B、C、D來區分。
在ARM的A層原理圖中,主要利用通用I/O口,定義了一些地址接口和數據接口,形成了地址總線和數據總線,用于操作系統的基本操作;另外,同時也定義了一些系統時鐘模塊接入I/O口或者部分功能模塊的工作時鐘接入I/O口;定義了ARM芯片的工作模式選擇的I/O口,如OM0、OM1、OM2、OM3;定義了一些功能模塊的輸入輸出I/O口,如網絡接口模塊、SDRAM模塊、FLASH模塊;最后,本層的原理圖中還開辟了其他通用I/O口作為其他拓展功能的備用接口,比如接入以后需要拓展的FPGA模塊等。在ARM的B層原理圖中,利用通用I/O口定義了一些外圍功能模塊,比如,VD總線就是定義于外接LCD模塊,此外,B層也定義了串口通信模塊,用于數據傳輸,可以通過串口與外接設備進行數據通信或者燒寫程序到ARM芯片中,也可以打印串口消息;同時,系統定義了DN0、DN1、DP0、DP1接口,用于對兩個USB接口的接口定義,用于與一些移動設備的數據通信;還有一些接口是定義了ARM_Jtag接口,連接一些外圍仿真器,此設計使用的是20針的Jtag口,用于燒寫、調試程序,使開發更方便;最后,在該層上還有一些系統已經定義的I/O口,用于系統的特殊功能。在ARM的C層原理圖中,主要是一些系統的I/O口,可以定義為電源接地層,該層主要是把一些需要提供電源和接地的I/O口組合使用,從圖看出,ARM芯片一共需要兩種電源,分別是1.8 V和3.3 V,另外,該層還有一些系統I/O口,比如重置接口RESET,指示系統工作狀態的LED 0-3等,還有一些自定義接口,如ARM_EINT0、ARM_EINT1、ARM_EINT2、ARM_EINT3、ARM_EINT7等,用于連接其他設備。
DSP選擇TI公司的TMS320C6416,將其進行分組設計,每一組為一層,共分為A、B、C、D、E、F、G、H八層。由于A層涉及到電平選擇的作用,因此加了一個功能芯片SN74CBTD3384DW,用于實現10位FET總線開關和電平轉換的作用,以達到DSP芯片的工作要求。在該層中,定義了DSPCLKIN——時鐘電路的輸入I/O接口,DSP_nRESET——DSP芯片重置I/O接口,DSPEXT_INT4、DSPEXT_INT5——DSP外部時鐘電路輸入I/O接口,在SN74CBTD3384DW的輸入端口包括DSP_TMS、DSP_TDO、DSP_TDI、DSP_TCK、DSP_nTRST、DSP_EMU0、DSP_EMU1,作為DSP芯片燒寫、調試程序的功能。B層為DSP芯片的中心層,定義了一些地址總線,并命名為TAEA,共有20位地址總線,同時定義了數據總線,命名為TAED,共有32位數據總線,通過之間的連接關系說明地址與數據之間的處理關系。此外,還有一些控制端口,如TABE 0-7——8位控制總線,用于控制數據處理方案,最后還有其他的控制端,用于對數據的控制。C層原理圖中,依然設置了地址總線和數據總線,分別命名為TBEA、TBED,寬度依次為20位、16位,其余I/O口依次命名為BECLKIN、BEKO1、BEKO2、TBARE、TBAOE、TBAWE、BHOLD、BBUSREQ、BHOLDA,都是對本層數據和地址的控制端口,達到控制作用,實現一定的處理方案,在本層中,還有一些端口連接了電源,主要是因為這些端口實現上電才能完成特定功能。在D層原理圖中,主要體現了DSP芯片同ARM芯片之間的數據交換功能,如定義了DATA,寬度為32位,連接ARM芯片相對應的位置,實現ARM與DSP之間的數據傳輸、共享等功能。此外,D層有一個特殊的定義,HPI_MODEBIT5——用于ARM與DSP之間的HPI測試,此HPI測試是我們自行編寫的一個測試硬件通信能力的程序。DSPnHINT、DSPHCNITL0、DSPHCNITL1、DSPHHWIL、DSPnHDS2、 DSPnHR/nW、DSPnHCS、DSPnHDS1等管腳則是關于芯片功能的設置管腳,可以控制芯片處于特定模式的工作狀態下。由于DSP中心模塊原理圖的E層、F層沒有實現任何功能,此處都設置為懸空,作為擴展用。DSP的G層、H層都沒有特定的功能,只是提供電源和接地功能,也可以稱之為接地層和電源層。
由于設計中使用到很多不同種類的芯片,而這些不同的芯片都工作在不同的電壓,這就造成了存在很多的工作電壓,而設置不同的電壓對模塊來說是不現實的,所以模塊內部應該有電平轉換功能,該設計中,有5、3.3、1.8 V,該電源模塊必須有這些電壓的輸出。
2.1 操作系統
基于ARM和DSP的硬件架構,可以讓我們設計更加高效、豐富、全面的軟件系統,操作系統采用Linux+VxWorks的軟件架構,其中,Linux系統是主要的嵌入式操作,負責所有的系統文件的管理和程序的運行,主要負責一般性業務,而對于一些對可靠性、精度、運行速度或者效率要求較高的情形時,則選擇VxWorks系統,在系統開機運行時,我們設置了選擇系統的選項,用戶可根據事務自行選擇系統,這樣在方便用戶的同時,也增強了設備的多樣性。
下面從總體上說明兩種系統操作系統搭建移植的步驟。
(1) Linux系統。安裝虛擬機嵌入式系統、搭建GNU編譯鏈、編譯Boot鏡像、編譯Linux內核鏡像、燒寫鏡像文件、移植系統。
(2) VxWorks系統。安裝Tornado 2.2、安裝DFB2410 VxWorks BSP、編譯VxWorks Boot ROM鏡像、編譯VxWorks內核鏡像、燒寫鏡像文件、移植系統。
2.2 應用系統
在本系統中,利用兩塊單板完成TD-LTE系統開發。單板間的通信通過網口進行通信。分別完成UE和eNodeB的功能。通過串口與PC機的監控系統通信。E-UTRAN的無線協議接口包含用戶面協議接口和控制面協議接口。用戶面協議棧如圖1所示,包含PDCP(分組數據匯聚)子層、RLC(無線鏈路控制子層)以及MAC(媒體接入控制)子層,分別完成頭壓縮、計算、ARQ(自動重傳)和HARQ(混合自動重傳)。

圖1 用戶面協議棧
控制面協議棧如圖2所示,其中PDCP子層完成計算加密和完整性保護功能。RLC 和MAC子層與用戶面相同。RRC完成廣播、尋呼、RRC連接管理、RB(資源塊)控制、移動性以及UE的測量上報和控制。NAS完成EPS承載管理、鑒權、EMC(EPS連接管理)空閑移動操作。EMC(EPS連接管理)發起空閑尋呼。安全控制。

圖2 控制面協議棧
ARM中運行的軟件完成高層協議對物理層的指示,實現對物理層各子系統的控制,并完成業務面數據在MAC和物理層之間的傳送。軟件環境為在eNB側為嵌入式操作系統VxWorks。編程語言是標準C語言,使用的C語言編譯器為DIAB。在UE側為Linux操作系統。
MAC、RLC、PDCP、NAS等層協議均包括4個模塊:高層協議處理模塊,信令調度模塊,業務數據調度模塊,業務面數據傳送模塊。以MAC層為例,高層協議處理模塊主要處理高層信令流程,根據高層協議對物理層的指示,完成高層和物理層資源映射,從而實現對物理層各子系統的控制。信令調度模塊主要處理封裝了RRC等高層協議消息及HPI的消息發送,為高層協議處理模塊提供了一個消息發送平臺,對來自RRC,HPI的消息進行解析,分發和函數調度。業務面數據傳送模塊主要實現業務面數據在MAC和物理層之間的傳送,以及隨機接入時觸發高層協議處理模塊的隨機接入過程。業務數據調度模塊封裝了MAC、DPRAM的消息發送,為業務面數據傳送模塊提供了一個消息發送平臺,并對來自MAC和DPRAM的消息進行解析、分發和函數調度。
又如RRC層協議,根據LTE協議棧軟件需求,使用效率較高的C語言實現。RRC層模塊由2層進程組成,第一層是一個RRC主進程,該進程作為根進程,實現中斷導引功能,將具體的消息傳給對應UE的RRC子進程。第二層是由RRC主進程創建的子進程。它的子進程可以分為兩類:① RRM子進程,該進程實現整個RNC的無線資源管理功能,并為調用它的用戶提供相應的RRM功能;② RRC子進程,每一個此類進程對應一個處于RRC連接狀態下的UE,其區分是依靠每個UE的U_RNTI。該進程完成UE接入服務中需要的各種信令交互和配置過程,在進行特定公共過程時動態創建對應子進程,在完成后將其刪掉。RRC主進程是RRC模塊的缺省根進程,它負責對第二層子進程的管理,并將各種信令消息分發給對應UE的RRC子進程。ASN.1編解碼模塊采用結構化設計,但子函數層應盡可能少,提供編碼和解碼兩個接口函數。
在RLC發送側進行TFC選擇的流程:
(1) 首先,把RRC配置的CTFC值轉換成每個傳輸信道的TF。
(2) 開辟一個二維數組A[x][y],x的最大值為N,N為傳輸信道的個數;y的最大值是TFCS size。
(3)A[0][y]是一個大小為TFCS size的Boolean類型的數組,用來指示對應下標的TFC是否可用。(叫做“TFC可用數組”)進入TFC選擇函數的時候,該數組所有成員被賦值為OPC_TRUE。
(4)A[1][y]~A[N][y]中的1~N與傳輸信道編號有關,保證傳輸信道編號從小到大排列(N是傳輸信道的個數,但是需要自己維護傳輸信道的編號和數組下標的映射關系);第二維以每個傳輸信道的TF為編號,第二維的大小就是TFCS的size。需要將配置的CTFC轉換成具體的TFS。
(5) 如果此時不是某個RB的TTI的起始時刻,此時不會invoke RLC,則RLC沒有數據交給MAC,所以選擇TF0。
(6) 要求RRC的配置消息中,傳輸信道id的分配不能時刻保證是從1開始,按序遞增的,所以要自己維護TrCH id和數組下標的映射關系。
(7) 發送側進行TFC選擇的流程。舉例:有3條傳輸信道,TFCS size為6,TFC0為(TF0,TF0,TF0),TFC1為(TF1,TF0,TF0),TFC2為(TF2,TF1,TF1),TFC3為(TF1,TF1,TF0),TFC4為(TF2,TF0,TF0),TFC5為(TF1,TF0,TF1)。在TFC選擇的某個時刻,TFC0,TFC2,TFC5是可用的。RLC優先級調度函數必須保證,在一個傳輸信道的TTI之內,調用的邏輯信道必須是同一個。也就是說,邏輯信道的調度是以這些邏輯信道映射到的傳輸信道的TTI為周期的。
接收到下行處理中斷的發送處理流程:首先檢查RB映射的配置,看是否有多個邏輯信道復用到同一個傳輸信道,如果有,則調用函數進行優先級調度處理。優先級調度完成后,可以確定在這個下行處理中斷時刻,有N個RB對應的傳輸信道會組合在一個TFC中。將這些RB的ID寫進一個數組,數組大小為N,下標從0~N-1,遍歷這N個RB的模式,激活RLC子進程或者調用函數,獲取每個RB進行TF選擇所需要的參數。在遍歷完了每個可用的RB后,調用TFC選擇函數,進行TFC的選擇。(需要保證TFC中傳輸信道的排列順序是按照傳輸信道編號從小到大的順序)根據TFC選擇的結果,從共享內存list中或者buffer中讀出規定數量的PDU,按照MAC的配置信息,加上MAC頭,再將一個TTI內所有的TB合并在一起,加上包頭發送給上層協議。
DSP中運行的軟件實現物理層部分功能。主要為信道編解碼功能實現。信道編解碼用于對空中傳輸的信息進行檢錯及糾錯,以最大限度地降低由于信道質量和其它干擾問題造成的信息傳輸錯誤。信道編解碼包括CRC校驗,卷積編碼,viterbi解碼,速率匹配,交織,信道復用以及傳輸信道到物理信道的映射等步驟。信道解碼是相應信道編碼模塊的逆過程。除Viterbi 解碼模塊在FPGA中實現以外,信道編解碼的其它所有模塊都是在DSP 上實現的。信道編解碼子系統軟件運行的軟、硬件平臺包括:單板處理器 DSP6416,CCS2.12,嵌入式實時操作系統OSEck3.1,編程語言:標準C,匯編語言。
針對目前普遍使用的移動通信實驗系統不能完成依據3GPP標準的演進而隨之進行針對性的教學工作,本文提出并實現了一種在ARM和DSP及FPGA一體的單板上實現物理層、層二、層三及NAS層的協議棧教學設備。通過利用兩塊相同硬件結構的單板,分別完成UE和eNodeB的部分功能,通過單板的串口,將協議數據傳送到PC機的監控軟件中,完成實時消息跟蹤。該系統已應用到教學中。下一步工作為改造單板,構成一個具有FER語音和射頻功能的系統。
[1] Medium Access Control (MAC) protocol specification (Release 10)[S]. 3GPP TS36.321 V10.0.0,2010.12.
[2] 3GPP TS25.413v4.8.0, (2002-12) Radio Access Network Application Part(RANAP) signalling[S].
[3] 3GPP.Evolved Universal Terresttial Radio Acess Network (E-UTRAN) S1 Application Protocol (SIAP) [S]. 3GPP TS 36.413 V8.3.0.2008.
[4] 3GPP TS 36.322: Evolved Universal Terrestrial Radio Access (E-UTRA) Radio Link Control (RLC) protocol specification.[S]. 2009.9.
[5] 3GPP TS25.413v4.8.0, (2002-12) NodeB Application Part(NBAP) signalling[S].2009.
[6] 3GPP TS 36.322: Evolved Universal Terrestrial Radio Access (E-UTRA) Radio Link Control (RLC) protocol specification[S]. 2009.9.
[7] 3GPP TS 36.321: Evolved Universal Terrestrial Radio Access (E-UTRA); Medium Access Control (MAC) protocol specification[S]. 2009.9.
[8] 3GPP TS 25.323 V4.6.0 (2002-12) Packet Data Convergence Protocol (PDCP) specification[S].
[9] 3GPP TS 25.331 V4.8.0 (2002-12) Radio Resource Control (RRC) protocol specification.
[10] 3GPP TS 24.008 NAS protocol specification[S].
[11] 杜春雷.ARM體系結構與編程[M].北京:清華大學出版社,2003.
[12] 田 澤.嵌入式系統開發與應用[M].北京:北京航空航天大學出版社,2005.
[13] 田 澤.嵌入式系統開發與應用實驗教程[M].北京:北京航空航天大學出版社,2004.
[14] 劉和平.TMS320LF240xDSP結構、原理及應用[M].北京:北京航天航空人學出版社,2002.
[15] 江思敏.TMS320LF240xDSP硬件開發教程[M].北京:機械工業出版社,2003.
The Hardware and Software Design and Implementation of Mobile Communication Experiment System
XUJun,ZHANGXiao-yu
(School of Telecommunications Engineering, North China Institute of Science and Technology, Yanjiao 065201, China)
The experiments of communication specialty mainly are to use equipmentto perform interleaving, modulation, channel coding and system signaling experiments, it is more difficult with the 3GPP standard to complete teaching, scientific research, the course design, and graduation design task. Under a full study of 3GPP standard document, a 4G system was developed. The system can complete UE and eNodeB/NodeB sides on the physical layer, and realize the independent development of MAC, RLC, PDCP RRC, NAS on the ARM and the DSP boards. The single board structure was studied, the operating system on the UE side and eNodeB side were transplanted. Part of the process of implementing the RRC, RLC, and physical layer were described. Two single boards are taken as hardware structure, they can be composed of a mobile communication system,. and can connect with the work of teaching and scientific research, and promote evolution of teaching and research of 3GPP standard.
the 3rd generation partnership project; DSP; channel codec; protocol
2014-07-18
國家自然科學基金(61304024)支持項目;中央高校基本業務經費(DX1201A);河北省自然科學基金(F2013508110)
徐 軍(1970-),男,湖南新寧人,博士,高級工程師,副教授,研究方向,移動通信系統,嵌入式系統。E-mail:jtcembx@sina.com
TN 929.5
A
1006-7167(2015)05-0100-04