基于51单片机的直流电机转速测控系统设计
目前使用的电机模拟控制电路都比较复杂,测量范围与精度不能兼顾,且采样时间较长,难以测得瞬时转速。本文介绍的电机控制系统利用PWM控制原理,同时结合霍尔传感器来采集电机转速,并经单片机检测后在显示器上显示出转速值,而单片机则根据传感器输出的脉冲信号来分析转速的过程量,并超限自动报警。本系统同时设置有按键操作仪表,可用于调节电机的转速。
1 系统方案的制定
直流电机控制系统主要是以C8051单片机为核心组成的控制系统,本系统中的电机转速与电机两端的电压成比例,而电机两端的电压与控制波形的占空比成正比,因此,由MCU内部的可编程计数器阵列输出PWM波,以调整电机两端电压与控制波形的占空比,从而实现调速。本系统通过霍尔传感器来实现对直流电机转速的实时监测。系统的设计任务包括硬件和软件两大部分,其中硬件设计包括方案选定、电路原理图设计、PCB绘制、线路调试:软件设计包括内存空间的分配,直流电机控制应用程序模块的设计,程序调试、软件仿真等。
2 硬件设计
C8051是完全集成的混合信号系统级MCU芯片,具有64个数字I/O引脚,片内含有VDD监视器、看门狗定时器和时钟振荡器,是真正能独立工作的片上系统,并能快捷准确地完成信号采集和调节。同时也方便软件编程、干扰防制、以及前向通道的结构优化。
本单片机控制系统与外部连接可实时接收到外部信号,以进行对外部设备的控制,这种闭环系统可以较准确的实现设计要求,从而制定出一个合理的方案,图1所示是电机测控系统框图。
本系统先由单片机发出控制信号给驱动电机,同时通过传感器检测电机的转速信号并传送给单片机,单片机再通过软件将测速信号与给定转速进行比较,从而决定电机转速,同时将当前电机转速值送LED显示。此外,也可以通过设置键盘来设定电机转速。系统中的转速检测装置由霍尔传感器组成,并通过A/D转换将转速转换为电压信号,再以脉冲形式传给单片机。这种设计方法具有频率响应高(响应频率达20 kHz以上)、输出幅值不变、抗电磁干扰能力强等特点。其中霍尔传感器输入为脉冲信号,十分容易与微处理器相连接,也便于实现信号的分析处理。单片机的TO口可对该脉冲信号进行计数。 设计时,可通过单片机的P0.1~P0.5五个接口来完成键盘的输入,P1.6口可完成呜叫和报警,P2.0接电机,P2.1~P2.4接显示器的位选,P0口为显示器段选码,其硬件连接电路如图2所示。
本系统的脉冲宽度调制(PUlse Width Modulation)原理是:脉冲宽度调制波由一列占空比不同的矩形脉冲构成,其占空比与信号的瞬时采样值成比例。该系统由一个比较器和一个周期为Ts的锯齿波发生器组成。脉冲信号如果大于锯齿波信号,比较器输出正常数A,否则输出0。图3所示为脉冲宽度调制系统的调制原理和波形图。
设样本τk为均匀脉冲信号,它的第k个矩形脉冲可以表示为:
其中,x{t}是离散化信号;Ts是采样周期,τ0是未调制宽度,m是调制指数。现假设脉冲幅度为A,中心在t=kTs处,τK在相邻脉冲间变化缓慢,那么,其Xp(t)可表示为:
其中,,ωs为电机角速度,结合式(2)可见,脉冲宽度信号可由信号x(t)加上一个直流成分以及相位调制波构成。当τ0Ts时,相位调制部分所引起的信号交迭可以忽略。因此,脉冲宽度调制波可以直接通过低通滤波器进行解调。C8051单片机有2个12位的电压方式DAC,每个DAC的输出摆幅为0 V~VREF,对应的输入码范围是0x000~0xFFF。通过交叉开关配置可将CEX0~CEX4配置到P2端口,这样,改变PWM的占空比就可以调整电机速度。
LED显示采用动态扫描方式,并用单片机I/O接口扩展输出,再由三极管驱动各显示器的位选端并放大电流。独立式按键采用查询方式,按键输入均采用低有效,上拉电阻可用于保证在按键断开使其I/O口为高电平。单片机的I/O(P0.1~0.5)引脚所扩展的5个按键分别定义为:设置、启动、移位、开始、+1功能。硬件电路确定以后,电机转速控制的主要功能将依赖于软件来实现。
3 软件设计
本系统的软件程序的设计可分为5个步骤:分别是综合分析并确定算法;设计程序流程图;合理选择和分配内存单元以及工作寄存器;编写程序;上机调试运行程序。
应用软件的设计可采用模块化结构设计,其优点是每个模块的程序结构相对简单,且任务明确,易于编写、调试和修改;其次是程序可读性好,对程序的修改可局部进行,而其他部分可以保持不变,这样便于功能扩充和版本升级;另外,对于使用频繁的子程序,可以建立子程序库,以便于多个模块调用;最后是便于分工合作,多个程序员可同时进行程序的编写和调试工作,故可加快软件研制进度。
本程序采用8051单片机的C语言编程来实现。在系统的程序设计中,可采用模块化编程实现。整个软件由主程序模块、转速测量模块、时钟模块、数据通信模块、动态显示模块等组成。各模块均采用结构化程序设计思想设计,因而具有较强的通用性;而采用模块化程序结构则可使软件易于调试、维护和移植。
系统软件可根据硬件电路的功能与AT89C51各管脚的连接情况对软件进行设计。以便明确各引脚所要完成的功能,从而方便进行程序设计和内存地址的分配,最终完成程序模块化设计。
本系统为直流电机测控系统。根据系统性能要求,除复位电路外,还应该设置一些功能键:包括启动键、设置键、确定键、移位键、加1键等。由于本系统中的单片机还有闲置的I/O口线,而系统要求所设置的按键数量也不多,因此,可以采用独立式按键结构。
根据直流电机控制系统的结构,该电机转速控制系统为一简单的应用系统,可以采用顺序的设计方法。这种设计由主程序和若干个中断服务程序构成,整个电机转速测控系统可分成六大模块,每个模块完成一定的功能。图4所示是根据电路图确定的程序设计模块图。
- 基于DSP的磁流变阻尼器的控制方法(04-14)
- 用DSP56F805 PWM模块输出高频正弦波(05-25)
- 一种基于DSP的新型单相PWM算法研究(08-14)
- 基于DSP的自动避障小车(04-05)
- 基于DSP的逆变电源控制系统研究(04-28)
- 基于DSP的感应电机SVPWM矢量控制系统(06-21)