0PWM直流电机调速系统的设计_第1页
0PWM直流电机调速系统的设计_第2页
0PWM直流电机调速系统的设计_第3页
0PWM直流电机调速系统的设计_第4页
0PWM直流电机调速系统的设计_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要在21世界,网络飞快的发展并且快速的普及,人人生活都已经离不开网络了,而在其中的自动控制系统遍布着我们的生活,散布在机械制造业的方方面面。举几个简单的例子:大到大型的加工中心,小到智能机器人,我们经常使用的手机,电脑,去游乐场里的数控游乐机器等等。而这些的应用都离不开我们的单片机,因此单片机在现今社会的各个领域都得到了广泛的应用。他们的供电模块有直流和交流两种,而今天我们所讲的就是直流电机,他是伴随着直流电的发现并得到大量运用的,也是最早的电力动力系统。在各种类型的电机中,直流电动机能力出众。直流电动机经常用到的调速技术是PWM(脉宽调制)调速技术,这种技术具有非常高的调速精度,以及快速的调速响应,并且可调速的范围非常广,调速过程非常平滑,耗能较小的优点。本论文主要介绍直流电机调速系统,该系统是基于STC15F2K60s2单片机通过串口的功能接收输入的指令并通过相应的程序产生对应的PWM信号并输出给驱动模块LMD18200T来实现控制直流电机的调速系统。其中主要介绍单片机STC15F2K60s2的特点和应用以及PWM的工作原理和实现方法。着重还讲了如何来实现直流电动机的速度怎么调节,电路板的制作,其次简单介绍了4种状态,他们直接反映了单片机特定的四个工作模式,通过单片机实时查看串口的输入命令,单片机根据输入的命令,产生对应的PWM信号,同时将PWM信号作为输入信号输入给驱动芯片LMD18200T,然后以驱动芯片LMD18200T的输出作为直流电机的电压输入来控制电机的各种不同的状态启动、停止、加速、减速以及正转、反转。其次介绍了电路的设计过程,每个元器件的引脚功能,以及原理图,仿真过程。最后是主要程序的编写设计检查,得到预期结果。关键词:单片机STC15F2K60s2;直流电机调速 ;LMD18200TAbstract In the 21st world, the rapid development of the network and the rapid popularization, everyone life has been inseparable from the network, and in which the automatic control system throughout our lives, spread in all aspects of the machinery manufacturing industry. Give a few simple examples: large to large processing center, small to intelligent robots, we often use the phone, computer, go to the playground in the NC amusement machines and so on. And these applications are inseparable from our microcontroller, so the microcontroller in all areas of todays society has been widely used. Their power supply module has two kinds of DC and AC, and today we are talking about the DC motor, he is accompanied by the discovery of DC and get a lot of use, but also the earliest power power system. In all types of motors, DC motors are outstanding. DC motor often used in the speed control technology is PWM (pulse width modulation) speed control technology, this technology has a very high speed accuracy, and fast speed response, and adjustable speed range is very wide, speed control process Very smooth, less energy consumption advantages. This paper mainly introduces the DC motor speed control system, which is based on STC15F2K60s2 microcontroller through the serial port to receive input instructions and through the program to generate the corresponding PWM signal and output to the drive module LMD18200T to achieve the control of DC motor speed control system. Which mainly introduces the characteristics and application of SCM STC15F2K60s2 and PWM working principle and implementation method. Focus on how to achieve how to achieve the speed of DC motor regulation, circuit board production, followed by a brief introduction to the four states, they directly reflect the single-chip four operating modes, through the microcontroller real-time view of the serial input command, Input the command to generate the corresponding PWM signal, while the PWM signal as an input signal input to the driver chip LMD18200T, and then drive the chip LMD18200T output as a DC motor voltage input to control the motor in a variety of different states start, stop, accelerate , Slow down and forward, reverse. Secondly, the design process of the circuit, the pin function of each component, as well as the schematic and simulation process. Finally, the main program of the preparation of design checks, get the expected results.Key words: single chip STC15F2K60s2; DC motor speed control; LMD18200T目录1. 绪论.1 1.1 本课题的研究背景.1 1.2 本课题的研究意义.1 1.3 课题内容.12. PWM调速系统设计及其原理.3 2.1 系统总体设计.32.2 PWM直流电机调速原理.32.3 测速原理.42.4 闭环控制原理.63. 硬件模块设计.83.1 单片机模块.83.2 电机控制模块.113.3 光电编码器模块.12 3.4 直流电动机调速系统图纸模块.154. 程序设计.194.1 程序的设计.194.2 部分程序的开发.265. 实物制作.285.1 电路板的制作.285.2 电机驱动测试.315.3 烧录程序.31结束语.32致谢.33参考文献.34附录1:直流电动机调速系统的程序.351. 绪论1.1 本课题的研究背景 直流电机出现的时间非常早,应用非常广范的一种电机、经过多年来的发展已经涉及到了机械制造自动化,工业生产线,发展到21世界的今天应用非常广泛,被大量应用于工业自动化,电动汽车,电子玩具等领域中。最早出现的直流电机组成非常复杂,是由好几个电路模块组成以实现预期功能,电路的产生是为了专门解决某一问题而设计的,修改起来较困难,难以用运到诸多问题中去,调试电路困难度高,基于这些早期的发展缓慢难以大规模运用。直到最近PWM技术的问世及广泛普及,极大地促进了直流电动机运用。PWM信号就是根据电流的输出而产生的脉冲信号图得到的,是对模拟信号的数字化,脉冲信号可以由改变开关通断的时间而改变。近年来随着科技的发展控制技术日趋成熟,越来越多的人们选择运用单片机来控制电机,单片机的好处是体积小,控制方便,成本低,运用广泛,可大量次数的编程,更改方便。1.2 本课题的研究意义直流电机是电机中最早发明并被运用的。在各种类型的电机中,直流电机启动稳定过程非常平稳,启动的响应快速、具有非常好的制动性能在诸多高科技领域得到了广泛应用。现代社会电机需求量大直流电机凭借其出众的性能,撑起了一片属于它的领域依然被大量地应用。随着生产规模的越来越快的增加,生产速度也随着增加而传统的直流电机调速技术在快速发展的社会中显得越来越吃力,而且传统技术中元器件的易损耗,易被干扰等问题在快速的生产被无限的放大成为了致命的缺陷,增加了生产中的不可控因素基于以上的理由传统的调速技术被新兴的PWM技术所取代。PWM调速系统设计起来简单明了非常节省时间,并且可以用运到多个问题上,只需要改变其中的核心程序就好。并且用到的元器件较少,电路的结构方面非常容易理解和修改,采用单片机的控制原则能较大程度的使得系统保持稳定,使得控制方式不再单一,产生的信号数字化,接轨于前沿的计算机技术大大的促进了工业化的发展,因此学习研究PWM直流电机调速系统有重要意义。1.3 课题内容通过直流电机调速系统实现单片机STC15F2K6S2控制的PWM直流电机调速系统的设计。本设计的系统是通过串口的输入程序指令来控制单片机产生PWM信号,并通过单片机控制驱动芯片LMD18200T实现对直流电机启停、加减速、正反转的控制。本系统主要有输入模块(I/O口的程序输入)、单片机STC15F2K60s2,电机驱动模块(LMD18200T以及逻辑电路)和电源模块组成。以上相关模块的具体描述如下:驱动模块:芯片LMD18200T以及相关逻辑电路;输入模块:I/O口的程序输入控制模块:单片机STC15F2K60s2;2. PWM调速系统设计及其原理2.1 系统总体设计思路运用单片机控制pwm的信号实现对于直流电机的调速。实现此目的基于以下几大模块:主控芯片,驱动电路,光电编码器,电机驱动芯片。要实现的功能是实现电动机的启动,停止,加速,减速,换向。主体流程如下:主体流程如下:采用串口的收发功能输入相应的指令使得STC15F2K60s2控制输出数据,由单片机IO口产生PWM信号,送到电机驱动芯片驱动直流电机,直流电机通过光电编码器将实时转速送回单片机进行编译反馈然后输出实时转速情况,实现对电机速度和转向的控制,达到直流电机闭环调速的目的。2.2 PWM直流电机调速原理PWM技术:PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。PWM拥有以下几种控制方法等脉宽PWM法,随机PWM,SPWM法,低次谐波消去法,梯形波与三角波比较法,线电压控制PWM,电流控制PWM,空间电压矢量控制PWM,矢量控制PWM,非线性控制PWM。优点是可以进行电路控制的数字化进行快速控制,实现无极调速,加强了人们对于电路的认识。今天我们所说的是第一种PWM技术技术。利用半导体开关的通断时间长短使得直流电压随着改变,接通时直流电压为高电平,断开后直流电压为低电平状态。由此就可以把电信号转化为数字信号输入,从而进行直流电机的调速。半导体开关先导通T1秒,然后断开T2秒,利用程序反复执行这样的命令得到脉冲信号。占空比:占空比是指有效电平在一个周期之内所占的时间比率。在我们设计的系统中上述的有效电平指的就是高电平,通过调节高电平的大小就可以调节占空比的大小,继而影响的电机两端的平均电压的大小从而改变直流电机的转速。改变PWM脉冲占空比的方法有下面几种:调频,调宽,调宽调频。调频就是调节高电平的时间,调宽就是调节低电平的时间,调宽调频就是高低电平时间一起改变,以上都可以直接通过调节时间来直接影响到占空比的大小。综述:基于我们上述的介绍,本设计的主题已经浮现出来并且变得简单就是想办法改变占空比的大小来改变直流电机转速的大小,驱动电机后通过光电编码器来实时测算出转速的大小并进行显示,得到显示结果后在进行调节来实现闭环控制。2.3 测速原理2.3.1 简述基本原理在本设计中采用光电编码器测速,他是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。这是目前应用最多的传感器,光电编码器是由光栅盘和光电检测装置组成。光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号,其原理示意图如图1所示;通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。此外,为判断旋转方向,码盘还可提供相位相差90的两路脉冲信号。 根据检测原理,编码器可分为光学式、磁式、感应式和电容式。根据其刻度方法及信号输出形式,可分为增量式、绝对式以及混合式三种。图1.光电编码器原理图2.3.2 测速方法 常有三种基于光电编码器的测速方法,假定时钟频率为f,光电编码器每转脉冲数为P。M1和M2分别是对编码器脉冲和时钟脉冲进行技术的计数值。第一种是“M法”测速:通过测量一段固定时间间隔内的编码器脉冲数来计算转速,这个适用于高速场合。如下图所示:设在固定时间T内测得的编码器脉冲数为M1,则转速为:,其相对误差,脉冲图2如下:图2.M法第二种是“T法”测速:通过测量编码器两个相邻脉冲的时间间隔来计算转速,适用于速度比较低的场合,当转速较高时其准确性较差。其转速为 ,相对误差为,脉冲图3如下:图3.T法第三种是“M/T法”这是前面两种方法的结合,同时测量一定个数脉冲编码器脉冲和产生这些脉冲所花的时间,在整个速度范围内都有较好的准确性,但对于低速,该方法需要较长的建成的时间才能保证结果的准确性,无法满足转速检测系统的快速动态响应指标。其转速为,式中M1的值在测量前已经确定了,所以其相对误差为,脉冲图4如下:图4.M/T法2.4 闭环控制原理2.4.1 简述 闭环控制的另一种说法就是利用反馈调节。在控制系统当中反馈调节是非常重要的一部分。如何反馈?用简单的话讲就是控制系统将所需要的东西输出到反馈系统,在经过反馈系统调节后输送出去。这就是反馈。接收信息,经过改变,发生影响,起到控制。所有的这一切都是为了同一个目的所进行着。在本设计的直接体现就是影响了电机的实时转速,以求电机转速达到我们预先设定的那样。2.4.2 反馈调节的分类反馈调节有正负反馈调节两种,正反馈使输入对于输出的影响增大,本设计当中就是使得电机转速增加,负反馈使输入对于输出的影响减小,即电机转速的减小。2.4.3 用运闭环控制电机转速的基本原理为了方便理解我们画了简单的电路图来说明控制的基本原理,如图5:图5.闭环调速原理图输入定值电压U后,经电压放大器和功率放大器对于电压U信号的处理后,进入电动机给予电机一定的转矩使得电机转速达到n后将保持不变,一切都达到一个平衡状态。但这时候出现了影响因素比如说负载的突然增加或减少,势必会引起转速n的变化,而打破我们的平衡状态使得电机并不能达到我们所预想的转速值,这个时候会激发测试发电机的工作将这一变化反馈电压放大器所在的电路中,对于信号U重新进行处理,相应的增加输出电压或者减少,电路输出新的信号U1到电动机中以达到我们设想的平衡状态。然后如此周而复返进行反馈调节。 在本设计中采用的并不是上述的简单电路而是运用了光电编码器,单片机进行反馈调节。在这个调节中单片机STC15F2K60S2的起到的是输入电压的作用,经过LDM18200T电机驱动芯片的信号处理,输出信号到电机,而我们的光电编密码器hctl-2016起到了测速反馈的作用,检测到转速变化反馈回单片机STC15F2K60S2,单片机经过处理后发送新的指令给电机驱动芯片LDM18200T,调节电机转速达到我们预定转速值,整个系统形成一个完整的闭环回路一起调动起到调节电机转速的作用。本设计中单片机相当于一个大脑把这些信息整合处理送到不同的芯片,完成我们的设定任务。这些就是我们所说的闭环调节原理。第三章 硬件模块设计3.1 单片机的模块3.1.1 单片机的选型设计之初提供了两种单片机型号供我们选择,一种是单片机STC89C51,另一种是单片机STC15F2K60S2两者都是归属于STC系列产品。单片机STC89C51简述:是采用8051核的ISP在系统可编程芯片,是八位可编程可擦写的只读存储器,增强型8051 CPU,工作电压:3.4V-5.5V (5V 单片机)/ 2.0V-3.8V (3V 单片机),工作频率范围:0 -35 MHz,.实际工作频率可达48MHz,片上集成512 字节RAM,拥有27或者33个I/O 口,可直接通过软件下载程序,工作温度范围变化大最大可达80摄氏度,最低可以达到-40摄氏度,封装:PDIP-28,SOP-28,PLCC-32,封装尺寸较小。单片机STC15F2K60S2简述:增强型 8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051,工作电压:工作电压:5.5V-2.4V ,内部运行稳定可将外部复位电路取消, 内部高精度R/C时钟,内部时钟从 5MHz35MHz可选, 工作频率范围最小5MHz最大可达到35MHz,片上集成2048字节SRAM,大容量片内EEPROM,擦写次数10万次以上ISP(在系统可编程)/ IAP直接下载程序,并直接运行,共 6个定时器,2个16位可重装载定时器兼容普通8051的定时器T0/T1,并可实现时钟输定时器T2,工作温度范围跨度非常大,封装:LQFP-44,LQFP-32封装尺寸很小。通过上面两个单片机的各自特点,stc15f2k60s2功能较为强大,由于其出色的稳点性能,为我们节省了复位电路,其次是他具有较大次数的擦写次数,可达到十万次以上,而stc89c51只有区区100次左右,因我们设计时候试验程序次数较多,选择stc15f2k60s2当然更好一点,其次是我们找到了stc15f2k60s2de最小系统开发版,开发板具有非常强大的功能,为我们的设计带来了很多好处,极大程度的减少了我们单片机模块的工作量,使我们更多地精力放在电路的设计上。综合上述,我们决定选用stc15f2k60s2作为单片机模块。3.1.2 stc15f2k60s2单片机的特性和管脚说明 首先我们在封装上选择了LQFP-44,管脚图如图6所示: 图6.单片机STC15F2K60S2管脚图下面简单介绍我们用到的引脚Vcc:电源端GND:接地端P0口 P1口 P2口:这三个端口的用法相差不多,值得注意的是P0口可以用作可驱动TTL负载的输出口,在本设计当中P2只用到其输出端口功能。不过这三个端口在充当输入口时必须首先对他们进行写1P3口:大致的用法和前面所说的几个口相似,但要用到其复用功能。下面介绍P3口的复用功能:P3.0RXD用作串口的输入端P3.1TXD用作串口的输出端P3.2INT0作为单片机的外部中断0输入P3.3INT0作为单片机的外部中断1输入P3.4定时器T0的输入端P3.5定时器t1的输入端P3.6单片机写使能端P3.7单片机读使能端RST:用作单片机的复位信号输入端。其启动需要特定的条件才可用ALE:存储区地址低八位的锁存,脉冲编程输入端口XTAL1:晶振的输入端口。XTAL2:与XTAL1一起与晶振连接作为单片机的时钟脉冲输入。3.1.3 单片机的供电 本设计的逻辑控制电路需要5V的电源接入可以保证其正常的工作,在stc15f2k60s2的开发板上就已经设计好了USB 5v供电模块,如图7所示图7.供电模块电路所以在逻辑电路的电源方面我们并不需要考虑太多。而电机驱动电路中我们需要用到+12V的直流电压,因为此条件我们加入了一个可将220V的交流电转化为+24V的直流电的电源转换器作为我们的电机驱动电路的电源输入。如图8:图8.电源转换器3.2 电机控制模块 本设计中采用LMD18200T芯片作为电动机的驱动芯片,LMD18200T较较普遍见到的L298n的驱动芯片工作起来更加稳定,pwm的信号输入更好。所以我们放弃了L298n的驱动芯片。芯片特点:电流输出持续稳定在3A,正常使用下承受很高的电压(550V),在温度达到一定程度下会进行热告警标志输出(140摄氏度),如果热度换在持续输出,为防止意外发生进行热关断(170摄氏度),具备有内部二极管,输出电流峰值可到达6A。在驱动直流电机和步进电机方面具有非常大的优势,所以在许多高精尖设备上运用很多。引脚图如图9所示:图9.电机驱动芯片管脚图简单的说明引脚1BOOTSTRAP1自举1输入2OUT1输出1:半H桥1号输出3DIRECTION方向输入4BRAKE制动输入:被有效地缩短其端子用于制动器的电动机5PWMPWM输入:见表1。这如何输入(和方向输入引脚3)用于通过PWM信号的格式来确定6VS直流电动机驱动电源输入端口7GND接地连接8SENSE电流检测输出:该引脚提供拉电流检测输出信号9FLAG热标志输出:该引脚提供热警告标志输出信号10OUT2输出2:半H桥2号输出11BOOTSTRAP2自举2输入:自举电容引脚半H桥2号3.3 光电编码器模块.本设计采用HCTL-2016作为光电编码器引脚图如图10所示,我们将对对本论文用到的引脚进行简单的描述见表1图10.光电编码器芯片符号引脚功能Vss8电源VDD16接地CH A7CHA和CHB是接受输出的施密特触发器输入来自正交编码的源,例如增量光轴编码器。 两个通道,A和B,标称90度相位,是必要的。CH B6RST5该低有效的施密特触发输入可清除内部位置计数器位置锁存器。它也会复位禁止逻辑。RST是相对于任何其他输入信号是异步的。OE4该CMOS有源低电平输入使能三态输出缓冲器。 的OE和SEL输入通过内部禁止逻辑进行采样时钟的下降沿来控制内部位置的加载数据锁存。SEL3该CMOS输入直接控制位置中的哪个数据字节锁存器使能到8位三态输出缓冲器。如上面的OE,SEL还控制内部禁止逻辑。0的高电位 ,1的时候低电位CLK2CLK是外部时钟信号的施密特触发输入。D01这些与LSTTL兼容的三态输出形成8位输出端口可以读取12/16位位置锁存器的内容2个连续字节。 首先读取包含位8-15的高字节(在.上)HCTL-2000,该字节的最高有效4位在内部设置为0)。低位字节,位0-7,被读取第二个。D115D214D313D412D511D610D79表1.光电编码器各引脚的功能n数字闭环运动控制系统和数字数据输入系统, 它做到这一点将时间密集的正交解码器功能转换成一个成本有效的硬件解决方案。 HTEL-20XX系列是4x正交解码器,二进制向上/向下状态计数器和8位总线接口。输出信号和级联信号用于许多标准计数器IC。 HCTL-20XX系列提供了LSTTL兼容的三态输出缓冲区 工作温度范围为-40至+ 85C,时钟频率高达14 MHz它的特征:接口编码器到微处理器14 MHz时钟操作全4X解码高抗噪能力:施密特触发器输入数字噪声滤波器12位或16位二进制递减计数器锁存输出8位三态接口8,12或16位操作模式正交解码器输出信号,上/下和计数级联输出信号,上/下和计数大幅降低系统软件应用:接口正交增量编码器到微处理器接口数字电位器到数字数据输入总线描述:HCTL-2000,2016年,2020年是执行正交解码器,计数器和总线接口功能的CMOS IC。 HCTL-2016的级联系统允许位置读取超过两个字节。可以通过对所有字节进行比较,然后按照8位总线顺序对字节进行读取来实现。假设在外部使用与锁存器相关的计数器来计数超过16位的计数。这个配置是兼容HCTL-20016内部计数器/锁存器组合。考虑以HCTL-2016的内部反倾销为起点的阅读周期的事件顺序。在上升的钟表上,计数数据在内部计数器更新,滚动。级联脉冲(CNTCAS)将在上升时钟边沿(tCHD)之后产生一些延迟。将会有额外的传播延迟通过外部计数器和寄存器。同时,SEL和OE低开始读取,内部锁存器在下降沿被禁止,不再更新,直到禁止被复位。如果CNTCASpulse现在切换外部计数器,并且该计数被取消了主要的计数错误willoccur。当内部锁存被禁止时,计数错误是由外部锁存器更新的。有效数据可以保证当高字节读取开始(SEL和OE为低电平)时,锁存外部计数器数据。这个latched外部字节对应于计数在禁止的内部。当读取开始时,在时钟周期内产生的级联脉冲由外部计数器计数不丢失。例如,假设HCTL-2020计数为FFFFH,外部计数器为F0H,计数上升。一个计数发生在HCTL-2016中将会产生反转,并产生级联脉冲。从该时钟周期开始的读数将从HCTL-2016显示FFFFH。外部锁存器应该为F0H,但是如果主机在级联信号传播之后计数,则外部信号将读取F1H。3.4 直流电动机调速系统图纸模块 为了完成我们预期的设计,需要自行设计调速的图纸下面本设计主要讲述了最小开发版的原理图的理解,以及整体原理图的的绘制。3.4.1 原理图模块 stc15f2k60s2最小开发板模块的原理图如图11所示图11.最小系统开发板原理图这一块主要就是芯片和两个排插,通过排插上的每个点就可以和相应的管脚相连接,还具有一个正的5V引脚和负的3.3V引脚。四个接地口。接下来是USB驱动芯片,串口的输入输出口的指示灯以及晶振模块,电源的指示灯接通电源,按下按钮D3电源指示灯会亮进行程序烧写的时候R2 R3会按设定好的程序闪烁。相关图如图12所示:图12.串口的输入输出电路整体的原理图 这里包括了单片机stc15f2k60s2与电机驱动芯片LMD18200T和光电编码器HCTL-2016之间的连接图,电机的驱动电路图,一个时钟电路和一个复位电路。值得说明的是这里的单片机我们用运的是stc15f2k60s2的管脚图并没有用到上述的最小开发板的原理图,以为我们用运最小开发版只是给我们搭建了一个程序烧写的平台使得我们的设计并不用再去为烧写程序而专门设计电路节省了我们大量的时间。但效果都是一样的单片机是通过直接的引脚连接,开发板是通过间接的连接,不同的是后者只是经过开发板板罢了。在刚开始接触原理图制作的时候,因原理图库并不能找见恩设计所需要的芯片类型,需要自己动手进行芯片的绘制和封装,并且要严格按照尺寸进行。图13.整体的原理图3.4.2PCB图的设计 在我们绘制完原理图后,就需要我们自己动手完成PCB图的设计,其中包括了光电编码器HCTL-2016模块,电机驱动芯片LMD18200T模块,与开发板连接的排针。需要说明的是:在大多数情况下PCB图是可以由原理图直接编译过来再覆铜进行相应的设置就可以完成,但因为我们运用了最小开发版,并不能直接由原理图编译过来,而采用了自己绘制。当然所有的尺寸都是按照标准尺寸进行的。图14.PCB图下面进行PCB图的说明:左边大焊盘插座部分是两个+12V的直流电源输入接口,两个电机驱动的电源输出端口,这四个端口经过的都是大电流所以明显看得出连接的线比别的地方宽很多,最大电流的+12输入电流口线宽为3mm,其他三个都为2mm,对于左边插座焊盘我们采用了3mm3mm,孔径0.762mm。芯片的部分和排插的部分本设计采用的都是1.8mm1.8mm,孔径0.6mm。线宽的话除了光电编码器HCTL-2016与JP2连接的线采用了0.6mm,其余都是1mm在绘制过程中发现如果按照原来原理图那样布线会造成在JP2,JP3处存在无法避免的的连接,有两个方法可以解决出现的问题,第一个是采用跳线连接,第二个是更换接头排列顺序。考虑到跳线的不稳定存在诸多不便之处,本设计采用了第二种方法解决问题,因为排插与排插之间采用杜邦线连接,所以第二种解决方法基本对于本设计无影响。第四章 程序设计4.1 程序的设计4.1.1 简单程序的编写 在编写程序之前做一下本设计要达到设计目的:用运串口助手来帮助我们进行单片机指令的发送控制单片机输出PWM信号作用于电机驱动芯片控制电机的状态,使得电机可以实现加速,减速,停止,反转的命令,通过光电编码器芯片反馈到串口,再在串口助手中显示表达出电机实时状态。对于刚刚有点基础的编程人员来说这个程序有点难,要拥有好多的专业知识才写的出来,为此我们进行了小分段的程序的编写训练。首先是根据开发板的串口的输入输出指示灯来做一个最简单的跑马灯实验。跑马灯的程序实验一共有两个目标,第一次运用了计时器,运用延时来让灯亮达到我们所预期的时间,在练习中我们设置了延时4秒的跑马灯延时程序。具体程序如下图15图15.跑马灯计时器的运用第二次用运了中断来达到两盏灯跑马灯的效果。在程序中MAIN是程序的主程序,TNT_T1是延时子程序,因为所用的定时器最大值并不能达到我们所设定的1秒钟,所以需要用运我们的循环指令来完成所设定的目标。当中断指令发出后完成后,延时程序启动,使得小灯亮的时间达到所设定时间,再启动下一个中断,如此反复实现跑马灯程序,具体的程序如下图16所示:图16.跑马灯中断器的运用4.1.2 程序设计的主体思路 在本设计中,我们运用了串口的输入输出来代替现普遍见到的液晶显示屏和按键来调速,运用了光电编码器来测量和反馈电机的转速,通过单片机来接通控制这些芯片来达到我们的调速目的,这也就是说我们所有的控制都是由单片机来完成。本设计采用的测速在串口输入的后面,这也是为了更好的调节达到快速反应,具体的程序框图如下图17所示:图17.程序的框图4.1.3 部分程序的编写开发本次设计所涉及到程序的部分有PWM,定时器,串口的知识。先说一下单片机STC15F2K60S2是51芯片的升级版本,51上的定义配置在15上面也可以使用。芯片配置:(1)3个定时器。(2)3个外部中断、2个串行口、1个SPI中断、CCP/PWM/PCA中断(3)3路硬件I2C (4)4个串行接口、2个SPI接口(5)内部自带晶振(这个高天宇说过了)(6)大容量1024字节内RAM数据存储器(7)1个时钟/机器周期,增强型8051内核,速度比8051快712倍。先说一下定时器的运用,STC15F2K60S2芯片有3个定时器0、1、2.每个定时器有4个模式,以定时器0为例。定时器0模式0为自动重装,模式1为16位不可重装模式,模式2为8位自动重装模式,模式3为不可屏蔽中断16位自动重装载,实时操作系统用节拍定时器。我们要根据自己的需要选择模式。(1)每次我们配置定时器的时候首先设置TCON来选择哪个定时器,如果我们设置定时器0的话就让TCON中的TR0=1使定时器0中断打开。(2)选择TMOD定时器工作模式(1个是定时器、一个是计数器)这个在TMOD中的C/T中选择。如果C/T = 1为定时器,相反为计数器。(3)给TL0和TH0赋初值具体赋值要看你选择的模式。如果你选择的是自动重装模式,你再进定时器的时候就不用自动重新装初值了,因为他会自动生成。如果不是自动重装模式,那么切记再次进入定时器的时候一定要重新赋值。(4)IE = 1中断允许寄存器打开。(这个方面一定要记得写,如果不写那么定时器虽然打开却没有被允许是无法工作的。)(5)AUXR 这是辅助寄存器,在这里我们可以选择1T模式还是12T模式。(这里我给大家扩展一下,8051上面一个机器周期是又12个时钟周期组成,所以每个时钟周期的时间是1/选择晶振的时间,而机器周期就是12*1/12M的时间,这就是所谓的12T模式。如果是1T模式的话,就是一个机器周期就是一个时钟周期,那么一个机器周期的时间就是1/选择晶振的时间。所有运行时间大大缩短,执行效率大大提高。)(6)最后是EA = 1是总中断打开。这是定时器0的初始化void Time0Init(void) /500微秒24.000MHz AUXR |= 0x80; /定时器时钟1T模式 TMOD &= 0xF0; /设置定时器模式 TL0 = 0x20; /设置定时初值 TH0 = 0xD1; /设置定时初值 TF0 = 0; /清除TF0标志 TR0 = 1; /定时器0开始计时 ET0 = 1; /定时器0开始计时 EA=1;再说一下8位脉冲调节模式PWM,脉宽调制PWM是一种使用程序来控制波形占空比,周期,相位波形的技术。STC15系列单片机的PCA模块可以通过设定各自的寄存器PCA_PWMn(n=0,1,2)中的位EBSn_1/PCA_PWMn.7以及EBSn_0/PCA_PWMn.6.使其工作于8位PWM模式。当EBSn_1,EBSn_0=0,0或1,1时,PCA模块n工作于8位PWM模式,此时将0,CL7:0与捕获寄存器EPCnL,CCAPnL7:0进行比较。PWM模式的结构如下图18所示图18.PWM模式的结构图当PCA模块工作于8位PWM模式时,由于所有模块公用仅有PCA定时器,所以他们的输出频率相同。各个模块的输出孔占比是独立变化的,与使用的捕获寄存器EPCnL,CCAPnL7:0有关。当0,CL7:0的值小于EPCnL,CCAPnL7:0时输出为低,当0,CL7:0的值等于或大于EPCnL,CCAPnL7:0时,输出为高。当CL的值由FF变为00溢出时,EPCnH,CCAPnH7:0的内容装载到EPCnL,CCAPnL7:0中,这样就可以实现无干扰的更新PWM,要使能PWM模式,模块CCAPMn寄存器的PWMn和ECOMn位必须置位。8位PWM的频率=,PCA适中输入源可以从8种中选择一种,SYSclk,SYSclk/2,SYSclk/4,SYSclk/6,SYSclk/8,SYSclk/12,定时器0的益出,ECI/P1.2输出。如果产生50Hz的频率要PCA时钟输入源频率为12800.这时我们的SYSclk为24M除以12的不出来12800数值。所有我们只有两个方案,方案一、为用定时器0溢出,也就是说要产生78us的定时器。但是问题就是我们已经将定时器0作为心跳功能了,所有我们不能再将定时器0作为SYSclk了,所以方案一基本告废。方案二、我们就想到用ECI/P1.2输入,这是一个外部时钟接口。我们只需用另一个单片机产生78us的定时器输入到ECI中就可以产生50Hz的频率。当我们解决了产生8位的50Hz的PWM时,我们就可以控制电机的控制。但是问题有出来了,还是刚才说的8位的PWM调节范围太小,导致飞机一直在颤抖。因此我们想是不是可以产生16位的PWM。郭老师教导我,让我用数据手册带的16位软硬结合的方法调节PWM,这样我们就产生了16位01000的PWM。我们PWM产生的波形更加的连续,可是因为16位的PWM是软硬结合的方法产生。就因为我们用到串口中断读取陀螺仪MPU6050和无线数据模块发送来的数据,使得我们产生的PWM在时间上出了干扰,使得PWM也时常有跳变,这个跳变是我们无法解决的。(1)CMOD是PCA工作模式寄存器。刚才说过PCA用8种模式,在CMOD中用CPS2、CPS1、CPS0就是选择这8个工作模式(2)CCON是PCA控制寄存器。因为CCON中CF是PCA计数器阵列溢出标志位。CR是PCA计数器阵列运行控制位。该位通过软件置位,用来启动PCA计数器阵列计数。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论