基于MCU的测试系统
用C语言与汇编语言编写的。模块化程序设计的思想就是要把一个复杂的程序按整体功能划分成若干相对独立的程序模块,各模块可以单独设计、编程、调试和查错,然后装配起来进行联调,最终成为一个有实用价值的程序。本系统的测试平台软件主要由系统的主程序、通信程序、测试程序和自检程序等模块组成。
3.1.1 主程序设计
主、从MCU的主程序设计流程图分别如图2、图3所示。本系统中的四个从MCU具有相同的功能,因此其主程序设计是一样的。主、从MCU在初始化中要设置的相关参数包括:串行口的方式、波特率、定时器的方式、中断等。
3.1.2 自检程序设计
主从MCU的自检是为了保证每个单片机都能正常工作,即USB和主MCU、主MCU和从MCU之间的通讯正常,并且保证每个单片机的RAM没有损坏。
主MCU和从MCU之间的通讯是否正常的自检是:先由主单片机向从单片机发一串数据,然后再由从单片机把接收到的数据发回主单片机,判断两串数据的个数和内容是否一致,一致的话则说明通讯正常。同理,USB和主MCU之间通讯自检的原理也是如此。
MCU的RAM自检的原理是:对于每一个RAM的存储单元,先把一个数据写入该RAM的单元,然后再从该单元里读出一个数据,判断两者是否一致,如果一致则说明该RAM单元没有损坏。
3.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组激励进行类似抽查的检测,然后读取输出端口,把输出结果传输到计算机内,和标准数据库中的仿真结果进行分析与比较,判断是否一致,如果出现不一致的情况,则说明电路板存在故障。
3.2 应用系统软件设计
安装在计算机上的自动测试诊断系统软件采用Visual C 6.0语言编程,其主要作用是使计算机向USB接口通信卡发送测试激励数据、接收响应数据、进行数据计算与分析等。
3.3 标准诊断数据库的软件产生方法
建立标准诊断数据库的目的是为了进行自动故障定位。本系统可用两种方法建立标准诊断数据库:第一种方法是根据被测数字电路板的原理图,在一些EDA软件环境如Protel、Foudation、MaxplusⅡ中通过仿真功能生成标准诊断数据库。第二种是测试功能正常的数字电路板,在特定的激励下记录该电路板的响应数据,由软件自动追加到相应的数据库中,作为今后测试该电路板的标准诊断数据库。
由于本系统所要测试诊断的电路板端口数较多,采用第二种方法不但工作量非常大,而且还要确保所测数字电路板在测试过程中功能正常,因此本系统采用第一种方法。考虑到所测的电路板为组合逻辑数字电路板,所以本系统采用Xilinx公司的Foundation F3.1i软件环境,在原理图编辑器(Schematic Editor)中输入被测数字电路板的原理图,然后在功能仿真器(Functional Simulation)的Script Editor中利用软件自带的仿真命令自动生成标准诊断数据文件,再由应用系统软件将数据导入相应的数据库。
目前一般的自动测试诊断系统通常是在标准的测控总线或仪器总线(CAMAC、GPIB、VXI、PXI、CAN等)的基础上组建而成的,其成本较高、体积庞大、操作复杂,在测试过程中显得非常不方
- 基于DSP的中频电源测试系统设计(08-08)
- 基于DSP的列车应变力测试系统设计(04-26)
- 基于USB接口和DSP的飞机防滑刹车测试系统(06-27)
- ARM-WinCE分布式系统平台的时钟同步设计(01-10)
- 基于MSP430的微型存储测试系统设计(01-16)
- 基于DSP的列车应变力测试系统(02-14)