概述
近年来,随着空调市场的不断扩大,竞争也日趋激烈;从而对空调生产成本控制提出了更高的要求,空调生产过程中测试成本占据了生产成本相当大的比重。同时,生产测试的方便性、准确性和有效性都影响着产品质量,从而最终影响空调品牌的信誉。
国内空调生产厂家对空调主板的测试大多数仍停留在手工检测阶段,为提高生产测试中的自动化程度,我们设计了空调主板自动测试系统;自行研制的主板测试数据的实时监测电路是该自动测试系统的一个重要组成部分。该监测电路是以Philips增强型单片机P89C51RD2为核心,实时监视空调主板内的单片机与显示驱动芯片之间的同步串行数据,确保对空调主板检测的准确有效;同时根据工控机软件定义的检测流程,将计算机发出的控制信号传送给空调主板的单片机系统,从而模拟空调遥控器的各种操作,实现生产测试系统的流程化和智能化。
监测电路硬件的设计
主板测试数据实时监测电路功能要求主要包括三个方面:空调显示数据的监测、风叶步进电机控制脉冲的监测和遥控器功能的模拟。对于前二类数据的监测由于实时性要求高,工控机在多任务监控软件条件下无法胜任;而对于遥控器功能的模拟是为了提高测试系统的自动化程度,在计算机操作平台上实现鼠标点击来模拟空调遥控器的操作。本文主要描述该实时监测电路中显示数据监测和遥控器模拟的实现。
监测电路硬件基本组成
图1.空调主板测试数据实时监测电路硬件结构
结合监测电路的特殊功能,为提高所设计测试系统的可靠性,单片机采用外部看门狗(Watchdog)复位芯片X5045,该芯片内含512字节的 E2PROM可以用于存放系统的相关配置;同时将多余的I/O用于LED指示灯,方便单片机软件调试并指示监测电路的工作状态,硬件电路基本组成如图1所示。
监测电路功能分析
实时监测电路所采集的显示数据是空调主板上单片机与显示驱动芯片PT6961之间的同步串行通讯数据。PT6961芯片(引脚如图2所示)是台湾普诚(PTC)公司生产的专用LED驱动芯片,支持10×3键盘扫描和由软件配置的12位×6段或11位×7段显示模式,与控制器的数据接口为同步串行方式:数据输入引脚DIN、数据输出引脚DOUT、时钟引脚CLK和通讯使能引脚STB。[3]由于在空调主板应用中没有键盘扩展的需要,PT6961与主板单片机之间通讯有三个I/O:DIN、CLK和STB。因此,监测电路必须通过这三个数据接口,编写单片机软件准确实时地识别空调主板传送给PT6961的显示数据,考虑到主板采用单片机主程序循环方式刷新显示驱动芯片,并且数据流格式固定,CLK频率达65KHz。监测电路中的单片机在采集DIN数据串时,由于数据速率较高且时钟频率不确定,因此将采集一串数据作为一次任务,且在该任务内不允许其它类型的中断发生。基于分析与实验结果,将DIN引脚与单片机普通I/O连接,而STB和CLK则与单片机的INT0和 INT1外部中断输入引脚相连,用于采集任务的开启和通讯数据位的监测。
监测电路的另一重要功能是模拟空调遥控器的信号来测试空调主板的各项功能,结合空调主板的特点:遥控信号是由厂方掩膜芯片生成的PWM信号,并调制在 38KHz红外载波;在主板由红外接收器件解调后直接输送给单片机I/O脚。在设计监测电路时模拟遥控信号有二种方案,第一种方案是:由监测电路的单片机模拟遥控器上各相关按键动作,仍由遥控器发送红外指令;第二种方案是:直接由监测电路的单片机I/O脚输出PWM信号,该PWM信号与红外接收器输出的 PWM信号呈并联方式(逻辑与的关系)。第一方案对监测电路的单片机软件要求简单,但硬件组成复杂,涉及到监测电路与遥控器连接线的问题,当空调遥控器型号不同连接方式将随之改变。第二方案硬件简单,当生产空调主板改型时只需配置软件协议即可,鉴于在实际测试过程中,遥控器与监测电路同时输出遥控信号的概率极小;而且即使出现该现象,对各相关硬件电路没有任何影响,只是空调主板对该次PWM信号无法正确识别而已。因此,监测电路采用后一方案。
监测电路与工控机之间的通讯任务包括:监测电路传送显示数据给工控机,该数据是计算机判别所检测的空调主板工作状态的依据;工控机下达各测试流程遥控命令至监测电路。
监测电路单片机软件与通讯协议
监测电路对显示数据的采集与处理
空调主板单片机与显示驱动芯片PT6961同步串行通讯数据格式(如图3所示)包含:Command2、Command3、Data1至Datan、 Command1和Command4。其中Command2为数据配置命令用于描述本次串行通讯完成的任务:读键盘数据或写显示数据模式; Command3地址配置命令设定本次传输数据的开始地址(允许值为00H至0DH);Command1显示模式设置命令,设置值与PT6961扫描显示接法有关,一旦外围电路确定该命令值不变;Command4显示控制命令用于关闭和开启PT6961的显示输出、配置显示输出脉冲模式。在所监测的空调主板中固定地传送14字节的Data,而Command?2、Command3和Command1在每次通讯中,其值保持不变,从而为软件识别采集数据是否有效提供了必要的保证。
图3.空调主板单片机与显示驱动芯片同步串行通讯数据格式监测电路
MCU 外部中断INT0、INT1配置为下降沿触发中断工作方式,监测电路在采集显示数据时,由STB信号触发单片机的INT1中断,并由INT1中断处理程序开启INT0中断。当CLK引起INT0中断后,INT0中断处理程序进行一次显示数据采集,并对命令字节进行判断,一旦出错则放弃本次采集,否则采集完成固定长度18字节后关闭INT0和INT1中断,每次INT0中断采集1字节数据,软件采集流程如图4所示。主程序则将显示数据经有效性处理后等待工控机的查询,同时允许下一次采集。
图4.采集同步串行显示数据流程
监测电路与工控机的串口通讯协议
监测电路与工控机之间采用标准RS232、半双工通讯方式,数据速率由软件配置:9600或19200Baud。每次数据通讯由工控机发起:查询监测数据或发送遥控命令,监测电路根据功能码做出相应的响应。
监测电路与工控机的通讯数据包括:查询命令、显示及其它监测数据、遥控命令和监测电路回送应答。显示数据由8个字节的二进制数组成,具体每个二进制位表达含义由空调品种决定;串口通讯中将这些数据按高低4位分别编码成相应的ASCII码。而遥控器编码规范采用特殊的编码格式,包括:引导码、帧间分隔符、数据 “0”、数据“1”和一次发码的终止符,这些码字分别采用不同时间长度的脉冲来表达;而且具体的编码序列随空调品种的不同而存在差异。为了在串口上传送遥控器命令序列,通讯编码采用ASCII代码,并为遥控码分配特殊ASCII码(如:引导码为6CH,遥控信号帧间分隔符为7CH),具体通讯协议如表1描述。
表1.RS232通讯帧格式
利用通讯协议的约定,实现遥控命令和其它数据的区别;并由工控机根据测试空调主板的品种自动生成遥控命令序列,扩大实时监测电路的适用范围,提高整个空调主板生产测试系统的灵活性。
结语
由于空调主板中的单片机与PT6961的同步串行通讯数据速率较高,实时监测电路的控制器采用P89C51RD2,晶振使用24.576MHz,并配置 MCU工作在双倍速(6分频)模式下。空调主板显示数据的刷新速率并不高,往往间隔达到0.6秒;并且显示数据的内容变化不大,因此没有必要在空调主板 MCU每次刷新PT6961都进行采集。
通过实验与测试分析,经过单片机软件处理后上传工控机的显示数据准确率达到99.5%以上,能够很好地满足空调主板生产自动测试系统的要求。采用实时监测电路的测试系统具有高可靠性、高实用性、高扩展性等优点,从而提高了空调主板生产测试的自动化水平。