



硬件电子产品的故障排查(下文简称“故障排查”)需要切实可行的,至少是能够执行的方法。故障排查的过程中,一线的指挥员和战斗员需要“炸碉堡”的方法。请注意,在战术执行层面,“我只要结果”等于“我没有办法”。
务实地讲,战术执行层面需要“有方法”,而且最好是简单易行的方法。工程实战推崇“大道至简”。“舍其易者而不行,究其难者以为学”——求奇、求繁而生拉硬拽的方法,应予以摒弃。
常规情况下,当系统或单板出现硬件电路故障时,可以按照如下三步流程进行操作。
(1)检查系统环境和单板外观,这部分包括(并不限于下述内容):单板使用时实际的物理环境、操作方法;单板本体的实际状态,有无明显的物理碰撞、划伤、翘曲、异物附着,焊接情况如何,有无短路烧板等。一个极端的例子:如果电源供电线缆的连接状态都未检查,就贸然开始研究单板故障,这就过于莽撞。
(2)检查单板的约束引脚(Strap Pin)和硬件配置,检查单板或系统设置是否处于目标状态。此时需要参考设计文件或者用户使用手册等,确认使用条件和操作方法的正确性。
(3)如果上述外部环境和使用配置都正常,硬件故障排查一般采用“三板斧”,即对电源、时钟、复位进行检查。
总结一下,排查流程是:先看“ 环境适合使用吗 ”,再查“ 使用方法正确吗 ”,最后采用“ 三板斧 ”。
以上三点是本书阐述的排查硬件故障的核心思路,故障案例的排查、解决过程均从中得以体现。
下面通过一个故障案例,使读者初步了解“三板斧”的流程。
一款早期含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 故障机箱平台及故障状态描述
针对案例1中描述的故障信息,此处插入一段关于系统适配的知识。
电子产品在批量化生产前,一般由各工业协会先确立标准,产业链中的各厂商均在相应的标准下设计、测试、生产产品,确立标准便于产业链细分。例如案例1中所描述的系统,机箱系统平台厂商和外设功能卡厂商就可以实现细分,两者“对话”的接口就是标准。
标准包含的内容可能非常繁杂,并非仅仅一组接口信号定义和一些电气参数指标,有的接口还包括协议、固件配置或用户自定义内容。另外,标准中的一些参数指标包括阈值范围,厂商可根据自身产品情况作出调整。
案例1的背景描述采用了交叉验证的方法,即至少两种机箱系统平台与至少两种外设板卡相互交叉匹配,目的是初步确定哪种设备的兼容性较差或不符合标准规范。
系统设备的适配和兼容问题是普遍存在的,是常规系统集成测试项目之一。
回到案例1所描述的系统适配问题,故障现象整理如下。
(1)距离控制器较近的2、3两个槽,外设板卡均可被识别。
(2)异常板卡在4槽有时能够被识别,有时不能。
(3)异常板卡在5~8槽,无法被识别。
(4)异常板卡更换到其他型号的机箱能够正常工作,本机箱的5~8槽能够识别某些PCI标准板卡。
针对上述故障,下面实践故障排查的一看、二查、三板斧流程。
首先检查外观是否存在磕碰痕迹,初步了解使用者大概在何种环境中进行应用。特别地,这是一台包含CPCI(Compact PCI,紧凑型外设部件互连,一种加固计算机总线标准)连接器的机箱,这种连接器包含很多插针,需要检查针脚的状态,确认是否存在断针、弯针等异常。
再将系统上电,检查设备启动状态和运行情况。尽可能搜集更多信息,同使用者对故障现象进行交流。
在搜集信息的过程中,最重要的原则是客观,这部分内容会在1.2节进行讲解。
此步骤在常规的故障排查流程中是一个可选项。有的案例不允许轻易破坏故障环境,也就是不能轻易更换,则无法进行对比试验。
此案例是应用公司自研硬件产品的系统集成项目,因此采用横向对比试验确认该故障是产品个体的案例(良品率问题),还是整批产品出现适配故障。经过对比发现是该类机箱产品的共性问题。
在故障排查测试中,电源测试非常重要,第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)检查满载板卡时机箱电源的带载能力。
经过测试,电源未见明显的异常状况。这个结果与测试前的分析是一致的,但是,不代表这个测试动作可以用“想”来代替。
时钟是数字电路的核心问题之一,后续会在第2章讲解时钟参数、时钟质量等方面的技术内容,本案例属于系统适配的问题,需要测量控制器和背板的时钟包括,案例中的背板包含PCI标准的33MHz/32b总线,最重要的时钟是控制器槽扇出至各外设槽的33MHz时钟,这个时钟与PCI外设的初始化和通信是直接相关的。另外,系统还包含外设槽的同步时钟等。经初步检查,时钟波形未见异常,在此粗略地进行时钟测量,主要检查是否存在时钟输出,以及时钟是否包含明显的“频率异常”“回沟”等问题,并不涉及时序、抖动和更多的时钟质量测试,上述流程采取“先粗再精”的原则,先对系统进行宏观的排查,初步锁定发生故障的范围后,再进行精细的测量和深入的研究。
在系统启动过程中,背板上PCI的复位信号RST#,经过测量,复位动作正常发送至各个外设槽。
PCI外设的初始化配置是在BIOS(Basic Input Output System,此处是指计算机中负责CPU、内存和外设等初始化,并引导、加载操作系统的功能代码)流程中进行的。初步检查PCI外设在BIOS流程中是否被识别,用来区分硬件设备是在操作系统中出现问题(例如操作系统中的一些外设驱动问题),还是在BIOS流程中已经出现异常。检查发现,异常的PCI外设在BIOS中无法识别。
以上为此案例的初步测试流程。关于此案例的结果以及调测流程,暂不进行详述,后续会在6.1节中予以解读。此处目的是使读者大致了解故障排查流程,即对系统硬件状态进行初步摸底。
针对不同案例,上述步骤或存在调整,基本思路并无太多差异。
“战势不过奇正,奇正之变,不可胜穷也”。基本的流程并不复杂,具体到案例的取舍执行,变化调整又无穷尽。
《大学》曰:“物有本末,事有终始,知所先后,则近道矣”。把握哪些是通用流程,需要在故障排查流程中优先覆盖;哪些是具体问题,需要针对具体场景进行个例分析,个例分析按照怎样的优先级排序,分清主次先后,“则近道矣”。