基于雙NIOS II的IP無線收發(fā)機(jī)
摘要:介紹了基于NIOS II 軟核處理器的SOPC 技術(shù),分析了傳統(tǒng)方法和基于SOPC技術(shù)的方法實現(xiàn)擴(kuò)頻收發(fā)機(jī)的優(yōu)劣,詳細(xì)說明了嵌有雙NIOS II的SOPC技術(shù)的方案設(shè)計。該設(shè)計增強(qiáng)了系統(tǒng)功能,改善了系統(tǒng)的靈活性,并提高了其適應(yīng)不同應(yīng)用需求的伸縮性。
Abstract: Introduce the technique of SOPC with softcore processor NIOS II . Analyze the traditional design and the SOPC design in a Direction-Sequence Spread-Spectrum Receiver And Transmitter system. Explain the design with SOPC method in which two NIOS II are embedded. The functions are enhanced , while the flexibility and scalability is extended.
Keywords: SOPC; NIOS II; Spread-Spectrum Receivers And Transmitter
一:概述
目前,日益蓬勃發(fā)展的網(wǎng)絡(luò)技術(shù)促使許多應(yīng)用產(chǎn)品向新一代工業(yè)及商務(wù)網(wǎng)絡(luò)應(yīng)用方向發(fā)展。一些不帶網(wǎng)絡(luò)功能的產(chǎn)品越來越不符合當(dāng)今產(chǎn)品的需要。具有更多功能的集成、支持網(wǎng)絡(luò)協(xié)議已成為目前產(chǎn)品研發(fā)的主流[1]。
傳統(tǒng)的無線收發(fā)機(jī)具有體積大,可配置性差,功耗高,成本大,開發(fā)時間長等缺點,且不支持網(wǎng)絡(luò)。
基于以上諸多因素考慮,我們將設(shè)計一個新式的支持網(wǎng)絡(luò)的便攜式的無線收發(fā)機(jī)來取代傳統(tǒng)的收發(fā)機(jī)。該系統(tǒng)是無線網(wǎng)絡(luò)的解決方案,采用先進(jìn)的擴(kuò)頻技術(shù),實現(xiàn)長距離數(shù)據(jù)傳輸。本系統(tǒng)是基于雙NIOS II核的擴(kuò)頻收發(fā)機(jī)。該系統(tǒng)以全雙工的方式進(jìn)行無線方式的收發(fā),并通過以太口進(jìn)行網(wǎng)絡(luò)傳輸。發(fā)射方面,系統(tǒng)通過網(wǎng)絡(luò)收到數(shù)據(jù)進(jìn)行擴(kuò)頻調(diào)制,經(jīng)由射頻裝置從天線發(fā)射出去,完成發(fā)射部分。接收方面,系統(tǒng)從天線收到遠(yuǎn)端的信號,進(jìn)行解調(diào)解擴(kuò)并傳給網(wǎng)絡(luò),完成接收部分。
其中一個NIOS II核完成無線收發(fā)機(jī)接收和發(fā)送的信號處理和運(yùn)算,另一個核運(yùn)行操作系統(tǒng),完成以太網(wǎng)傳輸和其他相關(guān)控制。
之所以選擇使用NIOS II來完成該系統(tǒng),而不選擇目前通用的(MCU+DSP)方式,我們主要考慮是首先雙NIOS II的處理能力完全能夠完成任務(wù)且開發(fā)方便,周期短。另外SOPC硬件線路可以規(guī)劃到芯片內(nèi)部,有效縮小PCB面積,減小體積。還有,由于NIOS II的軟硬件自由配置空間極大,可以方便的調(diào)整系統(tǒng)不斷提到系統(tǒng)性能。這幾乎能夠克服傳統(tǒng)無線收發(fā)機(jī)的所有不足。另外NIOS II內(nèi)核的可編程性,為以后支持更多網(wǎng)絡(luò)協(xié)議等附加功能可能。
二:功能描述
本系統(tǒng)是基于IP的無線收發(fā)裝置,具備網(wǎng)絡(luò)功能的收發(fā)機(jī)其應(yīng)用范圍將大大增加。系統(tǒng)提供由鍵盤和液晶顯示器組成的人機(jī)界面,可以實現(xiàn)本地系統(tǒng)設(shè)置,實現(xiàn)碼分多址,在允許的作用距離內(nèi),設(shè)備間可以通過配置實現(xiàn)點對點和組網(wǎng)傳輸。
本系統(tǒng)是基于雙NIOS II核的結(jié)構(gòu),其中一個核(CORE 1)運(yùn)行操作系統(tǒng),完成以太網(wǎng)傳輸,其他相關(guān)控制和人機(jī)交互任務(wù)。另一個NIOS II核(CORE 2)完成無線收發(fā)機(jī)接收和發(fā)送的信號處理和運(yùn)算。兩個NIOS II的數(shù)據(jù)和命令交互是通過FPGA內(nèi)部的共享內(nèi)存(雙口RAM)來實現(xiàn)的。見下圖:
三:各模塊詳細(xì)說明:
1 NIOS II CORE 1 功能說明
CORE 1運(yùn)行MicroC/OS-II操作系統(tǒng),進(jìn)行以太網(wǎng)傳輸,人機(jī)交互,控制等方面的處理。
首先在上電后NIOS II初始化操作系統(tǒng),初始化lwIP和其它的一些外設(shè)并初始化液晶顯示器執(zhí)行人機(jī)界面程序。在該用戶程序中,通過用戶的鍵盤輸入對系統(tǒng)進(jìn)行設(shè)置,調(diào)整系統(tǒng)的運(yùn)行方式,同時將系統(tǒng)狀態(tài)顯示到液晶顯示器。其中人機(jī)交互程序的系統(tǒng)的設(shè)置包括:數(shù)據(jù)傳輸方式配置(串口,以太口等),發(fā)射功率的選擇,網(wǎng)絡(luò)的配置,擴(kuò)頻序列的選擇,環(huán)路參數(shù)的選擇等等。其軟件流程圖如下:
在該系統(tǒng)中,人機(jī)交互程序是用戶的頂層程序,實現(xiàn)該程序的功能需要操作系統(tǒng),lwIP,NIOS II的HAL,驅(qū)動程序等的支持。為實現(xiàn)程序要調(diào)用各層次的接口并編寫驅(qū)動程序。其中的大部分程序直接移植altera公司提供的HAL即可。其關(guān)系如下:
2 NIOS II CORE 2 功能說明
CORE 2 主要是完成直序擴(kuò)頻收發(fā)的信號的處理和運(yùn)算,是收發(fā)機(jī)的核心按功能分為接收和發(fā)送部分。
發(fā)送部分:從共享內(nèi)存中取來來自網(wǎng)絡(luò)的數(shù)據(jù)(也可以來自其它接口),形成一路數(shù)字信號,然后加密,卷積編碼(2,1,7),交織,組幀,差分,再擴(kuò)頻(127位),成型濾波,BPSK調(diào)制后通過射頻模塊發(fā)射出去。
功能框圖:
接收部分:接收部分接收來自射頻的模擬信號經(jīng)過AD后,復(fù)數(shù)下變頻,相關(guān)器(匹配濾波),然后叉積鑒頻,然后環(huán)路濾波,解幀,解交織,然后解卷積,解密等將一路數(shù)據(jù)信號存入共享內(nèi)存供另一個核讀取傳輸。
功能框圖:
2.1 軟件流程圖:
接收通道中的載波和碼的捕獲跟蹤控制比較復(fù)雜,運(yùn)算較多所以在軟核上用軟件實現(xiàn),流程圖如下:
2.2 成形濾波器
(1)設(shè)計實現(xiàn)[2]
用數(shù)字方法進(jìn)行基帶頻譜成形,一般采用BTF(二進(jìn)制橫向濾波器)法和查表法。查表法即預(yù)先存儲所有可能的基帶成形波形的樣本值,根據(jù)發(fā)送的數(shù)據(jù)序列,在存儲器中查找相應(yīng)的波形輸出。BTF法則根據(jù)輸入的數(shù)據(jù)序列實時計算輸出波形。當(dāng)基帶信號為二進(jìn)制數(shù)據(jù)時,采用這兩種方法可以達(dá)到較高的性能價格比。
本文成形濾波器采用查找表方式實現(xiàn),系統(tǒng)的輸入數(shù)據(jù)為二進(jìn)制雙極性數(shù)據(jù),映射邏輯為: , 。采用滾降系數(shù)為 的升余弦濾波器,升余弦滾降函數(shù)的系統(tǒng)函數(shù)為:
,
取波形的截短長度為輸入數(shù)據(jù)碼元寬度的四倍,則當(dāng)輸入信號為“1111”時,系統(tǒng)的輸出波形如圖所示。
輸入信號為“1111”,系統(tǒng)輸出波形
圖中,h1(t) 為h(t)的截短??梢钥闯?, 時間段的波形為前后時刻波形的疊加,即連續(xù)輸入的四個信號才能確定一段波形。若在一個 時間段內(nèi)采8個樣點,因為每個樣點有24個可能值,所以共需要24 8=128個數(shù)據(jù)。這些樣點值可以由上式計算得出,將它們以二進(jìn)制補(bǔ)碼表示,存入ROM中,就構(gòu)成了查找表。樣點數(shù)據(jù)存儲格式見下圖。
圖 波形數(shù)據(jù)存儲格式
本系統(tǒng)所實現(xiàn)的成形濾波器主要由移位寄存器、計數(shù)器和查找表組成,輸出為8比特的波形數(shù)據(jù),硬件結(jié)構(gòu)如下圖所示。其中查找表為一個地址寬度為7比特,輸出為8位比特的ROM,在FPGA內(nèi)部實現(xiàn)。移位寄存器由4個帶異步復(fù)位端的D觸發(fā)器級聯(lián)而成,基帶數(shù)據(jù)串行輸入,并行輸出,其輸出構(gòu)成查找表的高4位地址,而低3位的地址由一個八進(jìn)制計數(shù)器輸出,其計數(shù)頻率為基帶數(shù)據(jù)頻率的8倍,復(fù)位端連接數(shù)據(jù)時鐘,即每送進(jìn)來一位數(shù)據(jù),計數(shù)器便清零。
成形濾波器實現(xiàn)框圖
(2)仿真驗證
為了驗證成形濾波器模塊,在其數(shù)據(jù)輸入端加入一數(shù)據(jù)源作激勵,并將模塊輸出轉(zhuǎn)化為十進(jìn)制數(shù),以模擬形式表示。仿真結(jié)果如下,其中din為輸入二進(jìn)制數(shù)據(jù),q為輸出的成形數(shù)據(jù)??梢钥闯?,各個取樣點之間的串?dāng)_很小,達(dá)到了基帶成形的目的。
2.3 相關(guān)器
本系統(tǒng)使用匹配濾波其進(jìn)行相關(guān),其特點是捕獲速度快,但同時消耗資源較多,該模塊的設(shè)計難點是在不降低速度的前提下,盡可能的減小資源消耗。所以我們采用折疊型濾波器
當(dāng)偽碼長度較長或硬件資源緊張時,可以對倒置型濾波器進(jìn)行“折疊”處理來進(jìn)一步壓縮資源。折疊濾波器是一種改進(jìn)的倒置型濾波器,其實現(xiàn)原理基于以下等式:
(5.6)
其中 , 為折疊次數(shù)。
折疊型濾波器的工作時鐘同步于輸入采樣時鐘,即每進(jìn)入一個采樣數(shù)據(jù),加法鏈中的數(shù)據(jù)向后移動一級。如式x所示,m次折疊濾波器將相關(guān)運(yùn)算分為m步進(jìn)行,每一步的相關(guān)運(yùn)算長度為整個相關(guān)運(yùn)算的1/m。在采樣速率不變的情況下,折疊濾波器必須在一個采樣時鐘內(nèi)執(zhí)行完所有步驟。這就需要提高折疊濾波器的處理時鐘,折疊幾次,處理時鐘就變?yōu)樵瓉淼膸妆?。另外如圖x所示,倒置型濾波器的結(jié)構(gòu)具有重復(fù)對稱性,所示可以重復(fù)利用1/m長的相關(guān)運(yùn)算單元完成整個相關(guān)運(yùn)算。在FPGA的設(shè)計中,這種方法稱為以速度換取面積,通過提高處理時鐘節(jié)省了大量的硬件資源。下圖所示為本系統(tǒng)所采用的2次折疊匹配濾波器,用64抽頭實現(xiàn)了127位碼長8倍過采樣匹配濾波器。
由圖x可知,折疊匹配濾波器主要由加法器、延時單元、偽碼寄存器和反饋邏輯組成。其中本地127位偽碼通過末尾添零變成128位,以折疊格式存放在偽碼寄存器中。因為采用8倍過采樣并且折疊系數(shù)為2,加法鏈每級之間的延時應(yīng)該為16個處理時鐘單位,但加法器本身占用了一個時鐘延時,所以延時單元只需產(chǎn)生15個時鐘延時即可。
折疊匹配濾波器的處理時鐘為采樣速率的兩倍,每兩個時鐘周期出現(xiàn)一個采樣數(shù)據(jù)。在第一個時鐘周期,code0到code63被送入64個抽頭單元中,同時code0加法器的反饋輸入端被置為零。第一個時鐘周期結(jié)束時,加法器的結(jié)果移入保存寄存器中。在第二個時鐘周期,code64到code127送入抽頭單元,code64加法器的輸入來自保持寄存器。第二個時鐘周期結(jié)束,最終結(jié)果送入捕獲寄存器。
以下為時序仿真圖,綜合工具quartus5.0, 仿真工具 modelsim 5.8。其中clk_32k為發(fā)送符號時鐘,I_corr為匹配濾波器輸出的相關(guān)值??梢钥闯?,在每一個符號周期內(nèi),相關(guān)結(jié)果都會出現(xiàn)一個峰值。
2.4 叉積鑒頻
該模塊是頻率鑒別器,當(dāng)輸入同向和正交兩個分量的時候,輸出為當(dāng)時的頻差,其結(jié)果在送入環(huán)路濾波器進(jìn)行閉環(huán)的反饋。
其仿真圖如下:
上圖是在modelsim5.7上的布線后仿真圖,第一個信號是頻差,第二個信號是未下變頻的信號,第三個信號是下變頻以后的信號。由圖可見頻差在不斷縮小變成零,下變頻信號最后頻率消失,同步成為一條直線[3]。
3 CORE 1與CORE 2通訊
CORE 1與CORE 2的通訊:采用FPGA內(nèi)部的雙口RAM形成一塊共享內(nèi)存,進(jìn)行數(shù)據(jù)交互。其中接收和發(fā)送分別擁有獨(dú)立的存儲空間,另外一些交互命令也獨(dú)立存儲。如圖:
三:設(shè)計特點
1 本系統(tǒng)是一種基于網(wǎng)絡(luò)的無線收發(fā)機(jī),通過網(wǎng)絡(luò)使無線收發(fā)機(jī)的功能大大豐富。本系統(tǒng)可以實現(xiàn)點對點傳輸,一點對多點傳輸,和組網(wǎng)功能。大大增強(qiáng)了無線收發(fā)機(jī)的應(yīng)用范圍。
2 使用SOPC能夠非常方便快捷的搭建很有特色雙核NIOS II系統(tǒng),同時NIOS II支持操作系統(tǒng)并提供lwIP,對進(jìn)行網(wǎng)絡(luò)開發(fā)大大有利,這些都加快了系統(tǒng)開發(fā)進(jìn)度。
3 我們做過評估,采用雙核NIOS II完全可以勝任IP無線收發(fā)機(jī)。而不需要使用傳統(tǒng)通的(MCU+DSP)結(jié)構(gòu),不僅節(jié)省了成本,而且縮小了PCB面積,更重要的是功耗大大降低。
4 NIOS II為我們提供了強(qiáng)大的軟硬件選擇性。在信號處理的接收方面,由于解擴(kuò)解調(diào)計算復(fù)雜,對于環(huán)路濾波器和叉積鑒頻中的一些運(yùn)算使用了NIOS II的自定義指令。而能量捕獲則作為硬件加速,完全在硬件中實現(xiàn)。
系統(tǒng)提供了鍵盤和液晶顯示器,可以直接對系統(tǒng)的運(yùn)行方式進(jìn)行調(diào)整,并顯示調(diào)整結(jié)果。
綜上:采用新方法實現(xiàn)的無線收發(fā)機(jī)在許多方面比傳統(tǒng)方案都有所改進(jìn)和提高,為今后實現(xiàn)無線收發(fā)機(jī)提供了一個新的方向。
參考文獻(xiàn):
[1] SOPC/FPGA教程 www.21control.com
[2] 李博 直序擴(kuò)頻接收機(jī)數(shù)字中頻模塊的FPGA實現(xiàn) 北京航空航天大學(xué)碩士論文 2006
[3] 姚廷燕 SOPC 技術(shù)在軟件無線電平臺中的應(yīng)用 遙控遙測 2005.7
評論