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