F2810片内的事件管理器模块可以提供多达16路的PWM输出信号,最小的死区时间宽度是一个CPU时钟周期,最小的PWM脉冲宽度和脉宽的增减量为一个CPU时钟周期,可以很方便地用来控制直流电机[5]。由于电机要求的PWM控制信号的幅值是5~10V,因此从DSP输出的PWM信号还需经过一个高速开关管反向器升压后送至电机的PWM控制端。
2.3 复位电路
系统的复位电路采用IMP708芯片,该芯片有上电复位、看门狗和电源监控功能。在系统的程序由于外部干扰导致“跑飞”时,IMP708的看门狗在一可选择的时间间隔内产生复位信号热启动系统。IMP708具有电源监控功能,通过IMP708和DS1556的双重监控能够保证使系统可靠运行。
2.4 键盘和液晶显示电路(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[6]。因为LCD是5V器件,所以其8位数据线不能和3.3V的DSP直接相连,需要在数据线上加电平隔离和转换芯片74LS245。
3.CAN通信协议设计
CAN遵从OSI层模型,按照OSI标准模型,CAN结构划分为两层:数据链路层和物理层,它们由CAN控制器的硬件实现电平变换和帧的封装。CAN网络中包括4种不同类型的帧。其中,数据帧将数据由发送器传至接收器;远程帧由节点发送以请求具有相同ID标志符的数据帧;出错帧可由任何节点发送,以控制总线错误;而超载帧用于提供先前和后续数据帧或远程帧之间的附加延时。另外,数据帧和远程帧以帧空间同先前帧隔开。在实际应用中,还需要建立自己的上层协议。在本系统设计中,采用简单实用的“命令项加数据项”结构[3],其完整数据帧结构如图5所示。考虑到工在业控制中,功能一般不多,因此命令项的长度设定为1B(可描述128种命令)。而在本控制系统中,命令所需参数一般不会大于7B,故数据项长度直接设为7B。
4.软件设计
系统的CAN应用节点部分采用的是BasicCAN程序,它包含初始化子程序、发送子程序、接收子程序三个部分。DSP软件编写采用的是TI公司的DSP集成开发环境CCS2000,它支持汇编语言和C语言编程。为了保证程序运行效率,核心算法FFT程序和中断向量表程序采用汇编语言编写,而其它程序都采用C语言编写,使本系统软件具有模块化、结构化、可移植性好和调试方便的特点。系统的软件执行过程是:首先是系统初始化工作,即设置寄存器、配置GPIO、定时器、A/D转换器和外部中断、启动A/D转换。然后检测GPIO有没有启动信号,检测到启动信号后,从另一个GPIO发出控制信号给直流电机加电。从A/D转换器里读取电流信号数据,再通过求平均值得到电机的电流值;对输出脉冲信号的数据进行FFT变换,求出基波的频率,再根据电机的具体型号乘以一个系数得到电机的转速。最后把测试电流和转速送给LCD显示,启动CAN总线传输,把测试结果传输到上位PC机,以对数据进行保存和分析。软件流程如图4所示。
5.结束语
本系统采用了以CAN总线构建了自动化小型直流电机测试系统,设计中以DSP芯片F2810为核心的自动测试单元能利用DSP的多路模拟量输入通道和多路PWM输出通道以及高速计算能力,同时实现对多个电机的准确、高效率的测试。该系统在测试速度、性价比和可维护性等方面均有明显的优势。
本文作者创新点:利用DSP TMS320F2810的多路输入通道和多路PWM输出通道,实现了在车间的一个测试节点上,一次接线就能完成电机所有占空比下的电流和转速的测试,一个测试节点能同时测试多个电机,并通过CAN总线实现测试数据的的自动化处理。大大提高了测试效率,节省了成本。