加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 三、軟件開發(fā)平臺及軟件模塊設(shè)計
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

基于FPGA的擴頻系統(tǒng)設(shè)計(中)

2023/08/01
2942
閱讀需 19 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

今天給大俠帶來基于FPGA的擴頻系統(tǒng)設(shè)計,由于篇幅較長,分三篇。今天帶來第一篇,中篇。話不多說,上貨。

無線通信系統(tǒng)中,普遍使用擴頻通信技術(shù),因此擴頻技術(shù)對通信系統(tǒng)具有重要的現(xiàn)實意義。直接序列擴頻技術(shù)是應(yīng)用最廣的一種擴頻技術(shù),F(xiàn)PGA具備高速度的并行性特點在無線通信系統(tǒng)中的優(yōu)勢日益增強,利用FPGA實現(xiàn)直接序列擴頻技術(shù),可增大傳輸速率,可以使擴頻技術(shù)有更好的發(fā)展與應(yīng)用。

本篇利用本原多項式產(chǎn)生偽隨機序列用作擴頻,通過同步模塊對擴頻后的信號進行捕獲,通過直接序列解擴模塊進行解擴。本篇給出了編解碼、擴頻解擴、同步的整體方案,使用Quartus實現(xiàn)功能,并結(jié)合Matlab和ModelSim對模塊進行調(diào)試和測試,實現(xiàn)擴頻通信模塊的搭建仿真,驗證其設(shè)計的正確性。首先概述了方案設(shè)計與論證、整體方案的設(shè)計、各個模塊的設(shè)計、個別模塊的調(diào)試與各個模塊的仿真驗證。本篇主要實現(xiàn)的模塊有:漢明編碼模塊、直接序列擴頻模塊、量化器模塊、同步模塊、直接序列解擴模塊和漢明譯碼模塊。各位大俠可依據(jù)自己的需要進行閱讀,參考學(xué)習(xí)。

第二篇內(nèi)容摘要:本篇會介紹軟件開發(fā)平臺及軟件模塊設(shè)計,包括FPGA芯片、設(shè)計和仿真驗證平臺、漢明碼編碼設(shè)計模塊、直接序列擴頻模塊原理、量化器模塊設(shè)計、同步模塊設(shè)計、直接序列解擴模塊設(shè)計、漢明碼譯碼模塊設(shè)計等相關(guān)內(nèi)容。

三、軟件開發(fā)平臺及軟件模塊設(shè)計

3.1 FPGA芯片

FPGA(Field-Programmable Gate Array),即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物,通過提高密度、降低功耗和成本等手段,F(xiàn)PGA已經(jīng)披靡傳統(tǒng)ASIC領(lǐng)域,在眾多新興應(yīng)用領(lǐng)域加速滲透。如今FPGA在通信、圖像處理和控制方面也有發(fā)展,在未來具有很好的發(fā)展前景。

本論文設(shè)計采用的FPGA芯片是altera公司的CycloneⅡ系列EP2C70F896C6芯片,該芯片具有4個鎖相環(huán),150個內(nèi)嵌乘法器、622個I/O引腳、48416個寄存器和68416個邏輯單元,其中擁有專用的乘法器,可以大幅度有效地提高系統(tǒng)的整體性能,同時也可以提高系統(tǒng)的整體穩(wěn)定性。

3.2 設(shè)計和仿真驗證平臺

3.2.1 Quartus設(shè)計軟件平臺

Quartus II 11.0 是 Altera 公司的綜合性PLD/FPGA開發(fā)軟件,支持原理圖、VHDL、Verilog等多種設(shè)計形式,自帶有綜合器和仿真器,支持IP核,包含宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設(shè)計流程,加快了設(shè)計速度。該平臺支持一個工作環(huán)境下的設(shè)計要求,其中包括支持基于Internet的協(xié)作設(shè)計,可以在XP、Linux和Unix上使用。

3.2.2 ModelSim仿真驗證軟件平臺

ModelSim 5.5是Mentor公司的HDL語言仿真軟件,是業(yè)界唯一的單內(nèi)核支持VHD和Verilog混合編程仿真器。編譯仿真速度快,編譯代碼與平臺無關(guān),有利于IP核的保護,ModelSim 5.5具有以下特點:RTL和門級優(yōu)化、本地編譯結(jié)構(gòu)、編譯仿真速度快和跨平臺跨版本仿真;集成了性能分析、波形比較和代碼覆蓋等。選用ModelSim 5.5作為本設(shè)計的各個模塊的功能及仿真波形驗證軟件。

3.2.3 Matlab仿真驗證軟件平臺

Matlab是MATrix LABoratory的縮寫,是一款由美國The MathWorks公司出品的商業(yè)數(shù)學(xué)軟件。Matlab是一種用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境。利用Matlab r2011b軟件所帶庫函數(shù),有利于部分功能仿真。

3.3 漢明碼編碼模塊設(shè)計

3.3.1 漢明編碼原理

在香農(nóng)的時代,二戰(zhàn)結(jié)束的那段時候,貝爾實驗室聚集了很多人才,他們那時的工作對我們今天數(shù)字世界的影響非常重要,如圖基(John Tukey)創(chuàng)始了現(xiàn)代統(tǒng)計學(xué),漢明(Richard Wesley Hamming)成功的進行了糾錯碼研究,他們的成果恩澤天下。

本文中的漢明編碼模塊采用漢明(7,4)碼,全部碼長是7位:C6~C0,其中4位是原始信息位D,3位是奇偶效驗位P,通過如下表3.1方式組成:

表3.1 漢明碼組成表

由表3.1可知,漢明碼具有糾正錯碼的能力,在后續(xù)章節(jié)3.5.1節(jié)詳細介紹。

3.3.2 漢明編碼設(shè)計

根據(jù)表3.1可知,校驗位P為對應(yīng)的原始信息碼異或得到,其它位直接輸出即可,因此設(shè)計得到如圖3.1的設(shè)計模型:

圖3.1 漢明碼編碼設(shè)計模型

如圖3.2為漢明編碼模塊在總設(shè)計中的設(shè)計模型。首先利用控制模塊h_fsm的h_load信號控制輸入數(shù)據(jù)的更新,當完成8bits數(shù)據(jù)編碼后才更新輸入數(shù)據(jù)。由于數(shù)據(jù)是8bits而漢明碼每次編碼對象數(shù)據(jù)為4bits,因此利用控制模塊h_fsm的hm_sel信號控制數(shù)據(jù)高4位或低4位進行漢明編碼,利用h_fifo模塊(fifo)對數(shù)據(jù)進行緩存,通過對fifo空標志信號m_empty高電平有效進行判斷,如信號m_empty有效則置fifo讀操作使能信號m_rdreq高電平進行讀取編碼后的數(shù)據(jù),其他情況為低電平。設(shè)計模型對應(yīng)Verilog代碼詳見附錄A。

圖3.2 漢明編碼模塊總設(shè)計模型

3.4 直接序列擴頻模塊設(shè)計

3.4.1 直接序列擴頻原理

直接序列擴頻是用待傳輸?shù)臄?shù)據(jù)信息與偽隨機序列異或,用來擴展傳輸信號的帶寬。原理如圖3.3所示。傳輸信號不經(jīng)過擴頻直接傳輸,受到信道的噪聲干擾,導(dǎo)致信號失真。若經(jīng)過擴頻后傳輸,可以提高抗噪聲能力。

圖3.3 直接序列擴頻原理圖

在3.1香農(nóng)定理公式中,C是信道容量,單位為比特每秒(bps);B是信道帶寬,單位是Hz,S/N是信噪比。

(3.1)

根據(jù)3.1香農(nóng)定理公式可知,當信道容量C不變時,增加帶寬B,則可以容許信噪比減??;或者說,在信道的信噪比很小時(如無線通信中噪聲很大情況下)為了保證正常的通信,則需要增大帶寬B。很多情況下,基帶(原始數(shù)據(jù))信號的帶寬不足以滿足上式,直接用這樣的基帶信號經(jīng)過調(diào)制后進行通信,經(jīng)常會受到噪聲的干擾,甚至無法進行正常通信,因此使用直接序列進行擴頻。

偽隨機序列是最長線性移位寄存器序列的簡稱,它是由多級移位寄存器或其延遲元件通過線性反饋產(chǎn)生最長的碼序列,在移位寄存器里,若移位寄存器級數(shù)為n,則能產(chǎn)生2n個狀態(tài),除去一個全“0”狀態(tài),則還剩2n-1個狀態(tài)。因此n級移位寄存器能產(chǎn)生的最大長度的碼序列為2n-1。

本文采用本原多項式產(chǎn)生偽隨機序列,利用偽隨機序列與原始信號異或得到擴頻后的信號。本原多項式an-i、…a1、a0為一組N位移位寄存器,在每個時鐘下,該移位寄存器的每一位發(fā)送變化,每一位ai的變化是由其輸入信號決定,該輸入信號則是后級電路與系數(shù)C層次異或的結(jié)果決定的,原理圖如圖3.4所示。

圖3.4 偽隨機序列原理圖

3.4.2 直接序列擴頻模塊設(shè)計

要產(chǎn)生所需的偽隨機序列,需要先確定序列級數(shù)r,確定級數(shù)相當于確定了偽隨機序列的長度,本文采用5相多項式:X5+X2+1,對應(yīng)有31個偽隨機數(shù),原理圖如圖3.5所示:

圖3.5 5相偽隨機序列原理圖

5相多項式的初始狀態(tài)為a4a3a2a1a0=00001,a4為a0和a3異或得到的,其余的為上一級得到。每到來一個時鐘上升沿按上圖移位一次,從a0產(chǎn)生輸出(1個bit寬度的串行輸出,5位變量最多可產(chǎn)生31種組合),不同的初始值對應(yīng)不同的輸出序列,輸出的序列都為31bits,對應(yīng)輸出序列如表3.2所示:

表3.2 偽隨機序列表

根據(jù)表3.2可得出本原多項式具有以下9點特性:

1. 無論設(shè)置的初始值是什么,序列僅是開始位置變化,序列本身并無變化;

2. 偽隨機數(shù)PRN是偽隨機序列從置位開始后的頭5個比特;

3. 每一個相鄰的偽隨機序列,其相位差一拍;

3. 每31個時鐘周期循環(huán)一次;

4. PRN中沒有0;

5. 在一個偽隨機序列周期內(nèi),PRN隨機分布(被洗牌);

7. 序列名與ms序列頭5比特為鏡像對稱;

8. 前一個為下一個的向左循環(huán)移位;

9. 1的個數(shù)比0的個數(shù)多1個。

本設(shè)計主時鐘信號clk為10MHz,設(shè)計模型如圖3.6所示。首先,編碼后的信號經(jīng)過接口m_interface模塊接收到數(shù)據(jù)信號。其次,將接收到的數(shù)據(jù)信號通過并串轉(zhuǎn)換模塊變成單比特數(shù)據(jù),利用計數(shù)器counter模塊控制偽隨機序列與單比特數(shù)據(jù)進行異或操作,最后達到擴頻的目的,設(shè)計模型對應(yīng)Verilog代碼詳見附錄A。

圖3.6 擴頻模塊設(shè)計圖

3.5 量化器模塊設(shè)計

在實際傳輸過程中,需要用D/A轉(zhuǎn)換芯片將數(shù)字信號轉(zhuǎn)換為模擬信號進行發(fā)送,在傳輸過程會引入噪聲,量化器的模塊主要是模擬此過程,將單比特的信號變?yōu)?bits有符號數(shù),也為后續(xù)引入噪聲做準備。在模塊設(shè)計中,利用選擇器即可實現(xiàn)此操作,設(shè)計模型如圖3.7所示,對應(yīng)Verilog代碼詳見附錄A。

圖3.7 量化器模塊設(shè)計圖

3.6 同步模塊設(shè)計

3.6.1 同步原理

同步的作用就是在時間不確定的情況下,捕獲到有用的偽隨機序列,使本地的偽隨機序列與數(shù)據(jù)同步,因此在解調(diào)前必須對數(shù)據(jù)進行同步處理。如圖3.8所示,接收端無法知道序列中起始位置,無法保證接收序列的開始位與發(fā)送序列的開始位一致,同時為避免丟失發(fā)送數(shù)據(jù)和保證正確恢復(fù)數(shù)據(jù)位,所以在發(fā)送數(shù)據(jù)前需加同步頭,能夠起到接收端接收數(shù)據(jù)的同步作用。

圖3.8 接收端信號接收示意圖

同步頭需要加到發(fā)送端數(shù)據(jù)信號起始位置,同步頭Frame_Head為14bits,數(shù)據(jù)信號為8bits位寬。具體如表3.3所示:

表3.3 字邊界和幀邊界定義表

在檢測到同步頭之前,首先接收端應(yīng)與同步頭擴頻后的數(shù)據(jù)進行對齊,由于接收端采到某位同步頭數(shù)據(jù)的不定位置,所以要用31個不同偽隨機序列模板對采集到的31bits數(shù)據(jù)進行最小二乘法(3.3.2節(jié)進行介紹)計算。以進行判定與哪個序列模板最吻合,判定的方法是將累加器的初始值設(shè)定為0,利用累加器對最小二乘法運算的結(jié)果進行累加,與閾值進行比較,經(jīng)過多次實驗,最終判定閾值為50000。

3.6.2 最小二乘法原理

最小二乘法(least square)由德國數(shù)學(xué)家高斯發(fā)明,其基本思想就是多維空間的點距問題,由此可以解決數(shù)學(xué)中的相關(guān)分析和擬合等問題。

1801年,由于谷神星運行至太陽背后,失去了谷神星的軌跡,奧地利天文學(xué)家海因里希·奧爾伯斯根據(jù)高斯計算出來的軌道,重新發(fā)現(xiàn)了谷神星。高斯計算的軌道,看成是多維空間的一個點,原觀察軌道亦為另一個點,將這兩點的距離趨于最小化,即是當時高斯所做的一切,這就是最小二乘法的來源。

直接序列同步利用最小二乘法來比對31bits數(shù)據(jù)與模板之間的相似程度,通過與閾值進行比較,確定是否捕獲到有用信號,如果為有用信號,則進行相應(yīng)的延時處理,已達到能夠與同步頭數(shù)據(jù)對齊的目的,盡最大可能地正確還原數(shù)據(jù)信息。

3.6.3 同步設(shè)計

設(shè)計模型如圖3.9所示,首先,在接收端生成與發(fā)送端相同的偽隨機數(shù),其次用計數(shù)器控制輸入31bits數(shù)據(jù),輸入數(shù)據(jù)分別與31個模板進行最小二乘法計算,用來比對相似度,通過得到的計算值與閾值進行比較,該模塊會判斷出輸入數(shù)據(jù)為對應(yīng)的偽隨機數(shù),從而判斷出對齊幀頭需要多少個系統(tǒng)時鐘周期。最后,位置信息輸出后利用計數(shù)器進行計數(shù),相當于延時操作,當計數(shù)值達到所需延時時間后,說明已對齊同步頭中的某一位,設(shè)計模型對應(yīng)Verilog代碼詳見附錄A。

圖3.9 同步頭位置判斷模塊

3.7 直接序列解擴模塊設(shè)計

設(shè)計模塊如圖3.10所示。在同步頭對齊后,對于直接序列解擴模塊與同步模塊相似,首先,利用本地時鐘生成與發(fā)送端相同的偽隨機序列,m_leastsouare模塊是對數(shù)據(jù)“0”和“1”擴頻后的偽隨機序列模板與對齊后31bits數(shù)據(jù)進行最小二乘法計算,計算值進行比較大小,計算值小的對應(yīng)解擴為“0”或“1”,通過判斷連續(xù)幾個“1”后并且判斷出“0”,說明同步頭結(jié)束,下一位則是發(fā)送端發(fā)送的數(shù)據(jù)信息,將數(shù)據(jù)信息解擴后輸出送給串并轉(zhuǎn)換及漢明譯碼模塊。設(shè)計模型對應(yīng)Verilog代碼詳見附錄A。

圖3.10 直接序列解擴模塊設(shè)計圖

3.8 漢明譯碼模塊設(shè)計

3.8.1 漢明譯碼原理

由本文3.1節(jié)說明了編碼模塊編碼原理,根據(jù)表3.1漢明碼組成結(jié)構(gòu),可以知道P0P1P2為校驗字節(jié),C0為D3D1D0P0異或得到,C1為D3D2D0P1異或得到,C2為D3D2D1P2異或得到。如果由附加位C0和C1為“1”,C2為“0”,因此可以推斷D0發(fā)生錯誤;如果由附加位C1和C2為“1”,C0為“0”,則可以判斷D2發(fā)生錯誤;如果附加位C0、C1和C2均為“1”,則可以判斷D3發(fā)生錯誤;如果僅C0為“1”,則可以判斷校驗位P0發(fā)生錯誤。

以此類推,通過判斷哪個區(qū)域發(fā)生共同錯誤,來判斷具體哪一位發(fā)生錯誤,如圖3.11所示:

圖3.11 漢明糾錯碼原理圖

3.8.2 漢明譯碼設(shè)計

設(shè)計模型如圖3.12所示。首先,通過inteface模塊對數(shù)據(jù)信息進行串并轉(zhuǎn)換將串行信號轉(zhuǎn)換為并行信號。其次,利用start1_mk模塊對haming_decoder模塊進行使能控制,當使能信號start高電平有效時,haming_decoder模塊對數(shù)據(jù)進行譯碼和糾錯。haming_decoder模塊輸出數(shù)據(jù)位4bits,通過start_mk模塊的信號lh進行控制輸出信號為數(shù)據(jù)的高四位還是低四位。counter模塊用來輔助inteface模塊和haming_decoder模塊,對數(shù)據(jù)比特位置進行判斷。最后輸出信號為8bits位寬。設(shè)計模型對應(yīng)Verilog代碼詳見附錄A。

圖3.12 漢明譯碼模塊設(shè)計圖

本篇到此結(jié)束,下一篇帶來基于FPGA的擴頻系統(tǒng)設(shè)計(下),介紹分析調(diào)試,包括漢明碼解碼模塊調(diào)試、直接序列擴頻模塊調(diào)試、同步模塊調(diào)試、整體設(shè)計資源占用率、整體設(shè)計RTL設(shè)計圖,還會介紹系統(tǒng)測試,包括漢明編碼模塊測試、直接序列擴頻模塊測試、量化器模塊測試、同步模塊測試、直接序列解擴模塊測試、漢明譯碼模塊測試、系統(tǒng)整體測試等相關(guān)內(nèi)容。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
XC2C384-10TQG144I 1 AMD Xilinx Flash PLD, 10ns, 384-Cell, CMOS, PQFP144, 20 X 20 MM, 0.50 MM PITCH, LEAD FREE, TQFP-144

ECAD模型

下載ECAD模型
$41.45 查看
5M160ZE64C5N 1 Altera Corporation Flash PLD, 14ns, 128-Cell, CMOS, PQFP64, 9 X 9 MM, 0.40 MM PITCH, LEAD FREE, PLASTIC, EQFP-64

ECAD模型

下載ECAD模型
$5.96 查看
ATF1508ASV-15AU100 1 Atmel Corporation EE PLD, 15ns, 128-Cell, PQFP100, 14 X 14 MM, 1 MM HEIGHT, 0.50 MM PITCH, GREEN, PLASTIC, MS-026AED, TQFP-100
$5.53 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

任何技術(shù)的學(xué)習(xí)就好比一個江湖,對于每一位俠客都需要不斷的歷練,從初入江湖的小白到歸隱山林的隱世高人,需要不斷的自我感悟自己修煉,讓我們一起仗劍闖FPGA乃至更大的江湖。