微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 直流电机监控闭环转速系统的实现

直流电机监控闭环转速系统的实现

时间:07-25 来源:互联网 点击:
1 引言

直流电机监控系统是机电产品中的重要环节,其控制性能反映了机电设备的控制质量。灵活、方便、准确、实时的监控需要对电机的转速信号进行测量和处理,以达到精确控制转速的目的。

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的电容即可。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top