声控步进电机运动控制系统的设计

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

声控步进电机运动控制系统的设计

声控步进电机运动控制系统的设计[摘要]系统主要以凌阳spce61a单片机作为核心的控制器,被控对象以步进电机为例,以声控方式控制步进电机运动的设计。其中语音识别部分有语音的录制,压缩、编码、解码,主要的识别部分分为语音训练和语音识别两个过程,实现语音识别;通过语音命令来控制步进电机的运动状态,包括正反转、加速、减速等状态。并能通过LCD液晶模块实时显示出来,使人们直观的看出步进电机的运行状态和速度状态。系统分为凌阳单片机语音识别模块、LCD显示和驱动步进电机三个模块。文章首先重点介绍语音识别的原理、过程;其次简单凌阳spce61a单片机及单片机最小系统;再次主要介绍了步进电机的工作原理和步进电机的驱动,LCD液晶显示的读写时序图;最后对设计的硬件电路和软件进行详细介绍。[关键词]单片机、语音识别、LCD、步进电机\nVoicecontrolsteppermotormotioncontrolsystemdesignAbstract:systemsmainlybysunplusspce61asingle-chipmicrocomputerasthecoreofvoicecontrolsteppermotordesign,thedesignofthesystembysunplusmicrocontrollervoicerecognitionfunctiontocontrolsteppermotorandreversing,accelerationanddeceleration,suchasstate,andcanbedisplayedbyLCDmoduleinrealtime,tomakepeoplemoreintuitiveseetherunningconditionandspeedofthesteppermotor.Systemisdividedintosingle-chipvoicerecognitionmodule,LCDdisplayanddrivingasteppermotorthreemodules.IntegratedapplicationoftheknowledgeofSCMinterruptsystem,timer,etc.Thispapersimplyintroducesthesunplusspce61asingle-chipmicrocomputerandsinglechipmicrocomputerminimumsystem;Secondlyintroducesthespeechrecognitionpartofthecircuitprinciplediagram;Again,thispaperintroducestheworkingprincipleofsteppermotorandsteppermotordrive,LCDliquidcrystaldisplaytimingdiagram,speaking,readingandwriting;Finally,thehardwarecircuitandsoftwaredesignareintroducedindetails.keywords:single-chipcomputer,voicerecognition,LCD,steppermoto\n目录1引言11.1问题的提出11.2国内外发展现状11.2.1算法模型方面,需要有进一步的突破11.2.2自适应方面,语音识别技术也有待进一步改进11.2.3稳定性与可靠性方面21.2.4多语言混合识别21.2.5语音识别技术的应用前景21.3本设计的主要问题及解决31.4设计的进程安排32系统方案设计42.1设计方案和论证42.2系统方案设计思路和设计框图43系统硬件电路设计63.1语音控制模块63.1.1语音分析63.1.2语音信号的存储与回放7\n3.1.3语音识别73.1.4语音辨识原理原理框图73.2步进电机模块73.2.1步进电机工作原理83.2.2步进电机硬件图103.3液晶显示模块103.3.1液晶显示原理103.3.2液晶显示器的分类103.3.3液晶显示器各种图形的显示原理103.3.41602LCD的一般初始化(复位)过程123.3.51602液晶显示部分硬件电路仿真123.4控制模块123.4.1SPCE061A简介123.4.2SPCE061A外部管脚图134系统软件设计145系统调试185.1系统在线仿真分析185.2系统调试遇到的问题及解决方法18\n5.2.1步进电机转动错误及解决方法185.2.2液晶显示错误以及解决方法185.2.3语音识别问题及解决方法185.3系统性能分析185.4系统资源分配表196总结与展望20致谢21参考文献22英文资料23中文翻译40附录A元器件清单53附录B实物图54附录C整体程序55\n1引言1.1问题的提出随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的声控系统开始进入了人们的生活。声控系统有它存在的理由,在工业化的迅速发展的今天,越来越注重生产的效率与安全,许多的工业现场人是不能近距离操控的,例如高温、高腐蚀、剧毒、强辐射等工业现场,可以采用声音进行远程控制,因此通过声控进行远程的控制是一种可取的控制方式,但是随之而来的核心问题是如何实现语音的识别,且要求在能识别语音命令前提下,系统具有一定的稳定性与可靠性。如果能达到语音的稳定控制,将具有一定的实用价值。由于凌阳单片机具有语音处理功能,所以采用凌阳单片机进行声控系统的应用设计,具有编程灵活多样、操作码个数可随便设定等优点。被控对象以步进电动机为例,控制步进电机的正转、反转、加速、减速等运动状态。1.2国内外发展现状语音识别技术并不是一夜之间冒出来的神话,早在三四十年前,在美国的一些大学和研究单位,就已经有人开始从事这一方向的研究,并有一些相关论文发表;七十年代前后,研究的脉络日渐清晰,于是贝尔实验室和国际商用机器公司(IBM)等都先后建立了专门的研究机构。今天这两家公司在这一领域都已取得了显著的成果,并且在商业上应用成功,但贝尔实验室主要是偏重于电信方面应用的语音识别系统,如电话查询等;而IBM则偏重于商务应用,因而在连续语音识别上取得了不小的成功。今天,许多用户已经能享受到语音技术的优势了,可以对计算机发送命令,或者要求计算机记录下用户所说的话,以及将文本转换成声音朗读出来。尽管如此,距离真正的人机自由交流的前景似乎还远。目前,计算机还需要对用户作大量训练才能识别用户的语音。并且,识别率也并不总是尽如人意。换言之,语音识别技术还有一段路需要走,要做到真正成功的商业化,它还必须在很多方面取得突破性进展,这实际就是其技术的未来走向。1.2.1算法模型方面,需要有进一步的突破目前能看出它的一些明显不足,尤其在中文语音识别方面,语言模型还有待完善,因为语言模型和声学模型正是听写识别的基础,这方面没有突破,语音识别的进展就只能是一句空话。目前使用的语言模型只是一种概率模型,还没有用到以语言学为基础的文法模型,而要使计算机确实理解人类的语言,就必须在这一点上取得进展,这是一个相当艰苦的工作。此外,随着硬件资源的不断发展,一些核心算法如特征提取、搜索算法或者自适应算法将有可能进一步改进。可以相信,半导体和软件技术的共同进步将为语音识别技术的基础性工作带来福音。1.2.2自适应方面,语音识别技术也有待进一步改进目前,像IBM的ViaVoice和Asiaworks的SPK都需要用户在使用前进行几百句话的训练,以让计算机适应你的声音特征。这必然限制了语音识别技术的进一步应用,大量的训练不仅让用户感到厌烦,而且加大了系统的负担。并且,不能指望将来的消费电子应用产品也针对单个消费者进行训练。因此,必须在自适应方面有进一步的提高,做到不受特定人、口音或者方言的影响,这实际上也意味着对语言模型的进一步改进。现实世界的用户类型是多种多样的,就声音特征来讲有男音、女音和童音的区别,此外,许多人的发音离标准发音差距甚远,这就涉及到对口音或方言的处理。如果语音识别能做到自动适应大多数人的声线特征,那可能比提高一二个百分点识别率更重要。事实上,ViaVoice的应用前景也因为这一点打了折扣,只有普通话说得很好的用户才可以在其中文版连续语音识别方面取得相对满意的成绩。第61页共62页\n1.2.3稳定性与可靠性方面目前,对语音识别效果影响最大的就是环境杂音或嗓音,在公共场合,你几乎不可能指望计算机能听懂你的话,来自四面八方的声音让它茫然而不知所措。很显然这极大地限制了语音技术的应用范围,目前,要在嘈杂环境中使用语音识别技术必须有特殊的抗嗓(NoiseCancellation)麦克风才能进行,这对多数用户来说是不现实的。在公共场合中,个人能有意识地摒弃环境嗓音并从中获取自己所需要的特定声音,如何让语音识别技术也能达成这一点呢?这的确是一个艰巨的任务。此外,带宽问题也可能影响语音的有效传送,在速率低于1000比特/秒的极低比特率下,语音编码的研究将大大有别于正常情况,比如要在某些带宽特别窄的信道上传输语音,以及水声通信、地下通信、战略及保密话音通信等,要在这些情况下实现有效的语音识别,就必须处理声音信号的特殊特征,如因为带宽而延迟或减损等。语音识别技术要进一步应用,就必须在强健性方面有大的突破。1.2.4多语言混合识别目前使用的声学模型和语音模型太过于局限,以至用户只能使用特定语音进行特定词汇的识别。如果突然从中文转为英文,或者法文、俄文,计算机就会不知如何反应,而给出一堆不知所云的句子;或者用户偶尔使用了某个专门领域的专业术语,如"信噪比等,可能也会得到奇怪的反应。这一方面是由于模型的局限,另一方面也受限于硬件资源。随着两方面的技术的进步,将来的语音和声学模型可能会做到将多种语言混合纳入,用户因此就可以不必在语种之间来回切换。此外,对于声学模型的进一步改进,以及以语义学为基础的语言模型的改进,也能帮助用户尽可能少或不受词汇的影响,从而可实行无限词汇识别。任何技术的进步都是为了更进一步拓展我们人类的生存和交流空间,以使我们获得更大的自由,就服务于人类而言,这一点显然也是语音识别技术的发展方向,而为了达成这一点,它还需要在上述几个方面取得突破性进展,要实现这一点,Intel架构平台的性能进步也是一个关键的因素,最终,多语种自由交流系统将带给我们全新的生活空间。1.2.5语音识别技术的应用前景语音识别技术的发展的确经历了一个漫长的渐进过程。二十多年前,它还只是科研人员在实验室里描述的一个梦想般的希望,但两个方面的进步终于促成了这一技术的平民化。其一,半导体技术的发展使得以前只有在巨型机上才能进行的语音识别系统如今在微机上就可以实现。无疑,英特尔公司在这其中扮演了重要的角色,今天,多数的普通家庭都对“IntelInside”这样一句广告词耳熟能详,并且也具备足够的支付能力来使用一台高性能微机;其二,软件技术的演进也使得这项技术走向实用,一些核心算法,如特征提取、语音的声学摸型及相应的语言模型,搜索算法及自适应算法等都取得了长足的进展。软硬件技术的有效结合为我们提供了一种全新的远景。很显然,语音处理正在革新这个世界,因为一旦赋予人类语音以力量之后,任何会说话的人都将能自由地应用这种技术。并且,这也是现存的最为自然的用户界面。多数人可能都怀着一种模糊而激动的心情期待着这一新技术的来临,然而,语音识别技术确切地能够为我们带来什么呢?许多行业还并未清晰地意识到该技术所可能开拓的广阔空间。但是,就目前的发展势态及技术进步来看,它将有可能涉足人类生活的每一领域。目前,在信息处理、教育与商务应用、消费电子应用方面,语音识别技术都已经展现出了它的巨大优势。第61页共62页\n1.3本设计的主要问题及解决本课题采用凌阳SPCE061A单片机作为核心的控制器,被控对象以步进电机为例,实现对步进电机对个运动状态的控制,最主要的任务是实现语音命令的识别,并且具有一定的抗干扰性与稳定性,同时利用液晶显示器实现对步进电机运动状态的实时显示。本课题将要解决的问题就是语音如何识别和如何用单片机控制步进电机的运动状态及用LCD液晶如何显示出来。根据该系统设计要求,需要通过MIC的麦克输入语音命令、单片机识别语音命令、输出相应的命令来控制步进电机的运动状态和LCD显示器来显示步进电机的各个运动状态。其中步进电机的运动状态包括:正转、反转、加速、减速四个运动状态。语音识别命令之后,输出相应的命令来驱动步进电机执行相应得动作,同时在LCD上显示相应的运动状态。系统的硬件结构搭建相对比较简单,系统大部分都是软件实现的。1.4设计的进程安排此次毕业设计的第一阶段的主要工作是,学习有关SPCE061A单片机的基本知识,了解此单片机控制步进电机的相关技术,并进一步学习语音录制、压缩、编码、解码、播放、辨识的过程与原理,外加液晶显示原理等知识,同时学习五线四相步进电机的控制方法与驱动方法。第二阶段是在指导教师的指导下,设计出具体的电路,并确定满足具体技术的指标软件,掌握电路中重要器件的使用方法,以及编写基于凌阳单片机的声控步进电机运动控制系统程序。最后,通过教师的悉心指导和自己的努力,完成了毕业设计的各项任务,成功完成基于凌阳单片机的声控步进电机控制系统,在该设计过程中给予极大鼓励和帮助的老师、同学,在此表示衷心的感谢。由于在设计过程中存在许多不足,希望老师指正。第61页共62页\n2系统方案设计2.1设计方案和论证方案一:采用51单片机AT89C51(晶振频率为12MHZ)作为核心控制器,通过外部的语音芯片给单片机发送信号,从而实现对四相五线制步进电机(内阻33欧,步进1.8度,额定电压12V)进行控制。这里的难度在于语音的录制、压缩、编码与语音匹配,由于语音的编码很复杂,文件的体积较大,又需要单片机的外部扩容,同时AD采样,AD与DA的相互转化比较复杂。通过I/O口输出的具有时序的方波作为步进电机的控制信号,信号经过芯片ULN2003驱动步进电机。ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。通过ULN2003构成步进电机的驱动电路。61的PA0-PA3口接ULN2003的1-4输入端。方案二:利用凌阳SPCE061A单片机作为核心控制器来控制步进电机,其中的主要原因是因为凌阳单片机具有语音识别功能。凌阳SPCE061A单片机可调用凌阳库函数,实现语音的录制、压缩、编码与语音匹配,同时它又和AT89C51相似的功能、控制过程,较适合此次毕设。控制步进电机正、反方向转动、单步、连续、快慢、速读值等动作,原理其实并不困难。步进电机将电脉冲信号转换成角位移,即给一个脉冲,步进电机就转动一个角度,转动的角度大小与施加的脉冲数成正比,因此,单步和连续的动作区别只是单片机给步进电机脉冲个数不同而已。每按一次单步键就是给电机一个脉冲,而连续则是不断的给电机脉冲,达到连续运转的目的。单片机的晶振为24MHz,由于机械动作需要一定时间来完成,如果以这么快的速度来给脉冲,电机是不会转动的,因此,在两个脉冲之间必须要有一定时间差,电机才有时间来执行动作。电机转动的速度与脉冲频率成正比,控制脉冲间隔时间就相当于控制了步进电机的转动角频率即快慢。步进电机的转动需要向电机以一定的顺序分配驱动脉冲。如四相双八拍,其脉冲分配的方式和顺序为A-AB-B-BC-C-CD-D-DA,如此周而复始,即可转动。转动方向与脉冲顺序有关,如果给相反脉冲,那么电机就会反转。通过认真对比,由于方案一是单独的语音芯片给单片机发送信号,由此而需要处理的信号会很多,方案复杂,可靠性低。而方案二是SPCE061A作为核心控制器,同时其又有语音处理功能,设计方案会相对简单许多,可靠性会高很多。方案一不易实现,而方案二可以在短期内实现,所以选用方案二更合理。2.2系统方案设计思路和设计框图整个系统的设计框图如下:设计框图如图2.1所示。单片机识别语音发送命令步进电机驱动步进电机LCD1602显示LCD1602驱动语音输入图2.1系统设计框图第61页共62页\n根据该系统设计要求,需要语音输入命令之后,单片机识别出对应的命令,然后通过ULN2803来驱动步进电机执行相应的动作,同时通过LCD显示步进电机的运动状态。只要SPCE061A能识别出相应的语音命令即可,本系统的硬件搭建相对简单,绝大部分通过软件来实现。由于要求步进电机完成正转、反转、加速、减速,同时显示在1602液晶显示器上。设计思路就是这样,语音识别模块,步进电机驱动模块,显示模块。第61页共62页\n3系统硬件电路设计本设计的硬件电路只要包括控制电路、最小系统、驱动电路、显示电路四大部分。最小系统只要是为了使单片机正常工作。控制电路只要由开关和按键组成,由操作者根据相应的工作需要进行操作。显示电路主要是为了显示电机的工作状态和转速。驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。3.1语音控制模块3.1.1语音分析语音分析是从语音信号中抽取出表现其本质的特征参数的语音处理技术。只有分析出表现语音信号本质的特征参数,才有可能利用这些参数进行高效的语音通信,建立用于识别的模板或知识库,建立用于语音合成的语音库。(1)语音信号的时域分析可直接利用语音信号的时域波形进行分析。音频采样原理如图3.1所示。输入设备AD采样101010101010101000100101111111数字信号音源图3.1音频采样原理图音频采样和量化是将模拟(连续)的声音波形数字化(离散化)。采样频率:采样频率是指采样设备每秒对声音信号的采集次数。采样频率越高,声音的还原就越真实自然。根据采样定理,当采样频率大于信号的2倍带宽时,在采样过程中不会丢失信息,且从采样信号中可以精确地还原信号波形。通常,电话语音的频率范围是300-3400Hz,因此采样频率一般为8kHz,但在实际语音处理中,采样频率通常为7-10kHz。量化位数:量化位数是把模拟声音转化为数字信号的二进制位数。采样之后要对信号进行量化,在量化过程中要不可避免地产生误差。量化后的信号值与原信号之间的差值称为量化误差,又称为量化噪声。量化位数客观地反映了数字声音信号描述的准确程度。(2)语音信号的频域分析语音信号的频域分析是对语音信号的频谱、功率谱等进行分析。语音信号是非平稳信号,其非平稳性是由发声器官的物理运动过程而产生的。所以对语音信号处理来说,短时分析的方法是有效的。短时分析应用于频率分析就是短时傅里叶变换,相应的频谱称为“短时谱”,即有限长度的傅里叶变换。短时傅里叶变换最重要的应用就是语音分析与合成系统,因为由短时傅里叶变换可以精确地恢复语音波形。(3)语音信号的线性预测分析语音信号的线性预测分析的基本原理是将被分析的语音信号用一个模型来表示,利用模型的参数来描述语音信号的波形和频谱特性。要有效地进行线性预测分析,就要有高效求解线性方程的算法,常用的有针对自相关方程的Durbin递推算法与Schur递推算法,针对协方差方程的乔里斯基分解算法,还有一种算法避开了自相关和协方差函数的计算,直接由信号样本递推的Burg递推算法。(4)语音压缩编码语音压缩压缩编码的意义:高效存储和高速传输。语音压缩编码的应用:压缩编码的应用主要分为两类:第一类是编码、存储、回放系统,或称为数字语音录放系统;第二类是编码、传输、解码系统,或称为数字电话通信系统。第61页共62页\n语音压缩编码分类:语音波形编码、语音参数编码、语音混合编码。语音波形编码:直接将波形信号转变为数字代码,尽量真实的还原波形。它不依赖模型假定的语音编码方法,以波形逼近为原则,直接对时域波形或在变换域进行编码,压缩比较小。优点是声音质量好,缺点是压缩比低,码率通常在20kbps以上,使用于高保真音乐及语音场合。语音混合编码:将参数编码和波形编码技术结合起来,克服了两种编码的缺点,压缩比高,码率为4-16kbps,音质介于参数编码和波形编码之间。3.1.2语音信号的存储与回放语音信号的存储器大多采用随机存储器(RAM)、紫外线可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)和Flash存储器。在要求长久保持语音信号的系统中,采用RAM要增加供电电路,以防止信号数据的丢失。EPROM、EEPROM和Flash存储器也常用作语音信号存储器。SPCE061A的片内存储器有2K字的SRAM和32K的Flsah存储器。3.1.3语音识别(1)语音识别基本原理预处理:即语音信号数字化,包括预加重、反混叠滤波、A/D转换、自动增益控制等处理过程。在语音识别中,预处理还包括在声学参数分析之前正确选择识别基元。特征提取:即特征参数分析,该过程抽取反应语音本质的特征参数,形成特征矢量序列。可供选择的语音特征参数有时域参数、频率参数、其他参数、超音段信息函数等。语音模型库:即声学参数模板,用聚类分析等方法,是从一个或多个讲话者多次重复讲话中提取的语音参数模板。模式匹配:把输出语音的特佂参数与语音模型库进行比较分析,得到识别结果。根据识别方法的不同,又分为统计模式识别法与句法模式识别法两类。语音结构识别图如图3.2所示。识别结果训练语音输入识别预处理语音模型库模式匹配特征提取后处理初步识别结果图3.2语音识别系统的基本结构3.1.4语音辨识原理原理框图次框图主要说明凌阳单片机实现语音控制的优点,及语句简单好用,且都是调用库函数。掌握以下语句就可以快速实现语音的播报、识别。初始化BSR_DeleteSDGroup(0)调用训练模TrainWord(intWordID,intRespondID)初始化辨识器BSR_InitRecognizer(BSR_MIC)启动实时监控BSR_EnableCPUIndicator()辨识处理BSR_GetResult()辨识部分图图3.3语音辨识原理框图3.2步进电机模块第61页共62页\n步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。现在比较常用的步进电机包括反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)和单相式步进电机等。3.2.1步进电机工作原理步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。现在比较常用的步进电机包括反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)和单相式步进电机等。该电机定子上有8个凸齿,相距180°的两个凸齿构成一相,每一相上的线圈反相连接,这样8个齿就构成四相,AA1、BB1、CC1、DD1,因此称为四相步进电机。当有一相绕组被励磁时,磁通从正相齿,经过软铁芯的转子,并以最短的路径流向负相齿,而其他的六个凸齿并无磁通。为使磁通路径最短,在磁场力的作用下,转子被迫转动,使最近的一对齿与被励磁的一相对准。一般对步进电机采用半步驱动,即四相八拍工作方式,使步进电机每次励磁转过1/2的步距角,即每次改变励磁方式步进电机转过7.5°,它的励磁方式是A→AB→B→BC→C→CD→D→DA→A……,若要反转也是只需改变励磁方式即可,即按照A→AD→D→DC→C→CB→B→BA→A……,采用八拍工作方式使得电机的转动更加稳定,也进一步增强了步进电机的控制精度。实验箱中使用的是四相步进电动机,步进电机的控制有三个问题需要解决,下面分别阐述,控制其转动,按照一定的顺序向步进电动机的各相分配驱动脉冲。就四相步进电机而言,如果采用但四拍方式,其脉冲分配的方式和顺序是A-B-C-D-A,如果采用单双八拍的方式,其脉冲分配的方式和顺序为:A-AB-B-BC-C-CD-D-DA-A.四相步进电动机的励磁工作方式如3-1表所示。表3.1四相步进电动机励磁工作方式示例编码结果(十六进制)ABCD0701110300110B10110910010D11010C11000E1110060110控制其转动方向,其实只需考虑在脉冲分配的过程中注意一定得顺序即可解决。就四相步进电机而言,如果采用单四拍方式,其脉冲分配的方式和顺序是A-B-C-D-A,为正转;则其反转的脉冲分配方式和顺序是D-C-B-A-D。如果采用单双八拍方式,其反转的脉冲分配方式和顺序是D-DC-C-CB-B-BA-A-AD-D。控制其转动速度,解决的方法是在脉冲分配的过程中,控制在每两个相邻脉冲输出中的间隔时间即可解决速度问题。28BYJ-48步进电机:第61页共62页\n步电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。您可以通过控制脉冲个来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机28BYJ48型四相八拍电机,电压为DC5V—DC12V。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A。。。),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-。。。),八拍(A-AB-B-BC-C-CD-D-DA-A。。。)驱动方式(4-1-2相驱动)如表3-2所示。表3.2步进电机驱动方式导线颜色123456785红++++++++4橙---3黄---2粉---1蓝---红线接电源5V,橙色电线接PA3口,黄色电线接PA2口,粉色电线接PA1口,蓝色接PA0口。由于单片机接口信号不够大需要通过ULN2003放大再连接到相应的电机接口,如下表3.3所示.表3.3端口连接方式橙 AP1.3黄BP1.2粉CP1.1蓝DP1.0十六制(P1口)10000x0811000x0c01000x0401100x0600100x0200110x0300010x0110010x09所以可以定义旋转相序ucharcodeCCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};  //逆时钟旋转相序表ucharcodeCW[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};   //正时钟旋转相序表第61页共62页\n3.2.2步进电机硬件图图3.5步进电机实物图此电路是步进电机的驱动部分,我选用的是ULN2003芯片来驱动的,ULN2003是高耐压、大电流复合晶体管阵列,由七个硅NPN复合晶体管组成。3.3液晶显示模块3.3.1液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。3.3.2液晶显示器的分类液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(SimpleMatrix)和主动矩阵驱动(ActiveMatrix)三种。3.3.3液晶显示器各种图形的显示原理(1)线段的显示点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H——00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。(2)字符的显示用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。(3)汉字的显示汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5……右边为2、4、6……根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节……直到32B显示完就可以LCD上得到一个完整汉字。1602LCD主要技术参数:第61页共62页\nA显示容量:16×2个字符B芯片工作电压:4.5—5.5VC工作电流:2.0mA(5.0V)D模块最佳工作电压:5.0VE字符尺寸:2.95×4.35(W×H)mm1602液晶模块内部的控制器共有11条控制指令,如表3-4所示:表3.4控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L**6置功能00001DLNF**7置字符发生存储器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线第61页共62页\nN:低电平时为单行显示,高电平时双行显示F:低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。与HD44780相兼容的芯片时序表如3.5所示。表3.5基本操作时序表读状态输入RS=L,R/W=H,E=H输出D0—D7=状态字写指令输入RS=L,R/W=L,D0—D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0—D7=数据写数据输入RS=H,R/W=L,D0—D7=数据,E=高脉冲输出无3.3.41602LCD的一般初始化(复位)过程延时15mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)以后每次写指令、读/写数据操作均需要检测忙信号写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动设置写指令0CH:显示开及光标设置3.3.51602液晶显示部分硬件电路仿真液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,以及被广泛应用于各个领域。本次设计主要是利用单片机的P2口来控制液晶显示的数据输入端,用PB8用来控制液晶显示的数据/命令选择端,P9用来控制液晶显示的始能端。通过液晶显示来显示步进电机的的正反转、加减速、单步或连续、停止、转速等功能。如下图3.14所示。3.4控制模块3.4.1SPCE061A简介(1)概述第61页共62页\nSPCE061A是unSP家族继SPCE500A之后,凌阳公司推出的另一款16位单片机。与SPCE500A不同的是,考虑到用户较少的内存需求以及便于程序出错,SPCE061A只内嵌入32K字的闪存(FLASH)。与SPCE500A相比,SPCE061A内的unSP核心具有较高的处理速度,能够更容易、更快速地处理复杂的数字信号。因此,以unSP为核心的SPCE061A微控制器,是数字语音辨识产品的最经济选择。(2)特色SPCE061A的主要性能特点是:(1)16位unSP微处理器核心;(2)CPU工作电压Vdd为3.0-3.6V,I/O接口电压Vddh为3.0-5.5V;(3)CPU工作时钟频率为0.32-49.152MHz;(4)内置2K字静态内存(SRAM);(5)内置32K字闪存(FIASH);(6)可编程音频处理;(7)晶体振荡器;(8)省电模式:在备用(standby)模式下,时钟停止,耗电仅为2uA/3.6V;(9)2个16位可编程定时器/计数器;(10)2个10位DAC(数字模拟转换)输出通道;(11)32个通用I/O口;(12)14个中断源,包含2个定时器及时基(timebase),2个外部时钟源,按键唤醒;(13)具备按键唤醒的功能;(14)使用凌阳SACM_S240音频编码方式(2.4Kb/s),能容纳210s的语音资料;(15)锁相环回路(PLL)提供系统时钟;(16)32768Hz实时时钟(RTC);3.4.2SPCE061A外部管脚图第61页共62页\n图3.6凌阳单片机管脚图4系统软件设计系统的软件设计通常采用模块化结构,软件系统总体框架一般包括三部分:主程序、中断服务子程序以及其他相应的辅助子程序(包括正反连续转子程序、加减速子程序、LCD显示子程序,具体如4.1图所示。4.1系统主流程设计图4.1系统整体流程图总流程图采用模块化结构,分功能模块结构,可实现无扰动重入.软件模块按功能划分,是以子程序的形式设计的,程序分别对各个功能进行调用,各个模块功能清晰明了.本次设计采用单极性直流电源供电,只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动.其中单片机的初始化是设置I/O,主要是PA口的低四位和PB口的低八位,设置结束之后就进行语音的训练,训练成功之后就进行了语音的识别。语音识别结果来调用相应的子程序.显示模块采用传统的LCD液晶显示数字,程序编译容易,资源占用少.4.2加减速子程序设计第61页共62页\n加减速是靠外部中断完成的,根据语音识别结果,判断是否满足加减速运动的条件,满足加减速条件,当前速度是否高于300拍/秒或者低于40拍/秒,则执行相应的语音命令,不满足则保持原来的运动状态不变。加速与减速都是调用正脉冲序列数组。其中加减速是通过改变脉冲发送的频率来实现的。速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,也就是改变了电机的转速。程序流程图如图4.2所示。YN识别出加减速命令判断当前速度是否高于300拍/秒或低于40拍/秒进行加减速运动按原速度运行调用子函数返回图4.2加减速流程图4.3连续正反转子程序设计当程序读取到连续开始时,打开定时中断器进行中断判断,当中断次数减去一等于零时,进行读取方向指示(正转或反转),当中断次数减去一不等于零时,继续进行中断,直至为零时进行到下一步开始读取步进电机方向指示,当程序设计读取到旋转相序为ucharcodeCCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; 为逆时钟旋转相序表即反转,当程序设计读取到旋转相序为ucharcodeCW[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};为正时钟旋转相序表即为正转,确定正反转后系统发送一组脉冲,步进电机开始连续正转或反转。流程图如图4.3所示。第61页共62页\n识别出正反转速命令进行正反转运动以150拍/秒速度运动调用子函数返回图4.3连续正反转流程图4.4单步正反转子程序设计当程序读取到单步时,不用进行步进电机的方向判断,正转或反转的脉冲序列已提前写好,不同的序列代表不同转速方向。当识别出正转命令之后,则直接调用正转脉冲序列ucharcodeCCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};以140拍每秒的速度运行,为逆时钟旋转相序表。当识别出反转命令之后,同样调用反转脉冲序列ucharcodeCW[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};同时启动监控,执行固定时间之后则结束返回。4.5LCD1602液晶显示子程序设计1602液晶显示程序设计时,先进给1602进行初始化,然后设置液晶显示的第一行,然后显示第一行需要显示的内容,再设置液晶显示的第二行,再进行显示第二行要显示的内容,然后跳转到按键扫描进行循环。第一行显示当前运动状态,第二行显示当前的运动速度。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图10-57是1602的内部显示地址。例如第二行第一个字符的地址是40H,那么如果直接写入40H就可以将光标定位在第二行第一个字符的位置,这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”10.8.2.51602LCD的一般初始化(复位)过程程序流程图如图4.4所示。第61页共62页\n1602初始化设置第一行显示显示第一行设置第二行显示显示第二行开始返回图4.4程序流程图写指令06H:显示光标移动设置写指令0CH:显示开及光标设置10.8.31602LCD的软硬件设计实例延时15mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)以后每次写指令、读/写数据操作均需要检测忙信号写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏第61页共62页\n5系统调试5.1系统在线仿真分析(1)运行模式设定:在停机状态下按模式键进行运行模式切换,当LCD显示数值时为预置步数模式,灭时为连续运行模式或可以进行单步运行。(2)方向设定:在停机或运行状态下按方向键进行选择。开始默认为正向。电机的运行正反向表示的是顺时针还是逆时针是由操作者在接步进电机时的相序决定的,在识别出命令之后,液晶显示会有相应显示。(3)单步运行模式:电机以设定的运行方式正向运行一步;识别出正反转命令之后,电机以设定的运行方式反向运行一步。单步运行时。(4)加减速运行:电机在识别出命令后作出相应的动作,如果满足条件则进行相应的加减速运行。并且加减速运行是在同一个方向上的。电机以设定的方式和方向连续运行,同时LCD显示当前运行方式和转速。(5)强行复位即停止电机转动:凌阳61板上的复位键键已经连接好。把编好的程序(包括正反转、加减速、单步连续、停止、转速、显示等程序)合理安排好结合到一起进行编译。由于编译只能检查是否存在语法错误,所以还要看是否存在逻辑错误。程序修改后,当显示编译0错误,0警告的时候,这说明已经没有语法错误了,是否有逻辑错误还要看把程序放入仿真电路里通过仿真看是否符合自己的设计构思,步进电机是否能正常按照设定的技术指标进行转动,1602液晶显示是否和步进电机的实时状态相同。5.2系统调试遇到的问题及解决方法5.2.1步进电机转动错误及解决方法步进电机一开始不能正常转动,以为是电路或者程序有问题,为了防止这些问题,首先将电路进行重新检查一遍,然后对程序进行一一调试,没问题。程序也是正确的。后来仔细查看了步进电机的型号和工作原理,才发现原来步进电机是1:64减速比的步进电机,要使步进电机实现任务要求的各种运动转态,四个相序必须弄清。把电机接上电源,用高电平分别接触电机的引线,每接触一下就会向前或向后有抖动一下,经过几次实验,发现电机转动时很难用眼睛看出来,因为减速比很大,里面转64圈外面才能转一圈,所以给电机加驱动的时候加了指示灯用以方便显示电机的运动状态,这样就解决了遇到的问题。5.2.2液晶显示错误以及解决方法进行硬件调试的时候发现液晶什么也不显示,有时候显示一些黑色的乱码,开始以为程序有问题,经过查资料咨询老师,最后确认程序正确无误,后来以为电路连接问题,经过仔细的几次检查,电路连接问题也没有问题,后来在想到底会是什么原因,最后我们只能怀疑是不是1602液晶有问题,最后换了一个新的显示器,一切显示正常了,所以问题也就解决了。5.2.3语音识别问题及解决方法当我们把电路上电之后,系统会自动提示开始训练,首先训练名称,接下来训练第一条命令,以此类推下去,最多训练8条命令;训练完成之后就进行语音的识别过程,系统设定的逻辑是识别出名称时自动播放一段语音“我在巡逻”,然后就是识别各个命令了,但是每次发出定一条命令之后,系统可以识别,并且执行相应的动作,但执行完了之后程序会自动跳转回去进行再次的训练,这个问题找了好久都没有得到解决。5.3系统性能分析因为电机步进角为5.625°,一圈需要360/5.625=64个脉冲。电机转速为1/(T*64),其中T为定时计数器中断时间,开始时电机以最小速度运行,即查表中第一个数据,H通过计算为1s,因为单片机给64个脉冲步进电机才转一圈,因此电机的速度为0.94r/min。表中各种值对应的速度如下表5.1所示.第61页共62页\n表5.1性能分析转速(r/min)中断时间(s)f(HZ)0.941.001.001.340.701.431.560.601.671.880.502.002.680.352.863.750.254.006.490.156.679.380.1010.00电机单步运行:5.625°/次电机连续运行:0.94r/min~9.38r/min可能程序还有不足的地方,按下加减速,可以感到电机有加速和减速的情况,但和原来设计初衷有点出入。在Proteus中仿真明显感到电机有强烈的摇晃感,每转一下。感觉都要向后退一下,在试验箱上根本就不会转。5.4系统资源分配表(1)PA0一PA3输出控制信号到步进电机,控制步进电机完成相应的动作。(2)PB口作为接液晶显示的数据命令选择。第61页共62页\n6总结与展望本次毕业设计能够实现步进电机的启停、正、反转、加减速调节、以及显示,通过本次毕业设计加强了我对单片机软件编程和硬件设计的掌握,并且熟悉了凌阳spce061a单片机、ULN2003、1602液晶显示以及语音识别过程。随着步进电机在控制系统领域中的广泛应用,我相信步进电机越来越成为现代社会必不可少的一种自动化装置。本次设计实现了占用CPU时间少,效率高;易于控制步进电机的各种运动状态,提高了步进电机的步进精度等。再有,本设计过程考虑比较周全,可以方便灵活地控制步进电机的运行状态,以满足不同用户的要求,语音识别是借助凌阳单片机的语音处理功能,简化了硬件的的设计过程,降低了成本。本文虽然在应用的是基于凌阳单片机的声控步进电机运动系统设计,经过一段时间的认真制作取得了一些研究成果,提出了解决方案和可行算法。但是随着芯片的发展,出现更高级的芯片能够更好地控制步进电机,能够很大成度上提高了电机运动的精确性和稳定性。从总体来说,本文重点实现语音控制步进电机,其中对凌阳单片机进行了系统的学习,掌握了凌阳最小系统,实现了语音播报与语音识别,由于时间和条件的限制,虽然取得了一点的效果,但尚存一定不足之处有待今后进一步解决。第61页共62页\n致谢首先诚挚的感谢我的论文指导老师XXX老师,从选题的确定、论文的写作、修改到最后的定稿过程中,自始至终倾注着老师的心血。特别是老师多次询问设计进程和论文写作情况,并为我指点迷津,帮助我开拓思路,老师以严谨的治学之道、宽厚仁慈的胸怀、积极乐观的生活态度,兢兢业业、孜孜以求的工作风和大胆创新的进取精神为我树立了学习的典范,他的教诲于鞭策将激励我在学习和生活的道路上励精图治,开拓创新。她渊博的知识,开阔的视野和敏锐的思维给与了我深深的启迪,我以最诚挚的心意感谢XXX老师。在毕业设计期间,我要感谢许多让我分享他们宝贵经验和知识的老师,教会我正确的思考方式。同时,也要感谢在论文写作过程中,帮助过我、并且共同奋斗大学四年的同学们,能够完成论文,离不开他们的帮助,在此表示最深的谢意。在本次论文设计过程中,感谢我的学校,给了我学习的机会,在学习中,老师从选题指导、论文框架到细节修改,都给予了细致的指导,提出了很多宝贵的意见与建议,老师以其严谨求实的治学态度、高度的敬业精神、兢兢业业、孜孜以求的工作作风和大胆创新的进取精神对我产生重要影响。他渊博的知识、开阔的视野和敏锐的思维给了我深深的启迪。这篇论文是在老师的精心指导和大力支持下才完成的感谢所有授我以业的老师,没有这些年知识的积淀,我没有这么大的动力和信心完成这篇论文。感恩之余,诚恳地请各位老师对我的论文多加批评指正,使我及时完善论文的不足之处。谨以此致谢最后,我要向百忙之中抽时间对本文进行审阅的各位老师表示衷心的感谢。第61页共62页\n参考文献[1]华成英,童诗白.模拟电子技术基础[M]北京:高等教育出版社,2006[2]罗亚非.凌阳16位单片机应用基础[M]北京:北京航空航天大学出版社,2005[3]李小白,朱俊杰.凌阳16位单片机C语言开发[M]北京:北京航空航天大学出版社,2006[4]彭传正.凌阳单片机原理与实践[M]北京:北京航空航天大学出版社,2006[5]杨路明.C语言程序设计教程[M]北京:北京邮电大学出版社,2005[6]胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,2006,3[7]赵亮.单片机C语言编程与实例[M].北京:人民邮电出版社,2003.:3-432[8]韩全立.单片机控制技术及应用。北京:电子工业出版社,2004[9]求是科技.单片机典型模块设计实例导航。北京:人民邮电出版社,2004[10]王晓明.电动机的单片机控制。北京:北京航天航空大学出版社,2002[11]汪道辉.单片机系统设计与实践。北京:电子工业出版社,2006[12]卢胜利.基于凌阳SPCE061A设计教程[M].北京:机械工业出版社,2004[13]YeagerBrent.Howtotroubleshootyourelectronicscale[J]..PowderandBulkEngineering.1995[14]MeehanJoanne,MuirLindsey.SCMinMerseysideSMEs:Benefitsandbarriers[J]..TQMJournal.2008第61页共62页\n英文资料DevelopmentofaNovelDriveTopologyforaFivePhaseStepperMotorT.S.WeerakoonandL.SamaranayakeDept.ofElectricalandElectronicEngineering,FacultyofEngineering,UniversityofPeradeniya,SriLankaAbstract-Inthispaper,anoveldrivetopologyforafivephasesteppermotorisdescribedindetail.Commerciallyofftheshelf,lowcost,standardsteppermotordriveICsareusedtoderiveanoveldrivetopologyforfivephasesteppermotorswhichenablesclosedloopspeedandpositioncontrolpoweredbyinnercurrentcontrolloop.Itisprovedthatthederivedtopologycanbegeneralizedtoanysteppermotorwithhigheroddnumberofphases.Thedesigneddriverconsistsoffullstep,halfstep,clockwiseandcounterclockwisedrivemodeswiththespeedcontrolandcurrentcontrol.I.INTRODUCTIONInmostoftheroboticsandautomationengineeringdesignsvarioustypesofsteppermotorsareusedtoobtaintherequiredmotionprofiles.Steppermotorsarepreferred,astheydonotrequirefrequentmaintenanceandduetotheirabilitytooperateinmanyharshenvironments.Selectionofthemotorsandtheirdrivecircuitsdependontherequiredperformancecharacteristicsoftheapplications.Thetwophaseandfourphasesteppermotorsarethemostcommontypesavailableinthemarket.However,forapplicationsrequiringhighprecision,lownoiseandlowervibration,FivePhaseStepperMotorsareused.Duetosmallerstepangle,fivephasesteppermotorsofferhigherresolution,lowervibrationandhigheraccelerationsanddecelerations.Thereforeitisessentialtomakesurethatthesemotorcharacteristicscanbeobtainedfromthedesigneddrivetopology.Becausethefivephasesteppermotorsareararelyusedtypeintheroboticapplicationsandtheconstructionistypicallycomplicated,itisverydifficulttofinddriverICs,whicharemanufacturedexclusiveforthem.Asaresult,theavailableDrivercircuitsforfivephasesteppermotorsareveryexpensive.UsingtheavailabledrivecontrolICsmanufacturedforcommonkindsofsteppermotorssuchas2phasedand4phasedandusingtheminmodelingnewdrivertopology第61页共62页\nforothersteppermotorswouldbeacosteffectiveapproach.TheICL297integratesallthecontrolcircuitryrequiredtocontrolbipolarandunipolarsteppermotors.TheL298NdualHbridgedriveformsacompletemicroprocessortosteppermotorinterface.Here,noveldrivetopologyisinvestigatedanddevelopedforfivephasesteppermotorsbyaddingamicroprocessorandlogicalcontrolsystemwithL297andL298N.Thecompletetopologyisdescribedinthispaper.SectionIIexplainsthecomponentcharacteristics.SectionIIIisonthecontrollogiccircuitdesignphenomena.TheinterfacedesignisgiveninSectionIVwithresultsinSectionV.FinallytheconclusionsarepresentedinSectionVI.II.CHARACTERISTICANALYSISOFMAINCOMPONENTSTheICL297canbeusedwithanHbridgedriverICformotordriveapplicationsasshowninFig.1.InthisdesignHbridgefunctionisachievedfromtheL298NorL293E.Thismaychangedependingonthepowerratingofthemotor.ThecontrolsignalstotheL297maybereceivedfrommicrocontrollerorfromexternalswitches.AsingleICcandrivea2phasebipolarpermanentmagnetmotor,a4phaseunipolarpermanentmagnetmotorora4phasevariablereluctancemotor.Becauseveryfewelectroniccomponentsareused,ithasmanyadvantagessuchaslowercost,higherreliabilityandtheabilitytohouseinacomparativelysmallerspace.TheL297generatesthreemodesofphasesequences,namelyhalfstepmode,fullstepmodeandwavemodedependingontheinputsignalsitreceives.Fig.1.Circuitdiagramtodrivea2phasebipolaror4phaseunipolarsteppermotorusingL297andL298NICs第61页共62页\nA.CURRENTCONTROLSmallsteppermotorsgenerallyneedsmallDCsuppliesthatcontrolthewindingcurrentsandtheyarelimitedbythewindingresistances.Ontheotherhand,motorswiththelargerratedtorquevalueshavewindingswithsmallerresistances.Therefore,theyrequireacontrolledcurrentsupply.TheL297providesloadcurrentcontrolintheformoftwoPulseWidthModulation(PWM)choppercircuitsandeachchoppercircuitconsistsofacomparator,aflip-flopandanexternalsensingresistor.Inthismethod,whilethemotorcurrentisincreasing,thecontrolsystemappliesthesupplyvoltagetothemotor.Whenthecurrentisreacheduptothethreshold,thecontrolsystemtriestomaintainthecurrentatthedesiredvaluebychangingthedutyratioofthevoltagesupplyasshowninFig.2.Foreachchoppercircuit,thedutyratio(D)ofthevoltagesupplytothemotorisdefinedas:D=Ton/(Ton+Toff),wheretheTonandToffareswitchonandoffdurationsrespectivelyoftheHbridge.Inthechoppercircuit,theflip-flopissetbyeachpulsefromtheoscillator,enablingtheoutputandallowingtheloadcurrenttoincrease.AsitincreasesthevoltageacrossthesensingresistorincreasesandwhenthisvoltagereachesVreftheflip-flopisreset,disablingtheoutputuntilthenextoscillatorpulsearrives.InthismethodVrefdeterminesthepeakloadcurrent.Fig.2.Circuitcontainingtheflip-flop,theoscillatorandthecomparatorusedFig.3.PWMoperationofthevoltageforcurrentcontrolforcurrentcontrollingFig.3showshowthecurrentthroughthemotoriscontrolled.Whenthemotorcurrentgoesbeyondthesetpoint,thevoltageappliedtothemotorterminalwillbegrounded.Thereforethecurrentwilldecayandfinallythemotorcurrentcanbecontrolled.TheL298NisamonolithiccircuitcontainstwoHbridges.Inaddition,theemitterconnectionsofthelowertransistorsarebroughtouttoexternalterminalsallowingthe第61页共62页\nconnectionofcurrentsensingresisters.B.CURRENTCONTROLININHIBITCHOPPERMODEInhibitchoppercontrolmodeandphaselinechoppercontrolmodearetwoofthemostcommontypesofcurrentcontroltechniquesavailable.InthelattercasewhenthevoltageacrossthesensingresistorreachestoVref,onlythelowsideswitchismadeoff.Hencethismethodisnotsuitableandinhibitchoppercontrolmodehastobeused.TherequiredswitchingsequencesforthiscanbetakendirectlyfromL297.Inhibitchoppermodecanbeselectedbypullingdown(grounded)theCONTROLinputsignalofL297.ThenchopperactsonINHtocontrolthecurrentthroughthemotorcoils.ThereforethecontributionofINHsignalgeneratedfromL297isveryimportanttocreateENABLEsignalforL298N.InthecasewhenthevoltageacrossthesensingresisterreachestoVref,thechopperflip-flopisresetandINHisactivatedandisbroughttolow.Thenitturnsoffallfourswitchesofthebridge.ThechoppingfrequencyisdeterminedbytheinternaloscillatoroftheL297.Afterswitchingoffalltransistors,thediodesprovideapathtodivertthewindingcurrent.TheswitchesoftheHbridgearemadeoninthenextoscillatorcycle.Fig.4explainscurrentcontrolphenomenaataninstantwhenphasesignalAishighandBislow.TheseAandBsignalsarefedtotwoANDgatesconnectedtolowandhighsideswitchesintheL298NtogenerateexcitationsignalwiththesameINH1signalinordertocontroltheloadcurrent.TheANDgateoutputwillbecomehighonlyifandonlyiftheINH1ishigh.Fig.4.InhibitchopperwaveformwhenCONTROLisLOW第61页共62页\nIII.LOGICCIRCUITDESIGNINGInanymodeofoperations,wavepatternsofA,B,CandDphasesoftheL297repeatafterfourclockcyclesasshowninFig.5.Translationoftherepetitionofthephasewaveformafterthetenclockcyclesisessentialtoderivethedrivetopologyforthefivephasesteppermotor.Fig.5.Inthenormaloperation,L297twophasesofa4phasesteppermotorortwoendsofa2phasesteppermotorwindingaremadeONatatimeandthesequencerepeatsafterevery4clockcycles第61页共62页\nFig.6.FivephaseexcitationsequenceByanalyzingthethreemodesofoperationsoftheL297,itisclearthatinthenormaldrivemode,whichisusuallycalledastwo-phase-ondrivemode,shouldbeselectedtoachievetherequiredexcitationsequencefora5phasesteppermotorasshownintheFig.6.Bystudyingtherequiredexcitationsequencefor5phasesteppermotorandA,B,C,DphasesequencesoftheL297,therequiredlogiccircuitwasdesigned.Theprocedurementionedbelowwasfollowed.(i)SeparationofHighandLowsidetransistorexcitationpatternforeachphasefromfivephaseexcitationsequencesasshowninFig.6.(ii)SelectionofsuitablephasesfromA,B,CandDofL297togeneratethehighsideexcitationsequences.(iii)GeneratinginputsignalstotheL298NusingA,B,C,DoutputsignalsofthemicrocontrollerandtherelevantANDgates.(iv)CreateENA(enableA)andENB(enableB)signalsforL298NBydividingten(10)stepsofrequiredphasepatternintotwenty(20)stepscanbeequatedtothefourclockcyclesofoutputwavepatterngeneratedbytheL297.TheFig.7explainstheclockcycleselectionforrequiredhighandlowsideexcitationsequence.HighsidetransistorexcitationsequencecanbegeneratedfromL297byselectingsuitableoutputphasesoftheL297.Theselectedorder,whichisthetwo-phase-onmodeofL297isshownintheFig.8.Themicrocontrollersignalsareusedtogeneratetherequiredhighsidepulsepatterns.TheDM74LS08Quad2-InputANDGatesareusedtoANDmicrocontrollersignalsandsignalsreceivedfromL297.AsshowninFig.9,theinputsignalsandEnablesignalsdeterminethehighsideandlowsidetransistorswitchingpatterns.ThereforeENABLED(EN)signalsarefedfromthemicrocontroller.ButtoachievecurrentcontrolofthemotorINHsignalmustengagedwiththeEnabledsignaltotheL298Nasexplainedundercurrentcontrolsection.TheFig.10explainshowtheENsignaltoL298NisgeneratedusingtherequiredEnablesignalcreatedbythemicrocontrollerandInhibit(INH)signalfromL297.AnANDoperationofthesetwosignalsgeneratestherelevantENsignalforL298N.第61页共62页\nFig.7.RequiredHighandLowsidetransistorexcitationsequencesFig.8.GenerationofInputsignalstotheL298NTheL298NconsistswithH-bridgesandoneoutputofabridgewasusedforaphase.TwoinputsofoneHbridgeisdependenteachother.Thereforebothoutputsofasinglebridgecannotbeused.Togeneratefivephases,itisrequiredtohavethreenumbersofL298NdualfullbridgedriverICs.TheselectionofinputsandoutputsofL298NareshowninFig.13ofSectionIV.第61页共62页\nFig.9.PullupandPulldownoperationofL298NFig.10.GenerationofENABLEDsignalIV.INTERFACEDESIGNINGThelogiccircuitryusedtogeneraterequiredinputsignalsforL298Nandmicrocontrollercontrolsignalsplayamajorroleinthedrivercircuit.TheFig.11showsinterfaceofL297,DM74LS08Quad2-InputANDGatesICsandL298NwiththemicrocontrollerPIC16F877A.第61页共62页\nThecircuitconfigurationforL297isshowninFig.12.Thecontrolsignalhastobegroundedtoobtaintheinhibitcontrolmodeinordertolimitthecurrentthroughthemotorwindings.TheCLOCKsignalissuppliedbythemicrocontrollerandHALF/FULLpinshouldalwaystobelowforfullmode(two-phase-on)ofoperation.TheENABLEDsignalisusedtocontrolthemotionofthemotor.Whenitislow,allINH1,INH2,A,B,C,Dpinsarebroughttolow.TheVrefvaluesetsthecurrentflowingthroughthemotor.TherearetwoL297ICsusedanditisnecessarytosynchronizethem.ItcanbedoneeasilybyusingtheSYNCpinofL297.Fig.11.BlockdiagramofthesystemTheFig.13showshowtheinputandoutputterminalsareusedinL298N.Usually100nFnon-inductivecapacitorsareusedbetweenbothVsandVcwiththeground.Thevalueofthecurrentsensingresistorhastobeassmallas0.5Ωinordertoavoidlargevoltagedropsatlargecurrents.ExternaldiodebridgesprovidecurrentcirculatingpathswhentheinputsoftheICarechopped.UsuallySchottkydiodesareusedherebecausetheyarefasterinrecovery.第61页共62页\nV.RESULTSThetheoreticalandlogicalanalysisofthestepperdrivecircuitdesignapproachshowsthatitisasimpleconstructionhavingseveralmodesofoperationandcontrol.Fig.12.ConfigurationofL297Fig.13.ConfigurationofL298NTheperformanceofthestepperdrivecircuitshownintheFig.14wastestedforthefollowingcapabilities:1.Speedcontrolcapability2.CurrentcontrolcapabilityTheFig.15(a)and(b)showtheexcitationwaveformsateachphaseterminal.Theexcitationsequencesforallfivephasesrevealthattheyareworkingaccordingtotherequirement.Fig.15(b)showsadditionalorangeandgreenphaseexcitationsequencestocomparetheblackphaseexcitationwiththeothers.Duetothechargingandthedischargingofthecapacitorsbythecurrentflowingthroughthewindingsofthemotor,therearesometransientsateachexcitationpoints.Thespeedcontrolofthemotorhasbeenachievedbyvaryingthefrequencyoftheexcitationsequenceofthefiveterminals.ItisclearlyshownthatthepulsewidthofthevoltagesequencesofFig.15(a),(b)getsdoubledintheFig.16(a),(b)insametimescaleof5ms/div.Itisobservedthattherotatingspeed(speed1)ofthemotorrelevanttotheexcitationsequenceshowninFig.15ishalfthatofthespeed(speed2)oftheexcitationsequenceshown第61页共62页\ninFig.16.HencebyvaryingthepulsefrequencyoftheexcitationsequencegeneratedbythePICmicrocontroller,thespeedofthemotorcanbevaried.Fig.14.Drivecircuitwithmicrocontroller第61页共62页\nFig.15(a).VoltagesoftheBlue,Red,OrangeandGreenphasesatspeed1Fig.15(b).VoltagesoftheOrange,GreenandBlackphasesatspeed1第61页共62页\nFig.16(a).VoltagesofBlue,Red,OrangeandGreenphasesatspeed2第61页共62页\nFig.16(b).VoltagesoftheRed,Orange,GreenandBlackphasesatspeed2ThecurrentcontrollingcapabilityofthemotordrivecircuithasbeendemonstratedintheFig.17(a),(b),(c).Forthesakeofdemonstration,onlytheREDphasehasbeenconsideredandFig.17(a)showsthecurrentwaveathigherVref(=600mV)whichisgreaterthantheVsense.ThentheINHsignaldoesnotpulldowntolimitthecurrentabsorbbythemotor.Eachphasehaspositiveandnegativecurrentcomponents,becausethephasevoltagevariesfrom+Vs,+Vs/2to0Vandcurrenttothephasevariesfrompositive,zerotonegativerespectively,correspondingtothelattervoltagevariation.Bychoppingtheinhibit(INH)signaltotheL298N,thevoltageatthemotorterminalsislimitedtocontrolthecurrentthrougheachwinding.第61页共62页\nFig.17(a).PhaseCurrentandINHsignalvariationatVref=120mVFig.17(b)and(c)showthecurrentcontrollingcapabilityattwodifferentVrefvaluesof200mVand120mV.Fig.17(b).PhaseCurrentandINHsignalvariationatVref=200mV第61页共62页\nFig.17(c).PhaseCurrentandINHsignalvariationatVref=120mVVI.CONCLUSIONSTheproposednoveldrivefor5phasesteppermotorisacosteffectivemotordrivercomparedtotheavailablesteppermotordrivecircuitsinthemarket.Sincethedriverhasnecessarycontrolling,itcanbeusedforfivephasesteppermotorsforgeneralapplications.Thesimpleconstructionandcompacteddesignofthedriverprovidesanotheradvantagethatthedrivercanbeusedforroboticsapplicationsbecauseitrequiressmallspace.Finallythedesigneddrivercanbeconsideredasaprototypeofalowcostfivephasesteppermotordrivecircuithavingadditionalmanyfunctionssuchascurrentcontrol,speedcontroletc.Itcanbeintroducedtothelocalmarketasalowcostcompactdrivecircuit.REFERENCES[1]N.SedaghatiMokhtari,“Micro-stepDrivingforStepperMotor:ACaseStudy”,Available:http://ece.ut.ac.ir/silab/publications/pdf/sedaghati_iscee06.pdf[2]DatasheetoftheL297IC,Available:http://www.datasheetcatalog.com/datasheets_pdf/L/2/9/7/L297.shtml第61页共62页\n[3]DatasheetoftheL298NIC,Avilable:http://www.datasheetcatalog.com/datasheets_pdf/L/2/9/8/L298N.shtml[4]ThomasL.Hopkins‘Steppermotordriverconsiderationscommonproblemsandsolutions”,Available:http://www.powerdesigners.com/InfoWeb/design_center/Appnotes_Archive/1675.pdf[5]H.Sax,“Steppermotordrivingapplicationsnote”,Available:http://www.technologicalarts.com/myfiles/data/1679.pdf第61页共62页\n中文翻译一种新的五相步进电机驱动电路开发T.S.维拉孔和T.萨马拉纳亚克斯里兰卡,佩勒代尼耶大学工程学院,电子与电气工程学院付自刚译摘要本文详细地介绍了一种新的五相步进电机驱动电路。这种新的驱动电路是由商业上现成的,廉价的,标准的步进电机驱动IC搭建,它能实现由内部电流回路驱动的闭环速度和位置控制。经证明,这种驱动电路能推广到任何更多相数的奇数相的步进电机。这种驱动电路具有速度控制和方向控制,包括全步、半步、顺时针、逆时针控制模式。一、概述在大多数机器人和自动化工程设计中,各种各样步进电机都被广泛应用来得到需要的运动姿态。步进电机倍受人们青睐是因为它不需要频繁的维护并能在苛刻的环境中运行。步进电机及其驱动器的选择要根据具体应用中需要的效果来决定。市场上最常见的是两相和四相步进电机。可是,实际应用中要求高精度,低噪声和低震动,因此五相步进电机得以应用。因为步距角较小,五相步进电机有较高的分辨率,较低的震动和良好的加速与减速特性。因此,确保设计的驱动电路能使步进电机充分发挥这些优点非常重要。因为在机器人应用中是很少见得类型,而且结构很复杂,很难找到它们的驱动IC,只能专门定做。结果导致五相步进电机的驱动电路产品异常昂贵。用普通步进电机如二相与四相步进电机的驱动控制IC来制作其它步进电机的驱动电路是一种经济有效的方法。L297继承了控制单极性和双极性步进电机所需要的所有控制电路系统。L298N双H桥驱动器形成了一个完善的步进电机微处理器接口。在这里,我们通过给L297和L298N加上微处理器和逻辑控制系统研究开发出了一种新的五相步进电机驱动电路。第二部分解释了元器件特性。第三部分介绍了控制逻辑电路设计。第四部分是接口设计,结果在第五部分。最后,第六部分加以总结。二、主要元器件特性分析第61页共62页\n如图一所示,集成块L297可以与H桥集成电路一起使用作为步进电机驱动器。在该设计中,H桥的功能用L298N或者L293E实现。这要根据步进电机的额定功率而定。输入L297的控制信号可能来自为控制器或者外部开关。一个IC能驱动一个两相双极性永磁式步进电机,一个四相单极性永磁式步进电机或者一个四相变磁阻式步进电机。因为用到的电子元器件非常少,该设计好处颇多,比如,花费少,可靠性高,占用的空间相对较小。按照接收到的输入信号的不同,L297产生三种不同模式的相位序列,即半步模式,全步模式和波形模式。图一用L297和L298N构成的驱动一个两相单极性步进电机或一个四相单极性步进电机的电路图A.电流控制小型步进电机一般小型直流电源来控制绕组电流,它们的绕组电阻也是有限制的。在另一方面,拥有较大额定扭矩值的步进电机具有较小的绕组电阻。因此,它们需要对电流进行控制。L297以两个脉冲宽度调制(PWM)斩波电路的形式提供负载电流控制,每个斩波电路由一个比较器,一个触发器和一个外部感应电阻组成。在该理论中,当电机电流增加时,控制系统将电源电压施加到电机。如图二所示,当电流值达到阈值时,控制系统将通过改变电源电压的占空比来维持电流的期望值。对于每一个斩波电路来说,步进电机电源电压的占空比(D)定义为:D=Ton/(Ton+Toff),其中Ton和Toff分别是H桥的导通和断开时间。在斩波电路中,触发器由来自振荡器的各个脉冲置位,从而允许输出和允许负载电流增长。感应电阻两端的电压随着负载电流的增长而增长,当电压增长到Vref第61页共62页\n时,触发器被重置,输出中断直到下次振荡器脉冲到来。在该方法中,Vref决定了负载电流的峰值。图二包含触发器、振荡器和电压比较器的电流控制电路图三用于电流控制的PWM操作的电压图三展示了穿过电机的电流是如何被控制的。当电机的电流超过设定值时,施加于电机端得电压将降为零。因此,电流将会衰减,最终电机电流被控制住。L298N是一块包含着两个H桥的单片集成电路。此外,低位晶体管的发射极被引出来作为扩展端子以允许电流敏感电阻的连接。B.抑制斩波模式下的电流控制抑制斩波控制模式和相位线斩波控制模式是当今两种最常见的电流控制技术。在后一种方式中,当敏感电阻的电压达到Vref时,只有低端的开关断开。因此这种方法并不适用,我们选用抑制斩波模式。需要的开关序列可以直接来自L297N。抑制斩波模式可以通过将L297N的CONTROL端接地实现。然后斩波作用于INH端来控制通过电机线圈的电流。因此,L297输出的INH信号对创造L298N的使能信号起着非常重要的作用。在敏感电阻的电压达到Vref第61页共62页\n的情况下,斩波触发器被重置,INH端子被激活并处于低电平状态。然后,所有四个桥电路截止。斩波频率由L2907内部的振荡器决定。在所有的晶体管截止之后,二极管为绕组电流提供转移通路。在下一个振荡周期里,H桥导通。图四说明了当相信号A处于高电平而相信号B处于低电平的时刻的电流控制情况。为了产生和INH1信号相同的激发信号来控制负载电流,这些A和B信号被输入到与L298N中高、低电平开关相连的两个与门。当且仅当INH1为高电平时,与门的输出为高电平。图四当CONTROL为低电平时的抑制斩波波形一、逻辑电路设计如图五所示,在任何运行模式下,L297的A,B,C,D相的波形每隔四个时钟周期重复一次。为构建五相步进电机驱动电路,在十个时钟周期之后对相波形进行转换十分重要。图五在一般工作模式下,L297四相步进电机的两相或者两相步进电机绕组被导通,每四个时钟周期后序列重复第61页共62页\n图六五相激励序列通过分析L297的3种工作模式,很明显应该选择一般工作模式,也通常被称作两相导通模式,来产生如图六所示的激励五相步进电机的序列。通过研究五相步进电机所需要的激励序列和L297的A,B,C,D相序列来设计出需要的逻辑电路。按照下列步骤进行。1、如图六所示,从五相的激励序列中分离出每一相的高低侧晶体管激励模式。2、从L297的A,B,C,D选出合适的相位来产生高侧激励序列。3、利用微控制器的A,B,C,D输出信号和相关的与门产生L298N的输入信号。4、产生L298N的ENA(A使能)和ENB(B使能)信号。将10步的相型分为20步等同于L297输出的四个时钟周期的相型。图七解释了高、低侧激励序列的时钟周期选择。通过选择L297的合适的输出相位,可以产生高侧晶体管的激励序列。已经选择的顺序,即L297的两相导通模式如图八所示。微控制器信号用以产生所需的高侧脉冲模型。有四个输入端的DM74LS08含有两个门,用来将接收到的L297信号和微控制器信号相与。如图九所示,输入信号和使能信号共同决定了高低侧晶体管的开关模式。因此,微控制器提供了使能(EN)信号。但是为了达控制电机电流的目的,INH信号必须与L298N的使能信号衔接,这在下面的电流控制部分会有解释。图十解释了怎样利用由微控制器产生的所需的使能信号和来自L297的抑制(INH)信号来产生L298N的EN信号。这两种信号的与操作产生了L298N相关的EN信号。第61页共62页\n图七需要的高低侧晶体管的激励序列图八L298N输入信号的产生L298N包含两个H桥,其中一个H桥的输出端被用作一相。H桥的两个输入端彼此独立。因此,单独一个H桥的两个输出端都无法使用。为了产生五个相数(的信号),需要使用3个L298N双H桥驱动IC。L298N的输入端与输出端选择将在第四部分的图十三中加以说明。第61页共62页\n图九L298N的拉高与接低操作图十使能信号的产生一、接口设计用以产生L298N需要的输入信号的逻辑电路和微控制器控制信号在驱动电路中扮演着主要角色。图十一展示了L297的接口,DM74LS08双与门IC和与微控制器PIC16F877A相连的L298N。图十二说明了电路的配置。为了限制通过电机绕组的电流,控制信号必须接地以进入抑制控制模式。微控制器提供了CLOCK信号,HALF/FULL引脚必须接地来进入全步模式(两相导通模式)。ENABLED是用来控制电机运转的。当它处于低电平状态时,INH1,INH2,A,B,C,D都被置于低电平状态。Vref第61页共62页\n的取值设定了通过电机的电流。这里用到了两个L297,必须使它们同步。这可以通过使用L297的SYNC引脚轻易做到。图十一系统框图图十三说明了L298N的输入与输出端的使用方法。通常会在Vs和Vc与地之间使用100nF的无感电容。为了避免大电流时的大幅度电压降落,电流敏感电阻器的阻值必须小到0.5Ω。当IC的输入被截断时,外部桥式二极管提供电流通路。这里通常使用肖特基二极管,因为肖特基二极管容易恢复。一、结论对步进电机驱动电路的设计方式的理论分析和逻辑分析显示了驱动电路是一种具有几种操作模式和控制模式的简单结构。第61页共62页\n图十二L297的配置图十三L298N的配置如图十四所示的步进电机驱动电路实物通过了下列性能测试:1.速度控制性能2.电流控制性能图十五(a)和(b)展示了在每一相线端得激励信号波形。步进电机五相的激励序列说明它们是按要求工作的。图15(b)显示了橙色的和绿色的激励序列来使黑色的激励序列与其他激励序列相比较。因为流过电机绕组的电流会使电容器充放电,在每一个激励点都会发生突变。通过变换电机五相的激励序列的频率,可以达到控制电机速度的目的。可以明显地看到,在相同的时间分辨率5ms/div下,在图十六(a),(b)中的电压序列的脉冲宽度是图十五(a),(b)中的两倍。可以看出,与图十五所示的激励序列相关的步进电机的转动速度(速度1)是与图十六所示激励序列相关的步进电机转动速度的一半。因此,通过改变由PIC微控制器产生的激励序列的脉冲频率,步进电机的速度也随之改变。第61页共62页\n图十四带微控制器的驱动电路图十五(a)在速度1下的蓝、红、橙、绿相电压图15(b)在速度1下的橙,绿、黑相电压第61页共62页\n图16(a)在速度2下的蓝、红、橙绿相电压第61页共62页\n图16(b)在速度2下的红、橙、绿、黑相电压图17(a)、(b)、(c)证明了该步进电机驱动电路的电流控制能力。为了达到证明效果,这里只考虑了红色相电压,图17给出了在更高的Vref(=600mV)下的电流波形,该电压高于Vsense。此时,INH信号并未接地来限制通过步进电机的电流。每一相都有正负电流部分,因为相电压从+Vs,+Vs/2变化到0V,相电流也分别从正、零变为负,相当于后者的电压变化。通过截断L298N的抑制信号(INH信号),电机端子上的电压被限制以控制通过电机绕组的电流。图十七(a)当Vref=120mV时的相电流和INH信号的变化图十七(b)和(c)给出了当Vref取两个不同值200mV和120mV时的电流控制能力。图十七(b)当Vref=200mV时的相电流和INH信号的变化第61页共62页\n图十七(c)当Vref=120mV时的相电流和INH信号的变化一、总结和市场上的步进电机驱动器相比,这种新提出的五相步进电机驱动器是非常廉价的。由于带有必要的控制能,这款驱动器可用于一般的五相步进电机应用场合。该驱动器简单的结构和坚实的设计使得它具有另外一项优点,那就是它可以应用在机器人上,因为它占用的空间小。最后,该设计还可以作为一种具有许多诸如电流控制,速度控制等附加功能的廉价五相步进电机的雏形。它可以作为一款价廉物美的驱动器推向市场。第61页共62页\n附录A元器件清单名称型号数量(个)电阻10K5电阻1K5步进电机28BYJ-481步进电机驱动芯片ULN20031电解电容10uf1普通电容33pf2晶振12MH1SPCE061A板SPEC061A1LCD液晶显示16021电解电容10uf1喇叭UTL1并口线25针1反相器74LS061排针15杜邦线15万用表1导线若干第61页共62页\n附录B实物图第61页共62页\n附录C整体程序#include"spce061a.h"#include"bsrsd.h"#defineNAME_ID0x100#defineCOMMAND_1_ID0x101#defineCOMMAND_2_ID0x102#defineCOMMAND_3_ID0x103#defineCOMMAND_4_ID0x104#defineCOMMAND_5_ID0x105#defineCOMMAND_6_ID0x106#defineCOMMAND_7_ID0x107#defineCOMMAND_8_ID0x108#defineRSP_INTR0#defineRSP_NAME0#defineRSP_FIRE1#defineRSP_GUARD2#defineRSP_AGAIN3#defineRSP_NOVOICE4#defineRSP_NAMEDIFF5#defineRSP_CMDDIFF6#defineRSP_STAR7#defineRSP_MASTER8#defineRSP_HERE9#defineRSP_GUNSHOT10#defineRSP_PATROL11#defineRSP_READY12#defineRSP_COPY13#defineRSP_NOISY14第61页共62页\n//..................全程变量....................intgActivated=0;//该变量用于检测是否有触发命令,当有识别出语句//为触发名称则该位置1intgTriggerRespond[]={RSP_MASTER,RSP_HERE,RSP_MASTER};intgComm2Respond[]={RSP_PATROL,RSP_READY,RSP_COPY};voidClearWatchDog(){*P_Watchdog_Clear=0x0001;}intPlayFlag=0;voidPlayRespond(intResult){BSR_StopRecognizer();SACM_S480_Initial(1);SACM_S480_Play(Result,3,3);while((SACM_S480_Status()&0x0001)!=0){SACM_S480_ServiceLoop();ClearWatchDog();}SACM_S480_Stop();BSR_InitRecognizer(BSR_MIC);BSR_EnableCPUIndicator();}intTrainWord(intWordID,intRespondID){第61页共62页\nintres;PlayRespond(RespondID);while(1){res=BSR_Train(WordID,BSR_TRAIN_TWICE);if(res==0)break;switch(res){case-1://没有检测出声音PlayRespond(RSP_NOVOICE);return-1;case-2://需要重新训练一遍PlayRespond(RSP_AGAIN);break;case-3://环境太吵PlayRespond(RSP_NOISY);return-1;case-4://数据库满return-1;case-5://检测出声音不同if(WordID==NAME_ID)PlayRespond(RSP_NAMEDIFF);//两次输入名称不同elsePlayRespond(RSP_CMDDIFF);//两次输入命令不同return-1;case-6://序号错误return-1;}}return0;}voidIO_init()第61页共62页\n{*P_IOA_Dir=0xffff;*P_IOA_Attrib=0xffff;*P_IOA_Data=0x00ff;*P_IOB_Dir=0xffff;*P_IOB_Attrib=0xffff;*P_IOB_Data=0x00ff;}voiddelay(unsignedintuiTime){while(uiTime>0){uiTime-=1;}}/*voiddelay_1(inti){intu;for(u=0;u0;x--)for(y=110;y>0;y--){第61页共62页\n*P_IOA_Data=0xff1E;delay(i);//1100*P_IOA_Data=0xff1D;delay(i);//0110*P_IOA_Data=0xff1B;delay(i);//0011*P_IOA_Data=0xff17;delay(i);//1001}*P_IOA_Data=0xff0f;//步进电机正转,开启阀门}voidfanz(inti){intx,y;*P_IOA_Data=0xff21;for(x=7;x>0;x--)for(y=110;y>0;y--){*P_IOA_Data=0xff27;delay(i);//1100*P_IOA_Data=0xff2B;delay(i);//1001*P_IOA_Data=0xff2D;delay(i);//0011*P_IOA_Data=0xff2E;delay(i);}*P_IOA_Data=0xff0f;//0110反转第61页共62页\n//步进电机反转,关闭阀门}intmain(){intres,timeCnt=0,random_no=0;IO_init();//初始化IO口BSR_DeleteSDGroup(0);//初始化存储器RAM//PlayRespond(RSP_INTR);//播放开始训练的提示音"请输入触发名称"//..........训练名称..............................while(TrainWord(NAME_ID,0)!=0);//..........训练第一条命令.......................while(TrainWord(COMMAND_1_ID,1)!=0);//..........训练第二条命令.......................while(TrainWord(COMMAND_2_ID,2)!=0);//..........训练第三条命令.......................while(TrainWord(COMMAND_3_ID,12)!=0);//..........训练第四条命令.......................while(TrainWord(COMMAND_4_ID,13)!=0);//..........开始识别命令.........................BSR_InitRecognizer(BSR_MIC);//辨识器初始化BSR_EnableCPUIndicator();//启动实时监控PlayRespond(RSP_STAR);//播放开始辨识的提示音while(1){random_no++;if(random_no>=3)random_no=0;第61页共62页\nres=BSR_GetResult();if(res>0)//识别出命令{if(gActivated){timeCnt=0;switch(res){caseNAME_ID://触发命令响应PlayRespond(RSP_MASTER);//PlayRespond(gTriggerRespond[random_no]);break;caseCOMMAND_1_ID://识别第1个命令PlayFlag=1;zhengz(150);//LED_RED_ON();并且快速正转PlayFlag=0;gActivated=0;break;caseCOMMAND_2_ID://识别到第2条命令fanz(150);//LED_RED_OFF();快速翻转gActivated=0;break;caseCOMMAND_3_ID://识别第3条命令zhengz(500);//LED_GRE_ON();低速正转gActivated=0;break;caseCOMMAND_4_ID://识别第4条命令第61页共62页\nfanz(500);//LED_GRE_OFF();低速翻转gActivated=0;break;}}else{if(res==NAME_ID){PlayRespond(RSP_MASTER);//PlayRespond(gTriggerRespond[random_no]);gActivated=1;timeCnt=0;}}}elseif(gActivated){if(++timeCnt>450)//超出定时{PlayRespond(RSP_NOVOICE);//在设定时间内没有检测出声音gActivated=0;timeCnt=0;}}}}第61页共62页
查看更多

相关文章

您可能关注的文档