王伟达,王笑怡
(中国电子科技集团公司第四十七研究所,沈阳 110000)
某型号双冗余译码输出驱动电路被广泛应用于航空航天领域,其年供货数量较大,现有手动测试已经不能满足产能需求。因此专门针对该电路设计一款自动测试系统,满足该电路电参数三温测试需求。
测试系统采用上位机与下位机相结合的工作方式。上位机使用工控机,用于人机交互、控制测试设备、读取测试参数、保存测试数据等;下位机做成板卡形式,使用单片机C8051F500 作为控制器[1],使用RS232 接口或者USB 接口与工控机进行数据传输,用于响应上位机发送的测试命令、控制继电器阵列的切换,从而将被测对象接入测试电路中。
整个系统以工控机为核心,外配具有远程控制功能的可编程电源、数字多用表、电子负载等测试设备,可同时测量4 只被测模块电路。测试操作人员可以通过工控机来选择测试项,点击自动测试选项后,系统便能够自动完成相应参数的测量并生成报表[2],供后续工作使用。测试系统组成框图如图1 所示。
图1 测试系统组成框图
按照对详细规范中电路参数要求的分析,对测试设备进行选取,具体情况如下:
1)电源使用可控直流稳压电源,型号为GPD-3303S。工控机可以通过串口对电源输出进行控制,满足自动测试系统的需求。
2)数字多用表的型号为KEYSIGHT 34470A。该多用表既可以测量电压,又可以测量电流,这样可以减少测试设备的数量;工控机可以通过串口对数字多用表进行控制,比如电流模式、电压模式、读取数据等,满足自动测试系统的需求。
3)多路电子负载的型号为IT8702。该电子负载也可以与工控机通过串口进行通讯,满足自动测试系统的需求。
需要进行测量的参数有:输出截止电流、输出级漏电流、输出负载电流、输出级饱和压降、静态功耗电流。出于论述便利考虑,在此选取一只典型的被测电路,简述系统如何实现对其电参数的测试。所有开关的动作都通过单片机控制继电器实现[3],测试原理框图如图2 所示。
图2 测试原理框图
测试输出截止电流时,开关K9、K10、K13、K5 闭合,K11、K12 拨到3 端,数字多用表选择电流档,K1 闭合,读取数字多用表的电流值。此时为该模块第一路输出截止电流。然后断开K1,闭合K2。其他路的测量与此同理。
测试输出级漏电流时,K9、K10、K13、K5 闭合,K11 拨到3 端,K12 拨到2 端,数字多用表选择电流档,K1 闭合,读取数字多用表的电流值。此时为该模块第一路输出漏电流。然后断开K1,闭合K2。其他路的测量与此同理。
测试输出负载电流时,K9、K10、K13、K5 闭合,K11、K12 拨到2 端,数字多用表选择电流档,K1 闭合,读取数字多用表的电流值。此时为该模块第一路输出负载电流。然后断开K1,闭合K2。其他路的测量与此同理。
测试输出级饱和压降时,K9、K10、K1~K4、K7闭合,K11、K12、K6 拨到2 端,数字多用表选择电压档,K38 闭合,读取数字多用表的电压值。此时为该模块第一路输出级饱和压降,然后断开K38,闭合K39。其他路的测量与此同理。
测试静态功耗电流时,K1~K4、K8、K9 闭合,K10、K6 拨到2 端,K11、K12 拨到3 端,数字多用表选择电流档,读取数字多用表的电流值,所测即为该模块静态功耗电流。
硬件电路主要包括:电源电路、控制通讯电路、开关电路。
控制负载板上的芯片需要+5V 电源供电,而被测模块需要+10V 电源和+28V 电源。为减少电源的使用数量,设计了+10V 转+5V 电路。该电路由长晶科技公司的三端稳压集成电路CJ78M05 实现[4]。此款芯片输入电压范围宽,最大输入电压可达35V,最大输出电流可达500mA,具有短路保护和热停机保护功能,工作温度范围为-40~125℃。为了方便观测电源输入输出状态,在输入输出端分别增加LED指示灯,并使用100kΩ 电阻进行限流,减小不必要的损耗。为了防止电源正负极反接造成电路板上其他器件损坏,在10V 电源输入端串接一个二极管。这样在电源正负极接反的情况下,由于二极管反相截止,二极管后端的电路并没有电流流过,便能很好地保护后级电路。在输入端对地并联了TVS 管,用于有效地吸收浪涌信号。由于CJ78M05 有LDO 属性,输入输出压差较大,长时间工作会产生较大的热量,因此在实际电路中需要增加散热片对其进行散热处理。该部分电路的原理图如图3 所示。
图3 10V 转5V 电路原理图
控制电路用于接收上位机的指令,对继电器进行控制,因此控制板不需要进行复杂的运算。此处选择Silicon Labs 公司生产的8 位单片机C8051F500。该单片机具有运行速度快、存储容量大、集成度高等特点,具有64kB 的flash 和4kB 的RAM,完全满足存储功能需求,且具有片上看门狗功能,能够在程序跑飞的情况下,对系统进行复位,保护被测模块。片上的24MB 振荡器能够保证系统实现快速的响应[5]。控制电路原理如图4 所示。其中,由P5 为C8051F500提供程序下载接口。该接口接线简单,仅需要C2CK、C2D 及GND 三根线,即可对程序进行在线仿真和调试[6]。
图4 控制电路原理图
通讯电路用于实现C8051F500 与上位机之间的数据传送。由于C8051F500 单片机与上位机的信号电平不同,不能直接连接进行数据传送,因此需要使用中间电平转换电路。为了方便使用,在设计中增加跳线接口,使用者可根据实际情况选用RS232 通讯或USB 通讯[7]。通讯电路原理如图5 所示。
图5 通讯电路原理图
RS232 通讯电路使用Maxim 公司的MAX232芯片。该芯片为+5V 单一供电,能够将C8051F500输出的TTL 电平转换成上位机能够识别的232 电平。USB 通讯电路使用USB 转串口芯片CH340G,该芯片转换速度快,稳定可靠,可在电源处增加电容进行滤波处理[8]。
开关电路使用继电器进行切换,主要用于将仪器设备及被测通道切入测试电路中。继电器选择汇港HRS1。该继电器尺寸小,灵敏度高(线圈功率为200mW),具有3A 触点切换能力,一组转换,直流5V线圈电压。继电器工作原理为:当线圈两端存在压差且达到线圈的吸合电压时,由于电磁力作用,触点吸合。单片机IO 口驱动能力有限[9],故使用ULN2803芯片对继电器进行驱动。ULN2803 还集成有续流二极管,当继电器断开时,由于线圈电流不能突变,因此该续流二极管可以为线圈提供续流回路,保证电路安全。以其中典型的若干继电器开关电路为例,开关电路原理图如图6 所示。
图6 开关电路原理图
系统软件在设计上包括了上位机软件与下位机软件两个部分。其中,上位机软件用于负责人机交互界面、控制命令的发送、测试数据的读取、显示及保存等功能;下位机软件则用于负责响应上位机发送的命令,并控制相应的继电器,完成上传软件版本号等操作。
上位机软件采用VB 语言进行编写,流程图如图7 所示。操作界面如图8 所示。
图7 上位机软件流程图
图8 软件操作界面
上位机程序首先对各个仪器设备进行通讯检测,显示出通讯异常的设备。所有设备通讯正常后,等待使用者配置设备信息、选择详细规范号、一键连接所有设备,操作完成后,上位机程序会自动发送测试命令,读取测试结果,并将结果保存在Excel 中。如果测试过程中出现指标不合格的情况,上位机程序会将不合格产品的序号及指标结果进行标红处理。上位机程序为使用者提供“超差退出”选项,如果使用者选择“超差退出”,则上位机程序会停止发送测试命令,并初始化继电器及设备状态,等待使用者处理。如果使用者未选择“超差退出”,则上位机程序将继续不中断地进行测试。
下位机使用Keil 软件进行C 程序编写,串口波特率设置为115200。软件流程图如图9 所示。
图9 下位机软件流程图
程序首先对系统进行初始化设置,包括系统时钟、IO 口、定时器、串口及中断等。然后进入while(1)循环[10]。在while(1)循环中,实现有效数据判断、接收数据、命令解析、输出数据、接收反馈等功能。为了防止上位机数据发送意外中断而导致接收错误,在下位机程序中使用定时器对两个字节数据之间的时间间隔进行计时,如果超时则反馈给上位机接收错误信号,并舍弃接收的数据,否则对接收的数据进行解析,并判断上位机的命令要求,作出相应的响应[11]。
上下位机通信数据格式由帧头、指令、数据位长度、数据位、校验位及帧尾组成,如图10 所示。其中校验位由帧头、指令、数据位长度、数据位这些位进行异或而构成。
图10 数据格式组成
帧头由一个字节组成。单片机用作发送时帧头为AA,单片机用作接收时帧头为BB。
指令由一个字节组成,具体定义为:
0x01:测量输出截止电流;
0x02:测量输出漏电流;
0x03:测量输出负载电流;
0x04:测量饱和压降;
0x05:功能测试;
0x06:静态功耗电流;
0x07:读取软件版本号;
0x08:所有开关恢复默认状态;
0x09:接收错误,请重新发送。
数据位长度由一个字节组成,规定了后面数据位所占字节数。数据位为1 代表开关吸合动作;0 代表开关初始状态。数据位从左开始为第一个字节。第一个字节低三位的组合控制K8、K13、K38、K39、K40、K41,第四位控制K5,第五位和第六位固定为0,第七位控制控K6,第八位控制K7;第二个字节(由低位到高位)代表开关K1~K4 和K9~K12;第三个字节代表K14~K21;第四个字节代表K22~K29;第五个字节代表K30~K37。当命令为0x07 时,数据位第一个字节代表软件版本号,其他位可忽略。
此外,校验位为从指令开始到校验位之前的所有字节异或值。帧尾表示单片机的工作状态,用作发送时帧尾为EE;用作接收时帧尾为DD。
在测试进行之前,需要先做好以下几方面的选项设计:
①测试温度,即当前测试的环境温度,如常温、高温、低温;
②详细规范号,即要为该产品的两个不同等级选择相应的详细规范号;
③测试项默认全部测量,如果想单独测量某项指标,单独勾选即可;
④参数设置,即将所用仪器设备的参数设置好。
上述设置完成后,点击建立连接,再点击自动测试,系统便开始进入自动测试,每次四只产品。测试时,在当前界面显示实时显示结果。如果遇到超过指标要求的测试项,在设定“超差退出”的情况下,系统会将超差的测试项标红,并自动停止测试;如果未设定“超差退出”,则系统会将超差的测试项标红,但不会终止下一个模块的测试。所有模块测试完成后,系统会自动生成数据报表,超差的测试项在报表中仍然是红色字体,以便测试人员快速定位不合格模块。
使用该测试系统对被测模块进行上千次测试,测试结果满足产品精度要求,且测试速度快。对其中120 次测试的时间取平均值,得出测试一块电路所用的平均时间为22 秒,相比原手动测试系统的85秒大大节省了时间,且操作者由二人减少为一人。
该自动测试系统已经在实际生产中用于某译码驱动电路的测试工作,运转状态稳定可靠。由于不需要测试人员频繁操作,且能够自动生成数据报表,明显节约了人力与时间,能够胜任大批量的生产与科研测试任务,为提高效率、降低成本发挥作用。