毕业论文——发动机自动熄火的诊断分析(2).doc_第1页
毕业论文——发动机自动熄火的诊断分析(2).doc_第2页
毕业论文——发动机自动熄火的诊断分析(2).doc_第3页
毕业论文——发动机自动熄火的诊断分析(2).doc_第4页
毕业论文——发动机自动熄火的诊断分析(2).doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

北京信息科技大学 毕业设计(论文)题 目: 单片机双直流电机控制系统设计与实现 学 院: 自动化学院 专 业: 自动化 学生姓名: 李振宇 班级/学号 自控0804/2008010914 指导老师/督导老师: 曹荣敏 起止时间:2011年 2月20 日 至 2011年 6 月 15 日 摘 要当今,自动化控制系统已经在各行各业得到了广泛的应用和发展,而直流驱动控制作为电气传动的主流在现代化生产中起着主要作用。长期以来,直流电动机因其转速调节比较灵活,方法简单,易于大范围平滑调速,控制性能好等特点,一直在传动领域占有统治地位。它广泛应用于数控机床、工业机器人等工厂自动化设备中。随着现代化生产规模的不断扩大,各个行业对直流电机的需求愈益增大,并对其性能提出了更高的要求。为此,研究并制造高性能、高可靠性的直流电机控制系统有着十分重要的现实意义。本论文论述了单片机双直流电机控制系统设计和实现方法。论文的工作主要有以下几个方面:1.设计基于单片机的直流电机控制系统,采用pwm控制技术,利用双桥驱动控制直流电机的起停及调速问题。2.设计两个直流电机的硬件电路,包括驱动电路键盘电路。3.设计编写两个直流电机的控制程序,并在硬件基础上调试。关键字:pwm信号,直流电机,单片机,双桥驱动,电机调速abstracttoday, automation control system has been in all walks of life a wide range of applications and development, and dc drive control as the mainstream of electric transmission in modern production plays a main role in. long-term since, for its speed adjustment for dc more flexible, simple, easy to big range smooth speed adjustment, the control performance is good wait for a characteristic, has been in the transmission fields hold a dominant position. it is widely used in the numerical control machine tool, industrial robot factory automation equipment. with the expansion of the modern production scale, each industry to dc motor of the transportation demand increases, and its performance put forward higher request. therefore, the research and manufacturing of high performance, high reliability of the dc motor control system has very important practical significance. this paper discusses the single-chip microcomputer double dc motor control system design and realization method.the paper work mainly in the following aspects:1. based on single chip design of dc motor control system, using pwm control technology, using double drive control dc motor of the starting and stopping and speed control problem.2. design two dc motor of the hardware circuit, drive circuit including keyboard circuit.3. design write two dc motor control program, and based on the hardware debugging.keyword: pwm signal,dc motor,microcontroller,twinbridge drive, motor speed.目录摘 要iabstractii第一章 绪论11.1 直流电机的发展11.2 课题研究的目的及意义11.3 本论文的主要工作2第二章 系统方案设计32.1电机调速控制模块:32.2 pwm调速工作方式:32.3 pwm技术32.4 pwm的参数52.5直流电机的能量转换和特性曲线5第三章 硬件的设计83.1 引言83.2双桥驱动器l298n83.3 l298n芯片介绍9第四章 硬件电路板的制作134.1 引言134.2确定工作层134.3定义pcb形状及尺寸134.4加载pcb元件封装库134.5 元器件的布局134.6.布线134.7制板14第五章 系统软硬件调试155.1 引言155.2 系统应用程序设计155.3直流电机转速控制器的软件设计155.4本章小结26第六章 总结276.1 本文的工作及总结276.2 工作展望27参考文献29iv单片机双直流电机控制系统设计与实现第一章 绪论1.1 直流电机的发展直流电机问世已有一百四十多年的历史。在设计和制造技术上的进步,新材料、新技术的应用,整流电源的普及,促进了一般工业用直流电机的用途不断扩大,品种繁多。从小至数瓦,大到万余千瓦,正广泛地用于冶金、矿山、煤炭、起重运输、船舶、机床制造、纺织印染等各个部门中,特别是近几年电子计算技术已广泛应用当今,自动化控制系统已经在各行各业得到了广泛的应用和发展,而直流调速控制作为电气传动的主流在现代化生产中起着主要作用 ,无论是在工农业生产、交通运输、国防、航天航空、医疗卫生、商务与办公设备、还是在日常生活中的家用电器都大量使用着各式各样的电气传动系统,其中许多系统有调速的要求:如车辆、电梯、机床、造纸机械等等。为了满足运行、生产、工艺的要求往往需要对另一类设备如风机、水泵等进行控制:为了减少运行损耗,节约电能也需要对电机进行调速。电机调速系统由控制部分、功率部分和电动机三大要素组成一个有机整体。各部分之间的不同组合,可构成多种多样的电机调速系统。三十多年来,直流电机传动经历了重大的变革。首先实现了整流器的更新换代,以晶闸管整流装置取代了习用已久的直流发电机电动机组及水银整流装置使直流电气传动完成了一次大的跃进。同时,控制电路已经实现高集成化、小型化、高可靠性及低成本。同时,控制电路已经实现高集成化、小型化、高可靠性及低成本。以上技术的应用,使直流调速系统的性能指标大幅提高,应用范围不断扩大。直流调速技术不断发展,走向成熟化、完善化、系列化、标准化,在可逆脉宽调速、高精度的电气传动领域中仍然难以替代。随着微控制器尤其是脉宽调制 pwm 专门控制芯片的飞速发展, 其对电机控制方面的应用起了很重要的作用, 为设计性能更高的直流控制系统提供了基础。本文对基于pic单片机的直流电机 pwm 调速系统进行了较深入的研究,从直流调速系统原理出发,逐步建立了单闭环直流 pwm调速系统的数学模型。用微机硬件和软件发展的最新成果,探讨一个将微机和电力拖动控制相结合的新的控制方法,研究工作在对控制对象全面回顾的基础上,重点对控制部分展开研究,它包括对实现控制所需要的硬件和软件的探讨。在硬件方面充分利用微机外设接口丰富,运算速度快的特点,采取软件和硬件相结合的措施,实现对转速闭环调速系统的控制。在微机控制方面,讨论了显示、pwm、光电编码盘测速的原理,并给出了软、硬件实现方案。该方案以驱动芯片与一些外围电路。通过实时测试,调节电动机的转速,此调速系统可获得快速、精确的调速效果。直流电气传动系统中需要有专门的可控直流电源,常用的可控直流电源有以下几种:第一,最初的直流调速系统是采用恒定的直流电压向直流电动机电枢供电,通过改变电枢回路中的电阻来实现调速。这种方法简单易行,设备制造方便,价格低廉。但缺点是效率低、不能在较宽范围内平滑调速,所以目前极少采用。第二,三十年代末,出现了发电机电动机(也称为旋转变流组),配合采用磁放大器、电机扩大机、闸流管等控制器件,可获得优良的调速性能,如有较宽的调速范围(十比一至数十比一)、较小的转速变化率和调速平滑等。特别是当电动机减速时,可以通过发电机非常容易地将电动机轴上的飞轮惯量反馈给电网,这样,一方面可得到平滑的制动特性,另一方面又可减少能量的损耗,提高效率。但发电机电动机调速系统的主要缺点是需要增加两台与调速电动机相当的旋转电机和一些辅助励磁设备,因而体积设备较多、体积大、费用高、效率低、安装需要地基、运行有噪声、维修困难等。第三,自出现汞弧变流器后,利用汞弧变流器代替上述发电机电动机系统,使调速性能指标又进一步提高。特别是它的系统快速响应性是发电机电动机系统不能比拟的。但是汞弧变流器仍存在一些缺点:维修还是不太方便,特别是水银蒸汽对维护人员会造成一定的危害等。第四,1957年,世界上出现了第一只晶闸管,与其它变流元件相比,晶闸管具有许多独特的优越性,因而晶闸管直流调速系统立即显示出强大的生命力。由于它具有体积小、响应快、工作可靠、寿命长、维修简便等一系列优点,采用晶闸管供电,不仅使直流调速系统经济指标上和可靠性有所提高,而且在技术性能上也显示出很大的优越性。晶闸管变流装置的放大倍数在10000以上,比机组(放大倍数10)高1000倍,比汞弧变流器(1000)高10倍;在快速响应性上,机组是秒级,而晶闸管变流装置为毫秒级。因此,目前在直流调速系统中,除某些特大容量的设备而且供电电路容量较小的情况下,仍有采用机组供电、晶闸管励磁系统以外,几乎绝大部分都已改用晶闸管相控整流供电了。随着微电子技术的发展,微机功能的不断提高以及电力电子、计算机控制技术的发展,电气传动领域出现了以微机为核心的数字控制系统。计算机的发展可以使复杂的控制规律较方便的实现,以计算机为核心的数字控制技术成为自控领域的主流,也给直流电气传动的发展注入了新的活力,使电气传动进入了更新的发展阶段。1.2 课题研究的目的及意义直流电机因具有良好的线性调速特性、效率高、控制简单、调速性能好及体 积小等优点得到了广泛使用。常规电机调速控制方法中,电机工作不稳定,损耗 较大,尤其在低电压轻负荷时情况更为严重,且工作频率受电源频率的限制, 难 以满足高精度的调速要求,不利于广泛推广。如何才能使电路具有成本低、控制 精度高、调试修改参数方便,且能方便和灵活地适用于大功率、可靠性高的直流电机控制系统中,是我们研究的目的。1.3 本论文的主要工作和论文结构本论文主要从硬件和软件两方面论述温度控制系统的结构、组成和控制算法。基本结构如下:第一章 绪论。主要介绍计算机控制系统的基本情况和本次毕业设计的主要任务。第二章 系统方案设计。叙述了系统方案的确定和系统总体结构。第三章 系统硬件设计。叙述了系统硬件的基本结构和组成。第四章 硬件电路板的制作。叙述了系统软件的若干主要模块的设计,重点叙述了单片机程序设计。第五章 系统软硬件调试。叙述了系统硬软件的调试方法和过程。第二章 系统方案设计主要内容:设计基于单片机的直流电机控制系统,采用pwm控制技术,利用双桥驱动控制直流电机的起停及调速问题,设计两个直流电机的硬件电路与控制程序。目标:通过键盘控制两个电机的起停、调速。2.1电机调速控制模块:方案一:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般电动机的电阻很小,但电流很大;分压不仅会降低效率,而且实现很困难。方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。方案三:采用由达林顿管组成的h型pwm电路。用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高;h型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的pwm调速技术。兼于方案三调速特性优良、调整平滑、调速范围广、过载能力大,因此本设计采用方案三。2.2 pwm调速工作方式:方案一:双极性工作制。双极性工作制是在一个脉冲周期内,单片机两控制口各输出一个控制信号,两信号高低电平相反,两信号的高电平时差决定电动机的转向和转速。方案二:单极性工作制。单极性工作制是单片机控制口一端置低电平,另一端输出pwm信号,两口的输出切换和对pwm的占空比调节决定电动机的转向和转速。由于单极性工作制电压波开中的交流成分比双极性工作制的小,其电流的最大波动也比双极性工作制的小,所以我们采用了单极性工作制。3、pwm调脉宽方式:调脉宽的方式有三种:定频调宽、定宽调频和调宽调频。我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在采用单片机产生pwm脉冲的软件实现上比较方便。4、pwm软件实现方式:方案一:采用定时器做为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确,误差只在几个us。方案二:采用软件延时方式,这一方式在精度上不及方案一,特别是在引入中断后,将有一定的误差。但是基于不占用定时器资源,且对于直流电机,采用软件延时所产生的定时误差在允许范围,故采用方案二。2.3 pwm技术pwm(pulsewidthmodulation)控制脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)。pwm控制技术在逆变电路中应用最广,应用的逆变电路绝大部分是pwm型,pwm控制技术正是有赖于在逆变电路中的应用,才确定了它在电力电子技术中的重要地位。(1)理论基础冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。冲量指窄脉冲的面积。效果基本相同,是指环节的输出响应波形基本相同。低频段非常接近,仅在高频段略有差异,如图2.1所示。图2.1 pwm原理面积相同形状不同冲量spwm波形脉冲宽度按正弦规律变化而和正弦波等效的pwm波形。用一系列等幅不等宽的脉冲来代替一个正弦半波,正弦半波n等分,看成n个相连的脉冲序列,宽度相等,但幅值不等,如图2.2所示;用矩形脉冲代替,等幅,不等宽,中点重合,面积(冲量)相等,宽度按正弦规律变化,如图2.2所示。图2.2 pwm信号替代2.4 pwm的参数1)占空比:输出的pwm中,高电平保持的时间与陔pwm的时钟周期2)分辨率:占空比最小能达到的值。如8位的pwm,理论上分辨率就是1:255(单斜率),16位的pwm分辨率就是1:65535(单斜率)。3)频率:pwm输出频率为tc的时基频率2n,rl为脉宽调制方式的位数,即8或16。4)双斜率惮斜率。设一个pwm从0计数到80,之后又从0计数到8o这就是单斜率。设一个pwm从0计数到80,之后是从8o计数到0这是双斜率。双斜率的计数时间多了一倍,pwm输出的频率就慢了一半,分辨率却是l:(8o4-80)一1:160,提高了一倍。假设pwm是单斜率,设定最高计数是8o,我们再设定一个比较值是lo,那么tc从0计数到l0时(此时计数器继续在计数,直到计数达到到设定值80),单片机就会根据你的设定,控制某个io口在这个时候是输出1还是输出0,这就是pwm的基本原理。2.5直流电机的能量转换和特性曲线直流电机将电能,(电流i和电压u)转化为机械能(速度n。和转矩m)。其中损耗可分为摩擦损耗和热损耗(热损耗是由于线圈电阻r产生)。余下的转化为机械能几,如图2.1所示。因此电机的功率守恒可表述为: (2.1)更详细的叙述为: (2.2) 在这能量转化过程中,有两个特性参数是至关重要的,他们是速度常数。和转矩常数。速度常数是指速度n和线圈感应电压“树之间的关系,是指在忽略摩擦的情况下的每个单位电压下的速度变化。与速度是成正比的,公式如下: (2.3)转矩常数所联系的是机械转矩m和电流i之间的关系,是指转矩和有效电流之比。公式如下: (2.4)速度常数。和转矩常数有如下关系: (2.5)如果用转矩m和转矩常数来表示电流,可得如下关系: (2.6)考虑到。和之间的关系,我们可将上式进一步化为: (2.7) 上式便是直流电机的转速、转矩、电阻、转矩常数和速度常数之间的关系。这里转矩单位是n.m;电流单位是a;速度单位是rpm;电压单位是v。直流电机可以运行在额定范围内的任何电压下,速度一转矩曲线表述的是在一恒定电压u下电机的机械表现,该曲线可由两点法给出:空载转速n。和堵转转矩(空载转速:电机在额定电压、空载的情况下的转速;堵转转矩:它是电机在堵转条件下的转矩值,也叫起动转矩),如图所示。空载转速与堵转转矩将随着给定电压的改变而成线性关系。它相当于速度一转矩曲线在特性曲线上平移,如图2.2所示。空载转速与电压有如下关系: (2.8)速度一转矩曲线走势是由斜率来表述的,与电压无关要,它是一项体现电机性能的重参数,如下关系: (2.9)直流电机的速度与转矩间的关系可用下式表示: (2.10)图2.3 转矩转速线性关系第三章 硬件的设计3.1 引言本系统在设计硬件电路时主要从以下原则出发:(l)硬件电路设计与软件设计相结合优化硬件电路。一些由硬件实现的功能可用软件来实现,反过来一些由软件实现的功能也可用硬件来完成。用软件来实现硬件的功能时,其响应时间比用硬件实现长,还要占用cpu时间。但是用软件实现硬件的功能可以简化硬件结构,提高硬件电路的可靠性,还可降低成本。因此在本系统的设计过程中,在满足可行性和实时性的前提下尽可能地将硬件功能用软件来实现。(2)可靠性及抗干扰设计。根据可靠性设计理论,系统所用芯片数量越少,系统的平均无故障时间越长,而且所用芯片数量越少,地址、数据总线在电路板上受干扰的可能性就越少,因此单片机基本系统的设计思想是在满足功能的情况下力争使用较少数量的芯片。(3)灵活的功能扩展。一次设计往往不能完全考虑到系统的各个方面,系统需要不断完善,需要进行功能升级。功能扩展时系统应该在原有设计不需要很大改变的情况下,修改软件和少量硬件甚至不修改硬件就能完成。功能扩展是否灵活是衡量一个系统优劣的重要指标。根据系统要求及上面几个硬件设计原则,系统以单片机pic18f458为中央处理单元,由键盘输入电路,lcd显示,放大器连接电路等组成。下面对主要的电路设计做详细介绍。3.2双桥驱动器l298nl298是双电源大电流功率集成电路,直接采用ttl逻辑电平控制,可用来驱动继电器、线圈、直流电动机、步进电动机等电感性负载。其驱动电压可达46v,直流电流总和可达4a。其内部具有2个完全相同的pwm功率放大回路,其内部结构如图3所示。l298n是一种常用的电机驱动芯片,一片l298n即可驱动两个直流电机或一个步进电机。驱动两个直流电机的连接方式,如图4所示。设所驱动的直流电机额定电压为12v。图3.1 l298n内部结构图图3.2 单片机驱动两个直流电机原理图3.3 l298n芯片介绍l298n芯片的介绍l298是st公司生产的一种高电压、大电流电机驱动芯片。该芯片的主要特点是:工作电压高,最高工作电压可达46v;输出电流大,瞬间峰值电流可达3a,持续工作电流为2a;内含两个h桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器、线圈等感性负载;采用标准ttl逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作;有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。3.1.1 l298的引脚功能l298芯片的引脚图如下图3.3,其引脚功能见表3.3图3.3 l298引脚图表3.1 l298引脚功能表引脚符号功能115sensing asensing b此两端与地连接电流检测电阻,并向驱动芯片反馈检测到的信号23out 1out 2此两脚是全桥式驱动器a的两个输出端,用来连接负载4vs电机驱动电源输入端57in 1in2输入标准的ttl逻辑电平信号,用来控制全桥式驱动器a的开关611enable aenable b使能控制端.输入标准ttl逻辑电平信号;低电平时全桥式驱动器禁止工作。8gnd接地端,芯片本身的散热片与8脚相通9vss逻辑控制部分的电源输人端口1012in 3in 4输入标准的ttl逻辑电平信号,用来控制全桥式驱动器b的开关1314out 3out 4此两脚是全桥式驱动器b的两个输出端,用来连接负载l298的运行参数表3.2 l198的运行参数参数符号测试环境最小值典型值最大值单位驱动电源电压vs持续工作时2.546v逻辑电源电压vss4.557v输入低电平电压vil-0.31.5v输入高电平电压vih2.3vssv使能端低电平电压ven=l-0.31.5v使能端高电平电压ven=h2.3vssv全桥式驱动器总的电压降(每一路)vcesat)il=1ail=2avv检测电压1,15脚vsen-12vl298的逻辑控制l298的逻辑控制见如下表3.3。其中c、d分别为in1、in2或in3、in4;l为低电平,h为高电平,为不管是低电平还是高电平。表3.3 l298对直流电机控制的逻辑真值表输入输出ven=hc=h;d=l正转c=l;d=h反转c=d制动ven=lc=;d=没有输出,电机不工作l298有mutiwatt15和powerso20两种封装 mw.15的1、15和powerso的2、19用法一样,sen1、sen2分别为两个h桥的电流反馈脚,不用时可以直接接地 (mw.15)2、3=(powerso)4、5,1y1、1y2输出端,与对a1与1y1)同逻辑4=6,vs驱动电压,最小值须比输入的低电平电压高2.5v 5、7=7、9,1a1、1a2输入端,ttl电平兼容 6、11=8、14,1en、2en使能端,低电平禁止输出 8=1、10、11、20,gnd地9=12,vss逻辑电源,4.5-7v 10、12=13、15,2a1、2a2 输入端,ttl电平兼容 13、14=16、17,2y1、2y2 输出端 -=3、18,nc,无连接图3.4 l298n 芯片图第四章 硬件电路板的制作4.1 引言电路设计的最终目的是制作电子产品,而电子产品的物理结构是通过印制电路板来实现的。因此在电路原理图完成后,是印制电路板(pcb)的设计,其质量直接影响着电子产品的性能。根据前一章的硬件原理,本章以altium designer summer 09为设计工具,分析和探讨pcb设计中的基本原则和制作流程。4.2确定工作层altium designer summer 09共提供32个信号层,它们是top(顶层)、bottom(底层)、mid layers(中间层130),另外还提供了32个机械层,16个内部电源层等。布线层用得越多,制作pcb的价格就越昂贵。综合考虑电路板性能和价格因素,决定采用双层板的形式来制作该印刷电路板。4.3定义pcb形状及尺寸首先规划电路板的物理边界,一般对电路板机械定义的具体要求是由公司或制造提出的,通常包括角标、参考孔位置、外部尺寸等。我们一般在某一机械层来画物理边框,而在其它机械层上放置尺寸、对齐标志等。规划完电路板的物理边界,还要确定电路板的电气边界。电气边界是用来限定布线和元件放置的范围,它通过keep out layer(禁止布线层)绘制边界来实现的。由于制作中需要考虑元件大小,电气规划等因素,需要不断调整元件的导线的放置,所以本次设计开始并未严格定义板形和尺寸,最终完成的电路板尺寸大小为100mm*85mm。4.4加载pcb元件封装库altium designer summer 09软件自身带有丰富的元件封装库,在绘制原理图的时候只要选取合适的元器件,其对应的封装一般就能符合要求。但由于元器件的种类繁多,更新换代快,所以难免有无法找到的元件封装。这时就需要自行查找或制作元件封装,本次设计大部分的元件封装都为正确的自带封装,少部分元件封装为手动指定。4.5 元器件的布局元件的布局是一个关键步骤,布线的难易以及最终产品的电气性能在很大程度上取决于元件布局的质量。首先,要考虑与结构相关的配合装配问题。先放置与结构有关的固定位置的元器件,如电源插座、指示灯、开关、发光管等元件,其次,再放置线路上的特殊元件和大的元器件,如发热元件、变压器、ic等,最后放置小器件。altium designer summer 09提供了强大的自动布局功能,在预放置元件锁定的情况下,可用自动布局放置其他元件。自动布局较方便,但产生的板并不是最佳方案,仍需要手工调整。4.6.布线布线连接包括:连线、过孔、焊盘、弧线、填充、多边形覆铜和电源层等。altium designer summer 09提供了手工布线和自动布线两种。由于现在pcb板设计越来越复杂、高密度,往往对一些有特殊要求的连线,需要预先手工布放。自动布线与交互式布线相结合可以很好地提高布线成功率和效率。自动布线的结果为手工调整提供参考,如果自动布线能够达到100%或者90%以上。说明元件的布局基本合理,手工修改调整走线也不会有太多的障碍。此外还要设置走线的规则和各网络所连接的导线宽度。为保证信号传输的可靠性该电路板将电源部分导线不同程度加粗。图4.1 元器件布局及pcb图4.7制板最后,生成pcb文件,送厂制板。由于制板周期比较长(大约1个星期左右),这段时间内可完成元器件的购买工作。由于所选元器件并非冷偏门元器件,所以购买比较顺利。元件大部分为贴片,手工焊接难度不大。由于为初次学习和制作印刷电路板,难免有不足和疏忽。第五章 系统软硬件调试5.1 引言随着现代技术的发展,利用软件代替和简化硬件,利用基本的硬件电路和软件技术达到系统多功能集成和容易修改的要求。一个较为简单的硬件电路,系统功能的主要实现是依靠软件的设计来完成的。本系统的软件采用模块化设计,将系统分为若干个模块,分别实现各项功能,这样在系统软件的调试过程中,各个模块的独立调试有助于问题的发现和解决,在一定程度上节约了程序的调试时间。5.2 系统应用程序设计微芯公司为pic18f458系列的集成与调试提供的工具包括:软仿真器,集成开发调试软件mplab,pic系列单片机可采用汇编语言或c语言编写源程序代码。mplab是一个完整的pic单片机集成开发环境,也是目前最优秀、最流行的pic单片机开发软件,大部分的pic系列的单片机都可以采用该软件工具进行开发。mplab包括下列功能:集成可视化编辑界面,可直接编写c、汇编等文件。集成代码生成工具,包括汇编器、连接器等等。基本调试工具,支持调试断点工具走。系统的软件设计是用pic的汇编语言在mplab集成环境下运行、调试、完成的运行。5.3直流电机转速控制器的软件设计直流电机转速控制器的软件设计和系统功能的开发和完善是一个循序渐进过程,本文所作的软件开发是基于直流电机多速控制器的基本功能要求设计的该系统软件有主程序、功能键处理程序、电机运行显示程序、键盘设置参数程序测速程序、延时子程序等。该系统的整个软件设计全部采用模块化程序设计思想,由系统初始化模块、案件识别模块、lcd模块、高优先级和低优先级中断服务程序四大模块组成。其中,系统初始化模块、按键识别和lcd显示模块在主程序完成,而中断服务完成tmr0定时溢出中断、tmr1外部计数溢出中断、tmr3的1s计数溢出中断以及int0外脉冲上边沿捕获中断等。keil uvision2软件介绍keil uvision2是德国keil software公司出品的51系列兼容单片机c语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。keilc51标准c编译器为8051微控制器的软件开发提供了c语言环境,同时保留了汇编代码高效,快速的特点。c51编译器的功能不断增强, 使你可以更加贴近cpu本身,及其它的衍生产品。c51已被完全集成到uvision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uvision2 ide可为它们提供单一而灵活的开发环境。图5.1主程序框图图5.2高优先级中断服务程序框图图5.3低优先级中断服务程序框图系统初始化模块主程序的系统初始化模块包括对pic单片机的cpu系统时钟初始化、pic单片机的i/o方向初始化、tmr0定时/计数器的初始化、tmr3定时/计数器的初始化、ccp模块的初始化和系统相关变量的初始化过程。cpu系统始终初始化pic18单片机内部集成了经过校正的8mhz主时钟源,系统上电默认主时钟为1mhz。通常,需要对osccon寄存器进行配置,使其工作在8mhz。若为了提高cpu的运算速度,则采用pic18单片机的内部pll的4倍频以使cpu主时钟达到32mhz,只需要对osctune寄存器进行设置。本系统采用32mhz的时钟源,因此初始化的结果如下:osccon=0x70;/ircf2.0=111,选择内部8mhz的主振荡器osctune=0x40;/pllen=1,使能pll的4倍频,从而cpu内核时钟为f为32mhz。pic单片机i/o口方向初始化在总图中,rd端口的rd0.7和re端口的re0.2是与lcd模块连接,主要是从pic单片机输出数据或指令到lcd模块,因此可以将其全部设置为输出方向;另外,由于re0.2上电复位默认为模拟输入口,不是数字i/o口,因此需要对adcon1控制寄存器配置re0.2为数字i/o口。由于rb端口接有3个按键k1.3和int0外部中断信号输入,因此需要将rb端口配置成带有上拉功能的输入端口,可以启用rb内部弱上拉。p1a和p1b是pwm信号的输出,应将r1a和r1b配置成输出引脚。具体的初始化结果如下:adcon1=0x0f;/ra和re端口全为数字io口trisd=0x00;/rd端口置输出方向trise=0x00;/re端口置输出方向triscbits.trisc6=0;rd6为输出引脚triscbits.trisc7=0;rd7为输出引脚trisdbits.trisd4=0; p1a为输出引脚trisdbits.trisd5=0; p1b为输出引脚tmr0定时/计数器初始化本系统中采用tmr0产生1s的定时,因此要将tmr0初始化工作在定时功能上,设置t0con模式寄存器的与分频比和选择内部时钟源计数来完成定时,对tmr1l和tmr1h设置定时1s的初值。由于tmr0可以采用16位的方式计数,在对tmr1l和tmrh载入初值时,在16位的工作模式下,要先载入tmr1h内容,在再载入tmr1l内容。具体的初始化结果如下:t0conbits.tmr0on=0;/tmr0停止工作t0conbits.t08bit=0;/选择16位的定时/计数器t0conbits.t0cs=0;/选择内部clko时钟源作为定时t0conbits.psa=0;/选择预分频器t0conbits.t0ps2=1;/预分频比为1:256t0conbits.t0ps1=1;t0conbits.t0ps0=1;tmr0h=(65536-31250)/256;/先写高字节tmr0l=(65536-31250)%256;/再写低字节t0conbits.tmr0on=1;/开始定时工作 eccp模块初始化在原理图中,p1a和p1b分别接在l298的in3和in4引脚上来控制电机正反转并实现对电机的调速。此时,必须将eccp模块初始化在pwm模式下,并且采用周期相同。pic18f458的有四个pwm输出口,在pwm模式下,由tmr2来产生pwm信号周期,实际上要对tmr2进行初始化,并且设置pwm的周期和占空比。具体的初始化过程如下:ccp1con=0x0f;/ccp1设置为pwm模式ccp2con=0x0f;/ccp2设置为pwm模式t2con=0x03;/tmr2的预分频为1:16t2conbits.tmr2on=1;/tmr2开始工作pr2=249;/pwm周期为2000hz,fosc=32mhzccpr1l=0;/pwm1的占空比为0ccpr2l=0;/pwm2的占空比为0 cpu中断系统初始化硬件中共用到4个中断源,分别是tmr0定时1s溢出中断、tmr1计数溢出中断源、tmr3定时溢出中断源和int0外部中断。在这4个中断源中,将int0和tmr0作为高优先中断放在高优先级中断服务程序中执行,tmr1和tmr3放在低优先中断服务程序中执行,因此就有中断优先级初始化。具体的初始化过程如下:intconbits.tmr0if=0;/tmr0溢出标志位清0intconbits.tmr0ie=1;/tmr0溢出中断允许pir1bits.tmr1if=0;/tmr1溢出标志位清0pie1bits.tmr1ie=1;/tmr1溢出中断允许ipr1bits.tmr1ip=0;/低优先级 pir2bits.tmr3if=0;/tmr1溢出标志位清0pie2bits.tmr3ie=1;/tmr1溢出中断允许ipr2bits.tmr3ip=0;/低优先级intconbits.int0if=0;/清int0中断标志位/intconbits.int0ie=1;/int0中断允许intcon2bits.rbpu=0;/允许内部弱上拉intcon2bits.intedg0=1;/上边沿触发中断rconbits.ipen=1;/允许中断优先级位intconbits.gie=1;/cpu全局中断使能允许intconbits.peie=1;/cpu第二梯队中断使能允许电机运行控制模块电机运行控制模块包括电机的方向控制和电机的速度控制,他们由motordirection和motorpwmdata两量变来控制pic单片机的eccp模块产生不同的pwm信号送到l298 电机驱动器。当motordirection=0时,表示正转;当motordirection=1时表示电机反转。motorpwmdata是pwm模块占空比的具体内容,由于pwm的周期是250,所以motorpwmdata的变量变化是0250之间。改变motorpwmdata的值就可以改变电机的速度。具体函数过程如下:void motor_control(unsigned char direction, unsigned char speed) if(0=direction) ccpr1l=0; ccpr2l=0; ccpr1l=speed; else ccpr2l=0; ccpr1l=0; ccpr2l=speed;按键识别模块主程序中要实现对电机启动、停止键识别、电机方向切换键识别和电机速度调节键识别。该模块中没有采用常规的按键识别过程。按键识别方法:判断是否有键按下。延时去除按键抖动。再判断是否真的按下。是真的按下,则执行按键处理程序。等待按键释放。 在第2步中一般在软件上调用一个延时子程序来完成,实际也是一个for循环语句;在第5步中一般在软件上是用一个while循环语句判断等待按键发生变化而退出该循环。这两步在主程序中执行要消耗cpu很多时间,使得cpu的利用率不高。对于实时性要求比较高的情况不建议使用这种方法解决按键问题。为了提高cpu利用率,可以采用硬件扩展键盘识别专用芯片来完成,但这样会造成成本的上升以及cpu或专用芯片的资源浪费。为了考虑提高cpu的效率和充分利用cpu的资源等因素,可将第2步和第5步的延时和等待过程用其他方式来代替。具体实现方法如下:定义一个按键是否成功按下标志变量keycounter;等于1表示按下成功,等于0表示不成功。定义一个软计数器加1的整型变量keycounter。所有直接采用while循环语句或for循环语句的部分采用if语句代替。按键识别过程的方法步骤如下:判断按键是否按下。若按下,则判断keyflag标志是否为0。若keyflag标志为0,则keycounter软计数器加1。判断keycounter软计数是否到一定的数值(这一过程实际上是按键去抖动处理)。若keycounter计到一定数值上,则判断按键是否真的按下。若按键真的按下,则置keyflag为1,表示按键按下成功。开始进行按键对应功能的处理过程。判断按键是否释放。若按键释放,则清keyflag为0,同时清keycounter软计数器为0。按键方法程序框图该按键识别过程的新方法程序框图如图5.4所示。在整个过程中没有出现循环语句,从而使得主程序运行模块的效率得提高,保证了cpu的实时性。图5.4按键识别方法程序框图本实例中,cpu对电机启动、停止控制键(runstopkey)、电机方向切换键(dirkey)和电机速度调节键(pwmkey)的识别方法与5.4相同,只是在框图中的“按键功能处理”不同而已。电机启动、停止控制键(runstopkey)功能处理如果系统上电时电机处于停止状态即(motorrunstatus=1);如果电机处于运行状态,按下runstopkey后,电机就会停下来,电机的的运行与停止状态在这个按键的作用下进行就可以控制电机的启动与停止操作。此部分的按键功能处理程序框图如图5.5所示。5.5 电机正反转控制键功能处理改变电机正反转实际上是改变驱动电机的两路pwm信号的输出,假如电机正转则rc1输出pwm信号,rc2只输出低电平;反之rc2输出pwm信号,rc1只输出低电平就能使电机反转。程序中设置motordirection变量作为电机正反转控制变量,将该变量参数传给motor_control()函数即可。功能处理框图如图5.6所示。图5.6 电机正反转按键处理框图电机速度控制键功能处理程序中

温馨提示

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

评论

0/150

提交评论