基于Windows和USRP數字對講機收發系統設計

而用VC開發通信協議程序比較方便,USRP的通用驅動UHD也是用VC開發的,相比較與Simulink和Labview,在VC上開發,更具優勢,更適合本項目的開發。并且Simulink和Labview都只支持USRP2,開發還不是很成熟,工具也不方便[4][5]。本次驗證系統采用的是USRP1,USRP1采用的是USB2.0接口,相對于USRP2以太網接口簡單方便,母版上采用的是Altera的FPGA芯片,容易開發,并且價格便宜。所以,采用USRP1在Windows上用VC進行開發。
本文引用地址:http://www.104case.com/article/170161.htmUSRP在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()并將接收的數據解調返回給上層。

收發系統實現及測試
系統平臺搭建
系統平臺基于軟件無線電的架構,基帶處理部分按照DMR協議由軟件模塊來實現,包括組幀、同步、信道接入、BPTC信道編碼等,這部分主要在PC機上完成。射頻部分由硬件模塊USRP完成,采用400M的射頻子板,與PC之間通過USB2.0進行通信。語音模塊由AMBE-1000來完成,本次系統中語音板是插在一個51最小系統上,51最小系統主要負責AMBE-1000語音板的驅動和它與PC機之間的串口通信。具體系統架構如圖3。

linux相關文章:linux教程
模數轉換器相關文章:模數轉換器工作原理
數字通信相關文章:數字通信原理
數字濾波器相關文章:數字濾波器原理
評論