摘 要: 研究了在直接序列擴(kuò)頻通信中基于FPGA的基帶PN碼(擴(kuò)頻碼)的捕獲跟蹤技術(shù)。在PN碼解調(diào)中,介紹了串并混合的捕獲方案和基于遲早門的跟蹤方案。以Quartus II作為平臺采用Verilog HDL的硬件描述語言進(jìn)行設(shè)計,并進(jìn)行了Modelsim的仿真測試,最終下載到具體FPGA器件進(jìn)行了基帶的傳輸測試。
關(guān)鍵詞: FPGA;PN碼;捕獲;跟蹤;Modelsim
在擴(kuò)頻通信中直接序列擴(kuò)頻方式是常用的擴(kuò)頻方式之一。關(guān)于對傳輸速率要求較高的擴(kuò)頻通信來說,碼元的快速捕獲和良好的跟蹤性能就顯得至關(guān)重要[1]。而FPGA芯片由于其出色的數(shù)據(jù)高速處理能力、保密性好、開發(fā)方便靈活、開發(fā)工具智能化等特點在現(xiàn)代數(shù)字通信中得到越來越廣的應(yīng)用。在基帶擴(kuò)頻碼解調(diào)中PN碼的捕獲和跟蹤是原始信號能否正確解擴(kuò)的關(guān)鍵,擴(kuò)頻碼的捕獲一般有串行捕獲、并行捕獲和匹配濾波器捕獲方式。匹配濾波器的方式由于受到碼元周期的限制,隨著m序列周期的增加匹配濾波器的復(fù)雜度將會急劇增加。串行捕獲方式雖然實現(xiàn)簡單但耗費時間,而并行捕獲方式雖然捕獲時間短但耗費硬件資源。所以本文結(jié)合串行捕獲方式和并行捕獲方式各自的優(yōu)點,采用串并混合的捕獲方式。而碼元跟蹤采用的是“遲早門”的跟蹤方式。
1 直接序列擴(kuò)頻解調(diào)輸出
1.1 直接序列擴(kuò)頻解調(diào)框圖
直接序列擴(kuò)頻解調(diào)模塊為直擴(kuò)系統(tǒng)的重點也是難點,本次設(shè)計PN碼基帶解擴(kuò)包括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] 郭黎利,李北明,竇崢.擴(kuò)頻通信系統(tǒng)的FPGA設(shè)計[M]. 北京:國防工業(yè)出版社,2013.
[2] 李振宇.基于FPGA的擴(kuò)頻信號發(fā)生器的研究與設(shè)計[D]. 哈爾濱:哈爾濱工程大學(xué),2007.
[3] 樊昌信,曹麗娜.通信原理[M].北京:國防工業(yè)出版社,2007.
[4] 宮二玲,王躍科,楊俊.直序擴(kuò)頻通信中碼元同步的快速捕獲[J].通信學(xué)報,2003,24(11):34-39.
[5] 瞿俊杰.基于模糊控制的遲早門同步器及其FPGA實現(xiàn)[J]. 電子技術(shù)應(yīng)用,2003,29(8):37-38.
[6] 楊迪.直接擴(kuò)頻接收機的碼捕獲與跟蹤技術(shù)研究[D].昆明:昆明理工大學(xué),2007.