直接擴(kuò)頻通信同步系統(tǒng)的FPGA設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:對(duì)直接擴(kuò)頻通信同步系統(tǒng)進(jìn)行了研究,使用PN碼作為擴(kuò)頻序列,利用其良好的自相關(guān)性,提出一種新式的滑動(dòng)相關(guān)法使收發(fā)端同步,并給出該系統(tǒng)的FPGA實(shí)現(xiàn)方法。利用ISE 10.1開發(fā)軟件仿真驗(yàn)證,證明此方法可以提高運(yùn)算速度,減少捕獲時(shí)間。
關(guān)鍵詞:擴(kuò)頻通信;滑動(dòng)相關(guān);FPGA
0 引言
擴(kuò)頻通信系統(tǒng)具有容量大、抗干擾能力強(qiáng)、保密性好等優(yōu)點(diǎn)。但是如果收發(fā)兩端PN碼的頻率和相位不同步,解擴(kuò)后的數(shù)據(jù)只是一片噪聲。擴(kuò)頻通信系統(tǒng)的關(guān)鍵技術(shù)之一PN碼同步包含捕獲和跟蹤兩個(gè)過程,本文只對(duì)捕獲過程做重點(diǎn)研究。
最簡(jiǎn)單的串行捕獲方法是滑動(dòng)相關(guān)法,本文在原有方法上加以改進(jìn),使得捕獲的速度更快,實(shí)時(shí)性更強(qiáng)。
1 滑動(dòng)相關(guān)的基本原理
滑動(dòng)相關(guān)法是利用PN碼良好的相關(guān)特性,在接收端與發(fā)送端相位不對(duì)齊時(shí)相關(guān)值很小,而當(dāng)它們相位對(duì)齊時(shí)做相關(guān)運(yùn)算會(huì)輸出一個(gè)很大的峰值。
如圖1所示,接收信號(hào)與本地產(chǎn)生的PN碼做相關(guān)運(yùn)算,如果計(jì)算結(jié)果小于預(yù)設(shè)門限值,則門限鑒別器會(huì)控制PN碼移位控制時(shí)鐘,在此時(shí)鐘驅(qū)動(dòng)下,碼產(chǎn)生器產(chǎn)生的偽隨機(jī)序列移動(dòng)一個(gè)相位繼續(xù)和接收信號(hào)做相關(guān)運(yùn)算。直到計(jì)算結(jié)果大于某一門限值時(shí),表示完成對(duì)接收信號(hào)的捕獲,門限鑒別器就不再控制PN碼移位,而給跟蹤單元使能信號(hào),讓跟蹤單元開始工作。
這種方法最大的優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,但是如果接收信號(hào)和本地PN碼不對(duì)齊,需要不斷對(duì)本地碼移位并重新計(jì)算判決,速度慢,實(shí)時(shí)性不好,本文對(duì)滑動(dòng)相關(guān)法進(jìn)行改進(jìn),系統(tǒng)性能提高明顯。
2 改進(jìn)滑動(dòng)相關(guān)法的FPGA實(shí)現(xiàn)
改進(jìn)滑動(dòng)相關(guān)捕獲法的FPGA實(shí)現(xiàn)包括以下模塊:信號(hào)存儲(chǔ)模塊、PN碼存儲(chǔ)模塊、乘法器模塊、積分器模塊和門限鑒別模塊。原理框圖如圖2所示。
采樣得到的接收信號(hào)存于信號(hào)存儲(chǔ)器中,本地PN碼不再由PN碼產(chǎn)生器生成,而是事先存于FPGA內(nèi)部的存儲(chǔ)器中。相關(guān)運(yùn)算時(shí)不滑動(dòng)本地PN碼,直接由存儲(chǔ)器中讀取,每采樣一次滑動(dòng)一次接收端存儲(chǔ)單元數(shù)據(jù),通過后續(xù)單元并行計(jì)算并完成一次相關(guān)判決,這樣可以提高運(yùn)算速度,發(fā)端發(fā)完一組完整PN碼就可以完成信號(hào)的捕獲。算法每個(gè)單元具體實(shí)現(xiàn)過程將在下文具體闡述。[!--empirenews.page--]
2.1 信號(hào)存儲(chǔ)器
信號(hào)存儲(chǔ)單元由一個(gè)雙口RAM構(gòu)成,在采樣時(shí)鐘驅(qū)動(dòng)下,接收信號(hào)按地址順序存于RAM中。RAM的讀取時(shí)鐘是做乘法的計(jì)算時(shí)鐘,在采樣速率不是很快時(shí),計(jì)算時(shí)鐘可以是采樣時(shí)鐘的數(shù)十倍,可以達(dá)到上百兆,而讀取數(shù)據(jù)寬度也可以擴(kuò)展為接收數(shù)據(jù)寬度的整數(shù)倍,一次讀取多個(gè)接收數(shù)據(jù)參與運(yùn)算,這樣串行運(yùn)算變?yōu)椴⑿羞\(yùn)算,極大提高了處理速度。如圖3所示,接收到的數(shù)據(jù)按從地址0到地址7的順序存儲(chǔ),讀取數(shù)據(jù)寬度是接收信號(hào)的4倍,那么每存儲(chǔ)4個(gè)數(shù)據(jù)后讀取地址滑動(dòng)一次,一次并行讀取4個(gè)數(shù)據(jù)和本地PN碼做乘法。
如果PN碼周期是127,讀取寬度為40,那么4個(gè)計(jì)算時(shí)鐘就可以完成乘法計(jì)算,但是讀取寬度太寬會(huì)增加FPGA內(nèi)部邏輯單元的使用量,需要在資源和速率方面做權(quán)衡。
2.2 PN碼存儲(chǔ)器
在傳統(tǒng)的滑動(dòng)相關(guān)法中,PN碼如果選取m序列可由FPGA做反饋移位產(chǎn)生,順序讀取,這樣會(huì)影響運(yùn)算效率。本文將PN碼由Matlab工具軟件生成,然后按一定格式存儲(chǔ)于FPGA內(nèi)部存儲(chǔ)器,可選取ROM存儲(chǔ),讀取寬度和信號(hào)存儲(chǔ)器的讀取寬度相同。PN碼存儲(chǔ)器不滑動(dòng),每次都按地址遞增順序讀取數(shù)據(jù),操作和信號(hào)存儲(chǔ)器類似,不再贅述。
2.3 乘法器和積分器
這兩個(gè)模塊主要是實(shí)現(xiàn)接收數(shù)據(jù)和本地PN碼進(jìn)行相關(guān)累加功能。接收到的數(shù)據(jù)首先和本地碼相乘,然后將相乘結(jié)果累加完成積分功能。
乘法并不需要FPGA器件內(nèi)部的硬件乘法器,如果PN碼為1則將接收數(shù)據(jù)取正號(hào),PN碼為0則將接收數(shù)據(jù)取負(fù)號(hào)。每個(gè)乘法器時(shí)鐘完成一個(gè)讀取地址中一組數(shù)據(jù)的乘操作,乘完將一組相乘結(jié)果求和后輸入到積分器進(jìn)行每一組數(shù)據(jù)的累加。如果每組參與乘加的數(shù)據(jù)很多,一個(gè)時(shí)鐘不能完成加法運(yùn)算可以采用流水線方法優(yōu)化算法。
積分器累加的次數(shù)由PN碼長度和每次參與乘法運(yùn)算的數(shù)據(jù)個(gè)數(shù)有關(guān)(即讀取數(shù)據(jù)的寬度),數(shù)據(jù)個(gè)數(shù)越多需要累加的次數(shù)越少。累加結(jié)束后將計(jì)算結(jié)果輸入到門限鑒別器做后續(xù)判決,同時(shí)積分器清零。
2.4 門限鑒別器
門限鑒別器的功能是對(duì)判決積分器的計(jì)算結(jié)果進(jìn)行最大值檢測(cè)。檢測(cè)值超過門限預(yù)設(shè)值,則給跟蹤單元使能信號(hào),啟動(dòng)跟蹤功能,否則不作任何操作。
門限值的設(shè)定需要通過Matlab工具軟件仿真得出。m序列有很好的相關(guān)特性,當(dāng)接收信號(hào)與本地碼同步時(shí)積分器會(huì)輸出一個(gè)明顯高于不同步時(shí)的峰值,在實(shí)際應(yīng)用的場(chǎng)合由于噪聲大小不同峰值也不是固定值,要根據(jù)情況進(jìn)行仿真設(shè)定一個(gè)比較適合的數(shù)值。數(shù)值過大會(huì)出現(xiàn)漏警現(xiàn)象,即已經(jīng)同步但受噪聲影響積分器輸出值小于門限值而使系統(tǒng)無法正常工作。數(shù)值過小會(huì)導(dǎo)致不同步時(shí)啟動(dòng)跟蹤單元。一般多次仿真,并把門限值設(shè)置稍大有利于系統(tǒng)正常運(yùn)行。
3 FPGA仿真結(jié)果與分析
本系統(tǒng)設(shè)計(jì)時(shí)選取的是Xilinx公司Virtex系列的XC4VSX35芯片,該芯片含有34560個(gè)邏輯單元,可用I/O腳448個(gè),192個(gè)18×18 Xtreme DSP,18kb Block RAM 192個(gè),最高工作頻率500M。以Xillnx公司的ISE 10.1開發(fā)軟件為平臺(tái),運(yùn)用Verlog語言作為輸入,并編譯、仿真、下載驗(yàn)證了同步捕獲系統(tǒng)。圖4為系統(tǒng)仿真圖,clk_1是數(shù)據(jù)采樣時(shí)鐘,每次時(shí)鐘上升沿接收數(shù)據(jù)由data_in輸入,clk_2為計(jì)算時(shí)鐘,每次采樣一個(gè)數(shù)據(jù)后4個(gè)計(jì)算時(shí)鐘相關(guān)值由he輸出,由圖可以看出并行相關(guān)運(yùn)算速度很快。本系統(tǒng)的門限值設(shè)置為125,如圖he值沒有超過門限值則下一個(gè)時(shí)鐘清零,如果系統(tǒng)捕獲成功he超過門限則輸入給跟蹤單元的使能信號(hào)enable保持一個(gè)周期的高電平,從而啟動(dòng)跟蹤單元工作。
4 結(jié)論
本文提出的改進(jìn)滑動(dòng)相關(guān)算法運(yùn)算速度快,捕獲時(shí)間短,實(shí)現(xiàn)起來比較簡(jiǎn)單。利用FPGA設(shè)計(jì)并實(shí)現(xiàn)了算法,仿真結(jié)果滿足系統(tǒng)要求,該方法成功應(yīng)用在擴(kuò)頻通信解擴(kuò)端,使用效果良好。