桑龍 袁有宏
摘? 要:針對某型雷達在仿真試驗過程中雷達供電檢查完成后,雷達向綜控機發(fā)送自檢錯誤碼,自檢碼顯示為處理機異常的問題,提出將FPGA中接口模塊產生的模式切換信號更改為3個時鐘周期,保證FPGA正確獲取模式切換信號,對自檢錯誤標志進行清零操作,保證一次自檢錯誤后再次接收到自檢指令可以正常進行自檢。理論分析與試驗結果證明針對出現(xiàn)的問題故障定位準確,故障機理清晰,所提措施有效。
關鍵詞:綜控機;自檢報故;故障定位;機理分析
中圖分類號: TN95? ? ? ? 文獻標識碼:A
1、問題現(xiàn)象
某型雷達在仿真試驗過程中出現(xiàn)自檢錯誤問題,雷達供電檢查完成后向綜控機發(fā)送供電正常碼,接收到綜控機的自檢指令后,雷達首先向綜控機反饋自檢過程碼,20ms后,雷達自向綜控機發(fā)送自檢錯誤碼,自檢碼顯示為處理機異常。
2、問題分析
雷達自檢主要是檢查處理機各芯片之間的數(shù)據(jù)傳輸是否正常,數(shù)據(jù)傳輸過程為:FPGA發(fā)送數(shù)據(jù)給DSP2,DSP發(fā)送數(shù)據(jù)給DSP1和DSP3,DSP1發(fā)送數(shù)據(jù)給DSP3和DSP0, DSP3發(fā)送數(shù)據(jù)給DSP0,數(shù)據(jù)流如圖2:
如圖1所示,雷達接收到綜控機的自檢指令后,DSP0通過總線向FPGA寫入寄存器值來設置模式參數(shù)。
DSP0通過向模式使能寄存器寫入0來停止FPGA工作,通過向模式使能寄存器寫入1來使能FPGA工作。DSP0通過向模式切換寄存器寫入任意值使得FPGA獲取模式切換標志,F(xiàn)PGA獲取該標志后向DSP1/DSP2/DSP3發(fā)送模式切換中斷,并通過FLAG將當前模式號發(fā)送給DSP1/DSP2/DSP3,DSP1/DSP2/DSP3在模式切換中斷服務程序中將模式切換標志置為1,從而使DSP1/DSP2/DSP3進入相應的模式處理流程。
為確定自檢錯誤問題的故障原因,在程序中添加測試語句如下:若幀號校驗錯誤,則DSP2向DSP1/DSP3發(fā)送固定數(shù)據(jù)全為100,若自檢數(shù)據(jù)校驗錯誤,則DSP2向DSP1/DSP3發(fā)送固定數(shù)據(jù)全為800。
DSP1和DSP3中自檢錯誤存在兩種可能:接收的數(shù)據(jù)為自檢異常數(shù)據(jù)(全100或全800)或自檢數(shù)據(jù)校驗錯誤。
DSP0中通過添加閃燈程序來判斷出現(xiàn)的錯誤,若DSP2幀號校驗錯誤則寫亮燈2,若DSP2自檢數(shù)據(jù)校驗錯誤或DSP1自檢數(shù)據(jù)校驗錯誤則寫亮燈1,若DSP2自檢數(shù)據(jù)校驗錯誤或DSP3自檢數(shù)據(jù)錯誤則寫亮燈3,若正常則寫亮所有燈。
通過多次故障復現(xiàn),亮燈情況均為燈2亮。
針對雷達上電自檢錯誤問題故障原因分析如下:
(1)由于出現(xiàn)故障時,未出現(xiàn)燈1亮或燈3亮,因此DSP0自檢流程正常。
(2)由于出現(xiàn)故障時,亮燈情況均為燈2亮,因此說明DSP0接收到的數(shù)據(jù)均為100,說明DSP0接收到的自檢固定數(shù)據(jù)與DSP1/DSP3發(fā)送的自檢固定數(shù)據(jù)一致。
(3)由于出現(xiàn)故障時,未出現(xiàn)燈1亮,或燈3亮,因此DSP1和DSP3的自檢流程正常。
(4)由于出現(xiàn)故障時,亮燈情況均為燈2亮,因此說明DSP0接收到的數(shù)據(jù)均為100,即DSP1/DSP3發(fā)送給DSP0的數(shù)據(jù)均為100,根據(jù)測試程序可知,此時DSP2發(fā)送給DSP1/DSP3的數(shù)據(jù)為100,因此說明DSP1/DSP3接收到的自檢固定數(shù)據(jù)與DSP2發(fā)送的自檢固定數(shù)據(jù)一致。
(5)由于出現(xiàn)故障時,未出現(xiàn)燈1亮或燈3亮,因此DSP2自檢流程正常。
(6)由于出現(xiàn)故障時,均為燈2亮,因此說明DSP2中幀號校驗錯誤。為進一步驗證DSP2幀號錯誤的原因,我們通過在DSP2中添加測試程序將DSP2接收到的當前重頻的自檢數(shù)據(jù)、當前重頻的接收幀號和發(fā)送幀號、上一個重頻的接收幀號和發(fā)送幀號等數(shù)據(jù)寫入FLASH,出現(xiàn)故障后DSP程序在線讀取FLASH中的自檢數(shù)據(jù)。
讀取FLASH數(shù)據(jù)后發(fā)現(xiàn)此時當前重頻的DSP2接收幀號為17,F(xiàn)PGA發(fā)送幀號為1,上一個重頻的DSP2接收幀號為16,F(xiàn)PGA發(fā)送幀號為16。多次故障復現(xiàn)后讀取數(shù)據(jù)均出現(xiàn)上一個重頻的接收幀號和發(fā)送幀號相等,當前重頻的接收幀號和發(fā)送幀號錯誤,并且發(fā)送幀號均為1。
A)故障出現(xiàn)時,DSP2當前重頻接收幀號為17,而上一個重頻的接收幀號為16,說明DSP2接收幀號正常。
B)故障出現(xiàn)時,F(xiàn)PGA發(fā)送幀號均為1,說明FPGA發(fā)送幀號錯誤。FPGA發(fā)送幀號錯誤存在兩種可能:DSP0設置模式參數(shù)時,F(xiàn)PGA未接收到模式切換信號或自檢模式參數(shù)設置錯誤。為進一步定位故障原因,在DSP0設置自檢模式參數(shù)時,對每個寄存器進行讀寫校驗,若連續(xù)10次讀寫校驗錯誤則使DSP0進入死循環(huán)。多次故障復現(xiàn)時,DSP0均為進入死循環(huán),因此DSP0自檢模式參數(shù)設置正常。
因此,故障出現(xiàn)時,F(xiàn)PGA未接收到模式切換信號。FPGA中參與幀號控制的模塊有接口模塊和時序控制模塊,接口模塊使用內時鐘工作,而時序控制模塊使用外時鐘工作。接口模塊負責接收DSP0的模式使能信號和模式切換信號,模式切換信號有效則FPGA向DSP2發(fā)送模式切換中斷從而使得DSP2清零接收幀號,模式使能信號由0變?yōu)?則FPGA清零發(fā)送幀號。通過復查FPGA程序,發(fā)現(xiàn)模式切換信號是由接口模塊接收到DSP0的模式切換信息后產生,由時序控制模塊讀取該信號,讀取成功則向DSP2發(fā)送模式切換中斷。而由于內時鐘和外時鐘之間的相位差是隨機的,當內時鐘和外時鐘存在半個時鐘附近的相位差時,序控制模塊無法正確讀取模式切換信號,因此FPGA未向DSP2發(fā)送模式切換中斷,因此DSP2的接收幀號未清零,而FPGA在接收到模式使能信號后將發(fā)送幀號清零,從而導致DSP2幀號校驗錯誤。
(7)出現(xiàn)故障后DSP程序在線讀取FLASH中的自檢數(shù)據(jù),發(fā)現(xiàn)固定數(shù)據(jù)均正常,因此DSP2接收到的自檢固定數(shù)據(jù)與FPGA發(fā)送的自檢固定數(shù)據(jù)一致。
因此,雷達自檢錯誤故障原因為FPGA中接口模塊使用內時鐘產生的模式切換信號,當外時鐘與內時鐘存在半個時鐘周期左右的相位差時,時序產生模塊采樣模式切換信號無效,從而FPGA和DSP2幀號不一致導致DSP2幀號校驗錯誤而出現(xiàn)自檢錯誤。
在復現(xiàn)故障時,我們發(fā)現(xiàn),一旦上電自檢錯誤,之后多次自檢操作均出現(xiàn)自檢錯誤。通過復查程序,發(fā)現(xiàn)DSP2中自檢錯誤標志在上電初始化清零后,未再對該變量進行清零。
因此一旦DSP2出現(xiàn)自檢錯誤,則將該標志置為1。根據(jù)DSP2自檢流程可知,如果DSP2自檢標志未清零,則一旦出現(xiàn)自檢錯誤后該標志始終未1,必然導致雷達多次自檢時DSP2發(fā)送給DSP1和DSP3的數(shù)據(jù)為自檢錯誤數(shù)據(jù),從而出現(xiàn)多次自檢均錯誤的問題。
處理機中只有DSP使用板上晶振提供的內時鐘(48M),F(xiàn)PGA則使用頻綜器提供的外時鐘(48M)。接口模塊只是負責FPGA與DSP0的通訊,不直接參與時序控制和信號處理,因此該更改不影響處理機與頻綜器之間的同步關系,不會影響信號的相參性。
雷達供電檢查完成時,DSP0向FPGA寫入自檢模式后進入待機流程,此時FPGA和DSP1/DSP2/DSP3均進入自檢流程。雷達接收到綜控機的自檢指令后,DSP0設置自檢模式參數(shù),F(xiàn)PGA接口模塊讀取模式切換寄存器后,產生有效時間為1個時鐘周期的模式切換信號,然后由時序產生模塊讀取模式切換信號后將模式切換中斷發(fā)送給DSP1/DSP2/DSP3。
由于內時鐘和外時鐘存在隨機相位差,當相位差為半個時鐘周期附近時會導致無法正確讀取模式切換標志,如圖2所示:
由于上電后48MHz內時鐘和48MHz外時鐘之間相位關系不確定,如果為48MHz外時鐘1與48MHz內時鐘之間的相位關系(相位差為半個時鐘周期),則外時鐘上升沿采樣模式切換信號無效(低電平),不能產生DSP中斷,導致無法產生DSP模式切換中斷;如果為48MHz外時鐘2與48MHz內時鐘之間的相位關系(不存在相位差),則外時鐘上升沿采樣模式切換信號有效(高電平),可以正常產生DSP模式切換中斷。
當內時鐘和外時鐘存在半個時鐘附近的相位差時,時序控制模塊無法正確讀取模式切換信號,因此FPGA未向DSP2發(fā)送模式切換中斷,因此DSP2的接收幀號未清零,而FPGA在接收到模式使能信號后將發(fā)送幀號清零,從而導致DSP2幀號校驗錯誤。
因此,雷達自檢錯誤故障是由于FPGA中接口模塊使用內時鐘產生的模式切換信號較短(1個時鐘周期),當外時鐘與內時鐘存在半個時鐘周期左右的相位差時,時序產生模塊采樣模式切換信號無效,從而FPGA和DSP2幀號不一致導致DSP2幀號校驗錯誤而出現(xiàn)自檢錯誤。
3解決措施
1)由于時序產生模塊關系到處理機與頻綜器的同步關系,因此該模塊必須使用外時鐘,采取措施:將FPGA中接口模塊產生的模式切換信號更改為3個時鐘周期。如圖3所示:
更改后可以保證FPGA正確獲取模式切換信號,從而保證DSP正確獲取模式切換中斷。
2)雷達自檢錯誤是由于DSP2中自檢錯誤標志未清零。采取措施:對DSP2中自檢錯誤標志進行清零操作。更改后可以保證一次自檢錯誤后再次接收到自檢指令可以正常進行自檢。
4 更改驗證情況
對雷達進行更改后,在仿真實驗室對雷達上電后自檢測試,6000余次未出現(xiàn)故障,自檢錯誤問題得以解決。
5 結論
該型號雷達出現(xiàn)的自檢錯誤問題,是由于FPGA中接口模塊產生的模式切換信號較短,當外時鐘與內時鐘存在半個時鐘周期左右的相位差時,時序產生模塊采樣模式切換信號無效,F(xiàn)PGA與DSP2幀號不一致所致。通過將FPGA中接口模塊產生的切換信號更改為3個時鐘周期,并對自檢錯誤標志進行清零操作后,再次對雷達進行試驗驗證,自檢均正常,驗證了更改的正確性。
作者簡介:桑龍(1976-),男,漢族,陜西西安人,碩士,工程師,主要從事裝備監(jiān)造和管理工作。
參考文獻
[1] 林琳.基于FPGA的雷達信號處理板設計與實現(xiàn)[J].現(xiàn)代電子技術,2014,37.
[2] 楚佳樂.FPGA在雷達系統(tǒng)設計中的應用技術研究[D].西安電子科技大學,2014.
[3] 劉佳,唐小明,張財生. 基于FPGA的分布式協(xié)同雷達數(shù)字脈壓系統(tǒng)設計與實現(xiàn)[J]. 自動化與儀器儀表,2017(10).
[4] 謝畢文. 多相編碼信號的脈沖壓縮技術研究[D].南京理工大學, 2015.
[5] 申春泥.雷達FPGA軟件測試技術研究與實現(xiàn)[J].測試技術學報,2019(3).
[6] 張力川,王立,盧建川.基于虛擬儀器與FPGA的多類型信號模擬器設計[J].計算機測量與控制,2019(3).
[7] 王東,吳軍鋒.軟件定義無線電雷達實驗系統(tǒng)設計[J].自動化與儀器儀表,2017(11).
[8] 趙瑞金,張進.雷達數(shù)據(jù)傳輸方式的改進及時效性分析[J].氣象科技,2018(4).
[9] 郭立俊.基于NIOSⅡ軟核的機載雷達任務管理設計[J].火控雷達技術,2018(12).
[10] 李新強,張?zhí)焓妫兑阗e,項衍.基于FPGA的激光雷達回波信號數(shù)據(jù)采集卡設計[J]. 大氣與環(huán)境光學學報,2018(4).