摘要:叙述嵌入式计算系统在开发阶段、生产环境和现场环境三种情况下的调测技术 和方法,以及如何在硬件和软件设计中进行可观测性和可测试性设计。 关键词:在线测试 可观测性 可测试性 BDM JTAG 引言 对于含有微处理器的装置来说,调测总是软件和硬件结合的。在产品开发的阶段以排错为 主,在产品开发后期以及生产和现场运行阶段,则是以测试为主。不同的阶段,调测的内 容、手段和使用的工具不尽相同。 测试接口并不是系统功能的一部分,测试接口设计本身也需要成本。对于小型简单系统来 说,没有必要也不允许(成本考虑)设计测试接口;对于复杂系统来说,设计测试接口的 花费是值得的。良好的测试接口设计可经缩短产品的开发周期,给产品维护、维修带来便 利。 对于嵌入式计算系统来说,测试往往是软件和硬件相结合的,既有借助于“正确”的软件 来测试硬件,也有借助于“正确”的硬件来测试软件。由于软件设计人员和硬件设计人员 的技术隔膜,二者常常在出现问题后相互指责,难以界定是软件还是硬件问题。对于嵌入 式系统的软件设计人员 来说,必须对硬件有足够的了解。这一点,和通用计算平台上的软件设计是不同的;反之 ,硬件人员也必须能够编写一些测试软件,以证明其设计的正确性。 1 开发阶段的调制方法 1.1 RAM版本的目标系统调试 通过ICE(In-Circuit-Emulate)来调试目标板是开发人员最常用的手段。在产品开发初 期,由于各种软件和硬件问题很多,通过仿真器并结合逻辑分析仪、示波器等硬件信号测 试工具能够很好地发现问题。 在仿真器环境下,通过仿真器的监控软件来控制用户软件的运行,使用断点、单步跟踪和 查看变量、CPU寄存器、存储器的数值等手段来查找问题。由于仿真器的软件和硬件需要 一定的CPU资源,用户软件在仿真器环境下运行和脱离仿真器后独立运行是有区别的。好 的仿真器能够尽量减小这 种区别。常见的仿真器从技术上区分有:单CPU仿真器、双CPU仿真器和ROM仿真器。 在仿真器环境下,程序一般是在仿真器的RAM存储器中运行的,所以这种阶段也称为“RA M版本的目标系统调试”。 1.2 ROM版本的目标系统调试 在仿真器环境下,目标板运行调试正确后,一般的做法是将应用程序写入目标板的非易失 性存储器中,让目标板单独运行。在很多情况下,目标板系统往往不能运行或者运行结果 和仿真器环境下不一致。而没有连接仿真器,无法观察各种软件状态,给分析问题造成一 定困难。在目标板上设 计指示电路有助于发现问题;在电路板上增加1个LED是最简单也是很有效的方法。对于复 杂系统,可以设计1个数码管显示输出接口,或者设计1个调试用串口,将调试信息发送到 PC机上显示。 在使用PC机作为显示输出设备时,一般的做法是使用Winodws自带的超级终端软件,无需 另外编制程序。和前二种方法相比,该方法的接口信号是双向的,调试者可以通过PC机输 入信息到目标板中,设定显示信息的类别。这一点,对于复杂系统的调试是很有价值的, CISCO公司的很多路由器 产品就使用这种方法来维护和调试。 2 生产阶段的测试方法 生产阶段的测试只是对硬件电路或者系统进行测试。测试目的是为了对产品或者部件进行 分检,找出有缺陷的产品。测试内容包括: *裸板测试——检查未安装元器件的电路板上的开路和短路缺陷; *成品生产缺陷分析——检查已安装元器件的电路板上焊点的短路和开路缺陷; *成品电气性能测试——认证每个单元器件的上电运作; *产品功能测试——认证电路模块的功能。 生产测试和开发阶段的硬件测试不同,需要测试方法快速、能成批测试,易于在制造生产 线上安装。在生产的不同阶段使用的测试工具和技术也不相同。目前常用的测试工具和技 术有:人工视觉检查(MVI)、在线测试(ICT)、自动光学测试(AOI)、自动X射线测试 (AXI)。其中人工视 醪馐裕∕VI)只能用于小批量试制产品。 在线测试(ICT)是最常用的一种线路板测试方法:使用专门的针床与已焊接好的线路板 上的元器件接触,通过针床在线路板上施加微小电压来测试线路通断、元件是否正确安装 。由于需要为特定电路板设计专用夹具,适合于单一品种民用型家电线路板极大规模生产 的测试;缺点是在高密 鹊腟MT线路板测试困难。目前的替代解决办法是使用光学方法测试(如AOI,AXI),或者 使用边界扫描技术(即基于IEEE1394标准的JTAG测试接口)测试。后者需要IC或者线路板 支持此技术。 功能测试是生产过程的最后阶段使用,测试线路板或者系统的功能指标,一般的功能测试 需要设计专用测试设备和测试软件。 3 现场测试技术 现场测试分为三种情况:一种是在线测试,测试设备不停止运行;一种是停机测试,被测 试设备停止运行;第三种为脱机测试,将被测部件从运行现场取出,放到专用的测试装备 上进行测试。从测试技术角度上说,后二者更容易进行各种测试;对于复杂系统来说,往 往故障和问题需要在设 备运行时才能发现和定位,必须进行在线测试。究竟采取哪种方式进行现场测试,取决于 故障状况和实际应用是否允许立即停机。 开发阶段产品和成熟产品的现场测试要求也不同:前者测试目的主要是发现设计中的问题 ,由产品开发人员进行;后者侧重于发现使用中的问题和失效的部件,目的是更换部件, 由产品使用人员进行。(但测试方法和步骤也有可能是设计人员制定的。) 现场测试和试验室测试的最大区别就是测试设备难以安装和连接:线路板封闭在机箱中, 测试信号线很难引入,即使设备外壳上留有测试插座,测试信号线也需要很长,传统的在 线仿真器在现场测试中无法使用。另一方面,现场往往没有实验室里的各种测试仪器和设 备,因此,必须有更好 的方法和手段来完成测试。 嵌入式处理器中目前有很多芯片具有类似Motorola公司683XX系列处理器的BDM调试接 口(详见第5部分)。这种接口是串行的,处理器内部固化了调试微码,为现场测试 带来了方便。对于不具备这种接口的嵌入式计算系统,在系统设计时将关键信号点引出到 一个测试接口插座上,通过该插座可输入测试激励信号和观察输出信号;对于软件测试, 可使用前文中所述的ROM板测试方法,外接显示部件来观察程序运行情况。 软件现场调试的另外一个要求是程序应能够现场下载,以便在发现问题后能够修改软件。 现场在线下载程序的方法有两种:一种是使用具有ISP功能的处理(如Philips公司的P89 C51RD系列MCU等),另一种方案是将软件设计成两部分,一部分是应用功能软件,另一部 分是完成前者下载到系 持械南略赝ㄐ湃砑 |
|