目前国内外相关厂家的在线测试已经做得相对成熟了,软硬件配套设施先进且大多实现国产化,其在线测试的自动化程度与国外相比估计已经相差无几。尽管如此,功能测试的自动化进程却一直进展相当缓慢。虽然国内也有不少厂家在一直研究功能测试的自动化仪器,并且也有少量产品已经投放市场,但从目前的应用情况来看,其实际应用效果似乎不尽人意,远远达不到客户预期的大大提高生产效率的要求。这也就是为什么直到现在,各加工厂只是在生产线上配备了自动在线测试仪而没有装配自动功能测试仪的原因。
在挂式空调器用控制板的生产过程当中,控制板在下线之前一定要经过成功的在线测试(ICT)和功能测试(FT),否则生产出来的就是不良的产品。在线测试主要是对控制板的R、L、C等元器件的电气数值进行量测,以确定有无反插件、漏件、错插件等;功能测试则主要检测电脑板整体运行性能是否达标,各部分模块工作是否正常等,只有成功经过以上两步测试的控制板才算是合格的产品。
正是出于此目的,本文对一种挂式空调器用控制板自动功能测试仪的具体实现作一介绍。
计算机与测试仪的通信方式
计算机控制着仪器的自动测试全过程,这一切都要有配套的计算机测试软件来实现,本设备使用的相关配套测试软件采用VisualBasic语言开发,可以用四画面同时显示四台仪器的测试情况。该软件可以实现对测试资料的统计、分类和查询等功能,最终的测试结果可以导出为EXCEL格式文件。
计算机和每台测试仪之间采用标准RS-232全双工异步串行通信,速率为9600b/s, 1位起始位,1位停止位,采用奇校验。通信协议采用如下格式:
头码 + 长度+ 功能+ 数据(N个字节)+校验码字节
为了充分的保证测试数据在计算机和测试仪之间正确的传输,而不发生冲突,在上位机软件和测试仪开始运行时,首先采用上位机为主机测试仪为从机的主从模式,此时上位机具有最高控制权,让双方获得正确的握手信号,以建立起通畅的通信链路,为测试数据的正确传输做好准备。双方一旦握手成功,便进入上位机为从机、测试仪为主机的另一种主从模式,最高控制权转给下位机。在这种模式下,测试仪将获得的测试数据通过串口上传微机,由微机将数据保存并显示。
当计算机和测试仪分别接收到对方的发送来的指令和数据后,先求校验和。本协议规定接收和发送的数据包的最后一个字节为校验码字节,该字节等于前面所有字节的异或和。具体计算方法如下:
头码字节 ^ 长度字节 ^ 功能字节 ^ 数据字节1 …… ^ 数据字节N =校验码
信号检测和遥控模拟
电压检测
控制板输出的交流信号由于电压高,绝对不能用仪器直接去量测,所以为了保护仪器,交流信号在进入仪器之前,一定要进行光电隔离,如图2所示。220V的交流电首先经过一个100k/3W的大电阻降压限流后,再进入光藕,这样光藕的另一端就会有一个幅度为5V,频率为50HZ的脉冲输出,此信号再进入量测的单片机,通过程序对此脉冲计数,即得此强电信号的存在与否,从而也就测得了此电脑板该项输出功能是否完好的信息。
控制板上的5V和12 V电压信号也需要输出,过程是直流电压信号经由三极管反相后,直接进入单片机测试端如图3所示。直流电压信号由二极管D504进入,由三极管反相后从电阻R504取出进入单片机测试引脚,中间加三极管可防止干扰信号串入单片机,增强了抗干扰能力。
脉冲检测
测量脉冲信号有两种方法,一种是测量周期法,另一种是测量频率法。周期法适合于测量低频信号,频率法适于测量高频信号。
(1)蜂鸣器鸣叫次数的检测
由于空调控制板输出的蜂鸣器鸣叫脉冲,只在其鸣叫时才有输出,又因为实际测试的是蜂鸣器的鸣叫次数,而不是其鸣叫脉冲的周期或频率,故无论采取以上哪种方法测试都不合适,这里采取对蜂鸣器鸣叫脉冲进行纯计数的方法来获得其鸣叫次数。由示波器测量可知蜂鸣器鸣叫脉冲周期为0.25ms,每鸣叫一次的时间长度为100ms,鸣叫一次的计数100/0.25=400,鸣叫两次或四次的时间间隔也为100ms。又知给空调控制板发送补偿指令后,蜂鸣器才会有2次或4次的鸣叫,故可以此时启动计数,从而获得发送补偿指令后的计数值可能为800或1600左右,据此确定蜂鸣器鸣叫次数。
(2)步进电机驱动脉冲的检测
步进电机驱动脉冲是一组有特殊规律的脉冲。空调控制板上用的是4相步进电机,采用8拍驱动方式(A—AB—B—BC—C—CD—D—DA),其驱动信号如图4所示。每相在单位时间内出现的电平变化次数是相同的,通过在单位时间内对各相电平变化次数计数值的比较,据此可以检测步进电机短路、错相、缺相。
(3)转速测量
求取空调控制板上PG电机的转速可以采用测脉冲周期的方法,因为此电机最高转速一般不会高于2000r/min,据此求得其转速的反馈脉冲最高频率等于33Hz × 3 约为100Hz 左右(PG电机每转一圈输出3个脉冲),如此低的脉冲采用测量周期法会比测量频率法产生的误差更小。
R为转速值, TPG为PG电机转一圈的时间,200ms为定时器对PG电机转5圈进行计数的时间基数值,TCN 为计数的个数。(200ms × TCN)即为PG电机转5圈所用的时间,之所以先求取PG电机转5圈的时间是为了提高测量准确度,防止每次测得的转速值偏差太大。
遥控模拟
现代空调控制板都具有遥控器功能,这是必不可少的,测试仪要测试空调控制板就必须给它发送模拟遥控器指令,以让它执行开机、关机、制热、制冷等动作。各种遥控器指令实际上是一串串按照一定协议被编码的脉冲。一般这种协议是遥控器给空调控制板发送数据的专用协议。这种脉冲指令可由测试仪按照编程者的意愿依靠单片机里的定时器产生,其产生的信号具有波形整洁、规则、无毛刺的优点,非常适合模拟一些专用的低频通信信号。
当由单片机的定时器模拟遥控器所发送的信号时,要求定时时间必须精确,其产生的脉冲宽度和协议所要求的误差最好不要超过1ms,否则会导致信号模拟失效,从而让电脑板接收不到正确的遥控指令,这种错误是非常隐秘且难以捕捉的,有时侯开发者可能会怀疑自己的程序有问题,寻觅半天,却最终发现是由于自己的定时精度达不到设计的要求。
硬件实现
如图6所示,模拟的遥控信号从与三极管Q2基极相连的电阻R8进入,从Q2集电极输出,再直接连接到空调控制板遥控接收端即可。在这里,三极管Q2起到加强驱动能力的作用。
软件编程
测试仪按照遥控协议发送出来的数据,本质上无非是一些用来表示二进制的 0和1 的周期恒定不变的脉冲信号。只不过这种信号具有人工预先约定好的固定的格式,从而使其具有了传送二进制数据的能力。。
通信的双方一旦 (本遥控发送实质上是一种单工通信) 获知了通信协议的内容和二进制数据0和1 的固定格式的波形表示方法,即可通过软件编程实现双方的通信了。下面是一段按照以上格式的波形所写的如何产生二进制数据1的C代码,该代码在51开发软件WAVE环境下编写:
#include
#define MS2 2000
#define MS9 9000
sbit RemoteSend = P1 ^ 0;
void InitTimer0(void);
void main(void)
{
InitTimer0();//调用初始化定时
器函数
while (1);
}
void InitTimer0(void)
{
TH0 = (65536 - MS2) / 256;//初
始化为2MS
TL0 = (65536 - MS2) % 256;
RemoteSend = 1;//先输出2ms高
TMOD = 0X01;//TC0 初始化为
16位定时器
ET0 = 1; //TC0 溢出中断使能
EA = 1; //全局中断使能
TF0 = 0; //TC0 中断标志清0
TR0 = 1; //TC0 启动
}
void Timer0Service(void) interrupt
1 using 0 //中断服务程序
{
TH0 = (65536 - MS9) / 256;//初
始化为2MS
TL0 = (65536 - MS9) % 256;
RemoteSend = 0;//输出变低
}
结语
开发的功能自动测试仪已经应用在了控制板的生产过程中,提高了检测的效率,并实现了不同功能缺陷的分类汇总,为提高和改进控制板的产品质量提供了基础。
-
单片机
+关注
关注
6031文章
44508浏览量
632498 -
测试仪
+关注
关注
6文章
3681浏览量
54727 -
计算机
+关注
关注
19文章
7394浏览量
87683
发布评论请先 登录
相关推荐
评论