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