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