[TOC]
问题描述
现场出现的相关问题有:
- 终端对时不稳定,表现为终端对时完成发送波形会直接出现比较大的相角差;
- 终端守时不稳定,表现为终端发送波形时会在较短时间内跑偏大相角差;
实验环境描述
- 终端三台,编号为103、107和110;
- 主机一台,为现场所使用主机;
- 实验场地为温箱实验室,用于模拟现场环境;
- 使用仪器:功率分析仪、时间同步校验仪
实验方案
将三台终端置于温箱内,引出信号输出线与pps输出线。三台终端下入FPGA的监控程序,并将调试口引出用于观测状态。实验时用主机发送50V的信号,然后将温箱温度设置为45度进行加温。
实验现象观察
终端时钟部分
三台终端下入FPGA程序,三台终端用逻辑分析仪看到的参数为:
终端 | 常规计数值 | 边界计数值 | 计数周期 |
---|---|---|---|
110 | 999999020 | 999999040 | 1 |
103 | 999999380 | 999999400 | 3 |
107 | 999999320 | 999999300 | 4 |
这个为正常的计数值。用时间同步校验仪观测pps信号也是稳定行良好。
加热温箱一段时间后,用功率分析仪发现输出信号的相角出现偏差,然后用时间同步校验仪观测发现是103终端的pps出现问题,用逻辑分析以查看FPGA的晶振参数发现参数是变成了1000020016|1000048859|3
。这就是造成相角偏差的原因了。
根据系统的设计,晶振的修正参数只是在液晶的参数校正页面修改的,这个时候进入103终端的这个页面,发现晶振修正参数是正常的,这个时候再看Signal Tap的监测页发现参数已经恢复到正常值1000020016|1000048859|3
了。
继续实验,到出现问题的时候一看还是103的问题,出现的错乱参数还是1000020016|1000048859|3
。
继续实验,这次出现问题的终端是107,出现错乱参数依旧是1000020016|1000048859|3
。
根据这个现象可以初步认定是DSP的bug导致预期外的写操作,然后修改了晶振参数。
此时用逻辑分析仪去抓取DSP的写触发,在103终端上抓取了记录:
值得注意的是这次并没有用温箱加温。
这里可以对比在参数修改页面的时序记录:
其他部分
实验中110出现了另外的现象,就是加温时加到将近45度的时候Ua的输出会变为0,然后拿出来冷却一段时间,输出又会恢复。
现象总结与分析
通过实验现象与记录,可以认定是DSP程序出现了bug,晶振参数的改变就是引起现场使用时两个问题的原因。
实验现象不常出现,需要仔细排查。从截图看应该是一个有规律性的操作,目前可以预测应该是外部总线操作XINTF方面的问题。
可用的一个备选解决方案是强化一下晶振参数修改的接口,制造一个软件锁来防止误操作。