找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于MCS-51单片机的直流电机转速测控系统设计

[复制链接]
admin 发表于 2013-3-20 21:08:51 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
摘要:给出了一种基于89C51单片机以及PWM控制思想的高精度、高稳定、多任务直流电机转速测控系统的硬件组成及关键单元设计方法。实验结果表明该系统能实时、有效地对直流电机转速进行监测与控制,而且输出转速精度高、稳定性好。
关键词:PWM;实时监控;单片机;霍尔传感器;转速

0 引言
     目前使用的电机模拟控制电路都比较复杂,测量范围与精度不能兼顾,且采样时间较长,难以测得瞬时转速。本文介绍的电机控制系统利用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所示。
    20121107053541132503645.jpg
   
     本系统的脉冲宽度调制(PUlse Width Modulation)原理是:脉冲宽度调制波由一列占空比不同的矩形脉冲构成,其占空比与信号的瞬时采样值成比例。该系统由一个比较器和一个周期为Ts的锯齿波发生器组成。脉冲信号如果大于锯齿波信号,比较器输出正常数A,否则输出0。图3所示为脉冲宽度调制系统的调制原理和波形图。
    20121107053541194993646.jpg
   
     设样本τk为均匀脉冲信号,它的第k个矩形脉冲可以表示为:
      20121107053541288743647.jpg
     其中,x{t}是离散化信号;Ts是采样周期,τ0是未调制宽度,m是调制指数。现假设脉冲幅度为A,中心在t=kTs处,τK在相邻脉冲间变化缓慢,那么,其Xp(t)可表示为:
      20121107053541335623648.jpg
     其中, 20121107053541366863649.jpg ,ωs为电机角速度,结合式(2)可见,脉冲宽度信号可由信号x(t)加上一个直流成分以及相位调制波构成。当τ0<
3 软件设计
     本系统的软件程序的设计可分为5个步骤:分别是综合分析并确定算法;设计程序流程图;合理选择和分配内存单元以及工作寄存器;编写程序;上机调试运行程序。
     应用软件的设计可采用模块化结构设计,其优点是每个模块的程序结构相对简单,且任务明确,易于编写、调试和修改;其次是程序可读性好,对程序的修改可局部进行,而其他部分可以保持不变,这样便于功能扩充和版本升级;另外,对于使用频繁的子程序,可以建立子程序库,以便于多个模块调用;最后是便于分工合作,多个程序员可同时进行程序的编写和调试工作,故可加快软件研制进度。
     本程序采用8051单片机的C语言编程来实现。在系统的程序设计中,可采用模块化编程实现。整个软件由主程序模块、转速测量模块、时钟模块、数据通信模块、动态显示模块等组成。各模块均采用结构化程序设计思想设计,因而具有较强的通用性;而采用模块化程序结构则可使软件易于调试、维护和移植。
     系统软件可根据硬件电路的功能与AT89C51各管脚的连接情况对软件进行设计。以便明确各引脚所要完成的功能,从而方便进行程序设计和内存地址的分配,最终完成程序模块化设计。
     本系统为直流电机测控系统。根据系统性能要求,除复位电路外,还应该设置一些功能键:包括启动键、设置键、确定键、移位键、加1键等。由于本系统中的单片机还有闲置的I/O口线,而系统要求所设置的按键数量也不多,因此,可以采用独立式按键结构。
     根据直流电机控制系统的结构,该电机转速控制系统为一简单的应用系统,可以采用顺序的设计方法。这种设计由主程序和若干个中断服务程序构成,整个电机转速测控系统可分成六大模块,每个模块完成一定的功能。图4所示是根据电路图确定的程序设计模块图。
    20121107053541413743650.jpg
   
     其中主程序模块主要设置主程序的起始地址、中断服务程序的起始地址、有关内存单元及相关部件的初始化和一些子程序调用等。其主程序流程图如图5所示。
    20121107053541460613651.jpg
   
     对于定时器T1(1s)子程序的设计,其实在单片机中,定时功能既可以由硬件(定时/计数器)实现,也可以通过软件定时程序来实现。软
件延时程序要占用CPU的时间,因而会降低CPU的利用率。而硬件定时则通过单片机内的定时器来定时,而且,定时器启动以后可与CPU并行工
作,故不占用CPU的时间,从而可使CPU具有较高的工作效率。
     本系统采用硬件定时和软件定时并用的方式,即用T1溢出中断功能来实现10ms定时,而通过软件延时程序实现1 ms定时。其中T1定时器
中断服务程序的功能主要实现转速值的读入、检测与缓存处理。
     对于定时器T1的计数初值计算,由于本系统采用的是6 MHz的时钟频率,所以,一个机器周期时间是2μs。这样,根据T1定时器产生500 μs的定时,便可以计算出计数初值。
     本文设计的转速测控系统的工作方式寄存器TMOD=00010000B,T1定时器以工作方式2来完成定时。

4 程序调试
     程序调试可在伟福仿真软件上进行编制,该软件支持脱机运行,纯软件环境可模拟单步、跟踪、全速、断点;源文件仿真、汇编等,并可支持多文件混合编程。仿真调试后的目标程序可以固化到EPROM,然后用专门的程序烧写器对89C51单片机进行程序烧写。

5 结束语
     本设计采用C51进行编程,程序占用存储器单元少,执行速度快,并能够准确掌握执行时间,实现精细控制。同时由于采用89C51为C-U,并利用噪声抵抗能力较强的PWM控制技术、串行口扩展显示器接口和I/O口扩展键盘。因而可省去片外RAM,而且体积小,功能全,小巧灵活,操作方便,又可安装在工作现场单独工作。因而具有较大的实用价值和良好的应用前景。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-22 23:06 , Processed in 0.061503 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表