时间:2024-07-28
秦海潮
(北京航空航天大学 电子信息工程学院, 北京 100191)
静电放电的过程能在数纳秒内产生数千伏的高压和几十安培的电流,并伴随强电磁场,对电子设备的正常运行是一种严重威胁[1]。静电放电产生的能量会通过辐射或传导的形式,沿着最低阻抗路径进行泄放。静电放电对电子设备造成的故障大致分为2种[2-6]:
a) 模块损坏。该类故障为过压、过流或强电磁场引起的永久性故障;
b) 功能受扰。该类故障不对模块造成损坏,为临时性故障。这类故障又叫“软件故障”[6]。
当静电放电的等级低于使硬件造成损坏的等级时,嵌入式软件故障可能就会出现。这些软件故障包括使电子设备关机、重启、应用软件故障或整个系统软件故障[7]。
由于在产品的研发过程中,硬件的研发周期相对更长,而这类软件故障只有在搭载到硬件平台后才可能被发现。而且,由于静电放电引发的嵌入式软件故障(下简称软件故障)具有偶发性、突发性、隐蔽性等特点,少量的实验难以有效发现所有潜在的软件故障。同样棘手的是,在研发末期,解决这类问题更加耗时耗力,而且措施十分有限。严重的软件故障可能造成软件版本更新、硬件设计重来、产品推迟发布等风险。
因此,如果能在硬件平台尚未完全准备就绪之前就能够发现这些软件故障,这些问题将更容易解决。换言之,如果能够保证各模块不会因受静电放电的影响而产生软件故障,那么最终产品中出现类似问题的概率将大幅降低。现在的问题是,怎样在研发阶段预测最终产品的软件故障。
2015年,Charvaka和Harald探讨了软件故障的产生机理并给出了合理的设计建议[3]。此后,Thomson等人深入探究了ESD导致的系统级软件故障,包括应用软件故障的发生场景[4-5]、故障的复现性[6]和故障阈值的评估方法[7-8]。关于软件故障的预测方法,Schwingshackl等提出了全波仿真和暗室内测试等预测方法[7,9-13]。
本文应用了电压电流测量等常规方法,同时创新性地提出了将热成像分析法、快速短时傅里叶变换分析和声音辨别法应用于软件故障的预测中。笔者通过不同的实验方法,试图找到对应软件故障的指标变化和测试工具,并通过对比设备各功能模块运行状态下多种实验方法的测试结果,从中选取备选的软件故障预测方法。
在本文相关的测试中,使用1台传输线脉冲发生器[2](transmission line pulse generator,TLP)来实现静电放电的过程。TLP发出的短脉冲通过接触放电、电阻耦合、二极管耦合[4]或场耦合[5]的方式对受试品(Device Under Test,DUT)进行注入。笔者对多型号的数码相机、等离子电视机、智能手机、笔记本电脑和开发板等DUT进行了静电放电测试。根据实验现象,发现6种不同类型的软件故障:
a) 软件失控。比如有触控功能的DUT在TLP注入后从一个前台应用切换到另一个前台应用。
b) 应用软件崩溃。实验中仅应用软件瘫痪,系统软件正常运行。
c) 系统软件崩溃。TLP注入后整个系统软件崩溃,但系统供电正常。这类故障通常可以通过手动复位解除。
d) 显示错乱。对于一些带有显示屏的DUT来说,该类故障十分常见。比如,显示屏会显示蓝色或黑色条纹。
e) 系统掉电。TLP注入后DUT掉电关机。
f) 其他。比如瞬时闭锁。
目前,软件故障解决方案的主要瓶颈集中在a类和b类故障。将对以上各类故障举例示意,以方便读者深入了解。
单个电源网络(power distribution network,PDN)中的电流变化理论上也可以作为一个监测指标,但因板上空间有限,多个PDN相互靠近,难有实际准确的监测方案。因此,可以用DUT供电线上的电流变化作为部分DUT软件故障的监测指标。
本例将监测直流电流法应用于监测高通公司的Dragon Board开发板。该开发板使用AM335x ARM Cortex-A8 CPU,搭载Linux操作系统。TLP充电电压为2 kV,使用小环天线进行注入。示波器型号为R&S RTO1024,相关设置为:①使用1 MΩ直流耦合;②使用100 kHz低通滤波器;③采样频率设为10 MSa/s;④触发方式为边沿触发,使用TLP为外部触发源;⑤不使用差值,仅采集原始时域数据。
一个实验细节值得提及、由于注入环天线与TLP间阻抗不匹配,可能在TLP和注入环天线间产生反射。可以通过在环天线端串接50 Ω电阻来削弱该反射。
实验配置如图1所示。对于直流电流监测而言,需要为所有参试设备提供一个公共参考板。因此,选择在DUT电源线的回线上增加一颗1 Ω的电阻,通过监测电阻两端的电压值监测供电线上的电流值。为了降低电源适配器开关噪声潜在的影响,可在电源线上并接电容。同时,为了降低潜在的共模噪声,在示波器环天线引线上串接磁环。通过将注入环天线停放在DUT不同的位置,得到不同的软件故障,同时监测得到对应时刻的直流电流。
图1 直流电流的监测实验设置,DUT为Beagle Bone Black开发板
图2对比了DUT正常运行与TLP注入前后电源回线中直流电流的变化。TLP注入瞬间开发板指示灯熄灭,手动复位后,DUT能够恢复正常运行。此软件故障为f类故障。为方便观察,两次监测的结果在显示时稍稍错开。从图中可以看出,TLP注入后电流增加75%,同时电流波中的周期性脉动消失。在本实验中,监测电源回线中的直流电流可以作为软件故障的监测手段。
图2 DUT正常运行与TLP注入前后2种 场景下电源回线中的直流电流
此外,也可以使用I-prober来监测直流电流。其实现原理是通过监测电源线周围的磁场来监测线上的电流值。I-prober不止可以用于监测电源线的场合,也可以用于监测PCB中走线上的电流。由于两种监测手段原理一致,不再赘述。
对于一些软件故障,发生前后会伴随PCB上温度的变化。因此,考虑使用热成像法作为软件故障的监测手段之一。
图3 FLIR ONE热成像仪及其在实验中的应用
本例将热成像法应用于监测高通公司的Dragon Board开发板。该开发板使用APQ8060 CPU,搭载Android系统。TLP充电电压为3 kV,使用小环天线进行注入。实验中使用了FLIR ONE热成像仪。实验时,FLIR ONE需要与1台iPhone配合使用,其灵敏度为0.1 ℃。
图3b)对比了DUT正常运行与TLP注入后的热成像图。TLP注入后触屏不能正常工作,但系统软件正常运行。重启后该故障消失。此软件故障为b类故障。当软件故障出现时,在触控IC处出现很明显的亮点,说明该处存在明显的温升。在本实验中,监测DUT的热成像可以作为软件故障的监测手段。
对于一些软件故障,发生前后会伴随PDN中电压的明显波动。因此,考虑使用测量直流电压的方法作为软件故障的监测手段之一。
本例将测量直流电压的方法应用于监测Beagle Bone Black开发板出现的软件故障。TLP充电电压为3.5 kV,同样使用小环天线的注入方式。
实验配置如图4所示。
图4 Beagle Bone Black开发板上监测直流电压的实验设置
首先,需要配合原理图在PCB上量取一些去耦电容的端电压,寻找不同的PDN。其后,在不同PDN的去耦电容两端焊接引线,使用多通道示波器同时测量TLP注入前后各PDN电压的变化。为了降低电源适配器开关噪声潜在的影响,可在电源线上并接电容。同时,为了降低潜在的共模噪声,在示波器通道引线上串接磁环。通过将注入环天线停放在DUT不同的位置,得到不同的软件故障,同时监测得到对应时刻各PDN上的电压变化。与前例相同,本例依然使用了小环天线进行注入,即场耦合的干扰方式。
图5和表1对比了在Beagle Bone Black开发板上监测的4个直流电压。TLP注入后,开发板系统崩溃并随后复位。该类软件故障为c类故障。在本实验中,PCB上各PDN上的电压变化可以作为软件故障的监测手段。
图5 Beagle Bone Black开发板上监测的直流电压
监测的电压点电压波形下降沿时间/ns电压最低值/V电压恢复时间/μs1.38V(CPU)<50.9501.04V(CPU)<50.8301.78V(CPU)<50.751.38V(内存)<50.850
受TLP影响后,一些DUT产生软件故障的同时,产生的异常信号包含某些高频分量。由于高频分量会向周围空间进行辐射,因此考虑使用另一个小环天线采集PCB周围空间的高频分量,并使用频率分析仪观察TLP注入瞬间,软件故障发生前后的频谱变化。
图6 通过频谱分析仪对比TLP注入前后频谱的变化
本例将观察频谱变化的方法应用于监测1台智能手机(型号:Xperia Arc)出现的软件故障。TLP通过电阻耦合的方式直接注入DUT的地平面。TLP注入后,整个系统崩溃,但手机供电正常。这是一个c类软件故障。监测环天线位于CPU上方,图6给出了TLP注入前后的频谱变化,可以看出在1.6~1.7 GHz之间,DUT系统崩溃后频谱幅度明显下降。在本实验中,频谱观察法可以作为软件故障的监测手段。
由于使用频谱分析仪只能观测到毫秒级到秒级别的变化,需要功能更为强大的分析工具来捕捉微秒甚至纳秒级的变化,为此笔者提出了快速短时傅里叶变换分析法,并搭建了快速短时傅里叶变换分析平台。
图7 快速短时傅里叶变换分析平台架构
图7展示了笔者所开发的快速短时傅里叶变换分析平台。计算机与TLP通过串口进行通信,以发送脉冲波形、脉冲周期、脉冲触发等指令。PC与示波器(型号:安捷伦DSO 9404A)通过网口进行通信,以控制示波器各通道的采样频率、采样点数、触发方式等内容。TLP为示波器提供外部触发。计算机操控平台为用MATLAB GUI开发的在线分析软件。
快速短时傅里叶变换分析平台功能十分强大。它可以分析纳秒到毫秒级的时域信号,通过调节参数,可以同时在时域和频域都得到较高的分辨率。
本例将观察频谱变化的方法应用于监测Dragon Board开发板出现的软件故障。TLP通过小环天线的方式进行注入,注入环天线位于SD卡槽的上方。监测环天线位于CPU上方。DUT的工作状态为播放SD卡中的视频文件。TLP注入后,视频停止播放,并自动返回文件选择界面。系统软件运行正常。这是一个a类软件故障。图8给出了TLP注入前后的频谱变化,可以看出在方框1内,一些频率分量显著减弱。在本实验中,快速短时傅里叶变换法可以作为软件故障的监测手段。
图8 使用快速短时傅里叶变换法监测TLP注入前后频谱的变化
有时高频范围的微小变化可能难以被测量仪器监测到,但可能通过将高频信号转换到听觉范围内,用耳听的方法来识别。这是一种软件故障评估的主观方法。
这里通过一个在Dragon Board开发板上发现的软件故障来演示声音辨别法。实验中,注入环天线位于WiFi/蓝牙IC上方,将开发板的工作状态设置为通过WiFi进行数据传输。TLP注入后,数据传输停止,但系统依然正常工作,因此这是一个b类软件故障。图9是监测环天线采集到的时域信号。单从图上看,除了TLP注入信号和后面的反射信号,难以辨别TLP注入前后的变化。但通过将该高频信号转换到听觉范围内,可以辨别出TLP注入前后开发板系统的变化。该变化可以与WiFi模块的受扰现象相对应。在本实验中,声音辨别法可以作为软件故障的监测手段。
图9 监测环天线采集到的时域信号
上面一共提出了6种方法。本节将介绍每种方法的适用场景。从一定数量的实验中,可以初步得到软件故障类别与适用的探测方法之间的关系。总体来说,对于一个典型的DUT,并不是前面提出的每种监测手段都适用于软件故障的预测,甚至对于同一个DUT的不同工作状态而言同样不成立。
表2总结了每种方法的适用场景。表2基于笔者现有的实验。软件故障类别和可能有效的预测方法需要后续更为深入的分析研究。
到目前为止,从大量实验中可以总结得到,快速短时傅里叶变换法是最强大的软件故障预测方法。
表2 监测手段场景适用性
实验目的是探求软件故障的预测方法。如果针对某一类软件故障能够找到对应的预测方法,那么就有可能在产品设计阶段解决该类问题。
本节将演示什么样的软件故障监测手段可能成为预测方法。实验中使用快速短时傅里叶变换法作为监测手段。DUT是Dragon Board开发板。注入环天线位于WiFi/蓝牙IC上方,监测环天线位于SDRAM上方。DUT的工作状态为通过蓝牙传输文件。注入TLP后,蓝牙功能受扰,产生软件故障,对应现象为文件停止传输(b类故障)。随后人为重启开发板,并使其处于待机状态(不使用蓝牙功能),使用与前面实验相同的注入环天线和监测环天线,保持注入位置和监测位置不变并注入TLP。图10显示TLP注入后软件故障发生前后快速短时傅里叶变换的结果。图11显示DUT处于待机状态下注入TLP前后短时傅里叶变换的结果。
从本例中可以看出,无论蓝牙模块工作与否,快速短时傅里叶变换的方法都能够探测到TLP注入前后的变化。因此,快速短时傅里叶变换的方法可以用作预测软件故障的一个候选方法。
图10 注入TLP后软件故障发生前后短时傅里叶变换的结果
图11 待机状态下注入TLP前后短时傅里叶变换的结果
根据实验现象对发现的嵌入式软件故障进行了分类,介绍了6种软件故障的监测手段,并讨论了每种方法的适用条件和使用限制。需要强调的是,针对不同类别的软件故障、同类别软件故障下不同的DUT甚至同一个DUT的不同的工作状态,监测手段都可能不同。所以,需要针对具体产品的具体工作状态进行单独实验和分析。后续,笔者着眼于发现更多的软件故障监测手段,并试图从中得到更多的软件故障预测方法。
[1] Mark I Montrose, Edward M Nakauchi. Testing for EMC Compliance: Approaches and Techniques[M]. John Wiley & Sons, 2004: 93-94
[2] Iec61000-4-2, Testing and Measurement Techniques-Electrostatic Discharge Immunity Test[S]. Tc 77/Sc 77B-High Frequency Phenomena, 2008-12-09
[3] Charvaka Duvvury, Harald Gossner. Soft Failure Mechanisms and PCB Design Measures[M]. Wiley-IEEE Press, 2015: 424
[4] Thomson N A, Xiu Y, Rosenbaum E. Soft-Failures Induced by System-Level ESD[J]. IEEE Trans on Device and Materials Reliability, 2017, 17(1): 90-98
[5] Vora S, Jiang R, Vasudevan S, et al. Application Level Investigation of System-Level Esd-Induced Soft Failures[C]∥2016 38th IEEE Electrical Overstress/Electrostatic Discharge Symposium, 2016: 1-10
[6] Jin J H, Jeon C P, Kim J H, et al. The Reproducibility Improving Method of Systemlevel ESD Test Through Operating Program Workload Analysis[C]∥URSI Asia-Pacific Radio Science Conference, 2016: 921-924
[7] Schwingshackl T, Orr B, Willemen J, et al. Powered System-Level Conductive TLP Probing Method for ESD/EMI Hard Fail and Soft Fail Threshold Evaluation[C]∥2013 35th IEEE Overstress/Electrostatic Discharge Symposium, 2013: 1-8
[8] Lim J, Lee J, Seol B, et al. The Evaluation Method for ESD Immunity of Components in Terms of Software Error[C]∥EMC Europe, 2011: 468-471
[9] Yang S, Orr B, Guo Y, et al. Measurement Techniques to Predict the Soft Failure Susceptibility of an IC without the Aid of a Complete Software Stack[C]∥2016 IEEE International Symposium on Electromagnetic Compatibility, 2016: 41-45
[10] Antong R, Low D, Pommerenke D, et al. Prediction of Electrostatic Discharge(ESD) Software Error on Two-Way Radio Using ESD Simulation in CST and ESD Immunity Scanning Technique[C]∥2014 36th IEEE Electronics Manufacturing Technology Symposium, 2014: 1-10
[11] Lee J, Lim J, Jo C, et al. A Study of a Measurement and Simulation Method on ESD Noise Causing Soft-Errors by Disturbing Signals[C]∥2011 33rd IEEE Electrical Overstress/Electrostatic Discharge Symposium, 2011: 1-5
[12] Lee J, Lim J, Seol B, et al. A Novel Method for ESD Software Error Analysis on Integrated Circuits Using a Tem Cell[C]∥2012 34th IEEE Electrical Overstress/Electrostatic Discharge Symposium, 2012: 1-6
[13] Lim Jaedeok, Lee Jongsung, Seol B, et al. The Quantitative Approach of EM-Field to Correlate Components and Products in Terms of Esd Software Error[C]∥2013 International Symposium on Electromagnetic Compatibility, 2013: 916-919
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!