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