摘 要: 為了達(dá)到波束控制高效、低成本和小型化的目標(biāo)。在此介紹一種基于FPGA的相控陣?yán)走_(dá)波束控制系統(tǒng)硬件平臺及其軟件設(shè)計。系統(tǒng)采用FPGA作為波束控制算法實現(xiàn)的核心,選用單片機(jī)實現(xiàn)陣面組件驅(qū)動部分的控制調(diào)試,在此硬件平臺上,開發(fā)一種用硬件描述語言和單片機(jī)匯編語言與VB語言設(shè)計相結(jié)合實現(xiàn)的波束控制系統(tǒng)。設(shè)計的系統(tǒng)設(shè)備量少,控制和調(diào)試功能完善,適宜于推廣到集中式運(yùn)算、分布式驅(qū)動的波束控制體系。
關(guān)鍵詞:雷達(dá)波束控制; FPGA; 單片機(jī); 陣面阻件驅(qū)動
中圖分類號:TP3681文獻(xiàn)標(biāo)識碼:A
文章編號:1004-373X(2010)08-0186-03
Software Design of Beam Control System of Phased Array Radar Based on FPGA
CHANG Hui-ling,MA Li,ZHANG Jian
(Nanjing Research Institute of Electronics Technology, Nanjing 210013, China)
Abstract: The software design and hardware platform of the beam control system of a phased array radar based on FPGA is presented. In this system,F(xiàn)PGA is adopted to realize the core algorithm and single chip microcomputer (SCM) is used as the control and adjustment device of array module driving assembly. A hardware descriptive language and SCM assemble language are combined with VisualBasic language to realize the beam control system on the hardware platform.The rusposes of high efficiency,lower cost and miniaturization were achieved by the design. A few fixtures perfect control and debugging function of the system, make it suitable for introducting it into other beam control systems that have the structures of focal calculation and distributed drivers.
Key words:beam control of radar; FPGA; SCM; array module driving
0 引 言
波束控制系統(tǒng)的基本功能是給天線陣列中各個移相器提供所需要的控制信號。除此基本功能外,現(xiàn)代雷達(dá)還要求波束控制系統(tǒng)高速高效、低成本、小型化,并具有波束控制分系統(tǒng)的自檢;根據(jù)工作頻率,進(jìn)行初相位在線補(bǔ)償;天線相位碼隨機(jī)饋相等功能。同時,在設(shè)計生產(chǎn)過程中,為了配合其他系統(tǒng)的檢測,還需要在雷達(dá)的不同工作模式下完善調(diào)試功能。另外,在雷達(dá)的長期使用過程中,要求單個組件維修時,波束控制組件驅(qū)動板能在脫機(jī)狀態(tài)下正常工作[1-3]。
這里展開介紹一種有源相控陣?yán)走_(dá)波束控制系統(tǒng)的硬件平臺及軟件設(shè)計。
1 系統(tǒng)原理
為降低電路成本和增加系統(tǒng)可靠性,該系統(tǒng)采用設(shè)備量少、維修方便、可靠性高的集中式運(yùn)算、分布式驅(qū)動體系。也就是,波束控制算法用一塊電路板(稱之為運(yùn)算板)實現(xiàn)。
對工作方式,運(yùn)算板接收來自雷達(dá)控制臺的控制指令(包括主天線的方位和俯仰增量代碼、工作頻率、工作模式代碼等),進(jìn)行波束控相位碼的計算、傳輸、分配與格式重排。運(yùn)算板把處理后的串行波束控制碼通過驅(qū)動器發(fā)往陣面的波束控制組件驅(qū)動板。在波束控制組件驅(qū)動板內(nèi)再進(jìn)行譯碼、驅(qū)動,然后送給組件單元作為控制碼,從而實現(xiàn)波束控制系統(tǒng)的功能。波束控制系統(tǒng)的組成如圖1所示。
圖1 波束控制系統(tǒng)組成框圖
2 系統(tǒng)硬件平臺
該相控陣?yán)走_(dá)系統(tǒng)要求波束控制系統(tǒng)準(zhǔn)確可靠地控制512個天線單元,波束轉(zhuǎn)換時間不大于1 ms。在此分析運(yùn)算板需要哪些關(guān)鍵器件。運(yùn)算板要在500 μs內(nèi)完成從雷達(dá)控制臺接收指令、波束控制算法及運(yùn)算結(jié)果傳輸?shù)墓δ埽仨氝x用FPGA器件。參與運(yùn)算的補(bǔ)償數(shù)據(jù)是運(yùn)算的主要對象之一,要能夠?qū)崟r參與波束控制算法的運(yùn)算過程,也可以被雷達(dá)控制臺在線更新,這就需要運(yùn)算板具有存儲器。系統(tǒng)采用自定義總線接收雷達(dá)控制指令和上報陣面返回的信息。
關(guān)于驅(qū)動板的硬件設(shè)計,不僅要實現(xiàn)驅(qū)動、譯碼、系統(tǒng)自檢等功能,還要考慮組件在單獨(dú)調(diào)試時驅(qū)動板的控制功能是否可以方便實現(xiàn)。由于設(shè)備數(shù)量較大,在滿足功能的基礎(chǔ)上,要盡可能降低設(shè)備成本?;谶@些需求,選用一片單片機(jī)和一片EPLD。圖1中虛線左側(cè)部分所示運(yùn)算板硬件組成。其中,雷達(dá)控制臺發(fā)送的是波束控制指令、接收的是陣面自檢和檢測信息;傳輸模塊產(chǎn)生和發(fā)送串行波束控制碼、傳送所需要的時鐘、定時信號。
圖1中虛線右側(cè)部分所示組件驅(qū)動板的硬件組成。其中接口電路接收波束控制運(yùn)算板發(fā)來的串行波束控制碼;組件單元接收的是TTL電平的控制碼(包括發(fā)射移相碼、接收移相碼、衰減碼、T/R開關(guān)控制碼)。EPLD完成譯碼和控制分發(fā)代碼,SCU完成聯(lián)機(jī)自檢和脫機(jī)控制調(diào)試的功能??刂坪驼{(diào)試方式比其他[4-6]提供的系統(tǒng)設(shè)計方法,更加多樣化和靈活。
3 軟件設(shè)計
3.1 運(yùn)算板FPGA程序設(shè)計
波控運(yùn)算板基本用途就是為滿足陣面天線單元控制的需要。在此,整個天線陣面等分成四個子陣面。每個子陣面包括a×b個天線單元,如圖2所示。
圖2 陣面天線分布圖
天線分時實現(xiàn)全孔徑SAR模式和子孔徑GMTI模式兩種工作模式。雷達(dá)對空探測或者在SAR工作方式時,利用天線全陣面,形成一個波束進(jìn)行發(fā)射和接收,陣面的物理中心就是陣面天線單元的坐標(biāo)原點(diǎn);GMTI工作方式時,全陣面形成一個發(fā)射波束,而接收時則在方位上等分四個子陣面,形成四個接收波束,此時形成四個坐標(biāo)系:每個子陣面的物理中心就是每個陣面天線單元的坐標(biāo)原點(diǎn)。
根據(jù)天線單元此分布特點(diǎn)的控制需求,這里選用兩片F(xiàn)PGA,傳輸采用四路差分串行碼(兩路數(shù)據(jù)碼、一路地址碼、一路8 MHz時鐘碼),就可完成陣面天線單元對波束控制的要求。FPGA內(nèi)部程序的邏輯功能框圖如圖3所示。其中的串口核、SRAM、FIFO全是調(diào)用FPGA內(nèi)部的資源。串口核的功能是在波束控制運(yùn)算板單機(jī)調(diào)試和雷達(dá)近場測試時,接收來自調(diào)試計算機(jī)的控制指令。SRAM用于當(dāng)雷達(dá)工作在陣面監(jiān)測方式時,存儲來自雷達(dá)控制計算機(jī)的控制碼;FIFO用于存儲運(yùn)算器計算的結(jié)果(運(yùn)算板單板調(diào)試時用)或組件驅(qū)動板自檢結(jié)果,此結(jié)果可以通過串口返回調(diào)試計算機(jī),以此來判斷FPGA計算的中間結(jié)果或者送出的最終結(jié)果是否正確和判斷組件單元及相應(yīng)的信號通路是否良好。運(yùn)算、傳輸時鐘產(chǎn)生和運(yùn)算結(jié)果傳送、讀/寫FLASH都在運(yùn)算器中,做在同一個狀態(tài)機(jī)里。波控運(yùn)算狀態(tài)機(jī)如圖4所示。
圖3 運(yùn)算板FPGA內(nèi)部邏輯框圖
圖4 波控運(yùn)算狀態(tài)機(jī)
圖4中:S1為運(yùn)算使能控制和狀態(tài)轉(zhuǎn)換條件控制及變量初始化;S2完成波束控制算法和按照格式排布計算結(jié)果;S3產(chǎn)生被傳送數(shù)據(jù)的地址和時鐘及將并行的計算結(jié)果轉(zhuǎn)為串行;S4對FLASH進(jìn)行寫操作;S5對FLASH進(jìn)行讀操作;S6對SRAM進(jìn)行寫操作;S7先對SRAM讀操作,然后按照預(yù)定格式拼位,以便跳入S3狀態(tài)將SRAM中的數(shù)據(jù)傳出。S1中狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換條件即為譯碼得到的來自雷達(dá)控制臺的控制指令。狀態(tài)機(jī)將根據(jù)不同的控制指令進(jìn)入相應(yīng)的狀態(tài)處理程序段。
其中的S2狀態(tài)機(jī)實現(xiàn)的陣面第(m,n)個組件的移相值運(yùn)算[1]如下:
ψ(λ,m,n)=(2m+1)α(λ,θ,φ)+(2n+1)β(λ,θ,φ)+
ψ0m,n(λ)+ψ(m,n,t)+Δψ
式中:m為行坐標(biāo)值;n為列坐標(biāo)值。當(dāng)雷達(dá)工作在SAR方式和GMTI的發(fā)射方式時m=-2a,-2a+1,…,-1,0,1,…,2a-2,2a-1;n=-b/2,-b/2+1,…,-1,0,1,…,b/2-2,b/2-1。對GMTI的接收方式,m=-a/2,-a/2+1,…,-1,0,1,…,a/2-2,a/2-1;n=-b/2,-b/2+1,…,-1,0,1,…b/2-2,b/2-1。ψ0m,n (λ)為初始相位值;α,β為雷達(dá)控制計算機(jī)根據(jù)波束指向角而發(fā)送的方位遞增量和俯仰遞增量;φ(m,n,t)為相位誤差修正量;Δψ為單位相移量,用于隨機(jī)饋相。等式右端的ψ0m,n,ψ,Δψ預(yù)存在片外的FLASH中,F(xiàn)PGA通過對FLASH的讀操作將對應(yīng)地址空間的數(shù)據(jù)存入相應(yīng)寄存器,在狀態(tài)機(jī)的控制下參與移相值的計算。
在FPGA中,此算式的實現(xiàn)采用Verilog硬件描述語言[7]編程,控制變量做加法循環(huán)即可實現(xiàn)該算法。對隨機(jī)饋相的運(yùn)算[8],是將按單元排列方式所對應(yīng)的、預(yù)先存在FLASH中的一組隨機(jī)數(shù)δi,j(其存儲位數(shù)不小于4位),和波束控制系統(tǒng)計算的移相器量化相移值結(jié)尾相位Δi,j做比較,如果Δi,j大于δi,j,則移相器量化相移值加單位相移量Δψ后送給移相器,否則直接將移相器量化相移值送給移相器。
3.2 運(yùn)算板調(diào)試的控制程序設(shè)計
運(yùn)算板的初期調(diào)試和驗證對于整個產(chǎn)品的實現(xiàn)至關(guān)重要,此階段直接決定了產(chǎn)品實現(xiàn)的可行性和進(jìn)度。在此選用VisualBasic 6.0開發(fā)設(shè)計程序,基于Windows的VB提供了一個MSCOMM 32.OCX串行通信控件,用串口電平轉(zhuǎn)換器接上兩對差分信號線,就可以實現(xiàn)與運(yùn)算板FPGA異步串行口的通信。所設(shè)計的控制程序可以模擬產(chǎn)生雷達(dá)控制臺的控制指令和定時器的定時信號、實現(xiàn)對SRAM和FLASH信息的寫入和讀出,完成對FPGA運(yùn)算結(jié)果的回送數(shù)據(jù)校驗。
根據(jù)需要,所設(shè)計的程序分為八個模塊,分別為串口通信控制、雷達(dá)控制指令產(chǎn)生、定時信息產(chǎn)生、對FLASH的各種操作控制、補(bǔ)償數(shù)據(jù)文件的寫入/讀出操作、理論運(yùn)算結(jié)果顯示、FPGA運(yùn)算結(jié)果回送顯示、自檢方式所需要的控制等。
3.3 驅(qū)動板的程序設(shè)計
該驅(qū)動板程序設(shè)計的關(guān)鍵點(diǎn)和特點(diǎn)在于單片機(jī)[9]和EPLD的程序既能夠聯(lián)機(jī)工作,又能夠獨(dú)立地控制組件,實現(xiàn)組件的單機(jī)調(diào)試功能,即裝機(jī)和測試用同一個程序。
驅(qū)動板的單片機(jī)串口接收來外來的控制指令,判斷波束控制系統(tǒng)是處在哪種工作狀態(tài)。如果是聯(lián)機(jī)工作,則SCU接收聯(lián)機(jī)自檢指令,讀入組件地址、開關(guān)狀態(tài)、發(fā)射和接收移相碼、衰減控制碼,并將這些控制碼存在指定的寄存器內(nèi),等待通道狀態(tài)讀取指令到達(dá)后,將它們回送到運(yùn)算板,在所設(shè)計的控制界面內(nèi)可以顯示,從而得知波束控制系統(tǒng)整個子系統(tǒng)的運(yùn)行工作情況。如果是模擬子系統(tǒng)控制指令,打開與EPLD之間的通信控制開關(guān),將來自串口的控制指令,經(jīng)處理發(fā)給EPLD。
EPLD也要判斷收到的指令來自單片機(jī)還是雷達(dá)系統(tǒng),如果是單片機(jī),則接收來自調(diào)試計算機(jī)的指令;否則,直接接收來自雷達(dá)系統(tǒng)的控制指令。單片機(jī)的程序設(shè)計主要分為四部分:程序初始化、串口接收中斷服務(wù)子程序、串口發(fā)送中斷子程序和串口回送數(shù)據(jù)子程序。后兩者子程序設(shè)計流程示意如圖5所示。其中,指令字包含的信息分別為開關(guān)狀態(tài)碼、陣面回數(shù)信息、陣面回數(shù)狀態(tài)、陣面自檢信息、移相值和衰減值。
圖5 子程序設(shè)計流程圖
這里仍然選用VB編寫調(diào)試控制程序,用來模擬產(chǎn)生來自運(yùn)算板的控制信號,實現(xiàn)對驅(qū)動板的調(diào)試控制。編寫的調(diào)試控制程序分為五個模塊:控制方式選擇、移相角度選擇、衰減值選擇、定時信息選擇、控制碼發(fā)送和發(fā)送數(shù)據(jù)校對信息顯示。
4 結(jié) 論
該FPGA程序設(shè)計既可滿足天線對波束控制0.5 ms內(nèi)完成運(yùn)算和傳輸數(shù)據(jù)的時間要求,又滿足波束控制分系統(tǒng)在線自檢;根據(jù)工作頻率,進(jìn)行初相位在線補(bǔ)償;天線相位碼隨機(jī)饋相的功能需求。其調(diào)試控制程序,不僅滿足單板調(diào)試、補(bǔ)償文件寫入或者讀出操作的需要,還用于雷達(dá)天線暗室測試的控制。同樣,單片機(jī)和EPLD的程序設(shè)計,滿足天線組件對波束控制系統(tǒng)裝機(jī)和測試用同一個程序的要求。調(diào)試過程中,兩者都有友好的控制界面可操作。
5 結(jié) 語
該波束控制軟件設(shè)計系統(tǒng)是實用型的系統(tǒng),所設(shè)計的硬件及相應(yīng)的程序已得到成功應(yīng)用,并已推廣到其他的三個產(chǎn)品。雷達(dá)天線系統(tǒng)和總體設(shè)計師給予了很好的評價。如將該程序設(shè)計稍加改動(其軟件模塊的增減工作量不會太大),可以很容易地移植到其他類似結(jié)構(gòu)體系的雷達(dá)波控分系統(tǒng)軟件設(shè)計中,應(yīng)用前景將非常廣泛。
參考文獻(xiàn)
[1]張光義. 相控陣?yán)走_(dá)系統(tǒng)\\. 北京:國防工業(yè)出版社, 1994.
[2]鄭清. 相控陣?yán)走_(dá)波控系統(tǒng)技術(shù)研究\\. 現(xiàn)代雷達(dá), 2006, 28(4): 53-55.
[3]林桂道. 現(xiàn)代相控陣系統(tǒng)的波束控制設(shè)計分析\\. 艦船科學(xué)技術(shù), 2007, 29(3): 74-78.
[4]田可, 楊向華. 一種高速波控系統(tǒng)的設(shè)計\\. 現(xiàn)代電子技術(shù), 2008, 31(9): 105-107.
[5]田可, 周繼. 基于FPGA的波控系統(tǒng)設(shè)計與實現(xiàn)\\. 應(yīng)用技術(shù), 2008, 35(3): 1-3.
[6]彭為, 陶軍, 尤正建. 基于FPGA的相控陣?yán)走_(dá)波控系統(tǒng)設(shè)計\\. 現(xiàn)代雷達(dá), 2007, 29(9): 45-47.
[7]\\ CILETTI D. Advanced digital design with the Verilog HDL\\. 北京:電子工業(yè)出版社, 2005.
[8]張光義. 相控陣?yán)走_(dá)技術(shù)\\. 北京:電子工業(yè)出版社, 2006.
[9]王幸之. AT89系列單片機(jī)原理與接口技術(shù)\\. 北京:北京航空航天大學(xué)出版社, 2004.