石玉景,胡 波,宋崢東
(中國電子科技集團公司第五十四研究所,河北石家莊050081)
NIOS是ALTERA推出的一種軟核處理器,是一種完全面向用戶,高度可定制的通用精簡指令架構(RISC)的32位嵌入式CPU。用戶使用SOPC工具對NIOS軟核進行包括CPU內部結構、指令集補充等的高級設計,并在FPGA內設計外設接口,對軟核進行功能上的補充與增強,最終由QUARTUS工具綜合生成可以運行在 FPGA內部的邏輯結構[1]。NIOS的優勢在于其靈活性,可以根據用戶需要進行靈活的配置和裁剪。并且在FPGA內部使用邏輯設計工具可為NIOS設計各類外設,提高NIOS的數據處理能力。所有外設通過統一總線與CPU相連,提高了CPU對外設控制的效率。
NIOS數據處理方式是一種軟件和硬件結合的數據處理方式,相比傳統的FPGA、DSP數據處理,具有功耗低、配置靈活和處理效率高等特點。NIOS自推出以來,已經在數據處理、自動控制等方向得到了廣泛應用。
基于FPGA和NIOS軟核構建數據處理平臺,完成了NIOS軟核與FIR濾波器、RS糾錯編譯碼等外設的接口適配,并實現了突發調制解調器的核心算法。
本調制解調器開發平臺由FPGA與片外SRAM存 儲 器 IDT71V416、片 外 FLASH 存 儲 器AM29LV065D、A/D變換芯片、D/A變換芯片以及其他外圍電路組成,如圖1所示。

圖1 開發平臺組成
SRAM存儲器作為程序運行存儲器,FLASH存儲器作為程序存儲器。A/D變換器將外部模擬信號轉換成數字信號,用于解調器工作,而D/A變換器則是將調制器的數字信號轉成模擬信號,驅動射頻電路工作。
本調制解調器在設計時,需要實現RS編譯碼t FIR濾波等算法。一般CPU為串行計算,這些算法如果單純由CPU實現,效率非常低。設計中采用Quartus工具的IP核[2]生成CPU的外設,由IP核執行算法操作,而CPU只通過外設接口完成數據的讀寫、時序控制等。
NIOS直接通過自定義外設接口對外設的讀寫速率是比較慢的,大約幾十個高鐘周期才能讀寫一次。并且由CPU直接讀寫需要CPU實時干預,嚴重浪費CPU時間。
設計中NIOS對外設的讀寫采用(Direct Memory Access,DMA)模式。DMA即直接內存存取,DMA模式將數據從一個地址空間復制到另一個地址空間,由CPU初始化這個傳輸動作,而傳輸動作本身由DMA控制器來實施和完成,不再需要CPU直接干預,既減少了CPU的占用,也大大提高了讀寫的速度。
FIR濾波在數字信號處理中必不可少,如果在NIOS內部采用軟件方式進行FIR運算,需要耗費大量的CPU時間,而ALTERA提供了FIR的IP核,可根據用戶需要進行定制,大大提高設計效率。
設計中由Quartus生成的FIR核,在時序上并不能與NIOS CPU直接相連,需要建立一個FIR時序控制接口,根據 FIR核運算的需要產生控制時序[3],連接關系如圖 2所示。

圖2 NIOS與FIR核連接關系
本設計中,FIR計算需要復數運算,為了提高運算速度,在CPU內部將實部和虛部組成一個32位無符號數,即將實部和虛部分別填充在該數的高16位和低16位,這樣只需要一次寫操作就可以寫入到FIR核。
在進行讀操作時,也采用此種方式,即將FIR運算結果按照一定精度組成一個32比特數,由DMA一次讀入內部RAM。
RS碼是一類具有強糾錯能力的多進制BCH碼,是目前比較有效的差錯控制編碼方式之一。RS編碼作為一種重要的編碼方式,已經廣泛應用于數字通信、數據存儲系統和數字電視中。
同FIR算法的實現方法相似,RS核不能與CPU直接相連,需要建立時序轉換模塊,按照RS編譯碼的時序需要將數據寫入。設計中CPU通過DMA控制器將需要編/譯碼的數據寫入時序控制模塊,完成時序轉換后寫入RS編/譯碼模塊[4]。同時,RS編/譯碼器將計算結果送入RS時序控制接口模塊,在模塊內完成時序轉換、數據轉存等,由DMA接口送至NIOS處理器。
本調制解調器在設計時,關鍵是要將NIOS和FPGA兩種處理方式區分開來,將并行處理的部分在FPGA內由IP核及VHDL邏輯實現,而算法實現部分由NIOS實現,這樣做的好處是提高了算法的解析度和靈活性,簡化了調試過程。并且,FPGA程序編譯時間長,調試不方便,而NIOS固化在FPGA程序內部,只需要進行軟件編譯,不需要多次編譯FPGA程序,大大減少了編譯時間,提高了開發效率。
本調制解調器設計為一種突發的全數字BPSK調制解調器,發/收為基本等占空比,T、R時間分別約5 ms。位速率為100 kbps,采用4倍過采樣設計,5 ms內采樣數據約2 k。為提高數據處理速度,設計了2個獨立的CPU核分別進行調制、解調操作,因此,CPU頻率為100 MHz時,每個采樣分配約500個CPU時鐘周期,具有較高的冗余設計。
調制解調器原理框圖如圖3所示,圖中編碼、解碼及濾波等在NIOS干預下由FPGA的IP核完成,而調制、解調核心算法由NIOS處理器實現[5]。這樣的分工可充分發揮軟、硬件的優勢,提高設計的可行性。

圖3 調制解調器原理
發送端將信源數據進行RS編碼進行映射、調制成型后,添加用于接收同步的幀頭,由D/A變換器轉換成模擬信號發送出去。
在接收端,A/D變換器將模擬信號轉成數字信號后,捕獲到突發同步幀頭,即認為接收到有效數據,開始解調。接收到的有效數據首先經過匹配濾波后,進行時鐘恢復、載波同步,解調出數據后經過RS解碼,恢復出信息數據。為了與發送端進行匹配和驗證,設計中還進行了誤碼統計。
3.2.1 時鐘恢復算法的實現
由于發送端與接收端時鐘是不同步的,因此在恢復出發端數據來之前,需要進行時鐘恢復及載波恢復。
Gardner算法[6]是 BPSK/QPSK 調制下常用的無數據輔助(NDA)時鐘恢復算法,這種算法不受載波相位偏移的影響,也不需要載波同步完成,因此,本調制解調器設計時,時鐘恢復先于載波同步[7]。
文獻[6]中給出了一種基于代數多項式的內插濾波器設計,工作原理框圖如圖4所示。

圖4 時鐘恢復算法原理
A/D變換器以獨立時鐘Ts對接收信號進行采樣,得到4倍過采樣序列x(mkTs)。由于收發兩端的時鐘誤差,mkTs并不是最佳采樣位置,而kTi是經過內插計算估計出的最佳采樣位置,令

采樣點與最佳采樣點位置關系如圖5所示。

圖5 采樣點與最佳樣點關系
可見對于最佳采樣值,只需計算插值濾波器系數,并根據μkTs持續更新濾波器參數,即可得到最佳采樣點的估值。
根據文獻[6]中提供的算法,本方案中取4倍過采樣,采用3階立方內插濾波器。3階立方內插濾波器使用4個乘法器11個加法器,占用資源較少[8]。
由于Gardner算法收斂時間較長,根據文獻[9]中提供的算法,對采樣數據進行循環處理,雖然算法收斂時間較長,但不占用有效采樣值,且更適宜C語言實現算法[10]。
3.2.2 載波恢復算法實現
由于是突發調制解調器,傳統的鎖相環路等反饋控制算法由于捕獲時間過長,無法快速恢復同步時鐘及載波,本設計方案中采用V&V[11]算法進行載波相位估計和同步。V&V算法是一種經典的開環載波相位估計算法,在突發通信中應用非常廣泛。V&V算法原理框圖如圖6所示。

圖6 V&V算法原理
解調器在時鐘恢復后,得到最佳采樣點的值,但由于存在載波頻率偏移,還需要進行載波恢復。
時鐘恢復后的基帶信號,同相及正交分量序列分別為xn,yn,令,根據算法,將序列經過非線性變換,得到


實際上,由于進行了非線性變換,因此,在對相位進行估計時,可能會存在π的相位誤差,即V&V算法估計的相位模糊,一般的,可以通過差分編譯碼消除[12]。
對本調制解調器進行測試時,發送端在FPGA內產生已知偽隨機序列作為信源,在接收端,對解調后的數據進行驗證。同時,由于CPU為串行處理,需要監測某次解調處理結束時刻不得超過下次解調開始時刻,否則2幀解調將互相沖突,引進解調錯誤。
通過試驗證明,基于內插濾波器的時鐘恢復算法及數據循環處理算法,可達到基本不需要數據輔助,是一種適于突發調制解調器應用的快速時鐘恢復算法。結合V&V載波恢復算法,在突發解調器設計中,可大大降低位同步、載波同步時間,提高解調器性能。
通過將調制解調器按功能劃分后,由硬件邏輯和NIOS軟件分別完成,提高了設計的靈活性,減少了開發時間。特別是將以前需要硬件實現的算法由C語言實現,大大簡化了算法特別是復雜算法的實現,提高了開發的效率。
硬件方面,通過雙口RAM為數據交換的媒介,完成核心處理器NIOS與外設接口的數據交換,完成對FPGA內IP核的引用;軟件方面,通過建立硬件與NIOS之間的邏輯接口,將原來需要VHDL硬件邏輯實現的算法轉而由C語言軟件實現,降低了設計難度。算法的軟件實現帶來的便利性不僅是降低難度、減少開發時間,另一方面,還方便了更高層數據處理,例如MAC層控制、應用層軟件等,具有較高的應用價值。
[1]Altera Corporation.SOPC Builder User Guide[M].USA:Altera Corporation,2012:59 -66.
[2]Altera Corporation.Reed-Solomon Compiler User Guide[M].USA:Altera Corporation,2012:33-34.
[3]鄭成根,鄧 亮.基于SOPC的FIR數字濾波器的設計[J].集成電路應用,2006(1):33 -36.
[4]葉才煒,李式巨.RS編譯碼的c語言實現[J].無線電工程,2003,23(8):46 -48.
[5]趙會賓.8DPSK傳真信號解調/再調制的DSP實現[J].無線電工程,2005,35(2):50-52.
[6]GARNDER F.M.Interpolation in digital modems-part I:fundamentals[J].IEEE Trans on Communication,1993,41(5):501 -507.
[7]李 滾,王瑞紅,秦開宇,等.一種改進的定時恢復方法[J].電子測量與儀器學報,2009(7).46-49.
[8]張錦鈺,閆 毅,姚秀娟,等.超高速數字解調中QPSK信號的符號同步研究[J].電子測量技術,2009(6):12-16.
[9]萬曉峰,張 彧,姜 龍.無線突發通信全數字接收機時鐘恢復算法[J].清華大學學報(自然科學版),2010,50(5):801 -804.
[10]朱雪陽.基于Gardner算法的位定時同步研究[D].南京:南京理工大學,2010.
[11]VITERBI A J,VITERBI A M.Nonlinear Estimation of PSK Modulated Carried Phase with Applications to Burst Digital Transmission[J].IEEE Transion Inform.Theory,1983,29(4):543-551.
[12]張永杰,韋 維.高速突發解調器的快速同步技術研究[J].無線電通信技術,2009,35(5):29-31.