摘 要: 研究了在直接序列擴頻通信中基于FPGA的基帶PN碼(擴頻碼)的捕獲跟蹤技術(shù)。在PN碼解調(diào)中,,介紹了串并混合的捕獲方案和基于遲早門的跟蹤方案,。以Quartus II作為平臺采用Verilog HDL的硬件描述語言進(jìn)行設(shè)計,并進(jìn)行了Modelsim的仿真測試,,最終下載到具體FPGA器件進(jìn)行了基帶的傳輸測試,。
關(guān)鍵詞: FPGA;PN碼,;捕獲,;跟蹤;Modelsim
在擴頻通信中直接序列擴頻方式是常用的擴頻方式之一,。關(guān)于對傳輸速率要求較高的擴頻通信來說,,碼元的快速捕獲和良好的跟蹤性能就顯得至關(guān)重要[1]。而FPGA芯片由于其出色的數(shù)據(jù)高速處理能力,、保密性好,、開發(fā)方便靈活、開發(fā)工具智能化等特點在現(xiàn)代數(shù)字通信中得到越來越廣的應(yīng)用,。在基帶擴頻碼解調(diào)中PN碼的捕獲和跟蹤是原始信號能否正確解擴的關(guān)鍵,,擴頻碼的捕獲一般有串行捕獲、并行捕獲和匹配濾波器捕獲方式,。匹配濾波器的方式由于受到碼元周期的限制,,隨著m序列周期的增加匹配濾波器的復(fù)雜度將會急劇增加。串行捕獲方式雖然實現(xiàn)簡單但耗費時間,,而并行捕獲方式雖然捕獲時間短但耗費硬件資源,。所以本文結(jié)合串行捕獲方式和并行捕獲方式各自的優(yōu)點,采用串并混合的捕獲方式,。而碼元跟蹤采用的是“遲早門”的跟蹤方式,。
1 直接序列擴頻解調(diào)輸出
1.1 直接序列擴頻解調(diào)框圖
直接序列擴頻解調(diào)模塊為直擴系統(tǒng)的重點也是難點,本次設(shè)計PN碼基帶解擴包括4個主要模塊:本地m序列發(fā)生器,、PN碼捕獲模塊,、PN碼跟蹤模塊和解調(diào)輸出模塊[2]。其解調(diào)功能框圖如圖1所示,。
本次設(shè)計采用的m序列為15位m序列,,并且特征多項式為y=x15+x+1,m序列的主要性質(zhì)有:n級m序列具有周期性,,周期p=2n-1,;在m序列一個周期中“1”和“0”的數(shù)目基本相等(嚴(yán)格說1的總個數(shù)比0多一個);m序列具有很好的自相關(guān)性,。
由于兩個相同m序列稍有相位差相關(guān)性就會急劇下降[3],,所以可以利用m序列很好的自相關(guān)性和均衡性對其進(jìn)行解調(diào),。
1.2 PN碼捕獲模塊
在PN碼捕獲模塊中本地m序列發(fā)生器產(chǎn)生的15路PN碼分別送入捕獲模塊的15路通道,每個通道中首先進(jìn)行PN碼和接收信號的相關(guān)運算,。
(1)相關(guān)器
在數(shù)字信號中相關(guān)器由乘法器和積分器共同組成,,乘法器完成本地PN碼和接收信號的乘法運算,當(dāng)本地PN碼和接收信號同為高電平時輸出“1”,,當(dāng)其中之一為低電平時即為“0”,。
積分器的作用是對乘法器輸出的“1”做累加。采用系統(tǒng)時鐘sys_clk(50 MHz)對積分器進(jìn)行控制,。為了時序的可控性,,定義一個計數(shù)器counter,counter用于記錄本地PN碼輸出個數(shù),,PN碼每輸出一個,,counter加1,計滿一個周期清零,。
(2)判決器
15路判決器分別對本路積分器輸出數(shù)據(jù)進(jìn)行判決,在積分器清零前進(jìn)行相關(guān)性判決,,在一個周期(32 767)碼元內(nèi)進(jìn)行4次判決,,這樣就節(jié)省了捕獲時間和運算量。如果積分值大于預(yù)設(shè)值,,則認(rèn)為此路與接收信號相關(guān)性最好,,完成捕獲。
(3)15路捕獲判決并時鐘調(diào)整
本模塊完成信號的最終捕獲,,需要15路捕獲判決器,、分頻計數(shù)器和本地時鐘的協(xié)同配合。15路捕獲判決器主要用于判斷哪一路與接收信號最相關(guān),,完成了捕獲,。為了便于接下來的信號的跟蹤,要求最終接收信號要與第0路相關(guān)性最大,。如果捕獲判決器檢測到非第0路的其他路信道捕獲到信號,,將會控制分頻計數(shù)器的計數(shù),從而控制時鐘的頻率,。如果15路捕獲判決器檢測到第0路捕獲到信號,,則cnt0=0;如果檢測到第1路捕獲到信號,,則cnt0=1,;依此類推,如果第14路捕獲到信號,,則cnt0=14,;如果沒有檢測到某一路相關(guān),,則cnt0=15[4]。分頻計數(shù)器將根據(jù)送出的cnt0的值調(diào)整計數(shù)方式,,從而調(diào)整時鐘頻率,。如圖2所示,第一次判決第4路與接收信號相關(guān),,分頻計數(shù)器調(diào)整本地時鐘,,在下次判決時cmp0為高電平完成捕獲。
圖2中,,sys_clk為全局時鐘,;clk為本地PN碼發(fā)生器時鐘;cmp0~cmp5為積分判決器輸出,;cnt0為15路捕獲判決器輸出,。
1.3 PN碼跟蹤模塊
在完成PN碼捕獲后,系統(tǒng)進(jìn)入跟蹤狀態(tài),,在跟蹤模塊中采用的是“遲早門”[5]位同步法,。關(guān)于“遲早門”的原理如圖3所示,采用8倍于碼元信號的速率對信號進(jìn)行跟蹤采樣,。每個采樣脈沖出現(xiàn)時,,“接收信號”與“本地滯后信號”、“本地超前信號”分別進(jìn)行相乘,。以一個碼元來說明,,如圖3中的兩條實線之間,在此碼元期間進(jìn)行乘加操作后,,如果碼元接收信號與本地時鐘同步,,則乘加后超前和滯后兩路信號的值應(yīng)該都為4。但如果接收信號滯后本地時鐘(如圖3虛線所示),,則在一個碼元周期后,,本地滯后信號的累加值為5,而超前信號的累加值為2,。這樣在經(jīng)過一定的碼元周期后進(jìn)行超前通道和滯后通道的累加值判斷,,如果滯后信號通道累加值大于超前通道累加值,則接收信號滯后本地時鐘,;反之,,則接收信號超前本地時鐘。PN碼的跟蹤就是采用上面的同步方法,,在本地時鐘的控制下分別采用第0路和第1路作為本地滯后信號behind_clk和本地超前信號ahead_clk,。
分頻器計數(shù)器根據(jù)接收到的ahead_clk、behind_clk信號狀態(tài)調(diào)整本地時鐘頻率。當(dāng)behind_clk為“1”時,,說明本地時鐘頻率太快,,cnt1不再累加計數(shù);當(dāng)ahead_clk為“1”時,,說明本地時鐘頻率太慢,,cnt1快速計數(shù);當(dāng)behind_clk和ahead_clk都為“0”時,,說明本地時鐘與接收信號同步,,cnt1正常計數(shù)[6]。
如圖4的捕獲跟蹤全局圖所示,,由上到下,,sys_clk為系統(tǒng)時鐘;clk為本地時鐘,;rev_data為接收信號,;m_seril0、m_seril1為本地15路相干PN碼中的第0路和第1路,;add_out0,、add_out1為15路積分累加器中的第0路和第1路累加器;add_out15為超前路累加器,;add_out16為滯后路累加器,;ahead_clk為判決點超前標(biāo)志信號;behind_clk為判決點滯后標(biāo)志信號,;m_behind為滯后信號;m_ahead為超前信號,;cmp0~cmp4為第0路到第4路積分判決器輸出,,cnt0為15路判決器輸出。在cmp0輸出為高電平后系統(tǒng)完成捕獲,,進(jìn)入跟蹤模塊,,在超前滯后時鐘的控制下對本地信號進(jìn)行微調(diào)從而實時對輸入信號進(jìn)行跟蹤。在系統(tǒng)進(jìn)入跟蹤后,,還會一直監(jiān)視系統(tǒng)是否有大的波動導(dǎo)致失跟蹤,,一旦失跟蹤,就重新進(jìn)入捕獲模塊,。如果捕獲完成就進(jìn)入解調(diào)模塊,,本地同步PN碼與接收信號異或即可完成解調(diào)。
2 下載測試
最后將0~F共16個數(shù)據(jù)從一端循環(huán)發(fā)送至另一終端接收,,并數(shù)碼管顯示,。
首先將16個數(shù)據(jù)以自定義幀數(shù)據(jù)格式進(jìn)行傳輸,一幀數(shù)據(jù)為10位:1位幀頭位,,8位數(shù)據(jù)位,,1位幀尾,。每幀數(shù)據(jù)發(fā)送時間間隔為1.442 56 ms,碼元周期為15 680 ns(碼元傳輸速率為Rs=63.775 kb/s),。然后在系統(tǒng)時鐘的控制下,,用PN碼進(jìn)行調(diào)制,PN碼傳輸速率RPN=3.125 Mb/s,,信號的調(diào)制就是PN碼和信號碼元相異或,,接收端在碼元嚴(yán)格同步情況下用相同PN碼與接收信號異或,即可得到原始信號,。圖5為信號解調(diào)的Modelsim仿真圖,。
sys_clk為系統(tǒng)時鐘,rev_data為接收信號,,m_seril0為第0路本地相干信號,,data為解調(diào)后信號,send_data為發(fā)送的原始信號,。
將經(jīng)過Verilog HDL編寫的調(diào)制和解調(diào)代碼經(jīng)過編譯,、布局布線、引腳分配后分別下載至兩個終端電路板器件,,并進(jìn)行兩個終端間數(shù)據(jù)傳輸,,結(jié)果正確工作穩(wěn)定。
參考文獻(xiàn)
[1] 郭黎利,,李北明,,竇崢.擴頻通信系統(tǒng)的FPGA設(shè)計[M]. 北京:國防工業(yè)出版社,2013.
[2] 李振宇.基于FPGA的擴頻信號發(fā)生器的研究與設(shè)計[D]. 哈爾濱:哈爾濱工程大學(xué),,2007.
[3] 樊昌信,,曹麗娜.通信原理[M].北京:國防工業(yè)出版社,2007.
[4] 宮二玲,,王躍科,,楊俊.直序擴頻通信中碼元同步的快速捕獲[J].通信學(xué)報,2003,,24(11):34-39.
[5] 瞿俊杰.基于模糊控制的遲早門同步器及其FPGA實現(xiàn)[J]. 電子技術(shù)應(yīng)用,,2003,29(8):37-38.
[6] 楊迪.直接擴頻接收機的碼捕獲與跟蹤技術(shù)研究[D].昆明:昆明理工大學(xué),,2007.