软件开发领域,关键但也是无法预料的阶段是调试阶段。在软件调试的过程中有很多要素都举足轻重,而其中重要的则是时间。设置和调试软件所需的时间对于软件的上市时间以及是否满足客户期望都有着巨大的影响,同时还影响着一个在市场取得成功的产品的销售业绩。一个应用的集成必须经过一个由构建、加载、调试/调谐到更改等多个阶段构成的过程。
嵌入式实时系统的调试既是一门艺术,又是一门科学。用于调试和集成这些系统的工具和技术对于在调试、集成和测试阶段上所需时间的长度有着重要影响。对运行中的系统越了解,我们就能越快发现并修正缺陷。
JTAG 技术简介
收缩技术(shrinking technology)的一个劣势在于,测试小型器件的复杂程度急剧升高。当电路板面积较大时,板的测试是通过采用钉床等技术来进行的。这种技术采用小型弹簧式测试探针来和板底部的焊盘进行连接。这种测试方案是定制的,不仅成本太高,而且效率低下,而且在设计完成之前很多测试都无法进行。
随着电路板面积的缩小,以及表面贴装技术的改进,钉床测试的问题不断增多。
而且,如果一块电路板两面都安插了器件,根本无法留下任何可使电路板安放到测试器件上的依附点。
边界扫描(Boundary scan)
1985 年,一个欧洲电子公司组织联合起来,试图寻找能够解决这些问题的方案。该组织名为联合测试行动组,制定了一个用于在集成电路级别上进行边界扫描硬件测试的规范。1990 年,IEEE 将该规范制定为IEEE 1149.1 标准,在其中说明了通过一个JTAG 端口接入任何芯片的详情。
边界扫描技术可以通过少数的专用测试管脚在嵌入式系统上进行大量调试和诊断。信号被连续扫描进出器件的I/O 单元,以在各种情况下控制其输入并测试输出。如今,边界扫描技术几乎成为业界为流行并通用的可测性设计技术。
测试管脚
系统中的器件是通过一组I/O 管脚来和外界通信的。如果只靠这些管脚本身,我们无法详细了解器件内部的情况。但是,支持边界扫描的器件中有一种位移寄存器,器件的每个信号管脚都有一个。如图1所示,这些寄存器以一个特别的路径连接在器件的边界上(边界扫描因此而得名)。这样就将每个普通输入端口都包围起来,并直接控制器件及输出端上的可视性。
图1 一个采用了JTAG 边界扫描的标准集成电路
在测试中,器件的I/O 信号通过边界扫描单元进出芯片。经过配置,边界扫描单元可以支持外部测试,以测试芯片间的互联,也可以支持内部测试,测试芯片内部的逻辑。
为了提供边界扫描功能,IC 厂商必须在他们的器件上添加逻辑,包括每个信号管脚上的扫描寄存器、一个连接这些寄存器的专用扫描路径、4 个(需要时可添加5 个)额外的管脚以及额外的控制电路。
添加这个逻辑并不会产生太多的负载,而且为了实现板级的高效测试能力,这样的成本也是值得的。这些边界扫描控制信号被统称为测试接入端口(TAP),定义了一个用于扫描式器件的串行协议:
TCK/时钟- 同步内部状态机操作。
TMS/模式选择- 在TCK 的上升沿被采样,以决定下一个状态。
TDI/数据进入- 当内部状态机处于正确状态时,这个信号在TCK 的上升沿被采样,被转移到器件的测试或编程逻辑。
TDO/数据输出- 当内部状态机处于正确状态时,这个信号表示数据被从器件的测试或编程逻辑转移出去,并在TCK 的下降沿有效。
TCK、TMS 和TRST 输入管脚驱动着一个有16 种状态的TAP 控制器状态机。TAP控制器控制着数据和指令的交换。它根据每个TCK 上升沿的TMS 信号数值来进入下一个状态。只要接线方式无误,就可以对多个IC 或电路板进行同步测试。
测试过程
通过边界扫描技术验证一个器件(或电路板)的标准测试过程如下:
测试人员将测试或诊断数据加到器件的输入管脚上。
边界扫描单元在监控输入管脚的边界扫描寄存器中捕捉数据。
数据通过TDO 管脚扫描出器件,用于验证。
数据可通过TDI 管脚扫描进器件。
测试人员在器件的输出管脚上验证数据。
简单的测试可以发现一些制造缺陷,例如器件管脚断开、器件缺失、电路板上的器件位置不正确或者方向倒反等情况,甚至能检测到有故障的或者无法工作的器件。
边界扫描技术的主要优势在于它能够独立于应用逻辑来观察器件输入上的数据,并控制输出的数据。另一个关键优势是它可以降低接入设备所需测试点的总数量。有了边界扫描,就不再需要物理测试点,从而降低电路板制造成本,并提高封装密度。
边界扫描可以用于各种级别的功能测试和调试,从内部IC 测试到板级测试,甚至能用于硬件/软件测试中。
边界扫描技术还被用来仿真。通过控制扫描信息在目标和调试器窗口之间的传输,仿真器的前端可以行使扫描管理器的功能。当然,当有一个主机来控制JTAG扫描信息时,必须让连接到这一扫描链中的其它器件也获知这一点。
JTAG 还让设备的内部组件都可以被扫描(例如CPU)。这使得JTAG 可以接入所有能通过CPU 接入的设备,因而可用来调试嵌入式设备,同时还能全速进行测试。
设计周期时间压力是由以下几个因素造成的:
集成等级的提高- 更多功能被集成到一个设备中,而不是添加离散器件。
时钟率提高- 外部支持逻辑导致的电气干扰。
更精密的封装- 这产生了外部调试连接性问题。
如今,这些同样的因素交织在一起,给为当前复杂的、更高时钟率的高集成设计提供所需的系统调试能力的扫描类仿真器形成了极大的挑战。系统发展的这些积极趋势,却给对系统活动的观察产生了反作用,而系统可视性却正是快速部署的关键因素。这个效应就叫做“日益下降的可视性”。
片上系统(SoC)模式将一个完整系统所有的功能都集成到了一张硅芯片中,包括处理器、存储设备、逻辑元件、通信外围设备和模拟设备。这些优势使得系统的可靠性得以提高,总体成本也降低了。
应用开发人员更喜欢图2中显示的理想化可视性级别,因为它不仅提供了可视性,还能控制各种相关的系统活动。随着集成等级和时钟速率的稳步上升,可视性和控制级别则不断下降。这些就造成了一个可视性和控制间隙,即期望的可视性和控制级别和现实级别之间的差距。这个间隙会随着时间的推移而不断扩大。
图2 可视性和控制间隙
各种级别的DSP 调试在集成过程中提供了各种作用。用户的体验使之能够尽快地提高生产力。基本的调试让DSP 开发人员可以配置好应用并使之运行,实时捕捉高带宽数据等高端调试让开发人员能使应用实时运行,而基本调整则帮助开发人员调整代码大小和性能。
片上和片外仿真的结合则能带来很多好处。实时执行控制可以带来移动、运行、断点(程序计数器)和数据观察点等标准功能。更高端的事件触发可带来设备可视性,并控制程序员模式。实时数据采集可通过调节一个稳定的程序来提供算法的实时可视性。而追踪功能则让工程师可以在整个调试不稳定程序过程中实时了解程序装况。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。