張?jiān)拢芙▊?,史巧碩,楊璐,高振斌
(1.河北工業(yè)大學(xué)微電子研究所,天津 300130;2.河北工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與軟件學(xué)院,天津 300401)
基于FPGA的m序列擴(kuò)頻通信的設(shè)計(jì)與實(shí)現(xiàn)
張?jiān)?,周建偉1,史巧碩2,楊璐2,高振斌1
(1.河北工業(yè)大學(xué)微電子研究所,天津 300130;2.河北工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與軟件學(xué)院,天津 300401)
針對(duì)無線通信系統(tǒng)對(duì)抗干擾、抗噪聲以及數(shù)據(jù)處理速度的要求,提供了一種用FPGA硬件實(shí)現(xiàn)基于m序列擴(kuò)頻通信的解決方案.本設(shè)計(jì)使用Verilog HDL描述了硬件系統(tǒng),在Altera公司的Quartus II 11.0開發(fā)平臺(tái)完成分析綜合.為了測(cè)試系統(tǒng),搭建了測(cè)試平臺(tái)(TestBench),加入隨機(jī)加性噪聲,在Modelsim 10.1a軟件下對(duì)其分別進(jìn)行前仿真、后仿真.仿真結(jié)果表明實(shí)現(xiàn)了擴(kuò)頻調(diào)制和解調(diào),系統(tǒng)有較強(qiáng)的抗干擾、抗噪聲能力,并且體現(xiàn)了FPGA硬件處理數(shù)據(jù)的速度優(yōu)勢(shì).
現(xiàn)場(chǎng)可編程門陣列;擴(kuò)頻通信;Verilog硬件描述語言;偽隨機(jī)序列
擴(kuò)頻通信,即擴(kuò)展頻譜通信技術(shù)(Spread Spectrum Communication),通過擴(kuò)頻調(diào)制用一個(gè)更高頻率的偽隨機(jī)碼將基帶信號(hào)擴(kuò)展到一個(gè)更寬的頻帶內(nèi),使發(fā)射信號(hào)的能量被擴(kuò)展到一個(gè)更寬的頻帶內(nèi),從而看來如同噪聲一樣,使該系統(tǒng)更具隱藏性和抗干擾性.接收端則采用相同的偽隨機(jī)碼進(jìn)行解擴(kuò),從而恢復(fù)出原始信息數(shù)據(jù).按照頻譜擴(kuò)展方式的不同,現(xiàn)有的擴(kuò)頻通信系統(tǒng)可以分為直接序列擴(kuò)頻(DirectSequenceSpectrum)工作方式(簡(jiǎn)稱直接擴(kuò)頻方式)、跳變頻率(Frequency Hopping)方式(簡(jiǎn)稱跳頻方式)和混合方式1.本文所設(shè)計(jì)的使用直接序列擴(kuò)頻方式.直接序列擴(kuò)頻通信是將待傳輸?shù)亩M(jìn)制信息數(shù)據(jù)用高速的偽隨機(jī)碼(PN碼)直接調(diào)制,實(shí)現(xiàn)頻譜擴(kuò)展后傳輸,在接收端使用相逆方式進(jìn)行解擴(kuò),從而可以恢復(fù)信源的信息.
隨著集成電路工藝技術(shù)的發(fā)展,F(xiàn)PGA技術(shù)也有了突飛猛進(jìn)的發(fā)展.由于其并行性、易于維護(hù)升級(jí)、開發(fā)周期短等優(yōu)勢(shì),F(xiàn)PGA在通信、航天軍工、醫(yī)療電子等領(lǐng)域有著越來越廣泛的應(yīng)用.
本文通過對(duì)擴(kuò)頻通信系統(tǒng)的研究,用Veriolg HDL實(shí)現(xiàn)了硬件的擴(kuò)頻通信系統(tǒng),用m序列對(duì)信號(hào)進(jìn)行調(diào)制解調(diào)2,并使用(7,4)漢明碼增強(qiáng)系統(tǒng)的抗干擾能能力.用Quartus II11.0完成分析綜合,在Modelsim 10.1a平臺(tái)對(duì)系統(tǒng)做了前仿真(功能仿真)和后仿真(時(shí)序仿真)3.
1.1 偽隨機(jī)序列
圖1 n級(jí)線性反饋移位寄存器Fig.1 n-order linear feedback shiftregister
表1 2-9階本原多項(xiàng)式Tab.1 2-9 order prim itive polynom ial
常用的偽隨機(jī)序列(PN Code)有:m序列、Gold序列和Walsh序列等,m序列通常容易硬件直接硬件實(shí)現(xiàn);Gold序列自相關(guān)性差;Walsh序列一般使用寫入雙口RAM中,然后啟動(dòng)讀取邏輯序列產(chǎn)生,但耗費(fèi)大量的硬件邏輯單元.綜合以上因素本設(shè)計(jì)選用了m序列作為系統(tǒng)的偽隨機(jī)碼.
m序列是由n級(jí)線性反饋移位寄存器產(chǎn)生的周期最長(zhǎng)的序列,通過反饋邏輯的移位寄存器設(shè)定初始狀態(tài)后,在時(shí)鐘的觸發(fā)下,每次移位后各級(jí)寄存器狀態(tài)會(huì)發(fā)生變化.一個(gè)n級(jí)的二進(jìn)制移位寄存器發(fā)生器所能產(chǎn)生的最大長(zhǎng)度碼序周期為2n1.n級(jí)線性反饋移位寄存器構(gòu)造如圖1所示.
圖中使用n個(gè)寄存器,通常將a0作為輸出信號(hào)產(chǎn)生m序列.從圖1也可以看出,一個(gè)完整的n級(jí)m序列是由一個(gè)相應(yīng)的線性反饋邏輯表達(dá)式,即為:an=C1an1
由上式可知,只有當(dāng)Cn=1時(shí),對(duì)應(yīng)的多項(xiàng)式才有效.為了便于表示,通常將上式與本原多項(xiàng)式對(duì)應(yīng).本原多項(xiàng)式的數(shù)學(xué)表達(dá)式如下
以下列出部分本原多項(xiàng)式如表1所示.
本文設(shè)計(jì)采用6階m序列作為系統(tǒng)的偽隨機(jī)碼發(fā)生器,其對(duì)應(yīng)的硬件框圖如圖1所示.由于級(jí)聯(lián)的寄存器初始狀態(tài)不能全為0,本設(shè)計(jì)中規(guī)定初始狀態(tài)為:a5a4a3a2a1a0=6'b000001.a(chǎn)0輸出的得到的m序列為:{100001100010100111101000111001001011011101100110101011111100000}從左到右順序輸出.
1.2 漢明碼
數(shù)字信號(hào)在傳輸過程中常常因干擾而發(fā)生損壞.接收端接收到數(shù)據(jù)后可能錯(cuò)誤的判決.差錯(cuò)控制措施,即在數(shù)據(jù)中間添加必要的監(jiān)督位,達(dá)到可以對(duì)錯(cuò)誤數(shù)據(jù)的監(jiān)督和糾錯(cuò)能力.本設(shè)計(jì)使用的是(7,4)漢明碼.
漢明碼是一種能糾錯(cuò)1比特錯(cuò)誤的線性分組碼,由于它的編譯碼簡(jiǎn)單,在數(shù)據(jù)通信和計(jì)算機(jī)存儲(chǔ)系統(tǒng)中廣泛應(yīng)用.碼組的總長(zhǎng)度為7比特,原始信息為4比特a6,a5,a4,a3,監(jiān)督位為3比特a2,a1,a0.故每發(fā)送4比特信息需要添加3比特的監(jiān)督位,監(jiān)督位滿足以下規(guī)則:
S1.監(jiān)督位a2作為a6、a5和a4的偶校驗(yàn)碼,即a2^a6^a5^a4= 0;S2.監(jiān)督位a1作為a6、a5和a3的偶校驗(yàn)碼,即a2^a6^a5^a3= 0;S3.監(jiān)督位a0作為a6、a4和a3的偶校驗(yàn)碼,即a2^a6^a4^a3=0.‘^’表示異或運(yùn)算,即模2加運(yùn)算.根據(jù)此規(guī)則就可以在調(diào)制時(shí)加入監(jiān)督位,而在解調(diào)時(shí)加入糾錯(cuò)模塊,S1,S2,S3組成糾錯(cuò)位(S1=a2^a6^a5^a4,S2=a2^a6^a5^a3,S3=a2^a6^a4^a3),可得表2.
對(duì)于該系統(tǒng),最注重的是原始碼元漢明碼編碼、擴(kuò)頻、信道編碼、解碼和糾錯(cuò)碼系統(tǒng).當(dāng)然,由于設(shè)計(jì)仿真需要模擬一些關(guān)于加性干擾,不得不在模擬發(fā)送過程中添加干擾源.加上測(cè)試平臺(tái)的模塊構(gòu)成了整個(gè)系統(tǒng)的通信方式,TestBench平臺(tái)會(huì)把信源和信宿進(jìn)行比對(duì),輸出傳輸?shù)慕Y(jié)果,并且打印到屏幕上供查看.整個(gè)系統(tǒng)的拓?fù)浣Y(jié)構(gòu)如圖2所示.
表2 漢明碼(7,4)誤碼位置Tab.2 Hamming code(7,4)error position
其中,發(fā)送端和接收端是可綜合的.加入了隨機(jī)噪聲,由噪聲發(fā)生器產(chǎn)生,模擬了信道傳輸過程中的干擾,是行為模塊不可綜合.加法器表示加性干擾.各個(gè)模塊的代碼對(duì)應(yīng)如表3所示.
圖2 整個(gè)系統(tǒng)的拓?fù)浣Y(jié)構(gòu)Fig.2 The topology of thewholesystem
3.1 TestBench模塊
TestBench模塊是系統(tǒng)測(cè)試平臺(tái),是測(cè)試系統(tǒng)的頂層模塊,為發(fā)送端提供信源,并為接收端提供解調(diào)的信宿,通過比較信源和信宿的數(shù)據(jù)可以得到系統(tǒng)的工作情況.Master模塊生成測(cè)試用隨機(jī)字節(jié),每4比特作為一組,所以每一個(gè)8比特字節(jié)拆分成2個(gè)4比特發(fā)送到Coder模塊中(隨機(jī)數(shù)的產(chǎn)生采用系統(tǒng)函數(shù)Random產(chǎn)生).而數(shù)據(jù)的存儲(chǔ)位置有兩個(gè),一個(gè)是輸出存儲(chǔ)到文件中,另一個(gè)是存儲(chǔ)到Memory中.存儲(chǔ)到文件中是為了提供仿真后數(shù)據(jù)的查看,而存放Memory中為了數(shù)據(jù)的發(fā)送和之后數(shù)據(jù)的比對(duì).
TestBench模塊除了提供系統(tǒng)通信的信源、信宿,也為各模塊提供時(shí)鐘、復(fù)位信號(hào)等所有激勵(lì)信號(hào).該模塊對(duì)系統(tǒng)的仿真非常重要,因?yàn)樗脑O(shè)計(jì)關(guān)系到系統(tǒng)仿真的完整性,它例化發(fā)送端Coder模塊、加噪聲Add_noise模塊、接收端Decode_correct模塊連接起了整個(gè)系統(tǒng).
3.2 coder模塊
模塊coder為原始數(shù)據(jù)的接收、對(duì)數(shù)據(jù)的漢明碼編碼、擴(kuò)頻和信道編碼等操作,是可綜合模塊.模塊的通信時(shí)序如下:1)接收到TestBench原始數(shù)據(jù)之前,先發(fā)送一個(gè)同步頭“1111_1111_110”,用于給接收端捕捉同步頭;2)每發(fā)送512個(gè)字節(jié)原始數(shù)據(jù)前,發(fā)送數(shù)據(jù)0000作為數(shù)據(jù)幀同步,用于檢測(cè)發(fā)送和接收兩端數(shù)據(jù)發(fā)送是否同步;3)對(duì)原始數(shù)據(jù)進(jìn)行漢明碼編碼,監(jiān)督位為3位,全部放到數(shù)據(jù)位后;4)對(duì)編好的信息進(jìn)行擴(kuò)頻調(diào)制,1比特?cái)U(kuò)頻到63比特;5)對(duì)擴(kuò)頻后的信號(hào)進(jìn)行信道編碼,即1用01(+1)、0用11(-1).
擴(kuò)頻通信,原始數(shù)據(jù)的頻率必然比擴(kuò)頻后的頻率小得多,本設(shè)計(jì)的m序列碼是31比特位為一個(gè)周期.所以,原始信息的頻率假設(shè)為f1,則擴(kuò)頻頻率f2=31*f1.因此,該模塊有兩個(gè)時(shí)鐘.
3.3 Add_noise模塊
此模塊是行為模塊,模擬的是實(shí)際傳輸過程.該模塊代碼的作用是產(chǎn)生干擾,這里所說的干擾為加性干擾,只要把無干擾數(shù)據(jù)01(+1)和11(1)分別加上范圍在2,+2的隨機(jī)數(shù),也就是將前一個(gè)coder模塊產(chǎn)生的m序列串讀入之后加入帶符號(hào)的2倍噪聲(noise<=$random%3產(chǎn)2~+2的隨機(jī)數(shù)),這樣所得到的就是加入噪聲的接收端信號(hào).加干擾后,+1將會(huì)變成01±[2,+2]=[1,+3],-1將會(huì)變成11±[2,+2]= [3,+1].由于輸入數(shù)據(jù)為2個(gè)比特,必須擴(kuò)展到3比特后加減法才是需要的.
3.4 Decode_correct模塊
此模塊是可綜合接收端的頂層模塊,例化下面兩個(gè)模塊的作用.
3.4.1 Decoder模塊
Decoder是解擴(kuò)模塊,包括查找同步頭、數(shù)據(jù)同步、解擴(kuò).同步頭{1111_1111_110}如圖3所示sum向上鋸齒為1向?yàn)?,數(shù)據(jù)幀同步{0000_000}.必須接收到同步頭,且同步同步頭后和接收數(shù)據(jù)幀同步.之后才對(duì)數(shù)據(jù)解擴(kuò)6.
發(fā)送模塊和接收模塊有時(shí)間差,但可以確認(rèn)的是,必須先接收,后再發(fā)送.發(fā)送端采用固定的m序列碼作為擴(kuò)頻偽隨機(jī)碼,這樣做的利處就是接收端只要采用一樣的m序列作為解擴(kuò)碼.由于偽隨機(jī)序列具有很強(qiáng)的相關(guān)性.只要有1個(gè)時(shí)鐘錯(cuò)誤,解擴(kuò)結(jié)果相差會(huì)相當(dāng)?shù)拇螅揽克倪@個(gè)特性,可以把發(fā)送數(shù)據(jù)解擴(kuò).
表3 模塊與代碼文件對(duì)應(yīng)關(guān)系Tab.3 M odulesand code file
由于在模塊Add_noise中添加了干擾,發(fā)送數(shù)據(jù)會(huì)有一定的誤差,所以,解擴(kuò)過程需使用累加的方法進(jìn)行.而累加的閥值固定在62,由于累加過程會(huì)有減法運(yùn)算,所以計(jì)算初值均為100(圖3中的sum信號(hào)).3.4.2 Correct模塊
模塊Correct將對(duì)解擴(kuò)后的信息就行檢錯(cuò)和糾錯(cuò).檢錯(cuò)過程就相當(dāng)于漢明碼編碼的逆過程.先計(jì)算出糾錯(cuò)位S1、S2、S3然后對(duì)應(yīng)表2,找出出錯(cuò)碼元位置,并將其糾正,這樣做可以有效的提高系統(tǒng)的抗干擾性能.
前仿真(即行為級(jí)仿真)是理想的沒有時(shí)延電路仿真,直接用Modelsim下加入各個(gè)程序編譯仿真即可.后仿真(時(shí)序仿真)是通過編譯工具加入了模擬的時(shí)序延遲信息與現(xiàn)實(shí)電路高度相似的電路仿真,這里在A ltera公司的QuartusII 11.0平臺(tái)下選用EP2S15F484C4芯片對(duì)可綜合的發(fā)送端coder模塊和接收端的decode_ correct、correct、decode3個(gè)模塊,分別進(jìn)行分析綜合、布局布線等操作生成網(wǎng)表coder.vo和decode_correct.vo文件,然后再在Modelsim仿真軟件下添加兩個(gè).vo文件、TestBench.v和add_noise.v進(jìn)行編譯仿真,注意這里在Modelsim做后仿時(shí)需要加上相關(guān)的庫(kù).用modelsim進(jìn)行前、后仿真,后仿真結(jié)果對(duì)應(yīng)的波形如圖4所示,圖中indatabyte為十六進(jìn)制8比特的數(shù)據(jù)經(jīng)并串轉(zhuǎn)換輸入系統(tǒng),outputbyte為系統(tǒng)解調(diào)輸出的串行數(shù)據(jù)經(jīng)串并轉(zhuǎn)換得到的8比特十六進(jìn)制數(shù).部分打印結(jié)果如圖5所示.仿真結(jié)果表明系統(tǒng)實(shí)現(xiàn)了擴(kuò)頻調(diào)制和解調(diào),有較強(qiáng)的抗干擾能力.
圖3 同步頭波形Fig.3 synchronization headw aveform
圖4 仿真波形圖Fig.4 Simulationwaveform diagram
本設(shè)計(jì)實(shí)現(xiàn)了一種基于m序列的擴(kuò)頻通信系統(tǒng),并且使用漢明碼增加了糾錯(cuò)功能,增強(qiáng)了系統(tǒng)的抗干擾性能.使用Verilog HDL描述了硬件系統(tǒng),在A ltera公司的Quartus II11.0開發(fā)平臺(tái)完成分析綜合.為了測(cè)試系統(tǒng),搭建了測(cè)試平臺(tái),加入隨機(jī)加性噪聲,在Modelsim 10.1a軟件下對(duì)其分別進(jìn)行前仿真、后仿真.仿真結(jié)果表明實(shí)現(xiàn)了擴(kuò)頻調(diào)制和解調(diào),系統(tǒng)有較強(qiáng)的抗干擾、抗噪聲能力,并且體現(xiàn)了FPGA硬件處理數(shù)據(jù)的速度優(yōu)勢(shì).
圖5 打印結(jié)果Fig.5 Print result
[1]趙威威,余先倫,吳玉成.直序擴(kuò)頻通信系統(tǒng)的研究與SystemView仿真[J].現(xiàn)代電子技術(shù),2008(13):64-67.
[2]Om ran H,Sharaf K,Ibrahim M.Anall-digitaldirectdigitalsynthesizer fully implementedon FPGA[C]//Designand TestWorkshop(IDT),2009 4th International,2009.
[3]趙剛.?dāng)U頻通信系統(tǒng)實(shí)用仿真技術(shù)[M].北京:國(guó)防工業(yè)出版社,2009.
[4]高磊,陳志強(qiáng),吳黎慧,等.基于FPGA的m序列發(fā)生器的設(shè)計(jì)[J].電子測(cè)試,2011(8):45-47.
[5]張波濤,韓焱,李劍,等.基于FPGA的擴(kuò)頻發(fā)射系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制.2011,19(8):2026-2028.
[6]王光,田斌,吳勉,等.直接序列擴(kuò)頻通信中m序列的同步方案及其FPGA實(shí)現(xiàn)[J].電子科技,2006,(3):25-29.
[7]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2011.
[責(zé)任編輯 代俊秋]
Design and implementation of spread spectrum communication based on FPGA
ZHANG Yue1,ZHOU Jian-wei1,SHIQiao-shuo2,YANG Lu2,GAO Zheng-bin1
(1.InstituteofM icroelectronicsHebeiUniversity of Technology,HebeiUniversity of Technology,Tianjin 300130,China;2.School ofComputer Science and Engineering,HebeiUniversity of Technology,Tianjin 300401,China)
Generally,theanti-jamm ing,anti-interferenceand the data processing speed is required tow irelesscommunication.This paper proposed the solution of achieving the spread spectrum communication,the communication is based on m sequenceby FPGA hardware system.Thehardw are system is described by Verilog HDL,analysed and synthesized by theQuartus II11.0 ofA ltera.To test thesystem,a TestBench isbuiltand random additivenoise isadded to the TestBench. Pre-simulation and post-simulation are taken by M odelsim 10.1a.The simulation results show that the spread spectrum modulation and demodulation have come true,this system has strong ability of anti-jamm ing and anti-interference,and the speed advantage of processing data by FPGA hardware is reflected.
FPGA;spread spectrum communication;verilog HDL;pseudo-random sequence
N 945.13
A
1007-2373(2014)04-0022-04
2013-10-23
河北省科技計(jì)劃項(xiàng)目(12210322)
張?jiān)拢?987-),男(漢族),碩士生.通訊作者:周建偉(1965-),男(漢族),教授.