当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]工程设计项目中最令人振奋的时刻之一就是第一次将硬件移到实验室准备开始集成测试的时候。开发过程中的这个阶段通常需要很长时间,也会对所有的项目工程师造成很大的压力。不过,现有的工具和方法能减轻压力,帮助推进项目进展。 让我们来看一下,如何在将设计推进到更高层面的过程中最大限度地减少可能发生的任何问题,以及如何快速顺利地通过调试阶

工程设计项目中最令人振奋的时刻之一就是第一次将硬件移到实验室准备开始集成测试的时候。开发过程中的这个阶段通常需要很长时间,也会对所有的项目工程师造成很大的压力。不过,现有的工具和方法能减轻压力,帮助推进项目进展。

让我们来看一下,如何在将设计推进到更高层面的过程中最大限度地减少可能发生的任何问题,以及如何快速顺利地通过调试阶段。


从第一天起就要设想如何进行测试


所有工程师都知道,随着开发进程的推进,修改问题的成本也会相应增加。一旦设计方案最终定型并投产,再修改引脚输出错误的成本必然高于早期设计评估时修改的成本。此外,在测试与集成方面也同样存在成本问题,越早考虑硬件、FPGA、系统等的测试问题并编写测试规范,就越便于工程设计团队考虑到必要的测试点、连接和功能性。测试的目的是确保能推出可满足用户具体要求的安全系统。因此,我们必须确保测试能体现所有要求,而功能测试则要求应能实现流程传递并可跟踪设计要求(即每个测试均应满足其所对应的需求)。


此外,对设计验证模型进行编辑也是一种非常好的做法,能详细说明测试每项功能要求的方法,如具体的测试、分析或读取方法(条件是在另一个项目上较早明确或测试了相关要求)。文档(图1)可能还涉及哪些测试需用于设计验证,以及哪些用于生产运行。在项目阶段早期即完成上述文档,可确保系统设计团队和测试设备的设计团队获得明确的基本方法。


但是,在进行功能性测试之前,设计工程师还必须确保底层硬件的正确性。他们通常需要包含电源、性能和硬件基本验证等内容的硬件级测试规范,而硬件基本验证需在功能测试之前进行。


明确需要何种测试设备以及什么样的性能非常重要,例如需要分析信号发生器和逻辑分析器是否能提供足够的存储深度和工作频率?此外,还需明确是否需要更专业化的测试设备,如任意波形生成器、高稳定性频率参考等。

设计阶段应包括的内容


在硬件的设计过程中,或许应包括几项设计特性和功能,以使电路板的测试能够更方便。相关要求可能比较简单,也可能较有深度。


最简单也是最常见的测试规定是在所有电压源上放置测试点,这避免了探询焊接点时造成损坏的可能性。不过,还有一种比较好的办法,是让连接接地(0V)返回的焊盘靠近电压测试点,从而简化测试工作。若采用高值电阻来保护这个测试点,就能限制测试中意外短路情况下的电流。我们也可考虑给这些焊盘添加测试引脚,使其连接到可随后在生产运行期间记录结果的自动测试系统上。


此外,监控时钟和复位输出的功能至关重要。因此,在复位线路上放置测试点不矢为一种好办法。另外,还应确保正确端接不使用的时钟缓冲器并添加测试点,从而便于对时钟进行探询。此外还可考虑添加测试端口,通过信号发生器、逻辑分析仪或其他测试工具来实现信号的注入和提取。


为了帮助原型设计达到功耗要求,如果可能,通常比较好的做法是在电压调整器的输出端串联低值电阻(10毫欧、100毫欧等),以便精确测量电源轨上的电流。

图1:非常实用的工具:用验证表详细列出测试每个功能要求的方法


众多FPGA器件也都能提供采用温度二极管监控芯片温度的方法。需要想办法为二极管提供恒定电流。测定芯片温度有助于我们确保结温不超出额定值。


要确保所有组件都适当就位,明确是否符合设计方案的要求,特别是如果只有一个上拉或下拉电阻应就位并选择配置模式时更是如此。


检查完印刷电路板上的各组件之后,下一步就是首次给电路板加电。对于任何工程师来说,这都是非常紧张的时刻。但是,在设计阶段(测试点、电流感测电阻等)编制的测试规定将在这时发挥很大的协助作用。第一步是确保负载点和其他稳压器的功率输出不发生短路返回。您可能会在带载器件(具有高电流要求)的电源轨上发现低阻抗,不过阻抗应大于1欧姆。


对于业界率先实现的同类型设计(即新产品首次进行实际构建)而言,我们或许应该制定更深入的设计决策,例如将电源与下游电子器件进行分离处理。这样,我们就能确保电源和上电顺序都能正常工作,从而避免下游组件的应力过大或损坏。更详尽的前端设计阶段有助于测试工作的例子还有一个,那就是确保JTAG端口除了在系统中对所有FPGA或处理器进行编程之外还能有更多用处,例如通过边界扫描测试来进行初始的硬件验证等。边界扫描测试对在测试阶段早期减少硬件设计风险非常有用,同时也要求对设计方案进行优化,以确保最大限度地覆盖边界扫描器件。

明确硬件特性


系统第一次到达实验室时,您要做的第一件事情就是确定硬件底层模块是否适合做进一步的测试。相关检查包括模块的初步通电测试,这是个紧张的过程。刚拿到模块,您希望确保其准确投产,能够成功实现首次通电启动。第一步就是确保所有的组件都各就其位,引脚“1”正确定位,而且任何带极性的组件都准确放置。设计中通常可能包含众多无需检查定位的组件,例如那些适合不同版本或不同构建选项的组件。


如果您确定所有电源轨都没有短路,那么下一步就该加电了。初次加电时,我倾向于采用分两个阶段进行的方案。第一个阶段是采用低电压(0.5V)和低电流,以确保不错过信号层或电压轨之间的任何短路情况;第二个阶段是用正确的工作电压在设定的电流限值内加电,看看是否获得预期电流(不要忘了突入电流问题)。


成功给设计方案加电后,下一步就是确定电源上电的排序、复位以及时钟是否能按设想的工作。切记,要确保复位时长超过所有时钟,并在释放之前处于稳定状态。


明确硬件特性的下一步就是确保能通过JTAG链看到硬件,这使我们不仅能对FPGA编程,而且还能执行边界扫描测试。边界扫描测试能帮助我们快速测试器件之间的互连,通过测试存储器可确保其正常工作,如开发回环接插件也可回转输入输出。JTAG和边界扫描测试可在进一步详细的测试之前消除设计风险。


致力于简化RTL


如果您的设计在硬件和FPGA层面上都很复杂,那么简化版的RTL将有助于测试开发板以及FPGA和外设(图2)之间的接口。对高速接口设计而言,更是如此。我们可结合采用优化的RTL和赛灵思 ChipScope工具来捕获数据,以及预载了数据模式的Block BRAM来发挥激励作用。这种方法对采用ADC和DAC连接FPGA的情况尤其有用。在此情况下,您应发挥FPGA的可再编程特性来最大限度地进行设计开发,实现ADC和DAC的参数测试,比如噪声/功率比、无杂散动态范围和有效比特位数(effective-number-of-bit)计算等。


此外,您还应该充分利用FPGA提供的资源,尤其是赛灵思System Monitor和XADC,非常有利于监控芯片上的电压轨,进而还能有助于验证在设计阶段所执行的电源完整性分析。此外,上述技术还能方便地报告芯片温度,这对环境测试以及芯片温度的功耗关联等都有帮助。


多数情况下,简化RTL设计并采用FPGA提供的资源对精确定位未按预期工作的区域都有极大的帮助。

遇到问题怎么办?


在一步步推进测试计划的过程中,您可能会遇到一两个问题,如未能实现预期的功能,或在功能方面无法满足所需的性能水平。不要担心,我们能通过许多调查方法来确定问题根源和所需的纠正措施。


在上述情况下,不要急于马上做出修改。首先,要重新检查设计方案,特别是原理图和数据手册等设计信息。如果问题与FPGA有关,则应检查引脚约束文件是否适合设计需要,因为有可能文件与设计不同步。


如果一时找不出什么明显错误,则不妨发挥一下互联网的优势,去网上看看其他工程师是否也遇到过跟您同样的问题。网上有很多论坛,您可在那里向其他设计人员提问。Programmable Planet和赛灵思论坛都可为基于FPGA的设计提供广泛的支持。


说到底,硬件调试是工程设计中极富挑战,但又极具收获的组成部分。若在设计早期阶段即考虑到测试问题,并在设计中包含测试所需的各元素,就能显著简化调试工作。采用ChipScope、System Monitor和XADC等所有可用的资源来调试系统,外加合理利用传统测试设备,我们就能成功完成开发工作。

图2:这里的优化代码是从连接输出的简单DAC接口到已知状态的代码片段,能够生成Fs/2的正弦波。此类代码的标准版可能有数百行的长度。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

  JTAG(Joint Test AcTIon Group,联合测试行动组)是一种国际标准测试协议(IEEE 1149.1兼容)。标准的JTAG接口是4线——TMS、T

关键字: jtag

  JTAG最初是用来对芯片进行测试的,基本原理是在器件内部定义一个TAP(Test Access Port?测试访问口)通过专用的JTAG测试工具对进行内部节点进行测试。JTAG测试允许多个器

关键字: jtag

尽管Linux系统在IT世界中随处可见,但是对Linux需要一定的了解,无论他们是使用哪种语言的程序员。下面,千锋展示了最新的视频教程,以便初学者可以快速入门。

关键字: Linux 技术教程 测试环境 视频教程

如果要在Linux上的Eclipse中开发Java项目,则可以从其他位置访问该项目。 您可以从远程桌面使用teamviewer运行Linux计算机,但这可能很慢。 您也可以从普通的ssh终端编辑,编译和运行Java项目。...

关键字: eclipse java Linux 技术教程

作为Linux爱好者,我不能说我是Linux世界中的老司机,但也算是半个老司机了。我最开始了解Linux是在校园里。教授教我们如何在Windows下使用虚拟机创建环境, 然后安装Linux。我在校园里首先学到的是Red...

关键字: box Linux virtual vmware Windows 技术教程 workstation

好奇开发人员使用哪些Linux命令吗? 有什么技巧呢? 让我们带你走进程序开发人员的日常工作吧。

关键字: Linux 技术教程 localhost sudo

生活中最常见的灯就是LED灯,但是很少有人知道LED灯需要LED驱动器,芯片是LED最关键的原物料,其质量的好坏,直接决定了LED的性能。特别是用于汽车或固态照明设备的高端LED,绝对不容许出现缺陷,也就是说此类设备的可...

关键字: 参数测试 外延片 电源技术解析 芯片

        感谢原著作者对人类文化的传播做出的努力!以下内容直译为主,意译为辅,同时笔者可能会加入个人观点以方便理解。如有翻译不当的地方希望各位同仁积极指出,如有必要的话请做出引证,以助于笔者翻译

关键字: jtag 硬件

纯单片机干不了大事,必须得配上各种外设,那么了解单片机与传感器之间的数据通信就显得必不可少了。常见的单片机数据通信方式有SPI,IIC,RS232,单总线等等。每种通信方式都有相应的时序图,分析时序图并完成代码的编写是单...

关键字: 单片机 总线传输 技术教程 时序图

隔离可防止系统两个部分之间的直流电和异常的交流电,但仍然支持两个部分之间的信号和电源传输。隔离通常能够阻止电气组件或人员遭受危险电压和电流浪涌的伤害;用于保护人员的隔离称为增强型隔离。I2C已成为许多系统中流行的全球标准...

关键字: i2c 总线 技术教程 隔离器
关闭
关闭