一種基于DSP的軟件無線電調制解調實驗平臺
摘要:設計實現了一套基于軟件無線電的軟件化MODEM實驗系統,該系統硬件以TMS320C6711數字信號處理器(DSP)為核心,實現軟件無線電多制式調制解調功能,并設計硬件接口完成與主機實時通信。在主機中設計虛擬儀器控制顯示平臺,實現了對調制解調制式的實時選擇及實測數據的實時顯示。
關鍵詞:軟件無線電;虛擬儀器;DSP;MODEM
軟件無線電的基本思想是以開放的、可擴展的、結構最簡的硬件為通用平臺,把盡可能多通信功能用可升級、可替換軟件來實現。其中心思想是:構造一個具有標準化、模塊化的通用硬件平臺,并通過軟件加載實現各種無線通信功能的一種開放式體系結構。調制解調器是軟件無線電的關鍵技術環(huán)節(jié),是軟件無線電技術研究的核心內容之一,調制解調器的軟件化是實現軟件無線電開放性、通用性的關鍵一步。
系統原理
本系統針對高校教學而設計,以TMS320C6711數字信號處理器(DSP)為核心搭建軟件無線電教學演示平臺,為了盡可能充分地體現軟件無線電的設計思想,硬件平臺以DSP為核心搭建實現了硬件的模塊化、開放性和可編程性,通過硬件實現數據收發(fā)、放大,在DSP中編程實現FM,DSB,QPSK, QAM等多種制式的調制解調功能。系統最大的特點是采用通用計算機與DSP處理單元相結合的方案,系統中各種人機接口及控制功能、存儲顯示功能由PC機完成,而各種實時任務交給DSP完成,充分發(fā)揮DSP的高速處
理能力及PC機的靈活性。
系統結構
該系統結構如圖1所示。它是由DSP數據處理板及PC人機接口控制前臺組成。其中DSP數據處理板以DSP(數字信號處理器)為核心微處理器芯,外接數據收發(fā)裝置及DSP外圍硬件設備,數據接收發(fā)送裝置對外部信號進行采集和輸出,通過功放將有用信號放大,由于所用DSP為數字信號處理芯片,所以還
圖1 系統結構框圖
需要A/D,D/A轉換電路,將采集的模擬信號轉換成數字信號,并將處理后的數字信號轉換成模擬信號輸出。為滿足主機與外圍硬件的通信,要用到DSP與主機接口,在硬件中我們通過HPI(主機接口)實現DSP與PC實時通信。在PC機中用軟件設計了虛擬儀器控制顯示平臺,實現對硬件處理的控制及顯示,用戶可以在虛擬儀器平臺前面板中輸入數據選擇各種調制解調制式,并通過數據通信接口將數據讀入PC機,在虛擬儀器顯示平臺中以圖形方式實時顯示數據結果。
TMS320C6711芯片簡介
由于調制解調器的設計實現是基于TI公司的TMS320C6711芯片,因此,在這里對TMSC67x系列CPU結構進行簡要介紹。TMSC67x系列 CPU內部包括程序取指單元、程序執(zhí)行機構、芯片測試和仿真端口以及控制邏輯。程序取指單元由程序總線與片內程序存儲器相連。程序執(zhí)行機構包括2個對稱數據通道(A和B),2個對稱的通用寄存器組、2組對稱的功能單元(每組4個)、控制寄存器組和控制邏輯以及中斷邏輯等。每組數據通路有讀入及存儲(寫出) 數據總線與片內存儲器相連。
TMSC67x系列CPU采用哈佛結構,其程序總線與數據總線分開,取指令和執(zhí)行指令可以并行運行。C67x系列芯片的程序總線寬度為256bit,每一次取指操作都是取8條指令,稱為一個取指包。片外的存儲器及總線不分,二者是統一的。全部存儲空間(包括程序存儲器與數據存儲器,片內與片外)以字節(jié)為單位統一編址。
主機通信接口設計
系統中主機通信接口HPI是TI公司數字信號處理器(DSP)中用于和主機進行雙向數據通信的8位并行接口。HPI稱為主機接口,是TI公司高性能DSP上配置的與主機進行通信的片內外設。傳統的單片機與主機(比如PC機)接口時,需要在片外擴展附加芯片。如果采用與主機共享RAM的方式,則要片外擴展RAM及觸發(fā)、鎖存等芯片,這時主機可以通過DMA方式隨機或整塊地訪問共享RAM;如果不要求主機隨機訪問從機數據,也可以采取擴展FIFO芯片的方式。
另外,當從機需要中斷時,片外至少還要再擴展一片鎖存器。
HPI主機接口將以上這些功能集成在DSP芯片內部,使其與主機的連接簡化,對于DSP系統無須在片外擴展上述用途的芯片。HPI有兩種工作方式,共用尋址方式(SAM)和僅主機尋址方式(HOM),本系統采用共用尋址方式,主機和DSP都能尋址HPI存儲器,主機向DSP傳達的控制字以及DSP處理后的實時數據都放在HPI存儲器中以供訪問。由于HPI是集成在片內,因此主機可以達到很高的訪問速度,在SAM方式中運行頻率與DSP的主頻率相當,適應了 DSP對高速度的要求。
系統采用HPI接口主要通過調用動態(tài)鏈接庫文件dsk6x11hpi.dll中的函數dsk6x-hpi-open打開HPI端口,這樣系統DSP進行一系列的工作處理,并通過HPI端口向DSP讀寫數據,再調用動態(tài)鏈接庫文件dsk6x11hpi.dll中的函數dsk6x-hpi-close關閉 HPI端口。
軟件設計
軟件結構
軟件結構如圖2所示。建立虛擬控制顯示系統的目的就是要實現前臺軟件與底層硬件連接在一起形成一個完整的系統,該系統使用dsk6x11hpi.dll動態(tài)鏈接庫文件實現與TMS320C6711DSP板子的HPI通信。PC機執(zhí)行應用程序,加載算法到DSP端,并將需要處理的數據傳送到DSP,DSP計算完成后將數據傳回PC,整個過程由PC來控制啟動、處理、結束等,這樣軟件結構中需要有控制顯示的可視化用戶界面,同時,軟件要與具體硬件連接則需要軟硬件接口程序。在DSP中,為了實現多制式的調制解調需要信號調制解調軟件,要將算法應用到具體硬件平臺中,還需要硬件平臺的驅動程序。
圖2 系統軟件結構框圖
DSP程序設計
系統要實現多種制式的調制和解調,這部分功能通過DSP軟件完成,本系統實現了FM,DSB,QPSK,DQPSK等多種制式的調制和解調。為了提高程序的靈活性和可移植性,把多種制式的調制解調程序編寫在同一個工程文件并編譯下載到DSP中,在MODEM板卡工作時,通過PC前臺發(fā)送的控制字,選擇不同的程序入口點和調用不同的調制解調函數來選擇不同的調制解調方式。在模擬調制與解調部分,根據不同調制方式的特性,選擇了AM,DSB和FM3種調制方式加以實現。在數字調制與解調部分實現了QPSK和QAM。
LabVIEW程序設計
由于在實現主機與DSK板通信的過程中涉及到先后順序,即建立連接、復位板子、復位DSP、打開HPI端口、加載程序、執(zhí)行讀寫操作、關閉HPI、最后關閉連接,這些操作依次執(zhí)行。所以在軟件設計時對程序采用順序結構,同時由于子程序有涉及到寫操作時要對多個變量進行寫操作,也采用了順序結構。
而要實現能夠在界面上選擇調試的種類,再根據調試種類執(zhí)行不同的程序,則要在程序框圖中采用選擇結構。該系統在labview界面設計中包含有供使用者選擇調制方式的部分、一些程序框圖調用的庫文件函數輸入、輸出參數設置部分,還包括一個圖形顯示器件,實現對DSP存儲器讀出數據的顯示??梢苑?部分設計該界面:針對函數調用時的參數輸入,設計1個5參數組成的模塊,包括給DSK板定義句柄、定義復位DSP芯片時的端口模式以及導入模式、加載的 COFF文件名字、所使用板子配置文件的名稱和存放位置;針對調制方式的選擇和調制時變量的改變,同樣設計1個5參數組成的模塊,包括載波頻率、直流分量、放大增益、調頻指數以及調制方式;針對上一個模塊中的調制時改變的變量,設計1個8參數組成的模塊,這些參數是設置上一模塊所寫入的變量的長度和在 DSP中存放的地址;再針對讀程序設計1個3參數的模塊,要把DSP中的數據讀出來需要,設定一個長度、初始地址和一個主機緩存;最后一個模塊就是一個波形顯示的模塊。
LabVIEW與DSP通信程序
顯示界面在Lab VIEW軟件下開發(fā)而成,可實現主機程序(Lab VIEW程序)與DSP通信,即DSP存儲器進行讀寫操作。Lab VIEW程序由前面板、程序框圖和圖標連接器組成。前面板是人機接觸、交流窗口,模擬實際的儀器,主要由一些控件和指示器組成;程序框圖是程序代碼,是 LABVIEW程序的核心部位,程序運行時,前面板控件的值會傳遞給程序框圖進行處理和運算,然后再把最后的處理結果傳遞給前面板的指示器顯示,便于用戶觀察;圖標/連接器是程序的圖形標志,也是其他高層程序被調用時的圖形代碼和連接端口。
由于使用CCS觀察DSP的數據波形比較麻煩,而且用于觀察修改變量后產生的作用,都要完成原始程序修改,然后再編譯、加載到DSP中,最后采集波形這樣一個完整的過程。因此該虛擬控制顯示系統通過調用CCS提供的動態(tài)鏈接庫函數dsk6x11hpi.dll,根據一定的通信順序方法和思想設計程序框圖,就可以方便地實現主機程序(LabVIEW程序)與DSP之間的通信。dsk6x11hpi.dll動態(tài)鏈接庫函數包含了12個接口函數,這12個接口函數分別執(zhí)行不同的功能,如實現與DSK板子建立連接、復位板子、關閉連接等,這些接口函數包含了一些參數,輸入值不同,代表的含義也不相同。
在LabVIEW中用庫函數節(jié)點(Calling Library Function Node)調用dsk6x11hpi.dll動態(tài)鏈接庫函數,實現與TMS320C6711DSK的DSP通信。只要設置準確、步驟完整(先建立連接,再復位板子、復位DSP、打開HPI端口、加載程序、執(zhí)行讀寫操作、關閉HPI、最后才關閉連接),就可以實現通信了。當然,程序設計完成之后,要讓 LabVIEW程序和DSK板子進行系統聯調,把從DSP存儲器中讀到的一組數據顯示在圖形顯示界面中,通過圖形窗口觀察數據是否完整、準確。
系統實時處理功能的PC-DSP聯合實現
前面的軟、硬件設計工作完成之后,接下來的工作就是完成主機與DSP聯合實時數據處理。在用LabVIEW設計完前面板、程序框圖和圖標、連接器后,只要節(jié)點調用設置準確和連線正確,程序就可以運行了。給DSP板子上電并設置準確后,可以調試程序。
首先,在聯調前需要對節(jié)點(動態(tài)鏈接庫函數)輸入、輸出參數和輸入控件的設置進行檢查。在調試過程中,我們可以使用探針來測量輸入、輸出數值,以觀察程序是否運行正確。接下來 建立連接,將DSP程序加載到DSP芯片中,這時最好把調用庫文件放到與COFF(.out文件)同一個目錄下。如果程序加載成功,主機和DSP板子建立了連接后,調用dsk6x-hpi-write和dsk6x-hpi-read函數返回值不會是0,如果返回值是0,而且節(jié)點調用設置都沒有問題,這時候就需要檢查板子是否連接正常。
對于調用dsk6x-hpi-write和dsk6x-hpi-read函數,其中的設置是非常重要的,只要有一小塊設置不成功,程序就無法進行下去。這方面需要我們對該函數的輸入、輸出參數非常了解。這里指出p-length和dest-addr數據的Pass設置都應該設置成 Pointertovalue,也就是指向這個數的地址。而對于read模塊的p-buffer的數據類型應該設置成Array(數組),Array Format(數組格式)應該設置成指針。這些設置成功了,程序才能夠正常運行。程序加載成功,函數返回值不為零,就可以繼緒工作。dsk6x-hpi- write和dsk6x-hpi-read函數的返回值顯示了該操作是成功的,也就可以正常地把數據從HPIRAM中讀出來送到PC虛擬儀器程序數據入口,然后再將其以圖形方式顯示出來。圖3是PC-DSP聯合工作時在虛擬儀器前面板中顯示的QPSK調試方式工作下,從HPIRAM中讀出的DSP中調制信號(在波形顯示圖中表示出來)?! ?/P>
圖3 PC-DSP聯調QPSK調制波形圖
結束語
這套基于軟件無線電的軟件化MODEM實驗系統在同一系統中實現了多制式調制解調,并且該系統帶有人機接口及控制顯示功能,將處理數據以圖形方式實時顯示出來便于觀察和分析。系統中各種人機接口及控制、存儲顯示功能由通用計算機來實現,而數據采集及調制解調等實時處理任務交由DSP完成。充分發(fā)揮了通用計算機的靈活性和DSP的高速實時處理能力。
評論