牛耀利 張?zhí)?/p>
(中國(guó)人民武裝警察部隊(duì)新疆總隊(duì)烏魯木齊市支隊(duì),新疆 烏魯木齊830003)
軟件無(wú)線電是模塊化、標(biāo)準(zhǔn)化的硬件單元,以總線方式連接構(gòu)成基本平臺(tái),并通過(guò)軟件加載實(shí)現(xiàn)各種無(wú)線通信功能的一種開放式體系結(jié)構(gòu)。其中心思想是構(gòu)造一個(gè)具有開放性、標(biāo)準(zhǔn)化、模塊化的通用硬件平臺(tái),將各種功能,如工作頻段、調(diào)制解調(diào)類型、數(shù)據(jù)格式、加密模式、通信協(xié)議等,用可升級(jí)、可重新配置的軟件來(lái)完成,并使寬帶A/D和D/A轉(zhuǎn)換器盡可能的靠近天線,以研制出具有高度靈活性、開放性的新一代無(wú)線通信系統(tǒng)[1]。
軟件無(wú)線電強(qiáng)調(diào)體系結(jié)構(gòu)的開放性和全面可編程性,通過(guò)軟件的更新改變硬件的配置結(jié)構(gòu),實(shí)現(xiàn)新的功能。
圖1 理想的軟件無(wú)線電系統(tǒng)結(jié)構(gòu)
理想的軟件無(wú)線電結(jié)構(gòu)如圖1所示。軟件無(wú)線電主要由天線、射頻前端、高速A/D/A轉(zhuǎn)換器、通用和專用數(shù)字信號(hào)處理器、低速A/D/A轉(zhuǎn)換器以及各種接口和軟件所組成。在發(fā)射時(shí)RF部分主要完成濾波、功率放大等任務(wù),接收時(shí)實(shí)現(xiàn)濾波、放大等功能。理想的軟件無(wú)線電因?qū)崿F(xiàn)射頻直接帶通采樣,要求A/D轉(zhuǎn)換器有足夠的工作帶寬,較高的采樣速率,而且要有較高的A/D轉(zhuǎn)換位數(shù),以提高動(dòng)態(tài)范圍。模擬信號(hào)進(jìn)行數(shù)字化后的處理任務(wù)全由DSP和專用的可編程處理器的軟件來(lái)承擔(dān)。為了減輕通用DSP的處理壓力,通常把A/D轉(zhuǎn)換器傳來(lái)的數(shù)字信號(hào),經(jīng)過(guò)專用數(shù)字信號(hào)處理器件 (如數(shù)字下變頻器DDC)處理,降低數(shù)據(jù)流速率,并把信號(hào)變至基帶后,再把數(shù)據(jù)送給通用DSP進(jìn)行處理。通用DSP主要完成各種數(shù)據(jù)率相對(duì)較低的基帶信號(hào)的處理,比如信號(hào)的調(diào)制解調(diào),各種抗干擾、抗衰落、自適應(yīng)均衡算法的實(shí)現(xiàn)等。還要完成經(jīng)信源編碼后的前向糾錯(cuò)(FEC),幀調(diào)整、比特填充和鏈路加密等算法。也有采用多DSP芯片并行處理的方法,以提高其處理的能力。
QPSK調(diào)制及解調(diào)部分由幾個(gè)關(guān)鍵模塊組成,其中包括,加法器、乘法器、載波發(fā)生器、FIR濾波器、PN序列模塊和通信中載波同步、位同步、幀同步等部分,下面就其重點(diǎn)部分的具體實(shí)現(xiàn)方法做以闡述。
加法模塊是QPSK系統(tǒng)中比較重要的組成部分,目前有很多種加法器的設(shè)計(jì)。圖2所示的加法器為本系統(tǒng)所采用的方法,模塊和端口定義如下:
Clk——輸入信號(hào),工作時(shí)鐘;
Rest——輸入信號(hào),系統(tǒng)復(fù)位;
Din1——輸入信號(hào),被加數(shù)輸入;
Din2——輸入信號(hào),加數(shù)輸入;
Dout——輸出信號(hào),相加結(jié)果輸出。
圖2 加法器模塊
這里采用的加法器屬于同步加法器,有時(shí)鐘的上升沿來(lái)臨時(shí)接數(shù)據(jù)對(duì)其做相加處理。加法器模塊的兩個(gè)輸入分別是同相支路和正交支路中信號(hào)與載波相乘后的結(jié)果,因而是有符號(hào)數(shù),采用補(bǔ)碼表示。在定點(diǎn)運(yùn)算中,補(bǔ)碼的最高位為符號(hào),正數(shù)為0,負(fù)數(shù)為1,而其它的為它絕對(duì)值。這樣,正數(shù)的補(bǔ)碼和它的源碼相同,負(fù)數(shù)的補(bǔ)碼為將它的源碼逐位求反,然后在最低位上加1。這樣,計(jì)算兩數(shù)相減(即一個(gè)正數(shù)加一個(gè)負(fù)數(shù))的運(yùn)算可以通過(guò)用它們的補(bǔ)碼相加來(lái)完成,簡(jiǎn)化了運(yùn)算電路[2]。
在軟件無(wú)線收發(fā)信機(jī)中,乘法器的作用主要是用于混頻,在發(fā)信機(jī)中,離散的基帶I,Q采樣值與NCO輸出的離散正交載波相乘,完成上變頻過(guò)程,在收信機(jī)中,經(jīng)過(guò)帶通采樣的離散接收信號(hào)與NCO輸出的離散正交載波相乘,經(jīng)過(guò)低通濾,得到離散的數(shù)字I,Q信號(hào),完成下變頻過(guò)程。乘法器起到兩個(gè)信號(hào)相乘的作用。
乘法器一般采用并行工作方式,本設(shè)計(jì)中發(fā)信機(jī)的離散基帶I,Q采樣值為8比特有符號(hào)數(shù),NCO數(shù)字本振的輸出也為8比特有符號(hào)數(shù),所設(shè)計(jì)的乘法器的兩個(gè)輸入應(yīng)該為8比特有符號(hào)數(shù),乘積為16比特。所以采用一種由8位加法器構(gòu)成的以時(shí)序邏輯方式設(shè)計(jì)的8位乘法器。其乘法原理是:乘法通過(guò)逐項(xiàng)移位相加原理來(lái)實(shí)現(xiàn)。從被乘數(shù)的最低位開始,若為1,則乘數(shù)左移后與上一次的和相加;若為0,左移后以全0相加,直至被乘數(shù)的最高位。
載波發(fā)生器基于數(shù)控振蕩器(NCO)產(chǎn)生,數(shù)控振蕩器結(jié)構(gòu)如圖3所示。主要由相位累大器和SIN/COS表構(gòu)成。相位累加產(chǎn)生的相位作為地址去查找ROM表,查到的SIN/COS值即本地載波的數(shù)字頻率送至乘法器,完成混頻。
圖3 數(shù)控振蕩器結(jié)構(gòu)圖
實(shí)際的NCO由樣位累加器、波形ROM查找表組成,這樣的結(jié)構(gòu)很容易用FPGA實(shí)現(xiàn),兩個(gè)正弦波產(chǎn)生查找表,用Xilinx提供的IP核。本設(shè)計(jì)中采用了30位的相位累加器,進(jìn)行相位截?cái)嗪螅孟辔焕奂哟舐返母?0位尋址波形ROM,需要注意的是為了使設(shè)計(jì)的NCO能用于上變頻和下變頻操作,波形ROM中所存的內(nèi)容必須同時(shí)提供兩路完全正交的正弦波和余弦波。由于是10位尋址ROM,并且指定ROM的字長(zhǎng)為8比特有符號(hào)數(shù),所以每一塊的ROM容量應(yīng)為210=1K*8,故總共需2K*8的存儲(chǔ)量,這在FPGA實(shí)現(xiàn)時(shí)將耗費(fèi)大量的內(nèi)部CLB資源,所以應(yīng)該重新考慮ROM查找表的設(shè)計(jì),盡可能節(jié)省存儲(chǔ)器資源。對(duì)于正弦波和余弦波來(lái)說(shuō)可以得用對(duì)稱性只存儲(chǔ)二分之一周期,甚至四分之一周期,對(duì)于前者需要附加一個(gè)符號(hào)求補(bǔ)器,后者則另需一個(gè)相位求補(bǔ)器和符號(hào)求補(bǔ)器[4]。
本設(shè)計(jì)中濾波器為低通濾波器,截止頻率是該通道的碼元速率,即2.5kHz。濾波器的采樣時(shí)鐘用此時(shí)的系統(tǒng)時(shí)鐘頻率(160kHz)。Xilinx的綜合軟件Core Generation給出了這種濾波器的實(shí)現(xiàn)。如圖四所示:
圖4 FIR模塊圖
模塊端口定義如下:
CLK——輸入信號(hào),濾波器工作時(shí)鐘160kHz;
DIN[N-1.0]——輸入信號(hào),濾波器的數(shù)據(jù)輸入,N為位寬,即接收機(jī)中乘法器的輸出位寬為N=24;
ND——輸入信號(hào),高有效,為高時(shí)表示一個(gè)新的數(shù)據(jù)輸入;
RDY——輸出信號(hào),高有效,為高時(shí)表示濾波器己處理完當(dāng)前數(shù)據(jù),可以接收新的數(shù)據(jù)輸入;
RFD——輸出信號(hào),高有效,為高時(shí)表示濾波器輸出端口上有一個(gè)新的結(jié)果數(shù)據(jù)輸出;
DOUT——[M-1,0]-輸出信號(hào),濾波器的數(shù)據(jù)輸出,M為輸出位寬,與發(fā)射機(jī)的基帶碼流相對(duì)應(yīng),這里取M=8。
數(shù)字調(diào)制解調(diào)在FPGA中的實(shí)現(xiàn)證明了用FPGA作為軟件無(wú)線電數(shù)字信號(hào)處理器件的可行性。使用FPGA的可重構(gòu)性,可以在系統(tǒng)中實(shí)現(xiàn)各種通信模式的算法,充分體現(xiàn)了軟件無(wú)線電的靈活性。同時(shí),實(shí)現(xiàn)了嵌入FPGA的CPU核對(duì)芯片的信號(hào)處理功能控制。通過(guò)嵌入式CPU,可心用軟控制芯片的信號(hào)處理過(guò)程,為以后實(shí)現(xiàn)控制信號(hào)處理及系統(tǒng)的在線重構(gòu)打下了基礎(chǔ)。
[1]楊小牛,樓才義,徐建良.軟件無(wú)線電原理與應(yīng)用[M].北京:電子工業(yè)出版社,2001.
[2]A.Dempster,M.Macleod.Use of Minimum-Adder Multipler Blocks in FIR Digital Filters[J].IEEE Transactions on Circuits and SystemsⅡ,1995.
[3]Xilinx.The Role of Distributed Ariehmetic in FPGA-based Signal Processining[Z]//The programmable Logic Data Book,2000.
[4]董金明,F(xiàn)PGA在軟件無(wú)線電技術(shù)實(shí)現(xiàn)中的應(yīng)用[D].北京:北京航空航天大學(xué),2001:47-48.