某型雷达自检错误问题分析与改进 桑龙 袁有宏摘 要:针对某型雷达在仿真试验过程中雷达供电检查完成后,雷达向综控机发送自检错误码,自检码显示为处理机异常的问题,提出将FPGA中接口模块产生的模式切换信号更改为3个时钟周期,保证FPGA正确获取模式切换信号,对自检错误标志进行清零操作,保证一次自检错误后再次接收到自检指令可以正常进行自检理论分析与试验结果证明针对出现的问题故障定位准确,故障机理清晰,所提措施有效Key:综控机;自检报故;故障定位;机理分析: TN95 :A1、问题现象某型雷达在仿真试验过程中出现自检错误问题,雷达供电检查完成后向综控机发送供电正常码,接收到综控机的自检指令后,雷达首先向综控机反馈自检过程码,20ms后,雷达自向综控机发送自检错误码,自检码显示为处理机异常2、问题分析雷达自检主要是检查处理机各芯片之间的数据传输是否正常,数据传输过程为:FPGA发送数据给DSP2,DSP发送数据给DSP1和DSP3,DSP1发送数据给DSP3和DSP0, DSP3发送数据给DSP0,数据流如图2:如图1所示,雷达接收到综控机的自检指令后,DSP0通过总线向FPGA写入寄存器值来设置模式参数。
DSP0通过向模式使能寄存器写入0来停止FPGA工作,通过向模式使能寄存器写入1来使能FPGA工作DSP0通过向模式切换寄存器写入任意值使得FPGA获取模式切换标志,FPGA获取该标志后向DSP1/DSP2/DSP3发送模式切换中断,并通过FLAG将当前模式号发送给DSP1/DSP2/DSP3,DSP1/DSP2/DSP3在模式切换中断服务程序中将模式切换标志置为1,从而使DSP1/DSP2/DSP3进入相应的模式处理流程为确定自检错误问题的故障原因,在程序中添加测试语句如下:若帧号校验错误,则DSP2向DSP1/DSP3发送固定数据全为100,若自检数据校验错误,则DSP2向DSP1/DSP3发送固定数据全为800DSP1和DSP3中自检错误存在两种可能:接收的数据为自检异常数据(全100或全800)或自检数据校验错误DSP0中通过添加闪灯程序来判断出现的错误,若DSP2帧号校验错误则写亮灯2,若DSP2自检数据校验错误或DSP1自检数据校验错误则写亮灯1,若DSP2自检数据校验错误或DSP3自检数据错误则写亮灯3,若正常则写亮所有灯通过多次故障复现,亮灯情况均为灯2亮针对雷达上电自检错误问题故障原因分析如下:(1)由于出现故障时,未出现灯1亮或灯3亮,因此DSP0自检流程正常。
2)由于出现故障时,亮灯情况均为灯2亮,因此说明DSP0接收到的数据均为100,说明DSP0接收到的自检固定数据与DSP1/DSP3发送的自检固定数据一致3)由于出现故障时,未出现灯1亮,或灯3亮,因此DSP1和DSP3的自检流程正常4)由于出现故障时,亮灯情况均为灯2亮,因此说明DSP0接收到的数据均为100,即DSP1/DSP3发送给DSP0的数据均为100,根据测试程序可知,此时DSP2发送给DSP1/DSP3的数据为100,因此说明DSP1/DSP3接收到的自检固定数据与DSP2发送的自检固定数据一致5)由于出现故障时,未出现灯1亮或灯3亮,因此DSP2自检流程正常6)由于出现故障时,均为灯2亮,因此说明DSP2中帧号校验错误为进一步验证DSP2帧号错误的原因,我们通过在DSP2中添加测试程序将DSP2接收到的当前重频的自检数据、当前重频的接收帧号和发送帧号、上一个重频的接收帧号和发送帧号等数据写入FLASH,出现故障后DSP程序读取FLASH中的自检数据读取FLASH数据后发现此时当前重频的DSP2接收帧号为17,FPGA发送帧号为1,上一个重频的DSP2接收帧号为16,FPGA发送帧号为16。
多次故障复现后读取数据均出现上一个重频的接收帧号和发送帧号相等,当前重频的接收帧号和发送帧号错误,并且发送帧号均为1A)故障出现时,DSP2当前重频接收帧号为17,而上一个重频的接收帧号为16,说明DSP2接收帧号正常B)故障出现时,FPGA发送帧号均为1,说明FPGA发送帧号错误FPGA发送帧号错误存在两种可能:DSP0设置模式参数时,FPGA未接收到模式切换信号或自检模式参数设置错误为进一步定位故障原因,在DSP0設置自检模式参数时,对每个寄存器进行读写校验,若连续10次读写校验错误则使DSP0进入死循环多次故障复现时,DSP0均为进入死循环,因此DSP0自检模式参数设置正常因此,故障出现时,FPGA未接收到模式切换信号FPGA中参与帧号控制的模块有接口模块和时序控制模块,接口模块使用内时钟工作,而时序控制模块使用外时钟工作接口模块负责接收DSP0的模式使能信号和模式切换信号,模式切换信号有效则FPGA向DSP2发送模式切换中断从而使得DSP2清零接收帧号,模式使能信号由0变为1则FPGA清零发送帧号通过复查FPGA程序,发现模式切换信号是由接口模块接收到DSP0的模式切换信息后产生,由时序控制模块读取该信号,读取成功则向DSP2发送模式切换中断。
而由于内时钟和外时钟之间的相位差是随机的,当内时钟和外时钟存在半个时钟附近的相位差时,序控制模块无法正确读取模式切换信号,因此FPGA未向DSP2发送模式切换中断,因此DSP2的接收帧号未清零,而FPGA在接收到模式使能信号后将发送帧号清零,从而导致DSP2帧号校验错误7)出现故障后DSP程序读取FLASH中的自检数据,发现固定数据均正常,因此DSP2接收到的自检固定数据与FPGA发送的自检固定数据一致因此,雷达自检错误故障原因为FPGA中接口模块使用内时钟产生的模式切换信号,当外时钟与内时钟存在半个时钟周期左右的相位差时,时序产生模块采样模式切换信号无效,从而FPGA和DSP2帧号不一致导致DSP2帧号校验错误而出现自检错误在复现故障时,我们发现,一旦上电自检错误,之后多次自检操作均出现自检错误通过复查程序,发现DSP2中自检错误标志在上电初始化清零后,未再对该变量进行清零因此一旦DSP2出现自检错误,则将该标志置为1根据DSP2自检流程可知,如果DSP2自检标志未清零,则一旦出现自检错误后该标志始终未1,必然导致雷达多次自检时DSP2发送给DSP1和DSP3的数据为自检错误数据,从而出现多次自检均错误的问题。
处理机中只有DSP使用板上晶振提供的内时钟(48M),FPGA则使用频综器提供的外时钟(48M)接口模块只是负责FPGA与DSP0的通讯,不直接参与时序控制和信号处理,因此该更改不影响处理机与频综器之间的同步关系,不会影响信号的相参性雷达供电检查完成时,DSP0向FPGA写入自检模式后进入待机流程,此时FPGA和DSP1/DSP2/DSP3均进入自检流程雷达接收到综控机的自检指令后,DSP0设置自检模式参数,FPGA接口模块读取模式切换寄存器后,产生有效时间为1个时钟周期的模式切换信号,然后由时序产生模块读取模式切换信号后将模式切换中断发送给DSP1/DSP2/DSP3由于内时钟和外时钟存在随机相位差,当相位差为半个时钟周期附近时会导致无法正确读取模式切换标志,如图2所示:由于上电后48MHz内时钟和48MHz外时钟之间相位关系不确定,如果为48MHz外时钟1与48MHz内时钟之间的相位关系(相位差为半个时钟周期),则外时钟上升沿采样模式切换信号无效(低电平),不能产生DSP中断,导致无法产生DSP模式切换中断;如果为48MHz外时钟2与48MHz内时钟之间的相位关系(不存在相位差),则外时钟上升沿采样模式切换信号有效(高电平),可以正常产生DSP模式切换中断。
当内时钟和外时钟存在半个时钟附近的相位差时,时序控制模块无法正确读取模式切换信号,因此FPGA未向DSP2发送模式切换中断,因此DSP2的接收帧号未清零,而FPGA在接收到模式使能信号后将发送帧号清零,从而导致DSP2帧号校验错误因此,雷达自检错误故障是由于FPGA中接口模块使用内时钟产生的模式切换信号较短(1个时钟周期),当外时钟与内时钟存在半个时钟周期左右的相位差时,时序产生模块采样模式切换信号无效,从而FPGA和DSP2帧号不一致导致DSP2帧号校验错误而出现自检错误3解决措施1)由于时序产生模块关系到处理机与频综器的同步关系,因此该模块必须使用外时钟,采取措施:将FPGA中接口模块产生的模式切换信号更改为3个时钟周期如图3所示:更改后可以保证FPGA正确获取模式切换信号,从而保证DSP正确获取模式切换中断2)雷达自检错误是由于DSP2中自检错误标志未清零采取措施:对DSP2中自检错误标志进行清零操作更改后可以保证一次自检错误后再次接收到自检指令可以正常进行自检4 更改验证情况对雷达进行更改后,在仿真实验室对雷达上电后自检测试,6000余次未出现故障,自检错误问题得以解决5 结论该型号雷达出现的自检错误问题,是由于FPGA中接口模块产生的模式切换信号较短,当外时钟与内时钟存在半个时钟周期左右的相位差时,时序产生模块采样模式切换信号无效,FPGA与DSP2帧号不一致所致。
通过将FPGA中接口模块产生的切换信号更改为3个时钟周期,并对自检错误标志进行清零操作后,再次对雷达进行试验验证,自检均正常,验证了更改的正确性 -全文完-。