APP下载

基于TSC695F处理器的星载计算机CPU异常复位问题研究

2021-01-07纪丙华柳宜川王志国

计算机测量与控制 2020年12期
关键词:处理器驱动电路

邱 源,纪丙华,沈 奇,柳宜川,王志国

(1.上海航天电子技术研究所,上海 201109;2.智能计算技术重点实验室,上海 201109)

0 引言

宇宙空间充满了等离子体、电离气体和各种能量的带电粒子等多种形态的物质,而且还有各种波长的电磁辐射,所以长期工作于宇宙空间的星载计算机与普通商用计算机不同,比如在处理器选型上,星载计算机多采用了航天专用的CPU芯片,如P1750、TSC695、TSC697、POWERPC等[1-3]。这些芯片内部大多设计了EDAC校验、冗余设计、错误处理、地址保护等高可靠性措施。其中1750系列星载计算机和基于TSC695F系列星载计算机技术已经相对成熟[4-7]。因此星载计算机多采用国产P1750套片和TSC695F处理器完成星上运算,尤其是TSC695F处理器已经作为标准模块被大多卫星所直接采用[8-12]。

TSC695F处理器性能优异、安全可靠,已经被业界广泛认可。然而,实际应用中关于TSC695F处理器驱动能力的研究资料却相对匮乏,因此在工程应用中缺少必要的参考[13-17]。

针对某型卫星星载计算机成品在模拟在轨飞行测试中,基于TSC695F处理器CPU板出现异常复位现象这一问题,展开研究分析,以找到造成CPU板异常复位的原因,提出解决异常复位问题的具体措施,为后续星载计算机单机产品开发提供必要参考[18-19]。

1 系统结构及原理

发生异常复位的星载计算机处理器板用到的器件主要有TSC695F、EEPROM、SRAM、FPGA、1553B总线等。由于该电路板上元器件较多,不宜直接与主控CPU芯片相连,为了提高系统的稳定性,保证CPU运行稳定可靠,电路设计时已经考虑到将芯片的驱动能力进行一定的均衡分布[20-24]。具体电路拓扑结构如图1所示。CPU直接驱动7个芯片,分别是1片32位的SRAM、1片8位的SRAM、4片EEPROM和1片FPGA。其余6片PROM、1片1553B总线和1片隔离驱动芯片通过FPGA间接被CPU控制[25-27]。

图1 CPU板系统框图

核心处理器CPU即是采用的ATMEL公司生产的TSC695F芯片,该芯片是一款32位处理器,芯片内部包含EDAC校验功能,2个异步串口,5个外部输入的中断控制器和1个TAP控制器用于JTAG接口的测试电路操作顺序。同时该芯片还提供直接访问PROM和RAM等内存的控制接口。

2 异常复位现象描述与分析

2.1 异常现象描述

基于TSC695F处理器的星载计算机在卫星总体单位进行接口测试时,按照既定的操作程序,单机正常运行了一段时间后,CPU检测到单机EDAC错误中断,然后对软件执行软复位操作,随即CPU出现异常复位现象。为了故障复现,对星载计算机进行多次重复试验,单机正常工作一段时间后均会发生异常复位现象,并且复位发生前正常工作的时间从4分钟至数小时不等。

为了找到导致星载计算机异常复位的原因,提取CPU软件故障处理入口地址数据进行分析,发现造成错误的原因是硬件问题导致数据装载出错。针对数据装载出错的情况,TSC695器件手册中给出了这类问题的具体说明,如表1所示。

表1 TSC695F器件手册关于数据装载错误故障说明

从表1可知,数据装载错误具体产生的原因有4种可能情况。为了进一步排查错误的具体原因,通过逻辑分析仪对数据时序关系进行捕捉分析,如图2所示。

图2 数据装载错误时序图

由图2可知,MEXCb信号是处理器检测到数据装载出错时的输出标识信号,即低电平表示数据发生错误。可以看到,发生错误的地址信号MHOLDb对应的起始地址为“02001940”。这个地址和TSC695F运用自身故障检测机制检出的错误地址完全一致。

发生错误时的程序代码如下所示:

200192c: 90 04 80 10 add %l2, %l0, %o0

2001930: 95 2a 20 02 sll %o0, 2, %o2

2001934: d2 05 40 0a ld [%l5 + %o2 ], %o1

2001938: d0 06 00 13 ld [ %i0 + %l3 ], %o0

200193c: 80 a2 40 08 cmp %o1, %o0

2001940:22 80 00 06 be,a 2001958

2001944:a0 04 20 01 inc %l0

printf("Error at %9x‘n", (int)sig + (i+k)*4);

2001948:90 15 a2 c0 or %l6, 0x2c0, %o0

200194c:40 00 00 40 call 2001a4c

2001950:92 05 40 0a add %l5, %o2, %o1

通过对比程序的执行代码发现,正确的程序区地址和数据应是:

ADDR = 0X02001940 DATA(15:0) =0X0006;

但从逻辑分析仪看到却是:

ADDR = 0X02001940 DATA(15:0)=0X FF06。

因此可以推测数据装载错误是引起星载计算机异常复位的原因。

为了更准确地说明问题发生的原因,现对测试过程中地址和数据波形进行抓取,部分试验结果如图3~4所示。

图3 正确装载(地址02000691,正确数据应为BF98)

图4 错误装载(地址02000691,错误数据BF10和B198,正确数据应为BF98)

从图3中可以看到,在星载计算机正常工作时,地址变量addr为0691时对应的内存数据data[15:0]是BF98,处理器数据装载正确。当发生异常复位现象时,同一个地址捕捉到的内存数据如图4所示,读取地址变量addr为0691的内存数据,发现该地址内的数据变为BF10,再次故障复现时该地址的数据又变为B198。

通过多次的故障复现,总结出异常复位发生时有3个特点:

1)数据发生错误地址不固定。在多次问题复现试验过程中,在“02001940”、“02000650”、“02000691”地址均发生过数据错误,因此可排除是某个固定地址引起异常复位。

2)发生错误的数据不确定。在多次问题复现试验过程中,发生的错误数据有“EE06”(正确应为“0006”),“FF00”(正确应为“0000”),“BF10”(正确应为“BF98”),“B198” (正确应为“BF98”)等多种数据,因此可确定不是某几个数据线错误造成异常复位。

3)发生错误时4个基片不是全错。在进行多次问题复现试验时,4个八位数据均错的现象从未发生,这就意味着SRAM(32位SRAM是由4个8位的SRAM组成)中并非所有的基片都不可以正常工作,因此CPU对SRAM访问时序没有问题。

综上所述,可以断定CPU数据装载时,数据位的多位误码,导致了“存储器不可纠正的错误(EDAC)”。最终导致CPU软件进入了错误故障模式,而CPU软件对这类错误的处理方式就是让软件重新运行,具体的现象就是星载计算机复位。

2.2 异常复位分析

基于以上分析,CPU直接对SRAM进行访问控制,在对SRAM读访问控制时序完全正确的情况下,SRAM的其中一个基片却输出了错误数据,因此可以推测CPU提供给SRAM读访问控制信号的驱动能力存在问题,为了进一步分析探究异常复位的原因和机理,现对与CPU处理器直接连接即由CPU驱动的芯片数量进行统计分析,统计结果如表2所示,表2给出了由CPU直接驱动的芯片种类与数量。由表2可知,CPU直接驱动7片集成电路芯片,其余8片则通过FPGA间接驱动。

表2 CPU板驱动芯片数量

2.3 驱动能力复算和波形分析

为了进一步探究CPU的驱动能力与负载的匹配性,就需要结合手册分析这些与CPU直接相连的芯片输入电容。因此通过查阅与CPU直接连接的几种芯片的手册,获取到相关芯片电容参数和计算结果如表3所示。由表3可知,CPU负载输入电容值(地址总线)总数为193pF,输入/输出电容值(数据总线)总数为103pF。

表3 CPU负载芯片电容表

现以FPGA的输入/输出电容值(10pF)作为一个芯片的基本单位来估算驱动芯片数量。由于SRAM,EEPROM内部都为多基片封装,内部数据线为8位拼接,所以对于CPU来讲可等效于驱动一个芯片,因此,CPU相当于驱动10.3个FPGA芯片的基本单元,驱动能力可以满足要求。而对于地址线来讲,CPU相当于驱动19.3个FPGA芯片的基本单元,容性负载过大致使驱动能力不足。

在问题复现时用示波器抓到SRAM读操作时的地址线波形,如图5所示。其中C2为nOE信号,表示CPU发起一次读控制操作,该信号为低电平有效;C3和C4分别为CPU给出的地址线A[9]和A[10],可以看出A[9]和A[10]在本次读操作时均发生了地址跳变,但A[9]的地址线爬坡过程相对平缓,而A[10]则出现了一道坎,表明地址线A[10]上的分布电容较大,CPU的驱动电流不足,因而出现地址跳变延时。同时,A[9]和A[10]整个上升过程周期也比较长,大约为20 ns,而nOE信号上升时间则只有大约9 ns。

图5 CPU读操作时地址爬坡图

为了充分验证分析的合理性,同时对CPU板PCB进行了仿真。将PCB参数、分层结构、层厚、层介质参数等交给专业人员进行仿真,并对地址线、数据线进行复核核算。对CPU地址线A[10]的仿真结果如图6所示,地址线在上升和下降过程中均存在非单调变化的特性,这与实测波形基本一致。

图6 CPU地址线A[10]仿真图

与此同时为了验证分析的合理性,拆除EEPROM后对CPU板多次长时间测试,均无异常复位现象发生,表明异常复位问题是由于地址线驱动不足引起的SRAM读操作异常引起的。

3 解决方案及验证

为了解决CPU板驱动能力不足的问题,需要对电路进行修改完善。在不改变处理器对各个负载芯片的控制逻辑条件见下,要使电路能正常工作,则需要找到一种能够在处理器芯片和负载芯片之间充当驱动媒介的芯片。

经过选用元器件的初步筛选,发现规格为B54ACS164245SRH的多用途双向收发器具有双向异步通信、信号缓冲、电压转换以及冷备份电路保护的功能。其电路结构如图7所示, 首先,B54ACS164245SRH芯片的输入输出端都有单独的供电端口,具有输入阻抗高,驱动电流小的优势,并且可通过方向控制端(DIR)和使能控制端(OE)灵活配置芯片信息流方向(信息流从 A 总线向 B 总线发送,或从 B 总线向 A 总线发送)和工作时间。 此外,该规格芯片具备冷备份的功能(Cold spare),当电源输入电压为零时,输入端 buffers 和输出端 buffers处于至少1 M 欧姆的高阻状态,因此B54ACS164245SRH还可作为冷备份保护电路,起到输入输出电气隔离和降低功耗等作用。

图7 B54ACS164245SRH电路结构图

TSC695F处理器的星载计算机CPU板异常复位问题是由CPU处理器驱动能力不足造成的,而规格为B54ACS164245SRH是采用CMOS工艺制作的一种具有16比特可双向传输数据的器件,具有输阻抗高,带负载能力强的优点。因此如果在CPU板和负载EEPROM之间通过使用B54ACS164245SRH间接通信,则就可以解决CPU板直接驱动负载过多,驱动能力不足的问题。

在CPU板和4片负载EEPROM芯片之间通过插入B54ACS164245SRH电路作为总线驱动器,系统电路如图8所示,通过利用B54ACS164245SRH输入阻抗高,带负载能力强的特点,实现CPU处理器驱动能力的扩展的作用,以提高系统的稳定性和可靠性。

图8 增加164245芯片后CPU板系统框图

经测算,修改后CPU驱动地址线相当于驱动8个 FPGA芯片的基本单元,一片164245芯片驱动数据线相当于驱动6.2个FPGA芯片的基本单元,故而可以满足驱动能力的要求。

针对完善后的CPU处理器电路进行多次测试,均未发生异常复位现象。在星在计算机整机联测时,CPU数据收发正常,未再发生数据装载错误的问题。

4 结束语

通过对基于TSC695F处理器的星载计算机CPU板异常复位问题进行研究,发现造成星载计算机单机的处理器板异常复位的问题是所挂负载超过了CPU的驱动能力。因此,为了提升星载计算机的可靠性,必须结合芯片驱动能力限度对电路综合考虑分析,实验证明通过加入16 245芯片可有效拓展CPU驱动能力,所以在一定程度上可以考虑通过加入驱动芯片拓展CPU的驱动能力解决驱动能力不足的问题。

猜你喜欢

处理器驱动电路
数据驱动世界。你得懂它 精读
电路的保护
基于模糊PI控制的驱动防滑仿真系统分析
Dirac Live加持!让好效果来得更容易 ROTEL Rotel RAP-1580MKⅡ AV功放/RSP-1576MKⅡ环绕声处理器/RMB-1585五声道功放
屈宏斌:未来五年,双轮驱动,砥砺前行
“简化法”巧解电路问题
深入实施创新驱动发展战略
巧用立创EDA软件和Altium Designer软件设计电路
巧用求差法判断电路中物理量大小
火线热讯