1 引言
随着电子、电器类产品在社会生活中的普及,国内众多中小企业也纷纷开始自行研制,生产此类产品以满足市场的需求,但由于中小企业人力、物力的局限,往往将主要经历放在了产品的生产上,而对于产品的出厂检测却不够完善,造成产品返修率较高的局面,从实际情况来看,造成产生返修的故障中很大一部分是能够在出厂检测时被发现的。
2 SST89E58RD2特性介绍
SST87E58RD2是一款80C51微控制器,包含32KB+8KB FLASH和256+768B的数据RAM。SST89E58RD2的典型特性是他的×2方式选项,利用该特性,设计者可使应用程序以传统的80C51时钟频率(每个机器周期包含12个时钟)或×2方式(每个机器周期包含6个时钟)的时钟频率运行。
FLASH程序存储器支持传统的并行编程,也支持串行在系统编程(ISP)。ISP允许在软件控制下对成品中的器件进行重复编程,SST89E58RD2也可采用在应用中编程(IAP),允许随时对两片FLASH程序存储器重新配置,即使应用程序正在运行时也不例外。
SST89E58CD2特性如下:
80C51核心处理单元;
5V的工作电压,操作频率为0-40MHz;
64KB的片内FLASH程序存储器,具有ISP(在系统编程)和IAP(在应用中编程)功能;
通过软件或ISP选择支持12时钟(默认)或6时钟模式;
SPI(串行外围接口)和增强型UART;
PCA(可编程计数器阵列),具有PWM和捕获/比较功能;
4个8位I/O口(P0-P3),1个4位I/O口(P4);
3个16位定时器/计数器;
可编程看门狗定时器(WDT);
10个中断源,4个中断优先级;
2个DPTR寄存器;
低EMI方式(ALE禁能);
兼容TTL和CMOS逻辑电平;
掉电检测;
低功耗模式(掉电模式,外部中断唤醒,空闲模式)。
3 智能测试系统原理
本智能测试系统以SST89E58RD2为核心,其原理框图如图1所示,包括:
SPI口线 主要用于向被测主板进行程序下载和通讯;
I2C总线 向被测主板中的外部E2PROM读取数据;
RS232电路 用于与上位计算机的通信;
外部FLASH 主要存放被测主板的程序目标代码,选用AT29C010A;
指示灯电路,每个故障点用一个指示灯指示,总数有32个,用4片74HC595做输出驱动电路;
2个步进按钮 用于测试过程中的步进控制,其控制线直接连到SST89E58RD2的P1.1,P1.2口线上;
LED显示 用于测试步进的显示,用1片74HC595控制;
DI输入电路 选用74HC165逻辑芯片,并入串出;
DO输出电路 选用74HC595逻辑芯片,串入并出;
由于单片机外围接口芯片较多,故采用GAL16V8D作为控制译码电路。
4 智能测试系统功能
本文中的智能测试系统的测试对象是自动麻将机的主机板,以下对该系统的设计进行阐述。
自动麻将机的主要测试项包括:
主板供电:内部3个分块电源;12个9V交流DO信号,16个DI信号;4个电源信号;1个主电源和3个分支电源,1个蜂鸣器,1个带I2C的E2PROM;1个SPI口用于与智能测试系统通信和程序下载。
麻将机主机板选用AT89S52,该单片机具有通过SPI口系统编程(ISP)功能。
针对麻将机主机板的这些硬件功能,智能测试系统具有以下几个功能接口;
24个DO输出 用于检测被测主板的DI信号;
16个交流/直流DI输入 用于检测被测主板的DO信号;
一个SPI总线接口 用于被测主板的程序下载和通讯;
一个I2C接口 用于读写被测主板的I2C的E2PROM。
测试步骤如下:
(1)被测主板的电源测试
该电源的标称值为5V,判定条件为是否在4.75-5.25V之间,可通过由一个N555搭建的SHMILT比较器进行判断,通过指示灯显示结果是否正常。如果电源检测不能通过,后续的检测步骤不再进行,并由蜂鸣器提示。
(2)被测主板的 SPI连接测试和测试程序下载
通过SPI口串行下载命令读取被测主板CPU的特征码,通过识别判断为AT89S52芯片(麻将机主机板选用的单片机型号),即认为被测主板已连接上。因对于SST89E58单片机而言,他的SPI口是一个完全的SPI口,但AT89E52单片机的SPI口是用于FLASH的ISP功能,当特征码读对后,表明SPI口连线正常,此时测试系统将向被测主板下载测试程序,该测试程序的代码放在SST89E58RD2的FLASH地址为0X7000-0X7FF的空间内,下载完成后将使被板测主可以配合智能测试系统进行检测。
(3)被测主板的DI功能测试
将被测主板的16点DI分成两组,8点一组,与测试系统的DO口线相连,通过测试系统输出DO信号经被测主板采样后,再通过SPI口通讯读回采样数据,比较输出信号与采样信号的异同、判断是否有通道异常,若存在异常则通过故障指示灯显示。
(4)被测主板的DO功能测试
将被测主板的12个DO分成2组,8点一组和4点一组,与测试系统的DI口连接,通过SPI口通讯命令,让被测主板进行特定状态输出,测试系统通过DI采样,比较采样数据和输出特征数据的异同、判断是否有通道异常,若存在异常则通过故障指示灯显示。
(5)被测主板的断电数据保存测试
因被测主板另有一个非常重要的断电数据保存功能,该功能可使被测主板内部的电源检测电路一旦检测到失去电源后,CPU会在有限的时间内将一些特征数据存放到外部E2PROM(AT24C64)中。针对此功能,测试系统将通过I2C总线直接读取E2PROM内部的数据判断断电数据保存是否有效,通过指示灯指示。
(6)查看故障指示灯,完成测试
以上5个步骤完成后如果没头有指示灯显示故障,则可按下下载按键,将麻将机主机板的程序下载到AT89S52中,完成整个测试。如果发现还有故障,则按后退键再次进行测试,以便确认故障。
5 智能测试系统关键的程序代码
测试步进处理程序:
6 结 语
本设计实现的智能测试系统已应用于某自动麻将机的生产厂家,并取得了良好的应用效果。以往该厂产品的出厂检测均采用人工检测模式,完成检测需要花费20 min,且检测的范围局限于最主要的几项指标;引入本智能检测系统后,只需2min即可完成对产品的检测,且检测的范围覆盖了绝大部分功能,遇到检测不能通过的产品还可以根据智能检测系统的提示快速、准确地找到故障源,大大提高了生产效率。
该智能测试系统还可以进行更深入的开发:
(1)目前很多电子产品出厂前需要进行带电老化测试,但仅仅是带电空载,如果将智能测试系统引入老化测试,模拟产品的工作负载,使产品在老化测试的过程中满负荷工作,则能通过该老化测试的产品将在实际应用中体现出更稳定、可靠的性能。
(2)电子产品出厂前都需要标注序列号,以及产品的版本号,如何将产品的实体与序列号、版本号有效地控制起来,一直是众多厂家的棘手问题,如果将智能测试系统引入出厂产品的序列号、版本号管理也将是非常有效的,利用智能测试系统的上位机扩展功能,通过RS232与计算机相连,智能测试系统在向测试产品下载程序之前已经获取了该产品的版本号,再根据当天日期和出厂顺序等一系列属性计算出出厂序列号,当该产品检测通过后,智能测试系统将序列号和版本号上送给上位计算机,计算机中的专用软件将序列号和版本号存入数据库,并将序列号标注在产品上。
目前,本设计实现的智能测试系统正在进行二期开发,拟将智能测试系统引入老化测试和出厂序列号管理,开发成功后,将可大大完善系统的性能、提高系统的适用范围。