摘 要: 給出了基于Nios II" title="Nios II">Nios II的通用數(shù)字調(diào)制器" title="數(shù)字調(diào)制器">數(shù)字調(diào)制器的實(shí)現(xiàn)方法,,具體說明了系統(tǒng)的基本原理,、總體結(jié)構(gòu)、硬件設(shè)計(jì),,以及軟件流程等,。該系統(tǒng)把可編程邏輯的固有優(yōu)勢(shì)集成到嵌入處理器的開發(fā)流程中,具有高度的靈活性,、可重配置功能,,便于升級(jí)和擴(kuò)展,適于軟件無線電" title="軟件無線電">軟件無線電的應(yīng)用,。
關(guān)鍵詞: Nios II 調(diào)制器 軟件無線電
在軟件無線電(SDR)的研究過程中,,調(diào)制解調(diào)技術(shù)是無線通信系統(tǒng)空中接口的重要組成部分。目前常用的數(shù)字調(diào)制方式有多種,,如果按照傳統(tǒng)的硬件實(shí)現(xiàn)方法,,要使一部通信機(jī)產(chǎn)生多種調(diào)制信號(hào),其系統(tǒng)就會(huì)非常龐大復(fù)雜。
altera" title="altera">altera.com/">Altera公司的Nios II處理器是用于可編程邏輯器件的可配置的軟核處理器,。Nios II軟核處理器和存儲(chǔ)器,、I/O接口等外設(shè)可嵌入FPGA中,組成一個(gè)可編程單芯片系統(tǒng)(SOPC),,大大降低了系統(tǒng)的成本,、體積和功耗?;贜ios II處理器系統(tǒng)的通用數(shù)字調(diào)制器是一種軟件化硬件的解決方案,,可以產(chǎn)生多種模式的數(shù)字調(diào)制信號(hào),具有多功能性,、通用性,、集成度高、易于升級(jí)等優(yōu)點(diǎn),,滿足軟件無線電系統(tǒng)的要求,。
1 總體系統(tǒng)結(jié)構(gòu)
本系統(tǒng)在一個(gè)調(diào)制器中靈活多變地實(shí)現(xiàn)了多種調(diào)制功能。Nios II處理器完成人機(jī)交互和控制工作,,F(xiàn)PGA邏輯從Nios II處理器接收控制信號(hào)和數(shù)據(jù)后完成相應(yīng)的硬件功能,。系統(tǒng)整體框圖如圖1所示。Nios II軟核處理器,、存儲(chǔ)器和I/O接口等外設(shè)可嵌入在FPGA中,這樣整個(gè)系統(tǒng)的數(shù)字處理部分全部集成在FPGA器件中,。數(shù)控振蕩器(NCO)的各子模塊必須在Nios II處理器的控制下,不斷接收實(shí)時(shí)數(shù)據(jù)才能完成各種不同的數(shù)字信號(hào)調(diào)制,。在某些情況下,,這些數(shù)據(jù)傳輸是復(fù)雜的,,好在Nios II處理系統(tǒng)有Avalon總線,,它規(guī)定了控制器與從屬組件間的端口連接以及組件間通信的時(shí)序。NCO通過Avalon總線與Nios II處理器連接,,可以簡單地看成外圍設(shè)備,,很方便完成控制和數(shù)據(jù)傳輸。
本系統(tǒng)采用Nios II和CycloneEP1C6嵌入式系統(tǒng)開發(fā)板,,選用AD9754作為DAC芯片,并用LC電路搭建了9階的橢圓低通濾波器,總體實(shí)現(xiàn)了一個(gè)可以產(chǎn)生多種調(diào)制信號(hào)的通用數(shù)字調(diào)制器,。提供以下幾種調(diào)制方式:移頻鍵控調(diào)制(FSK),、二進(jìn)制移相鍵控調(diào)制(BPSK)、四進(jìn)制移頻鍵控(QFSK),、四相相移鍵控調(diào)制(QPSK),、標(biāo)準(zhǔn)載波輸出(Sin)。
調(diào)制方式和載波頻率可以通過撥碼開關(guān)和按鍵自由選擇,LED和LCD的顯示便于用戶直觀了解當(dāng)前的狀態(tài)信息,。系統(tǒng)工作過程中,,當(dāng)再次按下“啟動(dòng)/停止”鍵時(shí),可以對(duì)調(diào)制方式和頻率重新進(jìn)行設(shè)置,。
2 Nios II嵌入式軟核處理器簡介
Nios II嵌入式處理器是Altera公司推出的第二代用于可編程邏輯器件的可配置軟核處理器,,最高性能超過200 DMIPS。Nios II是基于哈佛結(jié)構(gòu)的RISC通用嵌入式處理器軟核,,能與用戶邏輯相結(jié)合,,編程至Altera的FPGA中。處理器具有32位指令集,、32位數(shù)據(jù)通道和可配置的指令以及數(shù)據(jù)緩沖,。它特別為可編程邏輯進(jìn)行了優(yōu)化設(shè)計(jì),也為可編程單芯片系統(tǒng)(SOPC)設(shè)計(jì)了一套綜合解決方案,。Nios II處理器系列包括三種內(nèi)核:高性能內(nèi)核(Nios II/f),、低成本內(nèi)核(Nios II/e)、性能/成本折中的標(biāo)準(zhǔn)內(nèi)核(Nios II/s),。本系統(tǒng)采用標(biāo)準(zhǔn)內(nèi)核,。
Nios II 處理器支持256 個(gè)具有固定或可變時(shí)鐘周期操作的定制指令;允許Nios II設(shè)計(jì)人員利用擴(kuò)展CPU指令集,,通過提升那些對(duì)時(shí)間敏感的應(yīng)用軟件的運(yùn)行速度來提高系統(tǒng)性能,。
3 系統(tǒng)硬件設(shè)計(jì)
3.1 調(diào)制信號(hào)源
調(diào)制信號(hào)源可以來自外部,通過串口,、并口等送入,,也可以由調(diào)制器內(nèi)部產(chǎn)生。本系統(tǒng)由調(diào)制信號(hào)源產(chǎn)生模塊產(chǎn)生了偽隨機(jī)序列及其同步時(shí)鐘信號(hào),。
3.2 數(shù)字調(diào)制的實(shí)現(xiàn)
數(shù)字調(diào)制部分根據(jù)調(diào)制信號(hào)和來自CPU的控制信號(hào)產(chǎn)生可控模式,、可控載頻的已調(diào)信號(hào)。NCO模塊包括頻率控制字寄存器,、32位的相位累加器,、相位控制字寄存器、相位-幅度變換電路,、控制邏輯電路,,以及相位抖動(dòng)補(bǔ)償模塊,如圖2所示,。NCO中各部件在參考頻率源的作用下同步工作,。相位累加器在每一個(gè)時(shí)鐘上升沿與頻率控制字K累加一次。當(dāng)累加器計(jì)數(shù)大于232時(shí),,相位累加器相當(dāng)于做一次模余運(yùn)算,。正弦查詢表在每個(gè)時(shí)鐘周期內(nèi),,根據(jù)送給ROM的地址(相位累加器的12個(gè)MSB相位值)取出ROM中已存儲(chǔ)的與該地址相對(duì)應(yīng)的正弦幅值,最后將該值送給DAC和LPF實(shí)現(xiàn)量化幅值到一個(gè)純凈信號(hào)的轉(zhuǎn)換,。
由于資源和成本的原因,,通常相位累加器輸出的32位不會(huì)全部用來尋址ROM,本系統(tǒng)取其高12位尋址 ROM,,其余LSB位被舍去,,這樣就不可避免地產(chǎn)生相位誤差,該誤差是NCO輸出雜散的主要原因,。用于相位-幅度轉(zhuǎn)換的存儲(chǔ)器用片內(nèi)ROM來實(shí)現(xiàn),,主要完成信號(hào)的相位序列到幅度序列之間的轉(zhuǎn)化。幅度量化誤差與波形存儲(chǔ)器數(shù)據(jù)總線位數(shù)相關(guān),,本系統(tǒng)中為14位,。
為了減小相位截?cái)嗾`差,要求在NCO的波形查表過程中保留更多的相位有效位,;為了減小幅度量化誤差,,要求波形存儲(chǔ)器保留更多的輸出數(shù)據(jù)位并選擇位數(shù)高的DAC。由于波形存儲(chǔ)器的容量受限,,因此在低雜散設(shè)計(jì)中,,可以通過改變傳統(tǒng)結(jié)構(gòu)中的相位到正弦波形的線性映射關(guān)系,采用新的結(jié)構(gòu)體系來降低波形存儲(chǔ)容量,,以使在不增加波形存儲(chǔ)器容量的情況下,,保留更多的相位有效位和數(shù)據(jù)總線位數(shù)。單象限正弦波存儲(chǔ)結(jié)構(gòu)是一種有效的方法,。在這種結(jié)構(gòu)中,,利用正弦波形的四分之一對(duì)稱性,將ROM表減至最初的1/4,,波形存儲(chǔ)器只存儲(chǔ)一個(gè)象限[0,,π/2]的波形。相位累加器用于波形尋址的有效位輸出中,,最高兩位被用作映射四個(gè)象限,,其余低位用來尋址波形存儲(chǔ)器。這樣,,通過一個(gè)正/余弦表的前1/4周期就可以變換得到正/余弦的整個(gè)周期碼表。這種實(shí)現(xiàn)方法對(duì)存儲(chǔ)器的要求很小,,節(jié)省了大量資源,。
由相位截?cái)嗟姆治隼碚摚辔簧嵛恍蛄惺蔷哂兄芷谛缘?,如果能破壞其周期性,,就能將DDS輸出頻譜中有規(guī)律的雜散分量變成隨機(jī)的相位噪聲,從而抑制相位截?cái)嘁鸬碾s散。因此本系統(tǒng)在ROM表之前加入了相位抖動(dòng)注入模塊,,通過隨機(jī)加擾的方法抑制DDS的相位截?cái)嚯s散,。
本系統(tǒng)NCO輸出信號(hào)頻率fout與參考時(shí)鐘頻率fclk以及頻率控制字K之間的關(guān)系為,在96MHz參考時(shí)鐘的情況下,,頻率分辨率為0.022 35Hz,。
3.3 D/A轉(zhuǎn)換與低通濾波
FPGA輸出的14位二進(jìn)制數(shù)需要送到DAC進(jìn)行D/A變換,得到量化的階梯波形輸出,,最后經(jīng)低通濾波器濾除高頻分量,,平滑后得到模擬的已調(diào)信號(hào)。DAC 非理想特性帶來的轉(zhuǎn)換誤差是影響輸出信號(hào)頻譜的又一因素,,主要取決于DAC器件的性能,。本設(shè)計(jì)選用AD9754作為DAC芯片。
用LC電路搭建了9階的橢圓低通濾波器,,截止頻率為25MHz,。其頻譜如圖3所示。
4 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)的設(shè)計(jì)核心是根據(jù)調(diào)制信號(hào)的信息對(duì)載波頻率,、相位和振幅進(jìn)行精確控制,。通過Nios II處理器來改變上述三個(gè)參數(shù)中的一個(gè)或幾個(gè),以完成各種不同類型的調(diào)制,。Nios II處理器的主要工作有:第一,,針對(duì)不同的調(diào)制模式,輸出對(duì)應(yīng)的控制碼,;第二,,對(duì)某一具體的控制碼來說,要根據(jù)其控制信號(hào)的值,、時(shí)鐘速率,、相位累加器、ROM以及DAC位數(shù)等計(jì)算出具體的碼值,。軟件流程如圖4所示,。
通用數(shù)字調(diào)制器是實(shí)現(xiàn)軟件無線電的關(guān)鍵技術(shù)之一,現(xiàn)有文獻(xiàn)中的實(shí)現(xiàn)方法是通過“DSP+FPGA”來設(shè)計(jì)的,,其外圍電路和控制邏輯復(fù)雜,,成本較高。本文提出了一種基于Nios II嵌入式處理器軟核的通用數(shù)字調(diào)制器實(shí)現(xiàn)方法,,使用Altera的低成本Cyclone FPGA,,且具有開發(fā)周期短、成本低等特點(diǎn),。
本系統(tǒng)所實(shí)現(xiàn)的各種調(diào)制方式均已通過硬件測試,,證明了方案的可行性和正確性,。
此外,在設(shè)計(jì)過程中使用SignalTap II嵌入式邏輯分析儀可以方便調(diào)試,,采用增量編譯可以縮短漫長的編譯等待時(shí)間,。圖5是用SignalTap II對(duì)FSK分析時(shí)的截屏圖。
參考文獻(xiàn)
1 John G. Proakis,Masoud. Communication systems engineering.北京:電子工業(yè)出版社,,2002
2 楊小牛,,樓才義,徐建良. 軟件無線電原理與應(yīng)用. 北京:電子工業(yè)出版社,,2001
3 傅豐林. Nios軟核心嵌入式處理器設(shè)計(jì)大賽優(yōu)秀作品精選. 西安:西安電子科技大學(xué)出版社,,2005
4 Nios II software developer′s handbook. Altera Corporation,2005
5 Altera embedded peripherals handbook.Altera Corporation,, 2005