电子产品ESD设计(补充).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电子产品抗静电放电 设计对策(补充材料) 中国赛宝(总部)实验室 (中国电子产品可靠性与环境实验研究所) 安全与电磁兼容检测中心:朱文立 一、固件和软件的设计 在对付静电放电方面,除了众所周知的硬件方法以外,固件和软件也起着重要的作用。 虽然固件设计不能防止系统中器件的损坏,但是能够有效地避免一些非永久性的损坏。 通过适当写入的固件,不可恢复的设备故障(死锁)通常可以避免,可恢复的故障也可以减少10倍。 一、固件和软件的设计(续一) 如同硬件上的静电放电措施一样,抗静电放电的固件也是有代价的。 通常,程序会更大一些,这意味着需要更长的编程时间和存储单元。 权衡得失时,要将这种代价与单纯依靠硬件解决静电放电问题时的成本做对比。 在许多微处理器的应用中,固件措施的成本要比硬件低。 一、固件和软件的设计(续二) 在编写静电放电抗扰性强的固件时一定要树立的的一个观念是“不确定性”。 也就是,一定不能认为端口、寄存器等的状态是一定的。 例如,当使用一个索引寄存器时,应该问一下,如果这个索引发生错误时,会发生什么问题。 如果仅是仅发生一些暂时的或无关紧要的问题,如发光二极管闪烁,则不需要什么特殊的处理。 如果会发生很严重的问题,例如系统发生死锁,则必须采取措施来避免问题的发生。 1.1 措施 固件(软件)静电放电措施可以分为两类:     * 刷新     * 检验和重新写入 下面从概念上讨论每种措施,并给出一些例子。 由于不可能预见到所有的特殊情况,要使固件能够抵抗ESD,设计人员必须对整个系统有一个全面的了解。 虽然下面的讨论主要针对固件,但是其中的许多概念对于软件设计也是适用的。 1.2 刷新: 进行刷新时,程序员不关心过去的情况,而仅是用确定的数据来保证今后的状态。 例如,在从8409的端口读取数据时,一定要先向端口写入数据。 即使这个端口从上次更新以后一直没有改写,也要进行这个步骤。 绝不要认为端口上还保留着上次写入的数据。 1.2 刷新(续一) 刷新时需要考虑的其它因素包括: A) 按照一定的时间间隔打开中断使能端(在8049中是RETR,在8051中是RETI) B) 当端口用于串行数据输出时,刷新停止位的电平。 C) 刷新锁存器和端口输出状态。 D) 定期读取控制和选择输入,保证系统工作在适当状态。 E) 对于8049和8051处理器,每个程序环路中至少有一条寄存器选择指令。 ? 1.2 刷新(续二) 在进行刷新时,另一个需要考虑的因素是刷新的顺序。 有时,刷新的顺序十分重要。 例如,在同步输入/输出中,数据线一定要在时钟线之前刷新。 否则,经过刷新的时钟会使数据位丢失。 如前所述,一定要考虑在错误条件下每条指令的顺序。 1.3 检验和复位: 有时,单纯刷新还是不够的。 在有些情况下,刷新甚至会掩盖一些严重的问题。 在这些情况下,寄存器、端口等需要通过检验来确认其状态。 如果状态不对,程序应该试图对其进行更正。 1.3 检验和复位(续一) 进行复位(或初始化)时一定要非常谨慎。 虽然系统的状态可能有疑问,但是将系统彻底初始化并不是一个好方法。 这会丢失所有过去的数据。 应该遵守的原则是,使系统处于最可能的状态,而这个状态应该使问题的危害最小。 如果有些关键的项目没有最可能的状态,则应该将其状态保留起来。 这便于以后采用投票的方式来确定当前状态。 通常,“3取2”的投票方式就可以了。 1.3 检验和复位(续二) 检验函数通常可以分为3类。 特别要做以下检验,如果发现错误,需要初始化。 A) 检验程序流是否正确: 1) 在主程序中,在子程序返回前,要定期检验子程序堆栈指针,以确认子程序在预定的范围内运行。 2) 如果不检查堆栈指针(或在检查堆栈指针的基础上),可以使用“标志”来帮助发现程序运行中的问题:当进入一个子程序时,保存标志牌,当离开子程序时,检查这个标志。 1.3 检验和复位(续三) 3) 在禁用区域中安排“陷阱”码,例如编码表或无用的中断矢量。当程序要执行这些码时,就被抓住(例如在未使用的表格中安排返回指令)。 为了检查程序流是否正常,在程序中还应该包含以下两个子程序: 4) 为了确认主程序运行正常,应该有一个永远不会停止和失效的计时程序。 5) 主程序应定时检查上面的定时程序,确认其是否运行正常(如果微处理器没有内置的计时器,可以使用外置的硬件“看门狗”电路。当处理器没有按时将计时器复位时,外置电路会将处理器复位)。 1.3 检验和复位(续四) ? B) 检验存储的数据和信息是否正确 1) 定期对保留的项目进行表决,如果没有一致性,进行初始化。特别,状态标志(特别是使能标志)要保留有备份。

文档评论(0)

好文精选 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档