軟件無線電的基本思想是以開放的、可擴展的、結構最簡的硬件為通用平臺,把盡可能多通信功能用可升級、可替換軟件來實現。其中心思想是:構造一個具有標準化、模塊化的通用硬件平臺,并通過軟件加載實現各種無線通信功能的一種開放式體系結構。本文基于這一思想,首先構造一個DSP與PC機接口的硬件平臺,繼而在該平臺上實現較為簡單的FM調制器。該系統的實現為以后研究基于軟件無線電其他制式的調制解調器提供了基本平臺。 1 系統原理 本系統以TMS320VC5402數字信號處理器(DSP)為核心搭建硬件平臺,在DSP中編程實現FM調制。系統最大的特點是采用通用計算機與DSP處理單元相結合的方案,系統中各種人機接口及控制功能、存儲顯示功能由PC機完成,而各種實時任務交給DSP完成,充分發揮DSP的高速處理能力及PC機的靈活性。 1.1 系統結構 該系統結構如圖1所示。他是由DSP實驗箱及PC人機接口控制前臺組成。其中實驗箱的DSP微處理器芯片為核心,外接射頻發射模塊及DSP外圍硬件設備,外部調制信號經過低通濾波器后,濾除高頻噪聲,然后經過A/D轉換把模擬信號轉換成離散序列后進入DSP進行調頻處理。在硬件中通過HPI(主機接口)實現DSP與PC實時通信。在PC機中用軟件設計了控制顯示平臺,實現對硬件處理的控制及顯示,用戶可以在軟件平臺前面板中輸入數據選擇調制參數,并通過數據通信接口將數據讀人PC機,在顯示平臺中以圖形方式實時顯示數據結果。 1.2 主機通信接口設計 TI的C5000系列的DSP都有主機接口(Host PortInterface,HPI),用于DSP和主機之間的通信,組成主從結構的系統。采用這種通信方式,完全沒有硬件和軟件開銷,而是由DSP自身的硬件來協調沖突,從而不會打斷DSP正常程序的運行。在HPI通信方式下,DSP的片內存儲器對外界完全透明,由主機通過訪問HPI的地址和數據寄存器來完成對DSP片內存儲器的讀寫。以PC機為主機,通過HPI來監控DSP的運行可以充分利用PC機上豐富的資源,組成完整的主從結構的系統。 C5000系列DSP的主機接口(HPI)主要有三種:標準的8位HPI、增強型的8位的HPI8和16位的HPI16。HPI接口提供了DSP加載自啟動的一種方式和主機的實時控制DSP的途徑。TMS320VC5402的主機接口是增強型的8位HPID。相對于只能訪問DSP中2 kB片上存儲空間的標準的HPI,增強型的HPI8能訪問DSP的所有的片上存儲器。 PC機使用并口和DSP的HPI相連,如圖2所示,HPI8的信號線分為3組:8位的數據信號,4個控制信號和2個狀態信號。控制信號中,HDS1,HDS2和HCS是片選信號,負責鎖存HBIL,HCNTL0,HCNTL1,HR/W狀態。HCNTL0和HCNTL1控制信號用于選擇HPI的寄存器,主機和DSP之間的通信正是通過這4個寄存器的讀寫來完成的。 2 軟件設計 2.1 軟件結構 軟件結構如圖3所示。建立PC機軟件控制顯示平臺的目的就是要實現前臺軟件與底層硬件連接。系統運行后PC機執行應用程序,加載算法到DSP端,并將需要處理的數據傳送到DSP,計算完成后將數據傳回PC,整個過程由PC來控制啟動、處理、結束等,這樣軟件結構中需要有控制顯示的可視化用戶界面,同時軟件要與具體硬件連接則需要通過軟件接口程序來調用并口硬件驅動程序來完成。 2.2 DSP的調頻算法設計 系統要實現信號的調頻是通過DSP運算完成的,因此算法設計得是否合理將會影響到運算的效率。具體算法的設計思路如下: (1)由模擬信號的調頻原理離散化后得到離散的數字信號表達式。 (2)將離散的數字信號表達式用泰勒級數展開,并依據DSP的運算精度確定展開的項數。 (3)分析展開式,將其整理成乘加迭代的形式。因為DSP的運算速度的優勢是靠其多級流水線指令處理和乘加并行指令來實現的,如果算法中用到乘加并行的乘加指令的迭代運算,則效率將會得到很大提高。在本算法的迭代運算中使用MPYS指令,MPYS是乘減并行指令,即(ACC)-(PREG)=>(ACC)與(TREG)(data_memo-ry)=>(PREG)運算在一個指令周期內同時執行。 (4)由于TMS320VC5402是16位的定點DSP,為了運算的方便,把數值的范圍限制在(-1,1)之間,因此為了確保小數運算的正確,必須把乘積移位寄存器設為SPM=1,當執行了任何的乘法指令后,結果將裝入PREG中,當數據再移出時,他會被左移一位以消除多余的小數位。同時在程序的編制過程中應注意在定點DSP的乘法運算會產生溢出,因此初值都應乘以0.8的系數。 2.3 軟件接口程序 軟件接口程序設計的目的是在接口板的支持下,在各種MS的操作系統中,通過PC的并口(ECP模式PS/2子模式)操作DSP的HPI口,實現對HPI相關寄存器的讀寫,以及DSP芯片的復位。由于Win2000和WinXP不支持DOS的實模式,不能直接操作計算機端口,所以我們采用SST(Scientific Software Tools)的免費軟件DriverLINX實現。 DriverLINX是SST開發的支持在各種Windows平臺下對硬件端口進行操作的免費軟件。軟件以動態鏈接庫(.dll)的形式提供,并提供方便函數接口。軟件接口程序應該能提供完善的接口供上層軟件調用。我們設計接口函數的描述如下: (1)并口的初始化 VOID InitPP(VOID); (2)主機讀HPI口 BYTE HostRead(UINI、DeviceIndex,UINT Source-Reg,UINT ByteSequence); (3)主機寫HPI口 VOID HostWrite(BYTE Data,UINT DeviceIndex,UDINT DestinationReg,UINT ByteSequence); (4)主機置DSP復位信號為0,RESET=0, BOOL ResetAssert(); (5)主機置DSP復位信號為1,RESET=1 BOOL ResetRelease(); 2.4 可視化用戶程序 可視化用戶程序處于整個系統的最高層,他不僅負責用戶的交互界面,同時實現主機與DSP板通信的過程所涉及到一系列操作:即建立連接、復位實驗箱、復位DSP、打開HPI端口、加載程序、執行讀寫操作、關閉HPI、最后關閉連接,這些操作依次執行,所以在軟件設計時對程序采用順序結構。 可視化用戶程序使用VC++6.0開發,主要劃分成前臺和后臺兩大模塊。前臺模塊用于用戶交互,如調頻的調制系數、中心頻率的參數的設置以及運算結果的采樣顯示。前臺使用較為簡潔的對話框類編寫交互界面,輔以文本框、下拉選框和按扭控件實現。后臺模塊負責對DSP的控制和通信,同時把收到的數據處理成曲線圖形供前臺顯示。為了前臺的響應更加流暢,本設計使用了多線程技術,即前臺由主線程負責,而后臺模塊由另外的一個工作線程負責。 3 結 語 本設計基于軟件無線電的軟件化思想實現了DSP調頻調制器,并且該系統帶有人機接口及控制顯示功能,將處理數據以圖形方式實時顯示出來便于觀察和分析。系統中各種人機接口及控制、存儲顯示功能由通用計算機來實現,而數據采集及調制解調等實時處理任務交由DSP完成,充分發揮了通用計算機的靈活性和DSP的高速實時處理能力。如果在本系統的基礎上再編寫其他制式的DSP調制算法,即可實現多制式的發射臺。 |