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