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