随着IT产业的迅速发展,用在电子产品上的带PWM控制的小型直流散热风扇(以下简称风扇)的需求量越来越大。这一类直流风扇在出厂前进行性能测试,也就是对风扇所用的微型直流电机的电流和转速进行测试。具体的方式是给风扇提供多种占空比的PWM控制信号,在不同的占空比下分别测试风扇的电流和转速。传统的测试方法需采用多台通用仪器:用信号发生器提供风扇所需的PWM信号,通过电阻采样风扇的电流,并送电压表头显示,使用光电感应的方法测转速,通过示波器观察波形。采用传统方法,就必须在生产线上设置多个测试工位,每个测试工位只能测量一种占空比下PWM信号控制的风扇电流和转速。因此,每个测试工位都要配置测试员和整套的测试仪器,使得成本很高。更重要的问题是测试效率低,这是因为要完成一个风扇的测试必须经过多个工位,每个工位测试时都要插拔风扇的接线,导致测试效率很低。传统的测试方法已在为直流风扇制造环节的瓶颈,生产企业越来越迫切地需要一种专用的自动化测试系统来提高测试效率。针对这种状况,研制了一种基于TI公司的DSP控制器TMS320F2812A的新型直流风扇自动测试系统。该系统给风扇提供各种占空比的PWM控制信号,通过DSP自带的A/D通道采样风扇的电流信号和OP(Output Pulse)信号,计算出风扇的电流和转速,送到液晶屏上显示,同时还通过CAN总线送到上位机保存和分析。此系统可同时测试四个风扇,在一个工位上一次接线就能完成所有占空比下的电流和转速的测试,实现了直流风扇的一站式测试,大大提高了测试效率。
1 TMS320F2812A简介
TMS320F2812A(以下简称F2812A)
是TI公司的TMS320C2000系列DSP控制器中最新也是性能最好的一种。其性能为:32bit处理器精度,最高主频150MHz,128×16bit FLASH,18K×16bit SRAM,高达56个通用I/O引脚。F2812A有两个事件管理器模块,片上资源非常丰富,不需扩展很多外设。F2812A带宽有16路12位的高速A/D转换器,输入模拟电压范围是0~3V,最高采样率为12.5MSPS,自动排序器可以提供高达16路的通道自动切换,也可以分成两个独立的8通道自动切换。F2812A最多可提供16路PWM波形输出,支持SCI、SPI、MCBSP、eCAN等多种通信方式。
2 系统硬件组成
该测试系统可以同时测试四个风扇。硬件部分主要包括:风扇的电流和输出脉冲(OP)的信号采集和信号调理电路、PWM输出电路、启动上电电路、CAN通信和键盘显示接口等部分。当F2812A控制器接收到启动信号时,通过通用I/O(GPIO)口给风扇加电,同时通过F2812A片内的PWM模块输出占空比可调的矩形波信号控制风扇的转速。风扇的电流信号和OP信号经过信号调理电路进入到F2812A的片内A/D转换器,转换成数字信号供DSP处理。DSP计算出来的电流和转换值显示在液晶显示路上,同时通过CAN总线传 送到上位机进行保存和分析。键盘的作用是输入测试参数,包括PWM信号的占空比、转速和电流的上下限参数等。
2.1 风扇电流和OP信号的采集调理电路
F2812A带有16路12位的高速A/D转换器,输入模拟电路范围为0~3V,最高采样率为12.5MSPS。本系统所检测的风扇的电流会因型号不同而差别很大,小到几十毫安,大到二、三安培。如采用常用的串精密电阻采样的方法,当被测电流较大时,电阻的压降对电流的带负载能力会产生较大的影响;当被测电流很小时,电阻上产生的压降又太小,会直接影响测量的精度,所以这种采用串电阻直接测量的方法很难满足直流风扇测试的要求。
在本系统中,采用了美国MAXIM公司的双向精密电流传感放大器MAX471。MAX471内置35mΩ的精密传感电阻,可测量的电流范围是±3A,其响应时间、精度高漂移等指标均很理想,可以适应3A以内的各种规格直流风扇的电流测量。电流信号通过RS+和RS-输入到MAX471的采样电阻RSENSE上,MAX471通过一个2KΩ的输出电阻将电流转换成0~3V的电压信号,直流送到DSP的A/D转换器中。
OP信号是从风扇直接输出的一串方波信号,其频率和风扇的转速成正比,用于检测风扇的转换。OP信号是电压信号,经电阻分压转换到0~3V内,然后经过一个电压跟随器传送到DSP的A/D输入端。
2.2 PWM输出信号驱动电路
F2812A片内的事件管理器模块可以提供多达16路的PWM输出信号,最小的死区时间宽度是一个CPU时钟周期,最小的PWM脉冲宽度和脉宽的增减量为一个CPU时钟周期,可以很方便地用来控制风扇的直流电机。由于风扇要求的PWM控制信号的幅值是0~10V,因此从DSP输出的PWM信号还需经过一个高速开关管反向器升压后送至风扇的PWM控制端。
2.3 启动上电电路
F2812A片内有56个通用I/O引脚,通过I/O复用控制寄存器来选择是引脚的基本功能还是通用I/O功能,通过数据和方向控制寄存器控制双向I/O引脚的数据和数据方向。
按键信号经施密特触发器74LVC14去自动后送入通用I/O引脚,F2812A检测到该按键信号后,从另一个通用I/O引脚输出一个控制信号给三极管驱动的继电器,为风扇加电,启动测试过程。
2.4 CAN通信模块
F2812A片内有增强型CAN控制器模块,完成兼容CAN2.0B协议,最高传输率为1Mbps。该CAN控制器模块通过CAN收发器件A82C250驱动后可以挂到CAN总线上。
2.5 键盘和液晶显示电路(LCD)
键盘采用标准的PS/2口的小数字键盘,用来输入设置参数。键盘和DSP之间采用复杂可编程逻辑器件(CPLD)作译码电路,将键盘的扫描码映射到DSP的I/O扩展地址0x8001。当有键按下时,CPLD发送一个中断信号到DSP,然后DSP从I/O扩展地址0x8001读取扫描码。
液晶显示模块(LCD)和DSP之间通过CPLD译码,将命令控制I/O映射到地址0x8001,将数据控制I/O地址映射到0x8003和0x8004。因为LCD是5V器件,所以其8位数据线不能和3.3V的DSP直接相连,需要在数据线上加电平隔离和转换芯片74LS245。
3 软件设计
程序的主要流程为:①首先执行系统初始化的工作,即设置寄存器、配置GPIO、定时器、A/D转换器和外部中断,并且启动A/D转换。②检测GPIO有没有启动信号,从GPIO中检测到启动信号后,从另一个GPIO发出控制信号给直流风扇加电。③从A/D转换器里读取电流信号数据,再通过求平均值得到风扇的电流值;对OP信号的数据作FFT变换,求出基波的频率,再根据风扇的具体型号第乘以一个系数得到风扇的转速。④把测试电流和转送给LCD显示,并且通过CAN总线把测试结果传输到上位机,以保存和分析测试数据。
与LCD相关的程序包括发送控制命令和写显示数据两部分。在使用控制字选择操作位置(页数、列数)之后,将数据发送到数据控制I/O口。由于LCD相对于DSP来讲是慢速设备,在命令之间需要增加延时语句。
除了主程序外,程序中还涉及到一个外部中断。小键盘的操作采用外部中断方式,当有键按下时,DSP接收到一个外部中断信号,相应地,中断服务程序从I/P扩展地址0x8001读取键值扫描码。通过对键盘的操作,可以设定输出占空比,测试电流和转速的上下限参数等。
编程工具采用TI公司的DSP集成开发环境CCS2000,它支持汇编语言和C语言编程。为了保证程序运行效率,核心算法FFT程序和中断向量表程序采用汇编程序编写,而其它程序都采用C语言编写,使本系统软件具有模块化、结构化、可移植性好和调试方便的特点。
在小型直流风扇的性能测试中,以F2812A为核心的自动测试系统能利用DSP的多路模块量输入通道和多路PWM输出通道以及高速计算能力,实现多路信号的实时计算、高效率的准确测试。该测试系统已经在一些小型直流风扇生产厂家中使用,取得了良好的效果。实际应用表明,该系统在性价比、测试速度和可维护性等方面均有明显的优势。