1.1.2 案例1——PCI系统兼容性问题及“三板斧”的流程
下面通过一个故障案例,使读者初步了解“三板斧”的流程。
1.案例背景
一款早期含PCI总线(Peripheral Component Interconnect Bus,外设部件互连总线,一种计算机总线标准)的机箱产品,背板包含1个控制器槽(插CPU卡,有的机箱定义为0槽,称为“零槽控制器”),7个外设槽(插I/O卡),其中外设槽按照距离控制器物理位置由近及远依次编号为2~8槽。
应用过程中发现一些标准PCI外设功能板卡在4~8槽存在无法识别的情况(同时,在此机箱4~8槽中存在能够被正确识别的PCI外设板卡)。而上述4~8槽中无法识别的异常板卡应用在另一种PCI标准机箱产品的各槽位中,都能够被正常识别。故障机箱平台及故障状态描述见图1.1。
图1.1 故障机箱平台及故障状态描述
2.系统适配
针对案例1中描述的故障信息,此处插入一段关于系统适配的知识。
电子产品在批量化生产前,一般由各工业协会先确立标准,产业链中的各厂商均在相应的标准下设计、测试、生产产品,确立标准便于产业链细分。例如案例1中所描述的系统,机箱系统平台厂商和外设功能卡厂商就可以实现细分,两者“对话”的接口就是标准。
标准包含的内容可能非常繁杂,并非仅仅一组接口信号定义和一些电气参数指标,有的接口还包括协议、固件配置或用户自定义内容。另外,标准中的一些参数指标包括阈值范围,厂商可根据自身产品情况作出调整。
案例1的背景描述采用了交叉验证的方法,即至少两种机箱系统平台与至少两种外设板卡相互交叉匹配,目的是初步确定哪种设备的兼容性较差或不符合标准规范。
系统设备的适配和兼容问题是普遍存在的,是常规系统集成测试项目之一。
回到案例1所描述的系统适配问题,故障现象整理如下。
(1)距离控制器较近的2、3两个槽,外设板卡均可被识别。
(2)异常板卡在4槽有时能够被识别,有时不能。
(3)异常板卡在5~8槽,无法被识别。
(4)异常板卡更换到其他型号的机箱能够正常工作,本机箱的5~8槽能够识别某些PCI标准板卡。
针对上述故障,下面实践故障排查的一看、二查、三板斧流程。
1.外观检查和上电测试
首先检查外观是否存在磕碰痕迹,初步了解使用者大概在何种环境中进行应用。特别地,这是一台包含CPCI(Compact PCI,紧凑型外设部件互连,一种加固计算机总线标准)连接器的机箱,这种连接器包含很多插针,需要检查针脚的状态,确认是否存在断针、弯针等异常。
再将系统上电,检查设备启动状态和运行情况。尽可能搜集更多信息,同使用者对故障现象进行交流。
在搜集信息的过程中,最重要的原则是客观,这部分内容会在1.2节进行讲解。
2.被测设备、适配件进行横向对比试验
此步骤在常规的故障排查流程中是一个可选项。有的案例不允许轻易破坏故障环境,也就是不能轻易更换,则无法进行对比试验。
此案例是应用公司自研硬件产品的系统集成项目,因此采用横向对比试验确认该故障是产品个体的案例(良品率问题),还是整批产品出现适配故障。经过对比发现是该类机箱产品的共性问题。
3.电源
在故障排查测试中,电源测试非常重要,第3章会专门进行论述。
粗略地看,本案例中电源发生故障的可能性不大,主要原因是,通常背板电路主要由电源平面和高速互联线路构成,电源平面的通流很大,不同槽的电源一致性也很好。完整的电源平面使不同槽的电源存在差异的可能性很小(反言之,若某一槽存在故障,将同时影响背板整体电源平面的供电),案例1中,2、3槽的外设是正常运行的,证明电源发生故障的可能性不大。
另外,在硬件设计中,除了满足机箱系统供电的各种标准外,设计指标一般会留有裕度。在此列举一些机箱系统供电规范与实际硬件电路设计的例子,例如PXI-5(PXI,PCI Extensions for Instrumentation,面向仪器系统的PCI扩展)规范中,3槽及以上宽度(标准1槽宽度为20.32mm)的控制器规范中,+12V供电>11A,包含PXI Express外设或混合(Hybird)的I/O外设槽中,+12V供电>2A。依据上述规范的8槽机箱,+12V供电应为
11A(1个控制器槽)+7×2A(7个外设槽)=25A
在背板设计中,硬件设计人员需满足规范的基本约束,包括背板平面的通流参数、连接器及线缆的通流参数、+12V电源输出的额定功率,均需按照不小于25A来设计。另外,为了确保系统稳定可靠(例如高温环境中设备电流会急剧增加),还会保留一定设计余量,这种设计的裕度值没有一定之规,一般会根据系统设计的客观条件及设备应用场景的约束,增加30%~50%作为裕度,但是不会为非必要的余量额外增加设计成本。同时,电子元器件、模块、连接器、线缆可能也在标称参数下留有余量,只能通过实测获得部件组成系统后的极限参数。
上文分析了本案例中由电源引发故障的可能性很低的原因。但是,这并不意味着电源的测量可以省略。
“故用兵之法,无恃其不来,恃吾有以待之;无恃其不攻,恃吾有所不可攻也。”用侥幸心理去设计、测试、故障排查、生产……都会出大问题。
此案例中的电源测试,重点测什么?主要测试在系统启动过程中,插入5~8槽的正常识别板卡和异常板卡的电源参数差异,例如:
(1)静态特性——电压值、纹波差异等。
(2)瞬态特性——初始化过程中(此时负载变化较大),电压的波动等。
(3)详细检查异常槽供电针脚的完整性(是否存在弯针、断针,外观检查时为粗查)。
(4)检查满载板卡时机箱电源的带载能力。
经过测试,电源未见明显的异常状况。这个结果与测试前的分析是一致的,但是,不代表这个测试动作可以用“想”来代替。
4.时钟
时钟是数字电路的核心问题之一,后续会在第2章讲解时钟参数、时钟质量等方面的技术内容,本案例属于系统适配的问题,需要测量控制器和背板的时钟包括,案例中的背板包含PCI标准的33MHz/32b总线,最重要的时钟是控制器槽扇出至各外设槽的33MHz时钟,这个时钟与PCI外设的初始化和通信是直接相关的。另外,系统还包含外设槽的同步时钟等。经初步检查,时钟波形未见异常,在此粗略地进行时钟测量,主要检查是否存在时钟输出,以及时钟是否包含明显的“频率异常”“回沟”等问题,并不涉及时序、抖动和更多的时钟质量测试,上述流程采取“先粗再精”的原则,先对系统进行宏观的排查,初步锁定发生故障的范围后,再进行精细的测量和深入的研究。
5.复位、初始化、软件工作情况
在系统启动过程中,背板上PCI的复位信号RST#,经过测量,复位动作正常发送至各个外设槽。
PCI外设的初始化配置是在BIOS(Basic Input Output System,此处是指计算机中负责CPU、内存和外设等初始化,并引导、加载操作系统的功能代码)流程中进行的。初步检查PCI外设在BIOS流程中是否被识别,用来区分硬件设备是在操作系统中出现问题(例如操作系统中的一些外设驱动问题),还是在BIOS流程中已经出现异常。检查发现,异常的PCI外设在BIOS中无法识别。