基于多MCU的自动测试诊断系统的设计
扫描二维码
随时随地手机看文章
随着IT产业和通信技术、电子技术、计算机技术的高速发展,大量的生产装备和产品的电子化、数字化、自动化、智能化的程度越来越高,与之配套的电子测量设备必须适应这种形势。因此,综合测量技术、电子技术、自动化技术和计算机技术于一体的自动测试系统发展日益完善,在一些高度电子化产品、航空航天和军用武器装备中以及工业自动化、通信、光学、能源等诸多领域中得到了广泛应用。
一般意义的自动测试系统是指采用计算机控制,能实现自动化测试的系统。这类系统通常是在标准的测控总线或仪器总线(CAMAC、GPIB、VXI、PXI、CAN等)的基础上组建而成的。目前,通用串行总线(Universal Serial Bus,即USB)以其方便的即插即用和热插拔特性及较高的传输速率,成为PC机领域广为应用的外设连接规范。本文介绍的自动测试诊断系统是以五片P89C668单片机为核心组成故障诊断平台,采用基于FT245BM USB芯片的通信卡建立计算机与测试诊断平台通信的桥梁,使其能对需要检测的组合逻辑数字电路板进行测试,并可以根据标准诊断数据库对产生故障的电路板进行自动故障定位。目前该系统能够对多种不含有不受控制的部件如CPU、存储元件、晶振、阻容式单稳态等的数字电路板进行自动测试及故障诊断,可测试的电路板边缘连接器的最大引脚数为96个。
1 硬件结构
该测试诊断系统的硬件主要由以下部分组成:
·计算机
·USB通信电缆
·USB通信卡
·多MCU系统测试诊断平台
·微型开关电源
·散热风扇
·通道连接适配器板等
1.1 计算机
计算机的主要功能是通过USB接口控制测试诊断平台,进而完成测试平台系统自检、通道输入/输出的定义、发送测试激励数据、接收响应数据、数据计算与分析等工作。
1.2 USB通信卡
USB通信卡是连接计算机与测试平台的桥梁。它的主要功能一方面是将计算机发送的控制命令、数据送到测试平台的主MCU,使测试平台完成各种测试任务;另一方面是将测试平台中多MCU系统的自检信息和测试结果送往计算机,以供计算机进行判断与分析。
USB通信卡是基于FTDI公司的FT8U245BM芯片组成的,具有数据传送速率高(达8Mb/s)和即插即用等优点。
1.3 多MCU系统构成的测试平台
多MCU系统由一个主MCU和四个从MCU组成。所有的MCU均采用PHILIPS公司的P89C668单片机芯片,其内部有可ISP/IAP编程的64KB Flash程序存储器和8KB RAM,每个机器周期可采用六个时钟周期,是传统单片机(80C51)的两倍。在其全双工增强型UART中具有帧错误检测和自动地址识别功能,另外还具有可编程的时钟输出功能及可编程的计数器阵列(PCA)等,是PHILIPS公司MCU家族中较为高端的产品。多MCU系统构成的测试平台如图1所示。
在本文设计的多MCU系统中,各个MCU的功能如下:
(1) 主机MCU的功能
·负责与PC机的通信。通信采用目前流行的USB总线通讯方式,一方面接收来自于PC机的命令与数据,另一方面向PC机发送测试数据和自检信息。
·解释来自PC机的命令,并向所有从机或者相应的从机发送。对来自PC机的数据进行分类,并发送给相应的从机。对自身的RAM进行自检。
·负责与四个从机的通信。通信为多机主-从方式,利用MCU的RxD和TxD端以全双工UART串行模式进行通信,并使用帧错误检测和自动地址识别功能。
·管理四个从机进行同步测试。主MCU利用P1口的低四位(P1.4、P1.5、P1.6、P1.7)向四个从机发送同步控制信号,使得多个从机在测试过程中能够保持同步性。
(2) 从机MCU1~MCU4的功能
·通过RxD端口,以串行通信方式接收来自主MCU的与自己相关的命令和数据。
·每个从机的24路I/O端口P0.0~P0.7、P1.0~P1.7和P2.0~P2.7共计96路分别与测试通道Port1~Port96相连接。根据I/O端口的设置情况,向定义的输出通道输出测试激励信号,从相应的输入通道读入测试结果并存入相应的RAM单元。
·在被测试电路板的一个输出通道测试完毕后,将测试的结果发送到主MCU的RAM存储区,并由主MCU发往计算机。
·负责自身数据存储区RAM的自检工作。当接收到主MCU的自检命令时,对自身的RAM进行自检,并将自检结果发送到主MCU。
1.4 测试通道适配接口卡
普通的被测数字电路板是不能直接插到测试平台的测试接口上的,需要有特制的测试通道适配接口卡才能进行连接。本系统提供的接口卡是96路通道的总线结构的接口卡,可与适用于本设计的数字电路板进行连接。如果要测试其它类型的数字电路板,则需要专门定做与其配套的测试通道适配接口卡。
2 软件设计
2.1 测试平台程序设计
本系统测试平台程序采用模块化设计,是基于Keil系统开发软件和TKS-668开发硬件,采用C语言与汇编语言编写的。模块化程序设计的思想就是要把一个复杂的程序按整体功能划分成若干相对独立的程序模块,各模块可以单独设计、编程、调试和查错,然后装配起来进行联调,最终成为一个有实用价值的程序。本系统的测试平台软件主要由系统的主程序、通信程序、测试程序和自检程序等模块组成。
2.1.1 主程序设计
主、从MCU的主程序设计流程图分别如图2、图3所示。本系统中的四个从MCU具有相同的功能,因此其主程序设计是一样的。主、从MCU在初始化中要设置的相关参数包括:串行口的方式、波特率、定时器的方式、中断等。
2.1.2 自检程序设计
主从MCU的自检是为了保证每个单片机都能正常工作,即USB和主MCU、主MCU和从MCU之间的通讯正常,并且保证每个单片机的RAM没有损坏。
主MCU和从MCU之间的通讯是否正常的自检是:先由主单片机向从单片机发一串数据,然后再由从单片机把接收到的数据发回主单片机,判断两串数据的个数和内容是否一致,一致的话则说明通讯正常。同理,USB和主MCU之间通讯自检的原理也是如此。
MCU的RAM自检的原理是:对于每一个RAM的存储单元,先把一个数据写入该RAM的单元,然后再从该单元里读出一个数据,判断两者是否一致,如果一致则说明该RAM单元没有损坏。
2.1.3 通讯程序设计
系统的通讯程序包括:主MCU与USB之间的通讯程序、主MCU与从MCU之间的通讯程序以及从MCU对被检测电路板的扫描程序。
主MCU和USB是通过USB的管脚D0~D7和主MCU的管脚P0.0~P0.7传递数据的。控制主要是通过USB的四个管脚: RXF、TXE、WR、/RD和主MCU的四个管脚:P1.4、P1.5、P1.6、P1.7进行的。当TXE为低且WR从0变为1时,数据写入USB;当RXF为低且/RD从1变为0时,数据从USB读到主MCU。主MCU通过P1.4和P1.5对USB的RXF和TXE进行判断,然后通过P1.6和P1.7对USB的WR和/RD进行控制传递数据。
主MCU与从MCU之间利用MCU的RxD和TxD端以全双工UART串行模式进行通信,串行通讯通过中断实现,使用了帧错误检测和自动地址识别功能。本系统的主MCU采用广播通讯方式,由特殊寄存器SADEN 和SADDR逻辑或产生从机的广播地址,利用地址自动识别功能,通过发送广播地址,同时发命令与四个从MCU进行通讯。当主MCU只和单个从MCU通讯时,采用点点通讯方式,由SADEN和SADDR相与产生的特定地址来确认哪些从机被选中与主机进行通讯,不需要再进行软件查询。
从MCU对被检测电路板的扫描程序采用的是功能测试技术。为了检测某一组合逻辑电路板是否存在故障,首先把该电路板插到诊断插槽上,由于每个输出端口只是与该电路板所有端口中的几个有逻辑关系,所以扫描程序只需对与某个输出端口有逻辑关系的电路板的输入端口进行从全0到全1的电平激励(比如有五个输入端口,一共有25=32组激励)。对于有逻辑关系的输入超过七个以上时,由于工作量很大,不实行从全0到全1的激励,而是从中选择128组激励进行类似抽查的检测,然后读取输出端口,把输出结果传输到计算机内,和标准数据库中的仿真结果进行分析与比较,判断是否一致,如果出现不一致的情况,则说明电路板存在故障。
2.2 应用系统软件设计
安装在计算机上的自动测试诊断系统软件采用Visual C 6.0语言编程,其主要作用是使计算机向USB接口通信卡发送测试激励数据、接收响应数据、进行数据计算与分析等。
2.3 标准诊断数据库的软件产生方法
建立标准诊断数据库的目的是为了进行自动故障定位。本系统可用两种方法建立标准诊断数据库:第一种方法是根据被测数字电路板的原理图,在一些EDA软件环境如Protel、Foudation、MaxplusⅡ中通过仿真功能生成标准诊断数据库。第二种是测试功能正常的数字电路板,在特定的激励下记录该电路板的响应数据,由软件自动追加到相应的数据库中,作为今后测试该电路板的标准诊断数据库。
由于本系统所要测试诊断的电路板端口数较多,采用第二种方法不但工作量非常大,而且还要确保所测数字电路板在测试过程中功能正常,因此本系统采用第一种方法。考虑到所测的电路板为组合逻辑数字电路板,所以本系统采用Xilinx公司的Foundation F3.1i软件环境,在原理图编辑器(Schematic Editor)中输入被测数字电路板的原理图,然后在功能仿真器(Functional Simulation)的Script Editor中利用软件自带的仿真命令自动生成标准诊断数据文件,再由应用系统软件将数据导入相应的数据库。
目前一般的自动测试诊断系统通常是在标准的测控总线或仪器总线(CAMAC、GPIB、VXI、PXI、CAN等)的基础上组建而成的,其成本较高、体积庞大、操作复杂,在测试过程中显得非常不方便,难以满足现代科技工作者的需要。本文介绍的自动测试诊断系统是以五片P89C668单片机为核心组成故障诊断平台,采用基于FT245BM USB芯片的通信卡实现计算机与测试诊断平台的通信。该系统的便携式结构特别适合于现场测试,具有成本低、体积小、重量轻、结构紧凑、自动化程度高等优点;系统的操作比较简单,只要掌握计算机的一般操作,具有一定的数字电路技术基础,能够看懂一般的数字电路原理图,经过简单的技术培训,详细阅读并理解本系统的使用说明后就可以进行操作;系统硬件模块的标准化和软件模块的可复用性使系统具有很强的扩展能力。目前该测试诊断系统已经投入使用,效果良好,完全达到了预期的设计目的。