直流电机监控系统是机电产品中的重要环节,其控制性能反映了机电设备的控制质量。灵活、方便、准确、实时的监控需要对电机的转速信号进行测量和处理,以达到精确控制转速的目的。
2 系统总体设计
ARM/DSP/FPGA虽精度高、速度快,但设计复杂,价格也一直居高不下。本系统采用一种适用于小容量存储器单片机(如PIC系列)系统且功能强大的RTOS—Salvo。无需扩展大量的RAM和ROM,并且实时性好。大大节省了成本。系统选用PC机作为上位机,运用API函数及MSCOMM控件实现计算机通信。PIC16F877A单片机及外围电路组成一个单片机系统。作为下位机。电路设计包括PWM驱动、CCP捕捉、A/D模数转换、LCD液晶显示、RS232和SPI串行通讯以及下位机双机通信模块。系统总体框图如图1所示。
3 Salvo系统简介
嵌入式实时操作系统Salvo具有占用系统资源少和功能强大两大特点。
3.1 Salvo占用的系统资源
Salvo最大的特点是占用系统资源少,特别是占用存储器资源极少。它不但适用于51系列单片机,也适用于存储器资源更少的PIC系列单片机。Salvo占用ROM资源取决于用户调用的系统函数,占用RAM取决于用户定义的变量、任务和事件的数量。以PIC16系列单片机为例,每个全局变量占10 B,任务占5 B,事件占3 B。
3.2 Salvo功能和性能
Salvo是一个基于优先级任务切换、支持事件驱动的多任务嵌入式实时操作系统。Salvo共支持16个任务优先级,且多个任务可共用一个优先级,任务按优先级高低切换,对于多个同一优先级的任务则以时间片循环方式(round-robin)切换。Salvo支持任务和事件的数量取决于RAM的大小(Salvo默认支持255个任务、255个事件和255个消息队列)。Salvo内核主要提供以下几类函数供用户应用程序引用:
任务管理:提供任务建立、任务撤消功能;
时间管理:提供任务延时函数功能;
信号管理:提供信号量建立、删除、等待、发出等功能;
消息管理:提供消息建立、删除、等待、发出等功能。
4 系统硬件总述
通讯部分主要由两部分组成:单片机与PC机以及PIC单片机之间的通讯。PC机与下位单片机间互传数据采用RS232串行异步通信方式。而PIC单片机之间的通讯则采用SPI总线,它是主要用于处理器和外设同步串行通信的4线接口。采用同步时钟把串行数据以8位码的形式移入和移出微控制器。SPI总线是一种主/从接口,主接口驱动串行时钟。在使用SPI时,会同时发送和接收数据,使其成为一种全双工协议,通讯效率高,而且电路连线及软件编程结构简单。硬件电路如图2、图3所示,其单元电路包括CCP捕捉电路、PWM驱动电路、RS232/SPI通讯模块、A/D转换算法及LCD显示等。
4.1 CCP捕捉电路
光电采集模块中,采用光电器件具有高转换精度、良好的静态工作点、完整的模拟前端以及片内校正,特别适用于测量低频小信号。该电路将光信号转换成电压信号,再经过整形滤波就可直接送至单片机。送往单片机的转速信号可通过CCP捕捉模块测量出转速。在该模式下,若要采用捕捉功能应将相应的TRIS置为1,将单片机CCPx引脚设置为输入。例如,输入频率稳定时,将单片机预分频值设置为1:16,则这16个周期的总误差为1个TCY。其有效分辨率为TCY/16,即在40 MHz时有效分辨率为6.25 ns。只有在输入频率在16个采样周期内均稳定的情况下,这一方法才有效。不使用预分频器(1:1)时,每个采样分辨率为TCY。而且当改变捕捉模式时,产生一个捕捉中断。用户应保持CCPxIE位清零以禁止这种中断,还应在运行模式改变后将CCPxIF位清零。整个捕捉过程快捷、简单。
4.2 PWM驱动模块
PIC16F877A单片机产生的PWM信号经过光电耦合器连接到L298N的使能控制端。考虑到TLP521-4电路具有反相器作用,PWM信号中的高电平持续时间对应直流电机的断电时间。从单片机其他引脚输出的信号送入L298N的方向控制端,控制直流电机的转动方向和制动状态。L298N驱动负载的电源电压最大为46 V,单桥的驱动电源接近2A,最大开关频率不小于40 kHz。与由分立元件构成的桥式驱动电路相比,该电路结构简单,性能可靠。通过改写程序,可以控制小型直流电机的多种变速。使用光电编码器实现电机速度检测,构成了完整的闭环控制系统。
4.3 RS232串行通讯模块
PIC16F877A串行口仅占用了单片机的RC6和RC7引脚,用于接收端RXD和发送端TXD。因此在上位机计算机与下位机单片机通信时,只需将收发信号(TX、RX)及地(GND)3根线相连即可。单片机的串行接口电平为TTL电平,这与计算机的串行接口电平不一致,因此需要电平转换。系统选用了Maxim公司的MAX232通用串行接收/发送驱动器,其外围电路简单,只需外接4只0.1μF的电容即可。
4.4 LCD显示模块
模块SMC1602B由一块点阵液晶屏和控制器HD44780及其辅助电路组成。本系统设计采用OCMJ中文模块系统LCD液晶作为下位机的显示模块。该模块内含GB2312 16×16点阵国标一级简体汉字和ASCII8×8(半高)及8×16(全高)点阵形英文字库,用户输入区位码或ASCII码可实现文本显示。OCMJ中文液晶显示模块采用ASK/ANSWER握手方式。
5 系统软件总述
5.1 下位机软件设计
智能电机监控系统的下位机软件设计主要完成CCP捕捉、A/D采集、PWM控制、SPI通讯、LCD显示、RS232通讯等多个功能。总体流程框图如图4所示,控制算法是利用PIC16F877A直接控制PID参数,实现精确控制。
5.2 上位机系统设计
上位机系统软件是在Windows平台上利用Vi-sual Basic6.0开发的,设计包括了操作提示部分(自动发送、手动发送、串口选择、奇偶校验、波特率、数据位等)、接收回显部分(接收数据位、电机转速、电机正反转等)以及发送内容部分(电机转速设定、过压、过流保护值等)。
6 监控
电机工作时上、下位机实时通讯,显示的参数值实时性好,此时电机正处在反转状态(正转“1”、反转“0”),这一方面可以从上位机界面中的正反转设定标志看出,另一方面下位机回馈的参数中也有电机正反转标志,下位机的液晶面板也同样有转速、电压、电流及正反转显示(正转“Right”、反转“Left”),并且上、下位机的数据显示是同步的。与此同时,可通过上位机对下位机设定的过流过压保护值,一旦电路检测到任一过流或者过压时(超过设定值),下位机控制单元就会发出报警信号(红灯亮、蜂鸣器响、上位机出现错误标志、下位机的液晶上也会出现错误提示等),并且自动停机保护,等待检修。
7 结束语
该系统成功实现了直流电机闭环转速系统的实时监控,简化了控制逻辑系统,与同类产品相比成本低廉、功能完整、抗干扰性能好。已成功应用于直流电机转速调节、监控、保护场合,并且上位机界面友好,使用方便。PC机能够对直流电机实行实时监控,不仅大大改善了高速运行时的稳定性,而且还实现了保护功能。