一種數(shù)字對講機收發(fā)系統(tǒng)的設計方案
本文提出了一種在Windows平臺上基于USRP的數(shù)字對講機收發(fā)系統(tǒng)設的計方案。首先簡要介紹USRP及其開發(fā)平臺,通過各種對比選擇在Windows平臺上利用VC來實現(xiàn),然后描述了USRP驅(qū)動安裝,詳細分析了UHD重組的API函數(shù)接口,最后搭建數(shù)字對講機收發(fā)系統(tǒng),采用DMR數(shù)字通信協(xié)議,利用USRP作為收發(fā)前端,在PC上通過串口RS232連接AMBE-1000語音板,通過實際測試驗證了系統(tǒng)的各項功能,證明了USRP在Windows平臺上開發(fā)簡單方便可行。
0引言
隨著信息化時代的發(fā)展,人們?nèi)找嫫惹械匾髮χv機具有諸如話音加密、數(shù)據(jù)傳輸、遠程監(jiān)控、聯(lián)網(wǎng)調(diào)度等功能,而且要求進一步提高無線頻譜的利用率(信道間隔由過去的25kHz到現(xiàn)在的12.5kHz以及6.25kHz),數(shù)字通信技術(shù)在對講機及轉(zhuǎn)信臺等相關(guān)產(chǎn)品中的應用也就迫在眉睫了[1][2].
數(shù)字對講機采用數(shù)字技術(shù)進行設計,將語音信號數(shù)字化,以數(shù)字編碼形式傳播。數(shù)字對講機與模擬對講機相比,語音清晰、接收通話信號穩(wěn)定,數(shù)字對講機不僅能實現(xiàn)模擬對講機基本業(yè)務:單呼、組呼等功能,還具有調(diào)度臺核查呼叫、區(qū)域選擇、接入優(yōu)先、優(yōu)先呼叫、遲后進入、預占優(yōu)先呼叫、偵聽、動態(tài)重組、監(jiān)聽等補充業(yè)務[2].數(shù)字對講機是我國的移動通信系統(tǒng)和設備中的最后一個由模擬轉(zhuǎn)向數(shù)字的設備和系統(tǒng)。
本文提出了一種基于USRP的數(shù)字對講機收發(fā)系統(tǒng)設計方案。該方案在Windows平臺上,利用USRP作為收發(fā)前端,在PC機上通過串口RS232連接語音板,上層采用DMR數(shù)字通信協(xié)議,實現(xiàn)了數(shù)字對講機系統(tǒng)的各項功能。
1 USRP介紹及系統(tǒng)開發(fā)平臺選取
1.1USRP介紹
USRP(Universal Software Radio Peripheral,通用軟件無線電外設)旨在使普通計算機能像高帶寬的軟件無線電設備一樣工作。USRP是一個非常靈活的USB設備,包含一個小的母板,母板包含4個12bit/64M抽樣率的ADC,4個14bit/128M DAC,一個百萬門的FPGA芯片和一個可編程的USB2.0控制器。每個USRP母板支持4個子板,2個接收,2個發(fā)射[3].它的結(jié)構(gòu)框圖如圖1所示。
如圖1所示,USRP通過USB2.0與處理器相連。接收器鏈從高度敏感、可接受微小信號的模擬前端開始,然后使用直接下變頻將它們數(shù)字化為同相(I)和正交(Q)基帶信號。下變頻后有高速模數(shù)轉(zhuǎn)換器和一個DDC,用以降低采樣率并將I和Q打包傳輸?shù)街鳈C。發(fā)射器鏈從主機開始,生成I和Q并通過USB2.0輸?shù)経SRP硬件,DUC為DAC準備信號,然后I-Q進行混合,直接上變頻信號以產(chǎn)生一個RF頻率信號,然后進行信號放大與傳輸。
1.2開發(fā)平臺選取
目前開發(fā)USRP的工具有四種,分別是Linux品臺下的GNUradio,還有Windows平臺下的VC,Simulink,Labview.
GNU Radio是Linux上一個軟件無線電軟件,通過最小程度地結(jié)合硬件USRP,用軟件來定義無線電波發(fā)射和接收的方式,搭建無線電通信系統(tǒng)的開源軟件系統(tǒng)[3].Labview是由NI提出的一款開發(fā)USRP的工具,用戶可以開發(fā)自定義的無線通信協(xié)議并且實現(xiàn)實時運行的物理層數(shù)字鏈路。但是目前Labview只支持USRP-292x.MATLAB和Simulink連接Ettus Reseach公司的USRP,可以提供無線電回路設計和建模環(huán)境。它是由德國KIT大學開發(fā)的,只支持USRP2,還不是很完善。各個平臺之間對比:
通過表1可知,相對于Linux平臺而言,Windows平臺開發(fā)更方便有以下幾個優(yōu)點:第一,Linux的操作比較復雜,Windows的比較簡單,快速開發(fā);第二,Windows可視化的界面編輯器,方便開發(fā)對講機的界面對話框;第三,Windows是微軟的東西,VC也是,自然會比其他公司的開發(fā)工具在兼容性等各方面要好;第四,Linux速度比較快,安全性比Windows好,但是有很多軟件只能在Windows里運行,與Linux兼容的軟件正在開發(fā)中,不方便調(diào)用PC里面的API和外面接口。
而用VC開發(fā)通信協(xié)議程序比較方便,USRP的通用驅(qū)動UHD也是用VC開發(fā)的,相比較與Simulink和Labview,在VC上開發(fā),更具優(yōu)勢,更適合本項目的開發(fā)。并且Simulink和Labview都只支持USRP2,開發(fā)還不是很成熟,工具也不方便[4][5].本次驗證系統(tǒng)采用的是USRP1,USRP1采用的是USB2.0接口,相對于USRP2以太網(wǎng)接口簡單方便,母版上采用的是Altera的FPGA芯片,容易開發(fā),并且價格便宜。所以,采用USRP1在Windows上用VC進行開發(fā)。
2 USRP在Windows上開發(fā)接口
UHD是由Ettus Resarch開發(fā)的,為其產(chǎn)品提供宿主驅(qū)動(host driver)和API.本次設計在Windows平臺下,采用UHD驅(qū)動。在安裝UHD驅(qū)動時,需要安裝cmake,Boost,libUSB等插件,然后解壓UHD源碼,通過cmake交叉編譯實現(xiàn),可以得到UHD下面的各個項目工程。Boost和libUSB這兩個庫在cmake編譯中都需要進行配置,否則編譯過不去。這些插件主要作用就是將UHD下面的Linux源代碼通過cmake等交叉編譯生成Windows下面的C代碼。
安裝好后可以連接上USRP,通過里面的測試實例,可以看到USRP是否正確連上。正確連上會顯示如下信息:圖中的參數(shù)是可配置的。
然后,我們就可以調(diào)用UHD下面的一些API函數(shù),在本次項目中主要參考的就是底層的send()和recv()。里面的程序全是通過類來實現(xiàn)的。在Windows平臺上,USRP提供的可配參數(shù)主要如表2所示。
但是send()和recv()收發(fā)不滿足DMR規(guī)定的要求,并且在進行收發(fā)轉(zhuǎn)換時,時序處理不過來。為了方便上層調(diào)用,將配置分為三部分,對UHD下面的接口函數(shù)進行了重新封裝,如表3所示。
在configure()里面主要是創(chuàng)建了一個USRP,它花時較長,需要返回一些USRP的子板和母版信息,還要導入一些映像文件,所以采用單獨分開配置,在程序調(diào)用之前配置一次就可以。configure_recv()和configure_send()主要是配置一些收發(fā)的具體參數(shù),就是上面介紹的主要參數(shù)。這樣將配置分開,是為收發(fā)轉(zhuǎn)換準備的,方便上層調(diào)用。Mod_send()主要負責將上層來的數(shù)據(jù)進行調(diào)制然后調(diào)用底層send()將數(shù)據(jù)發(fā)送出去,Demod_recv()主要負責調(diào)用底層recv()并將接收的數(shù)據(jù)解調(diào)返回給上層。
3收發(fā)系統(tǒng)實現(xiàn)及測試
3.1系統(tǒng)平臺搭建
系統(tǒng)平臺基于軟件無線電的架構(gòu),基帶處理部分按照DMR協(xié)議由軟件模塊來實現(xiàn),包括組幀、同步、信道接入、BPTC信道編碼等,這部分主要在PC機上完成。射頻部分由硬件模塊USRP完成,采用400M的射頻子板,與PC之間通過USB2.0進行通信。語音模塊由AMBE-1000來完成,本次系統(tǒng)中語音板是插在一個51最小系統(tǒng)上,51最小系統(tǒng)主要負責AMBE-1000語音板的驅(qū)動和它與PC機之間的串口通信。具體系統(tǒng)架構(gòu)如圖3。
3.2DMR協(xié)議棧收發(fā)時序
在PC上主要主要完成的就是DMR通信協(xié)議,主要分為三層,物理層主要功能是:比特與符號定義、建立頻率同步和符號同步、構(gòu)成突發(fā)、對基帶信號進行調(diào)制解調(diào)、實現(xiàn)收發(fā)轉(zhuǎn)換等;數(shù)據(jù)鏈路層的主要功能是:突發(fā)和參數(shù)定義、組幀和幀同步、信道編碼、確認和重傳機制、與兩層之間的接口等;呼叫控制層的主要功能是:BS激活與去激活、語音業(yè)務下的呼叫建立、呼叫保持、呼叫終止、單呼和群呼的發(fā)送與接收等[6].在本文中嚴格按照DMR協(xié)議規(guī)定的幀結(jié)構(gòu)和突發(fā)時序進行了設計,突發(fā)結(jié)構(gòu)如圖4所示。
每個burst長30ms,包含兩個108比特有效載荷和一個48比特同步或信令域,其中27.5ms承載264比特內(nèi)容,在傳輸語音時,可以利用兩個有效載荷共216比特承載60ms的壓縮語音信息。另外2.5s分布在左右兩邊,各占1.25s,這樣兩個突發(fā)就間隔2.5ms.在上行信道上,2.5ms間隔是保護間隔,作傳播時延和功率放大器的上升時間;在下信道上,2.5ms間隔用作CACH信道,用于傳送業(yè)務信道管理信息和低速信令。TDMA frame由兩個burst構(gòu)成,語音采集器每60ms采集一幀數(shù)據(jù)?;鶐幚砟K進行基帶處理和中頻調(diào)制,處理時間小于60ms,其中包括數(shù)據(jù)收集和寫入緩存的時間。USRP每30ms時間發(fā)送一幀數(shù)據(jù),與基帶模塊和中頻調(diào)制并行進行,接收端作類似的處理。收發(fā)的時序轉(zhuǎn)換如圖5所示。
3.3系統(tǒng)測試
本次開發(fā)的數(shù)字對講機收發(fā)系統(tǒng)經(jīng)過實際測試,可以正常進行單呼,組呼語音通話,通話質(zhì)量較好。測試中系統(tǒng)采取主要參數(shù)在表2中已經(jīng)說明,收發(fā)系統(tǒng)實物圖如圖6所示。
本文中對發(fā)送端得波形進行了測試,圖7是一個突發(fā)的數(shù)據(jù)波形,圖8是一個TDMA幀的數(shù)據(jù)波形。可以看出,實際的測試波形比27.5ms多一點,這個是由USRP不穩(wěn)定帶來的,但一幀數(shù)據(jù)在上層嚴格控制在60ms,30ms進行一次收發(fā)轉(zhuǎn)換,滿足DMR協(xié)議規(guī)定的格式。
4結(jié)論
本文通過對USRP的研究,選取在Windows平臺上,利用軟件無線電架構(gòu)搭建數(shù)字對講機收發(fā)系統(tǒng)。通過實際測試表明,USRP在Windows下開發(fā)很方便,搭建的數(shù)字對講機收發(fā)系統(tǒng)能夠進行清晰的單呼和組呼功能。
評論