打印

板载故障记录原理解析

[复制链接]
1168|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
超级小笨|  楼主 | 2011-2-28 19:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在用户现场或者在实地出现电路板故障的原因有很多种,在故障现场重现故障对开发人员而言,仍然是一个挑战。为帮助排除故障,在出现电路板故障时,应记录并存储所有的电路板环境变量和故障信息,以便日后确认电路板故障的根本原因。本文介绍了一种添加板载故障记录(OBFL)功能来协助重现从现场退回的电路板故障的结构化方法。本文重点强调了OBFL的重要性,通过定义OBFL记录对故障日志数据进行了分类,讨论了持续存储中故障日志的结构,并概括了存储和检索OBFL数据所需要的系统软件支持。 OBFL概念 具有OBFL 功能的电路板经配置后,可以把故障相关数据存储在非易失性存储器中,并可在日后加以检索和显示以用于故障分析。这些故障记录有助于电路板故障的事后检查。 要实现OBFL系统功能,需要同时使用软硬件。在硬件方面,需要:a)确定给出电路板件故障信息的板载OBFL资源(如温度感应器、存储器、中断资源、电路板ID,等等);b)在电路板或者系统出现故障时用以保存故障信息的板载非易失性存储。OBFL软件的作用是在正常的电路板运行以及电路板故障期间配置电路板变量并将其作为OBFL记录存储在非易失性存储中。OBFL软件还应具备一定的智能,能够分析多项出错事件、记录和历史故障记录,以逐步缩小范围的方式确认故障原因。这种分析可以大大减轻故障排查工作,否则将有大量的OBFL记录需要故障分析工程师手动核查。

图1.0 – 具备OBFL 功能的系统架构
图1.0所示的是具备OBF L功能的嵌入式系统分层架构。OBFL层位于应用层和操作系统之间,既可直接访问硬件,也可使用操作系统的API与硬件进行通信。这些由OBFL层提供API由应用层调用,执行三种主要任务: OBFL资源和配置:该子模块提供API,以便从预定义的OBFL资源获取OBFL变量的运行值。应用软件在中断处理程序中调用这些API。另外,当OBFL资源遭遇故障状态,需要记录值的时候,也会调用这些API。资源管理器提供的一个API将由应用软件定期调用,以便从OBFL资源收集OBFL变量。该子模块还提供用于配置OBFL资源的API。 OBFL显示:该子模块提供多个API来检索特定的OBFL数据。这些API访问非易失性存储,检索OBFL记录,并以多种格式提交存储的数据。这些API均链接到应用层的命令行实用工具上,这样在排除故障的时候,故障分析工程师就可以输入命令来查看电路板故障或者系统崩溃前的事件顺序。 OBFL记录保持器:该子模块负责组织由多种基线、事件日志和消息日志记录组成的OBFL记录。根据要求,该记录的每一条都有时间戳。该记录在存储数据的时候以时间为线索。 OBFL记录: 定义板载故障记录(数据)对任何系统来说都是非常重要的,因为这一步决定了哪些参数将被获取并登记到非易失性存储中,以协助后续的故障排查工作。所有的OBFL记录都有时间戳,可大大便于掌握电路板故障发生之前的事件顺序。在定义OBFL记录的时候进行详细的、深思熟虑的规划,可以缩短确定故障根本原因的响应时间。图2显示了如何把OBFL记录进一步划分为三个类别: (1)基线记录 (2)事件记录 (3)消息记录

图2.0 – 非易失性存储器中的OBFL记录
基线记录: OBFL基线记录的创建独立于任何电路板故障。OBFL系统应一直保持一个初始基线记录和至少一个近期基线记录。在完成对OBFL的系统现场配置、首次成功将电路板件投入使用之后,就会立即生成初始基线。首次创建近期基线记录的时候,将使用初始基线记录。创建近期基线记录的目的,是为了获取OBFL资源的近期值。随后每次成功的电路板复位都会创建后续的基线。OBFL还会要求提供存档的旧基线。任何稳定的基线都会被标注为“优良”基线,并在故障排查过程中用作参考基线。如果没有优良基线记录,初级基线记录将用作参考基线。 基线记录将获取特定的软硬件配置详情,并存储在非易失性存储器中。基线记录的硬件部分包括电路板配置数据详情,如机架编号、电路板件的插槽号、序列号、子卡标识详情、FPGA和ASIC修订号等。该部分还应该存储诸如SRAM/SDRAM/DDR这样的板载存储器类型、序列号和配置详细信息。BIOS版本、固件版本、OS详情和应用软件版本应存储在软件基线记录下。该记录在缩小由近期软硬件升级造成的电路板故障范围时非常有用。 基线记录的第三部分存储电路板环境变量值。任一存储的电路板环境变量都存放有近期的“N”个值,最大实际值和电路板环境变量的最低允许值。环境变量包括电路板电源部分参数,如电压、电流以及来自电路板上一个或者多个感应器的温度读数。 电路板环境变量的值定期采集、存储为近期值,并同最大允许值进行比较。如果采集的值大于最大允许值,将采用当前的时间戳更新环境错误事件(Environment Error Event)记录。此外,电路板一般有多个电压源和温度感应器。温度应定期记录(比如每隔30分钟),而电压数据可以不需这么频繁(比如每隔60分钟)。
作者:Ashish Nagar

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

31

帖子

1

粉丝