您的当前位置:首页正文

基于DSP和FPGA的机器人运动控制系统的研究

2023-02-18 来源:九壹网
南京理工大学硕士学位论文荃于DsP和日铝冉的机器人运动控制系统的研究摘要近年来,基于Ds    P和再心A的运动控制系统己成为新一代运动控制系统的主流。基于DsP和FPGA的运动控制系统不仅具有信息处理能力强,而且具有开放性、实时性、可靠性的特点,因此在机器人运动控制领域具有重要的应用价值。论文从步行康复训练器的设计与制作出发,主要进行机器人的运动控制系统设计    和研究。文章首先提出了多种运动控制系统的实现方案.根据它们的优缺点,选定以DSP和FPGA为核心进行运动控制系统平台的设计。论文详细研究了以Ds    P和R心A为核心实现运动控制系统的软、硬件设计,利用DSP实现运动控制系统总体结构与相关功能模块,利用FPGA实现运动控制系统地址译码电路、脉冲分配电路以及光电编码器信号处理电路,并对以上电路系统进行了功能仿真和时序仿真。    结果表明,基于DSP和FPGA为核心的运动控制系统不仅实现了设计功能要求,同时提高了机器人运动控制系统的开放性、实时性和可靠性,并大大减小了系统的体积与功耗。关键词:DsPFPGA运动控制系统步进电机南京理工大学硕士学位论文基于璐P和F戍八的机器人运动控制系统的研究R。艾泊t    i,tye几1h0石on以川权Dlsys让””ba“月onDSP即dFI心AhaskCOmeatrndeitnedevehloPmentofOewgeDeadornlr幻doncon加】systs厂功lmesk由dof印rcih让军tU正otounlyhasteihnofr以币onPrcoses功gcaPadt,butaylsohaSO侧泊,r已目一dmeand正五abliychatJ旧ct比sitsc,助dsoaCsatnl侧petrtcnah越知沈erinthefidolefrDbot立lodonCon的1.1七ed    is,,taitnlolasdoneso幻。en渤七a代honwaiikngrebab正饭垃on喇ningrobotmotincoontr01syset田.Atthebeig画ngofte别币chle,wegaveav硕eyotfmotinoc佣加lschen公5,andthncomePardteeahdvanatgeSanddidvaasnatgesofthSsech日叮e名,ndsael朗tdtehesch曰.ethtusasDsePandH七Aastechorefrmootincoontrolsystemdesin・g飞七edi    ss。扭tinhaosdonedetiladrese肛choenteshoftwaearndh田心waedersinogfthemotincon往℃lsoys.m,whlchusesDSP朋d‘FPGAasthecore.UsngDSPtior‘山邓htewholes。习引泊犯即d由e加nctinmoodulsoefteshyset,usnl山gFPGAtor‘山zetheaddreSd曰x心ing。汀Cu斌puiedsisirtutbinarocuit胡doPtiieaccondersinaglP代兄essnigcin刀1仁胡dth即do访9丘mc石onslrnuliotanandt让nesquencese劝nul如Onaboutth日弧活口代Uls.t    丁七erseultshowing让坦ttedehsinbagsdoenteDshP明d班心Aastechoreoftehmotlncoon妞Ulsstyelllnoto川yachlvestee触chiotn叫uiemernst,but川即promotestehr已a-tlimeand此liablecha。‘troefterhobotmotlon以川比。lsyst曰m,即dalocsutsdo认,山evoumle田ldPowercon‘umptin此翻团改abloy‘Ke卿ord:Ds,PI心A,MotFionCon仕01StePp改Motor声明                   本学位论文是我在导师的指导下取得的研究成果,尽我所知,在本    学位论文中,除了加以标注和致谢的部分外,不包含其他人己经发表或公布过的研究成果,也不包含我为获得任何教育机构的学位或学历而使用过的材料。与我一同工作的同事对本学位论文做出的贡献均己在论文中作了明确的说明。研ah狐科哟-,价年户月‘甲学位论文使用授权声明南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅或    上网公布本学位论文的部分或全部内容,可以向有关部门或机构送交并授权其保存、借阅或上网公布本学位论文的部分或全部内容。对于保密论文,按保密的有关规定和程序处理。研“生粉斗呼一牢户‘爵南京理工大学硕士学位论文墓于璐P和日祀八的机器人运动控制系统的研究1绪论Ll运动控制系统概迷    运动控制系统是一种通过电机驱动的执行机构对电机转矩、转速和转角进行控制以实现预定运动轨迹目标的电气系统。典型的运动控制系统有机器人、数控机床、运输机械等川。运动控制技术是一门融计算机、电子、机械、控制和传感器等多门学科知识于一体的交叉技术,广泛应用于工业、军事、航空航天、能源勘探和医疗等各个领域,它是自动化领域的一项关键技术.LLI运动控制系统的分类运动控制系统的种类很多,根据控制原理与应用的不同,可按下述几种方法分    类。    )1按运动控制轨迹分类按照执行机构在空间中运动轨迹目标的不同,可将运动控制器分为点位控制、    直线控制和连续控制三种。(    )1点位控制:这类控制系统要求执行机构以最快的速度从一点移动到另一点,井准确定位。对于点与点之间的移动轨迹(路径与方向)并无严格要求,各坐标轴之间的运动并不相关。2(    )直线控制:这类控制系统不但要求执行机构实现点与点的准确定位,而且要求两点之间的运动轨迹是一条直线,并且需要对运动的速度进行控制。(    )3连续控制:连续控制也称为轮廓控制,其特点是能够对两个或两个以上轴的位移和速度同时进行相关控制,使末端执行机构按一定的空间曲线轨迹运动。这类控制方式要求运动控制系统具有插补运算的功能,即根据系统输入的基本数据(如直线的终点坐标、圆弧的终点坐标扣圆心坐标或半卿,通过插补运算器的数学处理,把直线或曲线轨迹的相关坐标点计算出来。边计算同时根据计算结果控制2个或2个以上轴协同运动。根据同时控制的轴的数目还可分为二轴联动、三轴联动、四轴或多轴联动。)2    按伺服控制方式分类运动控制系统采用的伺服控制方式很多,主要分为开环控制、闭环控制和半闭    环控制三种类型,此外还有开环补偿型和半闭环补偿型等混合控制方式。(    )1开环运动控制:这类运动控制系统中没有位移检测反馈装置,运动控制器的控制指令直接通过驱动装置控制电机的运转,通过机械传动系统转化成执行机构的位移。由于这种控制系统没有反馈校正,因而多采用步进电机作为控制对象,其控制结构简单,性能稳定,价格低廉,广泛应用于经济型数控系统中。l               南京理工大学硕士学位论文荃于D即和F粥八的机器人运动控制系统的研究2(    )闭环运动控制:此类运动控制系统的检测装置安装在执行机构上,用以直接获得执行机构的实际运行位置,并将其与系统的指令位置相比较,用差值进行控制。这种控制方式可以消除整个传动过程中的传动累计误差,具有很高的定位精度。但由于它将丝杠、螺母等大惯量环节放在闭环之内,系统稳定性受到影响,调试困难,而且结构复杂、价格昂贵。    ()半闭环运动控制:这类运动控制系统的位置检测元件安装在伺服电机上,3通过测量伺服电机的角位移间接计算出执行部件的实际位置(或位移),然后进行反馈控制。由于将丝杠、螺母等大惯量环节排除在闭环控制系统之外,系统不能对它们的运动误差进行补偿,精度受到影响,但系统稳定性有所提高,调试比较方便,价格也较全闭环系统低。LIJ运动控制技术的发展方向早期的运动控制系统多采用专用硬件控制设备,必须设计专用的芯片及其他硬    件电路以满足不同控制应用的需要,世界各国的系统生产商也都分别设计自己的专用硬件系统和软件系统。这种封闭式结构使运动控制系统的开发成本极高,开发周期很长,升级困难,可靠性、可扩展性、可维护性和易用性差,二次开发困难图。随着技术、市场、生产结构等的快速变化,人们对运动控制技术提出了更高的要求,希望能根据不同的应用需求、迅速、高效、经济地构筑面向客户的控制系统;大幅度降低系统维护费用,改变以往运动控制系统封闭性设计模式,使底层生产控制系统的集成更为简便和有效[13.因此运动控制系统朝着开放的、实时的、可靠的方向发展。    近年来,各发达国家都在竞相发展自己的运动控制系统并制定标准的控制系统体系结构,如美国的“下一代工作姗机械控制器体系结构,NGC(’heNeTtGexnearitnoV勺比一tio口M故htaineControl)、欧洲的“自动化系统中开放式体系结构”OSAcA(Opensyst日吐ArChitCe加refrCoon。劝Iv沂thinAutomaitnsysoten招)以及日本的OSEc(q四nsystemEDvil℃钊mentrCoofntl”ll)等。re纵观国内外运动控制技术的发展状况,开放式结构通用运动控制系统已逐步成    为自动化控制领域里的主导产品之一[[]’叭“。,由于计算机、微处理器、自动控制、大规模集成电路以及网络技术的快速发展,目前最新型的运动控制系统多采用基于高速数字处理器和FPGA系统的开发模式,并具有一定的网络功能。充分利用微处理器的计算能力,进行运动规划、高速实时多轴插补、误差补偿以及复杂的运动学、动力学计算,可以使运动控制系统的精度更高,速度更快,运动更加平稳。充分利用FPGA技术,可以使系统的结构更加合理和开放。通过网络连接方式可以减少系统的联线,提高系统的实用性和可靠性并有助于实现多机协调工作。此外,将模糊南京理工大学硕士学位论文墓于璐P和日弓A的机摇人运动控制系统的研究控制、神经网络控制、解辐控制等各种智能控制技术应用于运动控制系统中,也大大改善了控制系统的性能,为运动控制系统走向复杂的多层控制提供了可能。L13机器人运动控制系统的特点    自20世纪60年代人类研究第一台机器人以来,机器人技术就显示出强大的生命力,在40年的时间里,机器人技术得到了迅速发展口〕。机器人研究的热点也是设计机器人要解决的关键技术。机器人系统主要由机械    结构、传感器系统、控制系统和信息处理等部分组成。因此机器人控制系统的研究也是重点之一目前机器人功能越来越复杂,因此对机器人控制系统的要求也越来越高飞控制系统包括硬件和软件,而硬件又包括模拟和数字两个方面。硬件的核心器件是微处理器。微处理器可以是嵌入式微处理器、DsP(压gilatsingalprocessor)、FpGA(ReldPor脚ImnableGateArra)y,也可以是PC机或Pc140。当一个微处理器无法完成特定功能时,往往选择多个微处理器通过网络、总线连接起来,共同完成机器人的特定功能。机器人控制系统对软件有很高要求。选择合适的实时操作系统平台(RTOS),以及如果裁减和旧5系统,RTOS系统如何与机器人各个功能模块接口相互传递信息,也是机器人控制系统要很好解决的关键问题,综合前面的分析可以得知,机器人控制系统的发展趋势跟未来运动控制技术发    展的趋势是一致的。机器人控制系统一般具有如下特点:        )1开放性目前对机器人控制器的开放性还没有明确统一的定义,但可以从计算机方面借鉴一下,即开放性包括:易扩展性.指新的功能模块(例如传感器或者执行器)能够方便地加入到电路    控制系统中,并且很容易对现有模块进行改进。    可裁减性。指用户可以方便地将不需要的模块从系统中移出。硬件独立性。指通过对硬件的抽象,开发者无需了解具体硬件细节即可方便地    进行软件开发.可移植性。指系统的软件能够顺利地移植到不同硬件平台上。        )2计算实时性机器人是一个非常复杂的系统,各个功能模块之间存在各种复杂的时序关系,某些功能模块内部同样存在多种在时序上互相交错的任务。系统必须保证各个任务能够在规定时间内完成计算。)3    可靠性机器人系统必须保证长时间稳定地工作,即使某些模块或部分电路出现问题,也不影响系统的整体性能。    针对以上要求,机器人控制系统的研究应该从控制系统的软硬件以及体系结构两方面入手,开放性、计算实时性、可靠性是控制系统的发展方向。南京理工大学硕士学位论文基于DSP和F邢人的机器人运动控制系统的研究2系统总体方案设计    运动控制系统的研究与应用,将为机电设备运动控制提供良好的硬件平台和软件平台,在这基础上,用户能方便、快速地建立自己的运动控制系统。课题的总体方案设计也是针对这一目标展开的。通过对运动控制系统的总体结构分析,并且考虑到项目中的一些专用的要求,理清课题的整体思路,从而完成系统控制方案的设计。.21控制系统总体方案设计.2LI常用运动控制方案的比较    控制系统的运动控制方案一般有以下几种lla:)1    单片机系统采用单片机系统来实现运动控制,成本较低,但开发难度较大,周期长。这种    方案适应于产品批量较大、控制系统功能简单、有单片机开发经验的用户。    )2专业运动控制PLC许多品牌的PLC都可选配定位控制模块,有些PLC的CPU单元本身就具有运    动控制功能(如松下即0).这种方案一般适用于运动过程比较简单、运动轨迹固定的设备,如送料系统、自动焊机等。如果需要简单修改少量运动参数,如速度、位移等,可与工业人机界面配合使用。    )3CP机和刀0卡用P    C机配上FO卡编程可以输出脉冲和方向信号来控制步进或数字式伺服电机,但所发的脉冲只能由软件编程来实现,所以在运动时发脉冲将占用PC机CPU大量的时间;另外,软件发脉冲受到微机定时器的限制,这样就限制了电机的转速,在控制伺服电机时还会有速度和精度的矛盾问题;再者,在V石ndows环境下由于其多任务的机制,若没有深入V石刀dows内核进行底层编程来发脉冲,几乎不可能保证脉冲的均匀性。    )4CP机和运动控制卡这种方案随着P    C机的普及使用越来越多,将是运动控制系统的一个主要的发展趋势。这种方案可充分的利用计算机资源,可用于运动过程、运动轨迹都比较复杂,而且柔性要求高的设备。在这种方案中,运动控制卡只需要从微机接收控制命令,然后自己完成与运动有关的控制:发脉冲/方向信号、检测限峨勿原点等信号,几乎不占用微机CPU时间.大多数专用运动控制卡都提供了W功dows环境下的动态链接库,使用非常方便,不仅大大缩短产品研制和开发周期,而且能够实现更完善的运动控制系统。南京理工大学硕士学位论文墓于D印和门招人的机籍人运动控制系统的研究    控制卡又可分为以下几种t1.:(    )1基于大规模集成电路的运动控制卡这种方案利用集成电路芯片其内部的计数器功能,可通过编码器改变其脉冲输    出频率,实现步进电机的速度和位置控制。    ()2以单片机为主控芯片的运动控制卡此方案成本较低,’    但外围电路较为复杂,使用元器件较多,可靠性不高,运行速度慢,控制精度不高,软硬件配置灵活性差。由于这种方案仍是靠在程序中延时来控制发脉冲,脉冲波形的质量和频率都受到限制,所以一般用于步进电机控制的场合。    3()以专用控制芯片为主的主控芯片的控制卡由于运动控制功能由专用芯片内部电路实现,而且集成度高,所以可靠性高、    实时性好;输出脉冲频率可以达到几兆赫兹,能够满足对步进、伺服电机的控制,但是由于专用芯片价格昂贵,故此方案成本很高,而且柔性较差,很难满足特殊客户的需求,另外,不带内部RAM区,对于需要实时处理大量数据的需要很难满足。)4(    基于DSP和FPGA的运动控制卡这种控制卡利用了DSP对数字信号的高速处理能力,    能够实时完成极其复杂的轨迹运算,使多轴运动控制系统能够在一块插在PC机巧A尸Cl接口上的运动控制卡上实现。如果将DsP和PC机结合起来,可充分利用PC机现有的操作环境和资源,使咒机从大量复杂的运算中解脱出来做其它工作;另外,选用资源丰富的FPGA,可以在一片FPGA内实现几片专用控制芯片的功能,而且可以根据不同客户的需要,很方便的修改控制电路,由于FPGA功耗很低.主频很高,可以使输出脉冲频率达到几十甚至上百兆赫兹,同时,即GA内部还有大量的RAM区,可以存储大量的需要实时处理的数据。这种方案是未来运动控制卡的发展趋势。总之,可以针对系统的需要选择合适的方法,而且多种实现方法互相配合使用,    还可以达到更好的效果和更高的性价比。    经过比较发现,虽然上面很多方案都可以适用于项目开发的,但从控制系统的软硬件以及体系结构等方面考虑,在此选择基于DSP和FPGA运动控制器来开发系统。虽然这种方案的开发难度和工作量比其他方案要大很多,但是一旦开发成功,则硬件成本会显著下降,而且很容易就能够实现控制器的软件和硬件再配置,使其具有更强的开放性。同时考虑到DSP、FPGA的特性,实时性和可靠性可以得到很好的保证。.2IJDSP与FPGA性能分析DSp(Diig妞51,alprOcses)ro内部结构使它所具有的优势为:所有指令的执行时南京理工大学硕士学位论文基于璐p和F汽A的机器人运动控制系统的研究间都是单周期,指令采用流水线,内部的数据、地址、指令及DMA甲让eCtMemoryACC已弥直接存储器存取)总线分开,有较多的寄存器.与通用微处理器相比,DSP芯片的通用功能相对较弱些.DsP是专门的微处理器,适用于条件进程,特别是较复杂的多算法任务.在运算上它受限于时钟速率,而且每个时钟周期所做的有用操作的数目也受限制.FpGA(Re    d阮梦故阴阳blelC触忆加y)有很多自由的门,通过将这些门连接起来形成乘法器、寄存器、地址发生器等。这些只要在框图级完成,许多块可以从简单的门到刊眼(R‘tebPulseReSPonse有限冲激响应)或曰布(E昭tFo毗er叭ansofnn快速傅里叶变换)在很高的级别完成。但它的性能受到它所有的门数及时钟速度的限制。    PFGA包含有大量实现组合逻辑的资源,可以完成较大规模的组合逻辑电路设计。与此同时,它还包含有相当数量的触发器,借助这些触发器,科心A又能完成复杂的时序逻辑功能。通过使用各种EDA(ElCertonicDesinAugtomatic电子设计自动化)工具,设计人员可以很方便地将复杂的电路在FPGA实现。象微处理器一样,许多FPGA可以无限的重新编程,加载一个新的设计方案只需要几百毫秒。甚至现场产品可以很简单而且快速的实现。这样,利用重配置可以减少硬件的开销。总而言之,风毛A适合作简单、高速、并行的逻辑处理,其弱点是实现复杂的控制功能比较繁琐。    超过几MHz的取样率,一个DsP仅仅能完成对数据非常简单的运算。而FPGA能很容易实现非常高的取样速率,比如说1)MHz的采样频率。通常来说,如果采X(样速率要求比较低时(<1MHz0),而控制、处理算法整体上很复杂的程序可以使用DSP,这对于FPGA来讲是很困难的。对于较低速的事件,DSP是有优势的。DsP可以将事件排队,并保证它们都能执行,但是在它们处理前可能会有些时延。而FPGA由于其并行处理的特点,可以处理多事件,因为每个事件都有专用的硬件通路,采用这种专用硬件实现的每个事件的方式可以使各个事件同时并行执行。DSP通常用于运算密集型,FPGA用于控制密集型,许多人都用DSP提高算法速度,用PGA作外围控制电路。F.213控制系统具体方案    为提高运动控制的开放性、实时性和可靠性,实现PC机与运动控制卡组成的机器人控制系统,在本设计中,把控制系统中实时性要求较高的运动控制和开关量拍控制任务放到所设计的运动控制卡上,使主计算机从繁重的计算中解放出来,并能使脉冲的输出具有较高的频率和连续性。系统总体框图如图2.1.1。南京理工大学硕士学位论文基于璐p和日招A的机器人运动控制系统的研究图2.1                          ,1系统总体框图c机发送指令或数据给DSP,在DSP里进行数据处理,接着发送指令及数据P    到FPGA,在FPGA里进行脉冲分配,然后驱动步进电机。同时FPGA通过光电编码器反馈回电机的状态信息,可以为DSP的PID控制提供数据,PC机也可以通过DSP获得各个电机的运行参数。    运动控制器为运动系统的主控单元,完成以下主要功能:)从主机接收运动指令或运动指令块,并向主机反馈运行状态:1    位置、FO状态等:    )2根据接收的指令,完成六轴电机的运动控制:位置、速度、插补算法等;)在运动过程中,并行处理与运动有关的外部刀0信号和通用刀0信号。3    Ds    P与FPGA交互线路设计如图2.1.2,DSP的数据线、地址线、DS、尺。、W石、Cz无口UT、还有个GPIO都与FPGA相连接,C乙天口口了做FPGA的晶振,FPGA的晶振,GPIo时基信号,DS为数据空间选通信号,RD读使能引脚,研伍写使能引脚,另外刀5做在PGA内部与地址线进行译码产生FPGA内部的片寄存器的片选信号。F图2.1.ZD                      sP与FPGA的通信原理图FPGA与步进电机的连线如图2.1.3,因为步进电机自带有驱动器,所以,FP以南京理工大学硕士学位论文墓于OsP和日招人的机器人运动控制系统的研究只需要分别发送方向控制信号与脉冲控制信号。图21                          .3即GA与步进电机的控制线路    课题中的步进电机型号为57741H6Q30最高频率6)转每分钟,可以配置到具(0体减速比的减速器,在决定减速器的减速比的时候,运用了机器人设计的基本的自上而下的原理,决定耽关节上的电机减速器减速比为1:50,膝关节的电机减速器减速比为1:30,躁关节的电机减速器减速比为1:10。步进电机的具体技术参数见表2.1。步距角驱动电压相电流18。粼〕V.OA22刀Q.5】8】以表2                            .1技术参数相电阻相电感最大静转矩绝缘强大减速比15kg£mB1:5份1:3侧1:10ZJ步进电机控制方案ZJJ升降速曲线的选择    步进电机在变速运行时,既要克服负载转矩,同时也要克服变速所引起的系统惯性转矩。由步进电机的矩频特性可知,脉冲频率越高,电磁转矩就越小;同时,角加速度越大,引起的系统惯性转矩越大,故其直接启动频率必须在一个有限值下,如果启动频率大于这一有限值,步进电机就会出现失步现象。同样,步进电机不能在高速运行状态下突然停止、否则由于惯性作用会出现过冲,需逐步降低脉冲频率直到能够停止的速度。因此在整个加速(减速)过程中,步进电机的角加速度应该随着转子角速度的变化而变化,使步进电机在不失步条件下,以最短的时间加速(减澎到给定速度。另外,应尽量缩短启动加速和停止减速时间,提高其快速性。因此,10             南京理工大学硕士学位论文荃于DSP和日枯凡的机鉴人运动控制系统的研究选择合理的运行规律曲线,成为步进电机速度控制的关键。常见的升降速曲线主要有三种:    图2..2a所示为阶梯升降速方式,即步进电机的l转速每跃升一个台阶后将恒速运转一段时间。这种方法的缺点是在恒速阶段没有加速,而且在高频段加速台阶高,步进电机在速度阶越时会发生失步。另一种升降速方式如图2..2b所示,这种升速方法的加速度是恒定的,缺点是未充分考虑步进电l机输出力矩随速度变化的特性,在高速时会发生失步。图22.k所示为定时常数递减的方法实现升速的曲线,缺点是低频时升速太慢,而高速时升速太快〔)01。图2.                            Ll常见的升速曲线    由以上可知,图2..21所示的升降速曲线都不是理想的运行曲线,因此应该在研究步进电机的运动特性的基础上设计其升降速运行曲线。步进电机的动态特性,可以通过其动力学模型(    二阶微分方程)来描述:,迎+。丝+*。+-T=二t‘’dd  t2.()1式中J—系统总转动惯量,包括步进电机空载情况下转子的转动惯量,以及带负载时,负载的折算转动惯量。口—转子转角    声—机械阻尼和电磁阻尼系数    k—与夕成某种函数关系的比例因子        兀—摩擦阻力矩及其它与6无关的阻力矩之和兀—步进电机所产生的电磁驱动转矩        由上述方程和其它因素所决定,步进电机的实际矩频特性如图2..22虚线所示,在驱动脉冲的频率较低时,步进电机的转矩比较大,随着频率的上升,转矩近似于线性下降。南京理工大学硕士学位论文基于DSP和日招人的机器人运动控制系统的研究爪卜--------一、介启卜气r---一一一个、、绷率特性  一骊率曲线组*jf.几图2.2.2步进电机特性                        由式(2一1),系统的惯性扭矩为:J二=,迎_T.一,丝一、,一-Tt‘d        “’dt2.()2显然,惯性扭矩J  e应小于最大电磁扭矩几,在升速初始阶段,角加速度:应尽可能大些,以提高系统的快速性,但为了减小对系统的冲击,‘不应突变,£从。到九是线性增加到气的,然后等加速到几,接着e线性递减,在速度达到f。时,‘减到0,加速过程完成,角加速度e的变化规律应如图2..22中实线所示。」由于驱动脉冲的频率与转子的速度成正比关系,故在步进电机不失步的前提下,转子的角加速度:正比于驱动频率f对时间t的微分。对于图2..22中的加速度曲线,可以分成三段分别进行描述:一r‘n一凡ZJ以f_,d其中A、B、气、kZ均为正的常数,求解上述三个微分方程分别得:f=Bt+q2.(7)一f=‘勾+A                      t+几.82()式中q、q、q均为常数。考虑微分方程组的初始条件,不难得出符合步进电机矩频特性的升速曲线应如图2..23所示,该曲线被分为三段,第一段。至tl:为加加速段,加速度值逐渐增加,速度曲线上凹,第二段tl至几,为匀加速段,加速度值不变,速度曲线为直线,第三段tZ至几,为减加速段,加速度逐渐减小,速度曲线下凹。减速过程应与加速过程对称。df一dtdf一dt=kl厂=B23)(2.()42.(5)2.()6f=e                      勺+砚南京理工大学硕士学位论文蓦于DSP和日七A的机器人运动控制系统的研究几卜一一一一一一一一一一一一一二声/……1几2.22纽字积分擂补法数字积分法又称为数字微分分析器(    刀刃叭),是实现多坐标联动的常用方法之一,其基本原理可用图2..24所示的函数积分来说明。从微分的几何概念来看,从t=0到t求函数y=f()曲线所包围的面积时,可用积分公式:t如果将0 ̄t的时间划分成时间间隔为匀的有限区间,当山足够小时,可得近    似公式:式中为为t=tl时的f()t的值。此公式说明,求积分的过程就是用数的累加来近似代替,其几何意义就是用一系列微小矩形面积之和来近似表示函数f()t以下的面积。在数字运算时,若匀一般取最小的基本单位“1”,上式则称之为矩形公式,并简化为:.艺阁  S    y如果将山取得足够小,就可以满足所需要的精度。实现这种近似积分法的数字    积分器称为矩形数字积分器。一/lt图2.23步进电机矩频特性的升速曲线,=工ft()td艺,t_,山:=工ft()‘=2.(9)(2.10) 一一     l-I2.(11)南京理工大学硕士学位论文墓于DSP和日招八的机器人运动控制系统的研究图2.2.4矩形的定义)1直线插补原理设在平面中有一直线oA,其起点为坐标原点口,终点为A(凡>又),则该直线的方程为:甲y=五x凡2(.12)将上式化为对时间t的参量方程:x=众t,y=Ky声2(.13)式中K—比例系数。再对参量方程对t求微分得:    xd=众公,办=叙心(2.14)然后再积分可得:二二J“=KJ.xtd,,一Jyd一K丁y。‘2(.15)上式积分如果用累加的形式表达,则近似为:=x艺众山y=艺Ky声间,间2(.16)式中山=1,写成近似微分形式为:酥=叔山.匀=K                y‘山2(.17)从原点出发走向终点的过程,可以看着是各坐标轴每隔一个单位时间山,分别以增量众及Ky,同时对两个累加器累加的过程。当累加值超过一个坐标单位(脉冲当量)时产生滋出滋出脉冲驱动伺服系统进给一个脉冲当量,从而走出给定直线。南京理工大学硕士学位论文基于璐P和日招A的机器人运动控制系统的研究若经过沉次累加后,x和y分别到达终点(.y,凡),即下式成立:=艺众=众m=xxe2.(18)y=艺Ky。=Ky声二y.2.(19)由此可见,比例系数K和累加数之间有如下关系:2.(2仍及加=1                                 即爪=llK(2.21)K的数值与累加器的容量有关.累加器的容量应大于各坐标轴的最大坐标值。一般二者的位数相同,以保证每次累加最多只溢出一个脉冲。设累加器有n位,则:K=上故累加次数2.    2.(22)m二l                         lK=2尸2(.23)上述关系表明,若累加器的位数为n,则整个插补过程中要进行2月次累加才能到  达直线的终点。因为K=1  /2’(n为寄存器的位数),对于存放于寄存器中的二进制数来说众(或y,K)与凡(或y。)是相同的,可以看作前者小数点在最高位之前,而后者的小数点在最低位之后。所以,可以用工。直接对x轴累加器进行累加,用火直接对Y轴的累加器进行累加。    )2DD八平面直线插补器图2    .2.5为平面直线的插补运算图,它由两个数字积分器组成,每个坐标的积分器由累加器和被积函数寄存器组成。被积函数寄存器存放终点坐标值。每隔一个时间间隔勿,将被积函数的值向各自的累加器中累加.x轴的累加器溢出的脉冲驱动X轴走步,Y轴累加器溢出脉冲驱动Y轴走步。南京理工大学硕士学位论文荃于OSP和F此A的机器人运动控制系统的研究X滋出脉冲Y滋出脉冲图22.5平面直线运算框图                            不同象限平面直线DDA数字积分法所采用的处理方法是:把符号与数据分开,    取数据的绝对值作被积函数,而以符号作为进给方向控制信号处理,便可对所有不同象限的直线进行插补。南京理工大学硕士学位论文墓于DSP和日七A的机器人运动控制系统的研究3DSP运动控制系统中的应用.3IDSP实时控制芯片Ds    P侧giiatsi,airPcoess)ro芯片即数字信号处理器,是一种具有特殊软硬件结构的微处理器,具有专门的硬件乘法器和并行处理结构,广泛采用流水线操作,并提供特殊的DSP指令,具有很强的数字运算能力,可用来快速地实现各种数字信号处理算法t!”【lJao4J。.3LITMS320LF240xA报述TMS3    20L尺407A系列DSP是美国德州仪器公司生产的专门用于数字电机控制(DMC)的16位定点、低功耗的DSP系列,配有片内ROM和FLASH,还有DRAM(DualAccsesRAM),TMS320L尺407A是其中的一员。TMS32    0系列DSP有如下特点:    )1灵活的指令集;)2    内在的操作灵活性;)3    高速的运算能力;)4    改进的并行结构;    )5有效的成本。24    D7xA系列DSP控制器是专为基于控制要求的应用而设计的,将高性能的DSP内核和丰富的微控制器外设功能集于单片之中,从而成为传统的多微处理器单元(MCUs)和昂贵的多片设计的理想替代产品。每秒执行40M条指令的运算能力,使得2叨xA控制器比传统的16位控制器和微控制器拥有更好的性能。2    叨xA器件的16位定点内核为模拟控制设计者提供了一个数字解决方案,并且不会牺牲原有系统的精度与性能。事实上,可以采用诸如自适应控制、卡尔曼滤波和状态控制等先进的控制算法,因而增强了系统性能。240xADSP控制器还提供了更好的编程能力。高速CPU允许数字控制设计者实时处理算法,而不需要通过查表以获得近似    结构。2)(4xADSP控制器的指令集包括信号处理指令和通用控制指令,同时还提供了扩展的开发支持,这使得开发时间缩短,并且开发工作也变得和8位或者16位的微控制器一样的简单。2    粼效A的体系结构还特别适用于处理控制信号,如:16位字长、用于存储临时数据的32位寄存器,完全独立于CPU的数字定标硬件移位器。上述特点相结合使量化和截尾误差最小,同时还增强了用于辅助功能的处理能力,这些辅助功能包括取消系统中的机械共振的陷波滤波器,或者用于减少系统中状态传感器的估计技南京理工大学硕士学位论文基于DSP和可七再的机摇人运动控制系统的研究术。    240xA的数字和混合外设包括:)控制器局部网络(1    CAN);)同步和异步串行口(2    5以SPI);)模数转化器(3    ADC);)事件管理器(4    v);E)系统保护,如低压检测和看门狗(5    从恤山dog)定时器;    )6可逆计数器。2叨xA系统DSP比2    0x系统DSP功能更强大,主要体现在以下几个方面:4)24l    DxA系列DSP拥有每秒40M的运算能力,而2《玩系统仅能达到每秒30M的运算速度;)22    Dx4A系统DSP对片内FLASH/ROM新增了加密保护功能;)2304xA位PDp1NTx,CAP”,XINTn,和ADCSOC引脚设计了输入限制电路;)2440xA中尸D月N介引脚的状态反映在COMCONx寄存器中。11JT侧IS320LF公沁7A丁MS320LF    2407A的性能在TMS320L刃粼hA系列DSP中最为优越,主要性能指标归纳如下困I1:’l    )1指令周期为25ns,远小于1加ns,满足要求。它的运算速度高达40MIPs。)具有5月2    4字的片内DARAM,ZK字的SARAM,32K字的片内FLASH,无片内ROM,具有BOOTROM,有片内代码保护功能,最多允许外扩砚K的RAM和ROM。    )3具有EvA和EVB两个事件管理器,其中包括了4个通用定时翻计数器,2路PwM,6个捕获(1CA卫)单元,4个正交解码脉冲(QEP)单元.)具有14    6个通道的10位模数(AD)转换器,最小转换时间为375s。n)具有串行通信接口(5    sl)模块、串行外设接口(PScl)模块和控制器局部网络(CAN)。    )6具有41个分享的数字拍引脚。这些刀0引脚可以用于控制电机方向、读取转向开关。)多个中断源。7    知DSP最小系统的设计3J.1时钟信号TMs320L尺叨7A上集成有PLL(锁相环)时钟模块,可以为DSP芯片及外设提南京理工大学硕士学位论文墓于DSP和日招A的机器人运动控制系统的研究供所需的时钟信号.PLL可提供4种时钟信号:CPUCLK供CPU内核、片内寄存器、片内设备使用:sYSCLK,一般为CPUCLK的1左或141;ACLK,供模拟模块使用,一般为IMI忆;WDCLK,供叭动汀CH」)OG计如实时中断模块使用,一般为16KHZ。PLL模块可以按照4、2、133、1、08、066、057、05的倍率进行倍频或分频。    这里的时钟信号由外部提供,由于TMs320L尺407A的速度达到33sn,所以选择10MHZ的有源晶振如图3..21,从r以LllCLK[N输入,经PLL和PUZ倍频成如MHZ信号,供DSP使用,管脚X毛叼2悬空。犷矛 了 二聋  乃公方擎    厂瀚医 「引 到10are咧明U口泳』4习户。’刀趁扮麟味形杜.补奏“才舒,丫蓦气叭气焦’一、添_‘橇图3..21有源晶振3J2侧试接口在TMS3    2OL尺407A上设置有符合正EEll94标准的JTAG(JointTestAcdon压。uP)标准测试接口及相应的控制器,不但能控制和观察多处理器系统中的每个处理器的运行,测试每块芯片,还可以通过这个接口来装入程序。利用代机和Tl提供的仿真器,接通」TAG接口,就可以在咒上运行软件去控制DSP,和JTAG测试口同时工作的还有一个分析模块,它支持断点设置和程序存储器、数据存储器、DMA的访问,程序的单步运行和跟踪,以及程序的分支和外部中断计数等。为了方便调试,在控制卡上设置了」    TAO接口。它是一个14针的接口,可以同竹的仿真器相连。刀执G接口与TMs320尺4D7A的连接如图3..22所示,EMUO和EM刀1信号加上拉电阻的目的是为了保证信号上升时间小于1加5。南京理工大学硕士学位论文墓于n即和FPCA的机器人运动控制系统的研究10K图3.22测试接口323电源管理模块及复位电路设计TMS32OL凡如7属于低功耗芯片,其核心电源电压为3    .3V,为获得33V的供电电压,使用了n公司生产的DSP专用精密电源管理芯片TPS7333。T甲57333用于将SV输入电压调整为稳定的33V输出。该芯片内部带有精密电压监控电路,用于监控输出引脚的电压物吐,当输出引脚电压发生跳变时,该监控电路自动在尺丑处了引脚输出时间为2的ms的低电平复位信号,使DsP产生低压自动复位保护。Ds    P有上电自动复位、手动复位和软件复位三种复位方式。自动复位和手动复位是通过硬件电路实现的复位,软件复位是通过程序指令方式实现的。TMs320L尺4D7芯片的引脚RS是复位信号输入端,当该引脚被拉低时会发生芯片复位操作。在系统刚接通电源时,复位电路应处于低电平以使系统从一个初始状态开始工作。    由于复位低电平时间应该大于系统的晶体振荡器起振时间,以避开振荡器起振时的非线性特性对整个系统的影响,通常晶振需要10 ̄2加ms的稳定时间,则上电复位时间应该之2()ms。采用上电复位和手动复位相结合的复位方式,如图32X.3所示,上电复位时利用RI和cl构成的RC电路的延迟特性给出复位需要的延时时间。该电路的时间常数丁决定于RC电路的时间常数:乍=RC=1加xl护x4一7xl护=70用5431()由一阶RC电路的分析可知,上电后电容Cl    通过v“(+3.3仍和电阻Rl充电,电容两端的电压为踢,(                        1一e七)xVcc(3.2)设低电平与高电平的分界点为1.    5V,则由上式可以求出该复位电平由低变高的时间是:沁               南京理工大学硕士学位论文基于OSP和日招八的机器人运动控制系统的研究;=、il一生)(n=一oxo、1l一马=258smcv          3.33一(3)    完全满足系统对于复位稳定时间的要求。两级施密特触发器消除了复位信号毛刺的影响,保证了低电平的持续稳定。手动复位原理比较简单,按下按钮时,电容C    I上的电荷通过电阻RZ放掉,Cl上的电压降为0;当按钮松开时,cl的充电过程与上电复位相同,从而实现手动按钮复位。    软件复位主要是来自于看门狗监视定时器的不可屏蔽中断使DsP产生内部自动复位。当程序运行超过预先设定的时间而没有复位看门狗监视定时器时,即程序跑飞时,该监视定时器产生软件复位。3J.4存储单元配里    TMs320L尺叨7芯片具有16位的地址线,可以访问4个独立的地址空间,总计12K字的地址范围,其可寻址空间包括:9程序存储器64K、数据存储器64K、输刀输出(拍)空间64K.TMs    320L凡4D7A自带有1,SK字的数据/程序RAM,5料字双口R人M(DARAM)和ZK字的单口RAM(sARAM),但是考虑到控制卡所需的程序储存空间较大而数据储存空间较小,在DSP外部用一个片CY7C121芯片研K演10bi6t的片外存储器,研k作为程序存储器保存应用程序代码,也可以保存表信息和操作常数。对于存储器接口,选择具有快速存取时间的外部存储器非常重要。如果没有快    速的存储器,或者不考虑速度问题,可使用READY信号和片内等待状态发生器来产生等待状态,满足快速器件DSP与慢速器件之间的接口问题。而对于本系统,终端部分的数据处理量比较大和数据处理速度要快,因此需要比较快速的存储器接口。对于数据存储器和程序存储器,选用CYPRESS公司生产的CY7cl021一21cz是高速静态RAM,它的存储容量为麟K沈1bi6s。它的特点:t高速的存取速度一升蒸公。舞甲渝J补提锣翔于寸呀 ̄一、万:、衬洲一冬咔崛一爹 ̄,资寿一十花七;分分芬淤诱噪图3..23供电系统及复位电路南京理工大学硕士学位论文基于DSP和日招人的机器人运动控制系统的研究几二12su、低功耗、高字节和低字节的存取独立控制等,它是3.3v供电,FCc接.33v,刀乙E和刀月万接地,WE接TMS320日欢粼刀A的wE信号,oE接1,MS320L尺407A的尺D信号。33说P通信电璐的设计    主从式硬件系统设计中,主机与从机之间的数据通信一般有以下几种方式:)1    串行通信。这种方式是利用处理器本身提供串行口或在芯片的基础上用软件或硬件开发一个串行口实现双机通信。这种方式相对来说比较简单,适合于双机通信量不大的应用场合。由于DSP运动控制卡需要与主机进行大量的数据交换,此种方式不宜。    )2并行通信。这种方式是利用处理器的拍功能,在主机和DSP之间增加缓冲器或锁存器实现双机通信。它与串行通信方式相比,效率稍高些。该种方式也是适用通信量不太大的应用系统中。    )3共享存储器方式。这种方式还可以分为两种,一种是主机和从机不能同时访问共享存储器,即利用DSP提供的DMA功能,另一种是主机和从机可以访问共享存储器(但不能同时访问同一个单励,即采用双端口存储器来实现。用DMA方法实现双机通信的优点是适用通信量大的应用场合,但缺点是双机不能同时访问存储器,在某一时刻只能作为某一个处理器的存储器。双端口RAM是一种特殊的存储器,它具有两组数据总线和地址总线,两组总线可以访问不同的存储器单元,当两组地址总线完全相同时,片内总线仲裁逻辑向后访问一方发出等待信号,使该方进入等待,待另一方访问结束之后等待撤消,等待方继续访问这一地址。由于双端口RAM的特殊结构使得双机可以方便快速地进行数据交换,大大提高了主机与DSP运动控制卡的并行处理能力,而且解决了DMA方式存在的问题阴团圈.由于课题中要同时控制六个步进电机,为了提高数据交换速度,这里采用共享    存储器方式,即双端口通信。3J.IISA总线    巧A是由Inlet公司、正EE和EISA集团联合开发的与IB加刀AT原装机总线意义相近的工业标准结构总线,也称为AT标准。它的数据宽度8/61位,工作频率SME[z,数据传输率16]功B/5。8位巧A扩展珊插槽由62个引脚组成,用于8位的插卡;l816位的扩展插槽除了具有一个8位62线的连接器外,还有一个附加的36线连接器,这种扩展刀0插槽既可支持8位的插卡,也可支持16位插卡。巧A总线共有%个信号引脚,在设计中主要使用了地址线、数据线、Vcc、GND,读、写控制信号等〔‘〔”,〔川。南京理工大学硕士学位论文墓于加p和日(A的机器人运动控制系统的研究SIA总线的主要性能指标如下:1拍地址空间0)1阅H一3FFH)224位地址线可直接寻址的内存容量为16州[B)83/6位数据线1)62+36引脚4        )5最高时钟频率SMHz)最大稳态传输率16    6州[B15)中断功能7    )DMA通道功能8    )开放式总线结构,允许多个CPU共享系统资源9    si    A总线较PC总线在性能上有了较大的提高,如其寻址空间的范围、数据总线的宽度、中断处理能力等都有很大的提高。对硬件设计者来说,在BA总线中最引人注目的可能是它能提供16位FO和16位DMA操作,基于该总线的接口电路,其布线要求没有PCI接口板的要求高,因而在ISA总线上开发接口电路目前仍是人们首先考虑的方法。FO和DMA操作是计算机和外设进行数据交换的两种方法。在整个数据交换过程中,用FO接口方式时,cU始终参与数据流的控制;用DMAP工作方式时,cPu不参与对接口中的数据流进行控制,处于等待状态洒将对数据流的控制权交给DMA控制器。    采用F在低档微机中,O操作方式时,数据在内存与外设接口之间进行交换,一般要经过累加器AX,,即:内存数据<-》累加器Ax<e    s,>刀0端口6位刀0传输方式和11    6位DMA传输方式是巧A总线上实现数据传输的两种不同方法。从实验的结果来看,DM人传输速度要比刀0传输速度要快。但从软件编程的角度来看,采用刀0方式比较方便。首先,它可以不必考虑缓冲区的绝对地址,而进行DMA操作时必须先将缓冲区的起始地址送至DMA相应的地址寄存器。其次刀0操作时一次传送的数据块长度没有限制,而DMA是有限制的而且由于在一次DMA传送过程时,页面中锁定的高位地址是不能够改变的,因此在整个数据传送时,要防止页面数据的卷页错误,这一点在DMA数据缓冲区设置时尤应注意。在课题中,由于上述原因采用1    6位FO传输方式.在I    sA总线中,数据线达16位,即允许16位砌操作,在相同条件下其传送速度比8位拍操作快两倍。但16位和8位刀0接口电路的设计有较大的不同,主要从以下两个方面进行考虑:)11    6位拍的地址必须为偶数(如2101),1且不能同系统其它设备的拍地址冲突。南京理工大学硕士学位论文基于DSP和日℃人的机器人运动控制系统的研究)在进行12    6位拍操作时,必须确保控制线拍Csl6为低,表示现如操作是16位而不是8位。    由于ISA总线设计简单,可以满足课题的要求,同时由于DsP芯片也是16位的,故在双端口通信中,采用了BA总线,用16位FO方式传输数据。332双端口通信    DSP与PC机之间需要高速地传送大量地数据,为了提高两者之间地通讯速度,双口RAM作为一种特殊的RAM芯片,在高速数据采集处理系统中得到广泛的应用。它具有两个独立的端口,各自均有一套独立的数据总线、地址总线和控制总线,允许两个独立地对存储器中地任何单元进行存取操作。当两个端口同时对存储器中地同一单元进行存取操作时,可由其内部仲裁逻辑决定优先权。这里是选用美国I    DT公司生产的双口RAM芯片D”133L洲图,它是ZKx16hit高速静态双口RAM,存取速度为35ns(民用),D竹13在数字信号处理领域应用已经比较普通。它的时序与DSP的时序相配合,特别适用于DSP与PC机之间的大量数据高速双向传送。该芯片均提供两个带有自身的控制、地址和FO引脚的独立端口,它允许独立地读写存储器中地任何单元。ID竹133带有片内硬件端口仲裁电路,可以允许双机同步地读或写存储器中地任何单元,同时保证数据地完整性。它地竞争原则是:1)左右两端口地地址信号同时到达,那么谁地CE片选信号先到,慢地一方BUSY线下拉,直到快地一方访问完毕;2)左右两端口地片选信号同时到达,那么谁地访问地址信号先到,慢地一方BUSY线下拉,直到快地一方访问完毕,DSP与R二机地通讯电路如图3..1所示。3采用双口RAM作为TMs    320L尺4)7A与P(C主机之间地通讯接口不但可以简化通讯接口电路地设计,而且提高了数据交换地速度,增强了控制卡地实时性。双端口倒口      TMS3202407A募A9^-0机加一1,  IS  A却L峨尸T7‘3A3o卜Al。D心L.01,D吐‘01,助峨1001】一1,B口SYLBUgytC血毗WR总线AO-A夕1石五CEL1            0钩人EN拟WL‘R叨升皿JDSISPSAO・gA,{,.地址译码PLD                                        地址译码图3..3IPC与DSP通讯南京理工大学硕士学位论文墓于璐P和日丫人的机器人运动控制系统的研究3浦系统地址空间分配3.4J地址空间分配    在多轴运动控制系统中,DSP通过刀0对外部设备进行访问。外部设备包括双口rat。、R毛A等,如何分配FO地址空间是硬件电路设计的关键之一。在系统设计中,数据总线都设计为16位,选通信号由地址线进行刀0地址译码生成。进行地址译码的目的也就是为了保持周期内同类片选信号的唯一性。可以选用PLD灵活的进行地址译码,防止片选信号冲突,以致产生数据错误。在本课题里,DSP需要访问的外部设备可以分为三大部分,分别为双口杯、脉冲分配电路与光电编码器的信号处理电路。考虑到脉冲分配电路与光电编码器的信号处理电路都是由FPGA实现的。所以DsP实际需要访问的外部设备就是种与班七A。双口招m的另一个功能是当作外部数据存储器,本课题中,分配给双口ramID竹133的具体地址为0以X)H ̄07FFH,光电编码器部分的地址为080H ̄0FFFH,脉冲分配电路的地址为1〕1〕H一IFFFH,剩下的地址做备用。在硬件电路的设计上,DSP的数据总线都连到PFGA,地址译码在FPGA里内部进行。虽然这样分配地址资源有点浪费,但是地址译码电路简单灵活。在本课题里,控制6个步进电机的寄存器主要有13个,1个用来存储方向信号,6个用来存储脉冲个数,还有6个用来存储反馈信息,这些寄存器共用刀0口输入输出。值得注意的是,如果系统采用了多级译码的方式,多路地址信号到达同一级译    码模块的延时有一定的差异,因而会造成竞争,进而在读写周期的开始处产生毛刺信号。如果用这样的选通信号控制设备端口寄存器的读写,很有可能造成系统的误动作,影响控制系统的稳定性。因此可以在后两级译码单元的输出部分增加滤波环节,有效的消除竞争带来的毛刺信号。在PLD设计中,消除竞争冒险一般不采用增加冗余项或延迟环节的方法,因为多数冗余项会被EDA软件在综合的过程中消除而延迟环节会随着PLD内部布线方式和温度的变化而改变导致延迟无法预测.南京理工大学硕士学位论文荃于。夕和R℃人的机器人运动控制系统的研究4FpGA在运动控制系统中的应用.41可编程逻辑设计.4LIPLD与FPGA椒述PL    D(nrog知mmable劫gicDevieC)是可编程逻辑器件的总称‘洲,它是SIAC(却pilcitans详幼石chtoe脚tedC泳‘t专用集成电路)的一个重要分支。SIAc是一种专门为某一应用领域或用户需要设计、制造的VLSI电路,可以将某些专用电路或电子系统设计在一个芯片上。ASIc分为全定制和半定制两种。由于全定制ASIc要求设计人员从晶体管的版图尺寸、位置和互连线开始设计,采用专用的掩膜工艺,因此它的设计与制造只能由半导体生产厂商来独立承担,而且设计制造费用高,周期长。随着微电子技术的迅猛发展,越来越多的设计、开发者希望可以自行设计自己的专用集成电路芯片,而且希望ASIC的设计周期尽可能短,最好能在实验室里就能设计出合适的AsIC芯片,并且立即投入实际应用之中。在这种情况下,出现了可编程逻辑器件(PLD)。可编程逻辑器件作为一种通用型半定制电路,用户可以通过器件编程使之实现所需要的逻辑。它的成本低,使用灵活,设计周期短,可靠性高,因而很快得到普遍应用,发展非常迅速。目前应用最为广泛的是现场可编程门阵列(即GA)和复杂可编程逻辑器件(cPLD)。PGF    A(Red枷glmmabl把C泊沈Array)是一种高集成度高密度的可编程逻辑器件,大部分采用基于SRAM的查找表逻辑形成结构。它的结构一般可以分为三个部分:可编程逻辑块CLB(configu曲le助gicBlcok‘)、可编程Fo模块IoB(IPu灯outnputBlck)o和可编程互连资源I(玩tR。℃onnetRecsource)。cJ在器件中以阵列方式排列,通过环绕在周围的IR连接,构成各种复杂逻辑。幻B则提供了器件引脚与内部逻辑阵列之间的连接。风七A器件的功能由逻辑结构的配置数据决定。工作时,这些配置数据存放在片内的SR入M或者熔丝图上。使用SRAM的FPGA器件,在工作前需要从芯片外部加载配置数据。配置数据可以存储在片外的EPROM或其它存储体上,人们可以控制加载过程,在现场修改器件的逻辑功能,即所谓现场可编程。由于FPGA器件集成度高,并支持现场可编程技术,开发和上市周期短,在数字设计和电子生产中得到迅速普及和应用,并一度在高密度的可编程逻辑器件领域中独占鳌头。.412可编程逻辑器件的设计流程    可编程逻辑器件的设计是指利用开发软件和编程工具对器件进行开发的过程。高密度可编程逻辑器件的设计流程如图4.11所示,它包括设计准备、设计输入、设计处理和器件编程四个步骤以及相应的功能仿真(前仿黝、时序仿真(后仿真)和系肠              南京理工大学硕士学位论文墓于璐P和阵七A的机器人运动控制系统的研究统测试三个设计验证过程。图4.11可编程逻辑器件的设计流程                        )设计准备1    在对可编程逻辑器件的芯片进行编程配置之前,首先要进行方案论证、数字系    统设计和器件选择等设计准备工作。首先要根据任务要求,如系统功能及复杂程度,对工作速度和器件本身的资源、成本及封装等方面进行权衡,选择合适的设计方案和器件类型。    数字系统设计有多种方法,自底向上设计法和自顶向下设计法是目前最常用的设计方法,也是基于可编程逻辑芯片的系统设计的主要方法。这两种设计方法各自有它们的优缺点。使用自底向上的方法的时候,需要把设计划分为多个模块,每一个都可进行单独的综合并且按照设计的需要进行改变。从设计角度讲,这种方法要求设计人员熟悉逻辑电路的设计方法,从底层逻辑开始实现模块功能,工作量大而且在复杂系统设计时容易出错。但是,这种方法实现的设计结构清晰,便于设置测试节点和观察系统内部的工作情况。从综合的角度讲,这种方法允许对设计的一部分进行编译和处理,从而大大加快了编译的速度。但是用自底向上的方法,仅可以对模块的内部进行综合,而不能对模块的边界部分也进行综合。在整个设计中,将失去了跨模块综合的可能性,因而会失去一些优化设计的机会。自顶向下的方法从系统级功能入手,采用硬件描述语言对系统行为进行描述,    南京理工大学硕士学位论文荃于OSP和日阅人的机器人运动控制系统的研究并采用仿真手段验证设计的正确性,然后再逐级向下细化底层的结构。由于高层设计与器件及工艺无关,而且在底层复杂的逻辑设计完成之前就可以用软件仿真的手段验证系统方案的可行性。从电路设计的角度讲,自顶向下的方法大大降低了设计人员的工作量,并有利于在早期发现结构设计中的错误,提高设计的一次成功率。从综合的角度讲,自顶向下的方法在整个的设计上进行综合,完成设计的优化并且得到门级网表,而不必要进行模块的划分,综合结果最好。然而,对于规棋较大的设计,设计中即使只有微小的变化都要重新对整个系统进行综合,有时并不划算。另外,当设计中有很多的重复的模块的时候,自顶向下的方法要把这个模块拷贝多次进行综合,而不像自底向上的方法那样只拷贝一次,从而使综合时间变得很长。自顶向下的方法作为一种新的电子设计理念,具有很多优势,但考虑到设计的一些具体需要和设计的规模,也许并不是对每一个设计都是很好的方法。)设计输入2    设计者将所设计的系统或电路以某种标准形式表示出来,并送入计算机的过程    称为设计输入设计输入通常有以下几种方式原理图输入方式、硬件描述语言输入方式、波形输入方式以及状态图输入方式.    )3设计处理设计处理是可编程逻辑器件设计中的重要环节。在设计处理过程中,编译软件    将对设计输入文件进行逻辑化简、综合和优化,并适当的用一片或多片器件自动的进行适配,最后产生编程用的配置文件,具体包括:.a    语法检查和设计规则检查.b    逻辑优化和综合:优化的目的是化简所有的逻辑方程或用户自建的宏,使设计所占用的资源最少。综合的目的是将多个模块化设计文祥合并为一个网表文件,并使层次设计平面化。.c    适配和分割:确定优化以后的逻辑能否与器件中的宏单元和FO单元适配,然后将设计分割为多个便于适配的逻辑小块形式映射到器件相应的宏单元中。.d    布局和布线:布局和布线工作是在设计检验通过以后由软件自动或手动完成,目的是以最优的方式对逻辑元件布局,并准确的实现元件间的互联。e甲    生成配置数据文件    )4设计校验设计校验过程包括功能仿真和时序仿真。功能仿真是在设计输入完成之后,选    择具体器件进行编译之前进行的逻辑功能验证,因此又成为前仿真。此时的仿真没有延时信息,对于初步的功能检测非常方便。仿真前,先建立波形文件或测试向量(及所关心的输入信号组合序列),仿真的结果会生成报告文件和输出信号波形,从中可以观察到各个节点的信号变化。若发现错误,则返回设计输入中修改逻辑设计。南京理工大学硕士学位论文墓于DSP和1丁‘^的机器人运动控制系统的研究时序仿真是在选择了具体器件并完成布局、布线之后进行的时序关系仿真,因此又成为后仿真或延时仿真。由于不同器件的内部延时不一样,不同的布局、布线方案也给延时造成不同的影响,因此时序仿真对估计设计的性能以及检查和消除竞争冒险非常必要。    )5器件编程器件编程的过程是把配置数据文件,通过编程器或编程电缆向器件进行下载,    使器件实现设计的逻辑。编程的过程中还可以对器件进行检验和加密等工作。)系统测试6    系统测试是将含有载入了设计的可编程逻辑器件的硬件系统进行统一的测试,    以便最终验证设计项目在目标系统上的实际工作情况,以排除错误,改进设计。.413FPGA设计应注意的问鹿    )1所有的状态机输入,包括复位、置位信号,都要用同步信号。所有的状态机输出都要用寄存器寄存输出。注意在状态机设计中不要出现死锁状态。    )2要用寄存器和触发器设计电路,尽量不要用锁存器,因它对输入信号的毛刺太敏感。如果坚持用锁存器设计必须保证输入信号绝对没有毛刺,且满足保持时间。)设计译码逻辑电路时必须十分小心,因为译码器和比较器本身会产生尖峰,3    容易产生毛刺,把译码器或比较器的输出直接连到时钟输入端或异步清除端,会造成严重的后果。    )4应该尽量避免隐含RS触发器的出现。一般要控制输出被直接反馈到输入端,采用反馈环路会出现隐含RS触发器,其对输入尖峰和假信号很敏感,输入端有任何变化都有可能使输出值立刻改变,此时易造成毛刺的产生,导致时序的严重混乱。一旦具有隐含的RS触发器,加锁存器消除毛刺是不能解决问题的。此时只有通过全面修改电路来从根本上解决.    )5每一个模块中只用一个时钟,避免使用多时钟设计,同时避免使用主时钟分频后的二次时钟作为时序器件的时钟输入,因为二次时钟相对于一次时钟可能存在过大的时钟歪斜。对所有模块的输入时钟、输入信号、输出信号都用D触发器或寄存器进行同步处理,即输出信号直接来自触发器或寄存器的输出端。这样可以消除尖峰和毛刺信号。不论是控制信号还是地址总线信号、数据总线信号,都要采用另外的寄存器,以使内部歪斜的数据变成同步的数据。这些表面上看似乎无用的操作可以大大提高电路系统的性能。)应该尽量避免使用延迟线,因它对工艺过程的变化极为敏感,会大大降低电6    路的稳定性和可靠性,并将为测试带来麻烦.)大部分FPGA器件都为时钟、复位、预置等信号提供特殊的全局布线资源,7    南京理工大学硕士学位论文基于DsP和日℃A的机器人运动控制系统的研究要充分利用这些资源。这样可以减少电路中的毛刺并且大大提高设计电路的性能。    )8不要试图用HDL语言去综合RAM,ROM或FIFC等存储模块。当前的综合工具主要用于产生逻辑电路,如需要用这些模块,直接调用或例化相应的宏单元即可。42光电编码器信号处理电路4二1光电编码器的工作原理光电脉冲编码器分为增量式脉冲编码器和绝对式脉冲编码器侧闭。绝对式脉冲    编码器是通过读取编码盘上的图案来表示轴的位置,可以直接得到角度坐标的绝对值,没有积累误差,允许最高旋转速度高,但高精度和高分辨率的绝对式脉冲编码器结构复杂、价格昂贵。在课题中,采用增量式脉冲编码器作为位置传感器。增量式脉冲编码器通过随轴一同旋转的圆盘连续遮挡或不遮挡光源对光电元    件的照射,电路中产生两组近似正弦波、相差90度的电流信号,再经过放大、整形电路变成两组相差卯度的方波信号。若A相超前于B相,对应电动机作正向旋转:若B相超前于A相,对应电动机作反向旋转。脉冲编码器还有一个C相脉冲信号,一般是一转产生一个C脉冲,它是用来产生基准点的.为增加信号的传输距离和抗千扰能力,脉冲编码器一般输入为c+、c一、A+、A一、B+、B一。具体信号如图4.2.1。状态位n可DEX脉冲氛范*艺图4.2.1正交增量编码器信号输出和方向                          根据光电编码器的原理与标准输入信号,设计了位置与速度检测电路。为增加信号的传输距离和抗干扰能力,选择编码器的信号传输方式为双路差分信号模式:即c干、c一、A十、A一、B十、B一。这三对信号由于受到振动和传输过程的千扰,在电机旋转时,发出的方波信号仍会出现许多毛刺,直接接到DSP中会引起误判断。南京理工大学硕士学位论文墓于璐P和日(人的机签人运动控制系统的研究所以把三对信号经过差分电路转化为平滑的单相信号A,B,C为DSP提供可靠的反馈信号。差分电路由n公司的AM26L5321龙构成,该电路的功能是将输入的一对极性相反的方波信号转化为单极性的无毛刺的方波信号,A.B,C的方波信号再送入FPGA进行处理。其中一轴的编码器信号处理电路如图4..22所示.井三幸冷提币一咭卜拼井了-丫一‘一寸一................孰3户口C呀且奋头盯e『已李朴朴砂朴必公阶工EI-工CI+一Cl.3-二怕一污取滋十止了人-刀汀万干刀闷B,1-14-巧-‘一?-加-,4J2信号处理电璐设计    一根据光电编码器的工作原理,可以分析得知PGA和PGB信号的前沿与后沿都对应着光电码盘14节距的信息。也就是说l14是脉冲当量计算可利用的最高精度。j因而如果将INA和州B这两个信号经四倍频后再进行脉冲当量的标定,无疑是充分发挥了光电编码器最高精度的潜力。对光电编码器输出A、B相脉冲信号进行细分,相当于增多码盘刻线数,可以有效的提高测量分辨率,增加系统的控制精度。这就是为什么在实际应用中最高将A,B相信号进行四倍频的原因。若想进一步提高精度,只有提高光电码盘的分辨率。在进行光电编码器信号处理的过程中,还需要获得码盘或光栅尺的运动方向信    息,用以控制可逆计数器的计数方向。由光电编码器的工作原理可以设计一种简便的辨向方法,即以A相信号为数据输入信号,以B相信号为时钟信号,通过一个D触发器提取方向信息,输出D为不同电平代表不同的转动方向。这种常用的辨向电路虽然直观、简单,但是没有综合考虑辨向和细分的复杂性,把辨向和细分电路分开,辨向电路直接对光电编码器的输出A,B信号进行辨向,而不是对细分后的脉冲信号进行辨向,这样实际测量误差仍是原来的节距。在考虑辨向功能时,应对细分后的信号进行辨向设计,否则不能提高测量精度。根据前面所说,在R心A里设计了光电编码器的信号处理电路。光电编码器信    息处理模块电路结构如图4..23。溃:几姚戒111班C千刀心C取刀十下压一漏一一汉_  _、了_,了_百__;__:嗜二只汉厂点儿图4..22差分输入电路南京理工大学硕士学位论文基于璐P和件七人的机器人运动控制系统的研究图4                      ..23光电编码器信息处理模块的电路结构图    输入信号刀又A,州B,INC分别为经过滤波与隔离处理的光电编码器A,B,C相脉冲信号。作为检测电路的输入信号,INA与州B信号经四细分、辨向后,可为1位可逆计数器提供计数脉冲和方向控制。州C可选择作为计数器的清零信号。通6过比较两次计数值并进行一定的比例计算,上层处理器可以获得电机的实际运行位移量,以供闭环位置控制所需.图42                            .4细分辨向及计数电路原理图    根据上述分析,对光电编码器脉冲信号细分辨向及计数电路进行了设计,原理图如图4.2.4所示,光电编码器输出的相差为00度的方波信号A、B经RC滤波和施密特整形后(芯片外处理)输出信号入A和州B,经第一级D触发器后获得AI和BI信号。这一级触发器可以对输入信号进行进一步的滤波,从而消除了输入信号中可能的尖脉冲带来的影响,提高了系统的抗干扰性能。当被测装置正向运动时,从CLKADD信号端输出四倍频脉冲,而CLKSU启B    端无信号输出。当被测装置反向运动时,从CLKSUBB信号端输出四倍频脉冲,而CLKADD端无信号输出,.CLKADD和CLKSI」BB相与的信号可作为可逆计数器的计数脉冲。CLKADD和CLKSIJBB信号输入RS触发器电路可产生DADD,DSUB信号,根据可逆计数器的真值表选择一个作为计数方向控制信号。在图中,还有个1    6位双向计数器。采用了QUAJ的Usn提供的兆功能函数LPMesCOU犷陀R。选用了同步十六位计数方向可选择计数器,即:LP]功一研八DTH=南京理工大学硕士学位论文墓于DSP和再七A的机器人运动控制系统的研究16,PLMesDIRECnDN=“UPjDOWN”.具体配置如图4么5.炭二cou滋er16d曰ta以501u州d。,.1  q【,5.01仁名孽兰葬该沐二钻滋点亡淤:苏二盘一尸图4                             ..25双向计数器计数器的值然后保存在锁存器中,如图4..26。「—                      丽lcta丽一da协115二]0qll5二叨图4                             ..2616位锁存器另外还需要注意的两点:    )1    时钟的频率必须远高于光电编码器的频率,否则无法准确的捕捉到光电编码器的输入信号。)2    计数器的初值要适中,不然可能出现计数器到计数为0或溢出的情况。423信号处理电路的时序仿真结果    图4..27为光电编码器信号处理电路的时序仿真图,图4..28、图4么9为局部放大图.仿真器件为EPFIOK20TC14,编译设置为速度与资源优化均衡模式。其中CLK为系统的工作时钟,远高于输入脉冲的频率,因此模块内部的同步时序电路输出可以很好的跟随输入变化。水A和1刊B分别为增量式光电编码器的标准输入A相、B相脉冲。CLKADD和CLKSL】B分别为输入脉冲经过四细分后码盘正向运动和负向运动的脉冲输出结果。ENSUB和ENADD为四细分后的脉冲辨向结果,分别为两种形式的方向信号,供双向计数器方向控制所用。蘸臀一色龄鹭粉一继糊荪一羚溉于Cll。、,恙WH『臼伽比抓丽哑丽翔皿幽耐.哪翩咖幽咖哪丽朋丽Inl丽旧仙丽姗哪}11加旧1幻1恤11阿而1111丽讯1而皿1丽马李幸黑,门门日邝下r,尸甲,,,一尸甲宁,,一尸甲甲,,,尸,甲州口下释聋香穿享界宾草黔一一以丫于二立士伴婴婴翼翼婴掣绎三::loa:六_滋礁荔图4..27光电编码器信号处理电路的时序仿真图南京理工大学硕士学位论文蓦于OSP和日枯A的机餐人运动控制系统的研究黔馨署翼宁了近发生了变化,表现为输入脉冲刀,A和刃闪B相位超前情况的改变。四细分输出信号CLKADD和CLKSLjB严格按照输入脉冲的四倍频方式产生波形,同时辨向输出信号严格跟随了倍频以后输出信号方向变化规律。可见,光电编码器输入脉冲细分辨向模块电路设计完全符合系统功能要求。4J脉冲分配电路4盘1脉冲分配电路的设计运动控制器为驱动单元提供脉冲分配电路接口的硬件实现电路如图4    .3.1所示。黝黝一一泄趟趟蒸塑淤}夔淤一瓣赢护豁.。『如黑.O万1万二苏O习1万O万l,0万0,1黔粉】微一继卿淤逆漏国图图4..28时序左端仿真放大图飞簇‘丑1  万l.0加D.Q.压n生  万l皿0  甘1〔扣彝黔豁姨筹甘1日3图4                            ..29时序右端仿真放大图从图4    ..28、4..29中可以看到;被测物体的运动方向分别在3.52us和6.52us附图4..31脉冲鱼接口电路努南京理工大学硕士学位论文基于璐P和日招A的机器人运动控制系统的研究    DsP完成轨迹规划后,得到每个坐标轴在每个定时时间毛内的进给量。进给量经过脉冲分配器后,得到脉冲序列加脉冲方向的进给量形式。实现轴的运动控制,就要对带动轴的电机的转动速度和角位移进行控制。在运动控制卡中,脉冲分配器向电机驱动系统发出不同频率的脉冲序列以及方向指令。在脉冲序列中,脉冲的频率代表电机轴的转速,脉冲个数代表电机轴的角位移。方向指令指示出电机的正转和反转。    本课题中,DSP采用定时插补方法,每隔时间几进行一次插补运算,向脉冲分配器送出Ts内各个坐标轴的进给量,脉冲分配器根据此运动参数发出指令脉冲。本课题中,步进电机的最高转速为6加转每分钟,步距角1.8度,设定肠为10ms。由于脉冲序列需要的最高频率为ZKHZ,则在10ms中脉冲发生器最高需要发送20个脉冲。同时为使电机轴转动平稳确保轨迹的准确性脉冲分配器发送的脉冲序列必须均匀.    因此这就要求脉冲分配器产生脉冲的最高频率也能高达ZKHz。图4..31中的脉冲分配电路是实现脉冲接口的关键电路,由FPGA来实现该部分的功能。在FPGA实现的所有译码和逻辑控制中,脉冲发生电路是其中关键电路之一它的作用是在每周期时间(设定为10ms),获取下一周期位置增量值,需要变成含同等数量的脉冲序列在下一周期时间发送给具有脉冲接口的步进电机驱动,而且必须保证各脉冲发生器之间的同步,从而达到各轴的同步运动。图4                            ..32脉冲输出逻辑电路    脉冲产生电路逻辑简图如图4.3.2所示。每个脉冲发生器均有两个缓冲器:输入缓冲器(数据锁存翔和脉冲分配缓冲器。在当前10ms内,DSP将需要发送的脉冲个数写入寄存器;10ms同步信号上升沿时,使寄存器数据进入到数据锁存器中,脉冲发生器同时利用该数值在外部CLK的作用下进行累加操作,当累加结果产生溢出时,脉冲发生器的输出电平发生跳变;随着累加过程的不断进行,脉冲发生器产生一系列的脉冲序列输出。在10ms时间内,脉冲输出段跳变的次数是指定脉冲个数的2倍,即可产生指定个数的脉冲。同时脉冲计数单元对脉冲输出进行计数操35              南京理工大学硕士学位论文墓于DSP和F因A的机器人运动控制系统的研究作,不停地将脉冲发生个数与指定脉冲数比较,当指定的脉冲个数已经发送完毕,产生脉冲封锁信号至脉冲发生器,防止其继续产生脉冲。    )1脉冲发生器脉冲周期计算模块的计算结果(    经过除法和减法运算后的结果)将作为脉冲产生模块中可预置数端的输入。脉冲周期的具体算法为:根据选定的FPGA的全局时钟频率M,得出在每个    10Ir.中包含的时钟脉冲个数N。上位机要求101ns内发送的脉冲个数为n,为输出均匀的脉冲信号PS,则信号Ps一个周期内应含有Nln个时钟脉冲。自加载可预置数加法器的模为Md,则预置数端的数据输入为Md.N12n。这样每计数到加法器模值时,信号PS产生一次翻转。这样信号PS就是所需频率的均匀脉冲序列。如果占空比为50%,那么脉冲信号PS中,高电平和低电平各自占有N12n个时钟脉冲。    在这个算法中,解决Nln的非整除性以及除法运算和减法运算的高效实现是关键。为了均匀发送任意个数的脉冲(0至20个之间),N不可能整除所有的数n。当经过除法取整后,脉冲周期的计算精度大幅降低,从而影响到脉冲信号Ps的频率,失去控制电机转速的意义。对此,可通过选择适当的全局时钟频率的方法解决。由于脉冲信号Ps的最高频率为ZKH乙,则时钟的最低频率应为ZKH之,如果提高时钟频率到ZOKHz时,则将10n场内包含的时钟脉冲的个数N扩大了10倍,这样相当于增加了除法取整后保留的小数位数,从而提高了脉冲周期计算精度,解决非整除问题。而且,全局时钟的频率越高,脉冲周期的计算精度越高。但同时应考虑电路可靠性,时钟频率也不能选的过高。在开发FpGA的决石f    ogHDL语言中,虽然提供了除法操作符,但是它要求除数必须为2的幂,否则将不能综合。同时,使用除法操作符将耗费巨大的片上资源且运行速度慢,达不到控制器实时性的要求。减法操作符也存在运行速度问题。对于不同构造结构和工艺的R七A芯片,程序经过综合后的优化程度也不一样。对此可采用A曰飞RA公司的开发软件QUausn或Matrxplusn提供的LpM(参数化的模块库)。它提供了大量的IPm函数,每个函数都是参数化的,可利用各种参数来确定某一模块以满足设计电路要求。由此完成的模块经过选择具体的芯片、完成编译之后,它对芯片的利用率和运行的效率都是最为优化的。默认的除法模块如图4..33,具体可以根据项目自行进行配置。图4..33除法模块南京理工大学硕士学位论文基于此P和F邢A的机鉴人运动控制系统的研究    根据精确的脉冲周期,由于LPM一C0UN’n识函数模块提供多种可能位数的FO接口,可选择的同夕异步工作方式以及控制端,因此可以根据设计需要进行任意配置。采用了同步十六位COUNTDOWN计数器,即:LpM、vlDTH=16,LpM‘D环旧CT10N=“DOW、”.选用异步初值载入方式aload,具有溢出标志cot。u脉冲周期的写入不能影响计数器的正常工作,因此采用计数器溢出信号cout与读写信号相或作为计数器初值加载信号,同时将cuot作为端口寄存器的使能输入端的逻辑之一。这样的设计可以在计数器尚未溢出时,计数器就可以装载新的速度参数,待计数值为0时,计数器再以新的初值向下计数,而当计数器更新速度参数时,端口寄存器的值也不会改变,保证了数据更新时工作的可靠性。)2    脉冲计数单元模块设计由于电路中除法运算的非整除性,极有可能发生多发脉冲数的情况。为了精确    定位,需要在发送脉冲的同时检测已发送的个数。通过计数器和比较运算电路,可以容易检测到是否己发送到目标数。当到达时,需要停止发送。但一到达目标脉冲数时就停止发送的话,会造成脉冲序列的最后一个脉冲是尖峰脉冲。这是不允许的。这时需要在判断到达目标数时。还要判断最后一个脉冲是否发完了半个脉宽。当判断己有半个脉宽时,才可真正停止发送。这里,同样用廿M ̄COUNTER来实现,计数器的输出信号用来控制脉冲发生器的CLK信号,当然这个计数器输出为零时,CLK信号也变为零,这样就控制了脉冲发生器的溢出。)3    控制信号模块设计主要的控制信号有周期为10ms的时基信号。    周期为I    Qms的时基信号,在其信号变化的时候使能脉冲序列输出,同时它也是控制步进电机同步工作的重要控制信号。例如当DSP分时输出脉冲数时,可通过该周期信号上升沿,脉冲分配单元可同时读取脉冲数,进行脉冲分配,实现六个轴之间的协调运动。同时简化了FPGA的软件设计免去了设计FIFU或双端口RAM,接收数据、读取数据都只需要一个一层的寄存器。在FpGA可以设计一个全局时钟计数,达到规定计数时就发生翻转实现的。即一个规定了模数的计数器就产生10snI的周期信号。但是当这些模块不在同一个FPGA里,那么这个10ms的时基信号可能不同步,所以这里用DsP产生10ms的时基信号。)4    分频模块设计分频模块是为了产生适当的时钟频率,因为FPGA自带的频率太高。所以要对    它进行分频,达到课题所需要的频率。主要程序如下:mo    dulediv(c止,sr七c止:-2声玫乡,clk‘8);I    nPutclk,srt;uo    tPulclkesZ,clkJ,clk‘8;南京理工大学硕士学位论文基于0即和日招A的机器人运动控制系统的研究花9[    :20]ncts;wl    erclk-2刀Ik4-’cllee;s幻wa    ys@(因sedgec止ornegedegrSOfi        (吮t)比乡ncnt      s<二0;.dsie      ebeginctns<二{”ts+1;即dsa    slngclk一么别刀ts[]0;sa    isngckl4-翻ts【;]1sa    singc肠‘8二Cnts【2];ne    dmodllel    在这个程序里,只需要改动数字就可以得到需要的频率,考虑到FPGA器件里资源有限,所以应当采用合理的分配,采用分频的话虽然会降低精度但可以节约很多资源。4J.2脉冲分配电路的特殊设计上面讲了一般情况下,脉冲分配电路的设计。脉冲分配电路的关键问题是根据    输入的数据得到具体的脉冲周期,一般情况下都得用除法器实现。除法操作符将耗费巨大的片上资源且运行速度慢。从系统的优化角度出发,经过仔细研究发现,在本课题中,10snI内最多发送20个脉冲,脉冲的个数不同则表示脉冲周期的不同,因此可以计算出每种情况下的脉冲周期。这样在课题中,脉冲周期最少只有21种可能,而且脉冲个数跟脉冲周期一一对应。地址译码电路相对于除法器而言,优势是非常明显的,而且不需要脉冲计数单元,所以本论文采用地址译码电路来实现脉冲周期的计算,模块如图4介.3.4。图435为脉冲方向分配模块.译门码计瀚忠照冲扭踌狱凿/凑久头鑫偏撬图4..34脉冲个数分配模块图屯3.5脉冲方向分配模块南京理工大学硕士学位论文墓于DSP和F邢A的机器人运动控制系统的研究ndca名e;endpreocess;ndbeehav;生成的模块如图44.3所示。,几盘甚乡,.之冷之奋户.,,气式・一—一-一-一—一一-一一—一一了whenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhenwhen岁}气.1“>o=u中utlZ李.0110.>out=Put12令,,)1X(0沉洲XK旧(X)X,,12<曰.仪力10以刃仪众刀,,;凡‘,山}.且1人111”>out=Put12<=洲X()XX()l以洲)X(兀旧,,;吧勺吧.;以刃侧阅Q刀00”办叨中utlZ<="仪众洲X旧10(兀K),,;仪刃以洲X众刃1”>ou印u=t12令洲仪心叨曰刀11叉X旧, ̄,}你刀以力〕力10乍>。utPtu,0,11洲XXX洲))1印,X(,=>outPtluZ令,.创X助以刀〕X助10”,,=>ou切以12<=,,仪刃创X刃(X刃001”;二>。utPtluZ<=”以众X以洲XX刀叩”,且己.且whenothe邝:兰::犷断筋而一了尹鑫:玉:雄嘴东尸碑‘哪嘴燕寿‘峨:宁:奋十尸二几::;j礁:.t袜书二八图44.3寄存器译码模块抓颁加狮咖咖淑柯派双〔枢痴厕你叔俪衍骊阅斌哪而市临啊场侧而饰而饰{国国L_二_门’犷:尸丫1了二门{“{;:,‘!宜:,仁:芝’仁’!’1,性・丽藏呵耐哪濒万网理厂下了抖:{・‘;门;}:二井冬共月乡‘{;’:;门吧  1!’n下而;1:;;;1;葺、;!;三{t”二-1曰1了了了-卜,,;匪::,:;:‘;){、1:;{芍丢};盆;曰!:;:一;;{兰{互,遭11三三之二侣              招图4..44寄存器译码电路仿真结果图44.4为寄存器译码模块仿真结果,从中可以看到有很多毛刺,所以在实际一乍巴奋厂月企孑车叮分二;落旗氏佣以习的:口期即::定‘:三,乡夏之:一号冬;,一里;;‘纷东:;,:;(‘一;一n卜‘:川;‘冬:{{:!!厂洲:,1;::一一乞:::,油万一瓜全然__韭牡。;;以_创!狱门,’;’  :‘’于:毛;’;{;;;舍54               南京理工大学硕士学位论文墓于璐P和价犯人的机器人运动控制系统的研究过程中需要除去毛刺,如4.3.2小节所述,采用D触发器,最终寄存器译码电路如图4.4.5。奋咬几专价专石六场益了二笼联专三台飞亏  丫犷沂焦、.几j-弓拼‘戈欲几丫钦茸泛总丫子‘六、  lpm佣树拟明0.住口2.月目洲12n2月nr州jl门>比戈匕咐2川车::r犷械艾;:亡:乡,奋厂声产,,“二二:::只已经消除了毛刺.4占FPGA器件的选型4j.1FPGA器件的选型装以及对应的EDA软件性能等方面各有千秋,不同的开发项目,必须作出最佳的选择。由于A口卫RA公司推出的可编程逻辑器件种类丰富,开发平台QUARTUSn软件功能齐全,界面友好,因此我们的设计主要针对A口王RA系列芯片进行选型。A曰龙RA的即GA有凡Ex,cEAx,A尸Ex,cyloce,nSradx和5。习tixn等系列。其中Cyclone及以上级别的器件均含有DsP模块并支持内嵌逻辑分析仪功能。在选择什么样的器件最合适这个问题上,首先要考虑的是所选器件的逻辑资源    量是否满足本系统的既定功能的实现.由于大规模的PLD器件的应用,大多是先64了吕乃诊布・今户扩.币4.‘碑手斌‘和二交二::丁:’;几1户’厂‘’诊’丫‘;图445寄存器译码电路原理图图4                        ..46优化的寄存器译码电路仿真图4    ..46为优化的寄存器译码电路仿真。可以看出输出结果经过D触发器以后,目前各可编程逻辑器件公司的FPGA    ICPLD产品在价格、性能、逻辑规模和封南京理工大学硕士学位论文基于璐P和日犯A的机器人运动控制系统的研究将其安装在电路板上后再进行实际的调试与最终电路方案确定,因此在实现调试前很难准确计算芯片可能耗费的资源,考虑到系统设计完成后,有可能要增加某些新功能以及后期的硬件升级可能性,因此适当估测一下功能资源以确定使用什么样的器件,一般遵循“百分之八十”的原则,即使用的芯片内部逻辑资源应占器件总资源的80%以下。当然,器件的逻辑门数只有与具体的设计内容相结合才有意义。实际开发中,逻辑资源的占用情况涉及的因素是很多的,大致包括:a)硬件描述语言的选择、描述风格的选择以及HDL综合器的选择。b)综合和适配开关的选择。如选择速度优化,则将耗用更多的资源,而若选择资源优化,则反之。在可编程逻辑器件开发平台上还有许多其它的优化选择开关,都将直接影响逻辑资源的利用率。c)逻辑功能单元的性质和实现方法。一般情况,许多组合电路比时序电路占用的逻辑资源要大,如并行进位的加法器、比较器以及多路选择器等。通常情况下,一种简便的资源估算方法是在原始设计完成后,通过开发平台提供的器件综合编译选项,在一定范围内选择一些器件进行项目编译,通过阅读编译后生成的报告文件获得、比较各种芯片资源的占用情况。    考虑到本系统电路的设计,需选择FO引脚很多,以适应电路对多路控制单元输入输出接口数的需要。由于系统涉及到多个计数分频模块,稳定的系统时钟是实现可靠性的保证,因此我们需选择具有标准全局时钟,普通时钟输入引脚的器件。其中,脉冲分配电路和光电编码器信号处理电路存在大量的时序电路和寄存器电路,因此选择了2片FLEXIOK系列的TQFP封装的EPF10K卫20咒144来实现6路步进电机的控制,它包含63仪刀器件门数,20以X)可用门数,1125逻辑单元,1科逻辑阵列块,6嵌入阵列块,12288总raln,189个最大FO引脚数。每片实现3路步进电机的控制。这款芯片从内部逻辑资源、芯片速度、可编程输入输出和芯片引脚功能方面均满足系统设计的要求。在调试阶段,对于R王X10K器件,PC机通过ByteBlsatre电缆,将编译过程中产生的sRAM目标文件临闭下载到目标器件中。在调试完成后,由于EPFIOK20TC最大编程数据量为231侧】)悦ts,选用了EPCZ专用配置器,容量为1695680悦ts,同时支持SDV和33V两种工作电压。.46DSP和FPGA交互线路设计.4.6IDSP时序分析    DsP与FPGA进行数据通信时,FpGA做为DSP的外围存储单元,接收上层DSP运行的控制软件发出的运动控制命令,通过一系列组合和时序逻辑运算,产生驱动控制电路能够接收的脉冲信号;同时实时记录电机的运行状态,供系统及时的调整控制输出。在课题中,设计用端口寄存器作为与上层DSP进行数据交换的稳定端口,实现了命令和状态的锁存功能,使上层DSP有更多的运算时间进行多轴协调74               南京理工大学硕士学位论文基于璐P和日招八的机器人运动控制系统的研究控制与插补运算,并有助于从宏观上实现多路电机的并行控制.端口寄器模块电路设计的重点在于锁存信号的设计,在时序上必须保证数据和地址总线信号的建立时间‘与保持时间th,这样才能确保数据传输的可靠性.为了提高单位控制周期内DSP软件的运算能力,必须提高DSP的工作频率。这样如果没有插入等待周期,高速的异步刀0是不可能与低速外设相匹配的,往往会出现大量的传输错误。在应用系统中,外部FO读写周期的长度一般在DSP软件编程时由插入的等待时钟控制,需要硬件上反复调试才能找到最佳的延时时间。所以我们必须对DsP的时序进行研究。DS跄4)(7A外部存储单元读写时序分别如图4..61和4..62所示。南京理工大学硕士学位论文荃于璐P和日裕A的机器人运动控制系统的研究Q月习r一分尹彩_-裁口‘蜒姗被脚州匆扮称卜一捧亩 ̄.、1图4                            .6.2外部存储单元写时序图    根据DSP时序,设计了DSP与FPGA的交换线路如图4..63。由于DSP是3.3V,而FPGA是5.OV,为了保证之间信号的准确传递需要电平转换芯片,这里选择皿公司的SN74ALvcl6244A、sN74AIVC12645芯片。前者为单向芯片,用于地址总线;后者为双向芯片,用于数据总线。于图21.2可知,地址总线16位,而在实际过程中,主要寄存器13个,5位地址线就可以,另外地址线All、A12、DS、尺D、W石、cz尤口UT、时基信号是必须的,剩下就连其他地址线,对系统而言已经足够。sN74A工vcl624A芯片是16位,oE信号低电平有效,高电平时候输出为高阻。sN74AlvC16245芯片是16位,口E信号低电平有效,高电平时芯片无效,当oE为低电平时,DIR为低电平时,数据从B(5)v传送到A(3.3码,当DIR为高电平时,数据从A传送到B。所以DsP芯片的w/万接D皿,因为根据DSP的时序图可知,当DsP从外部存储单元读取数据时,wl万是低电平,DsP从FPGA读取数据,当DSP写入数据到班七A时,W/R为高电平。数据从DSP写入FPGA.南京理工大学硕士学位论文基于璐P和F邢人的机器人运动控制系统的研究图4五3交互线路设计.4‘J交互线路设计    PGA芯片相连的信号线在同一时刻同处于输出状态,如果一个输出DSP芯片和F是高电平,一个是低电平,就会产生短路,威胁芯片的安全,所以我们这里要用到三态逻辑引脚。由于月t。习公司的可编程逻辑器件只支持输出三态逻辑引脚,不支持输入三态逻辑引脚,因此采用QUARTUSll提供的兆功能函数LPM一usTRI函数,三态门未接部分连在一起悬空。根据DSP时序图,地址译码首先产生寄存器的片选信号,片选信号和W或者R信号相与来产生三态门的读写控制信号。F表示为恒低电平,片选信号由44.2小节可知由地址译码产生。w石te,众级d,10ms,滋信号由DsP产生,其他时钟信号由改分频产生。图4.6.4、4..65和4..66分别为脉冲输出、方向输出和反馈信号输入原理图。撰于宕里子醉试李岑护守手声卜刀砚・,,」」碑矛子勿诊泌吧‘八_奋了二丫厂咋.么井几二:::一,一少:一{汇二二粉之〔三塑塑巴,二之云f逻黑长该弓5口石诫爪‘扮曦.布州奋落磊一一幕碧紧老空解1且,一一伪d国15川1      口m:三冬弃叹井协麟d目叫,5门口目.叮下丁卉井二:烤邓恻噢一:立::卜‘一内 ̄, ̄,甲甲,,.,,,.尸,甲‘.护州州,行压获尸一一一一一一一-.-::::洲州以,‘门厂口目即喇,已门戴息巍乡是夏全滋:淤三燕妾猫妾图4..64脉冲输出原理图南京理工大学硕士学位论文荃于璐P和日招A的机器人运动控制系统的研究图4..65方向输出原理图图46.6反愤信号输入原理图在即GA,需要配置数据总线为三态类型,输入FO口配置输入状态,输出FO口配置为输出状态。如果有部分总线管脚暂时不用,应在程序中将这些总线管脚进行使用,而不能将这些管脚置之不用,因为FPGA的FO管脚如果处于未配置状态时,它的状态是不确定的,有可能产生流动电流,威胁DSP芯片的安全。5l南京理工大学硕士学位论文基于OSP和F邢A的机器人运动控制系统的研究5控制系统软件设计.5IDSP软件设计5・1・1软件功能    机器人控制系统中实时性要求较高的运动控制任务放到具有独立CPU的DSP运动控制卡中实现,DSP具体完成以下功能〔犯]:    )1数据处理CP    机将处理后的数据发送到DSP中。DSP从中读取插补所需的数据,进行数据处理。    )2如接口功能插补计算好的数据经拍接口发送给F    PGA,为步进电机的控制提供方向及脉冲量信号。    )3位置控制DSP可以从FpGA中读取各个电机的位置及速度,为上位机对电机的管理提供    数据口    这些只列出了针对步行康复训练器课题的需要在DSP里实现的功能,DSP还可以实现很多功能,比如PID控制等。所以作为通用型六轴控制器的话,可以针对具体的控制对象对DsP软件功能进行具体设计。.512主程序流程圈    在运动控制系统程序设计中,为了提高系统的实时性,所有功能均是通过中断或查询标志位来实现的。使用中断或标志位查询,主程序设计简单,CPU利用率得到很大提高,控制的实时性也很高〔创。DSP的主程序是一个背景程序不断循环的程序,在这个背景下,正常时间允许有创Tl中断和时钟中断。其中州Tl中断优先级别高于定时中断,处理突发性任务,如故障中断(急停、机械限位、硬件故障等)。因为时钟中断的优先级要低于刀呵Tl中断,故在时钟中断服务程序中可能进入刀嘴TI的中断服务。因此,必须保证创Tl中断出现的频率相当低,而且必须使一个刀闷Tl中断服务程序量和一个时钟中断程序量之和执行的时间少于时钟中断周期。具体的流程图如下:南京理工大学硕士学位论文荃于DP和日弋八的机器人运动控制系统的研究S爹梦豪翼象。努嘿r!尹一健进入拍兰矛、够仿中脚韶」组勿令合令钦碌锐序图5.llDSP软件设计流程.513初始化模块    这部分程序包括:系统时钟设置、看门狗寄存器屏蔽、通用时钟设置、数字刀0初始化、中断屏蔽寄存器设置等。    )1系统时钟设置外部输入时钟为1    0MHZ,经过DSP内部锁相环4倍频为叨M地,这里需要给寄存器SCSRI赋值:SCSRI城】    xslFE;    )2看门狗寄存器程序中没有使用到看门狗,所以在初始化中首先禁止了看门狗:    WDKEY切x0    055:WDKEY二习x(    )AA;XWDKEY寄存器在写入5    5然后再写入AA时清看门狗的计数器WDCNTR。而其他组合或其他值将引起系统复位.WDCR=ox(      X拓F;看门狗寄存器控制看门狗的使能或禁止;当对寄存器WDCR写入时,寄存器    的5一3位必须写入值1lB,否则将引起系统复位。认勺CR石即WDDI0S为看门狗使能禁止位。)中断标志与屏蔽寄存器初始化3    对中断进行设置,以满足课题的需要。    南京理工大学硕士学位论文墓于D即和日犯月的机器人运动控制系统的研究开吸=OxOF    F;中断标志寄存器是只读的,写入FF表示清零。n“R州hO3;初始化为开放中断1与中断2中断屏蔽寄存器的低6位有效        )4阳口寄存器初始化由于用到的刀0引脚有一大部分是复用引脚,所以必须设置相应的寄存器选择    其工作方式。)事件中断管理寄存器5    这里主要对定时器进行设置,根据时钟频率设置1    0ms周期的定时器中断。外部输入时钟为10ME匕,经过DSP内部锁相环4倍频为如ME比,通用定时器1预分频因子为64,所以计算出ls周期寄存器的值为186AH田闷TZ的中断向量为omo04H,TIPINT的外设中断向量为oo27H。EVAI    MRA=0x80;GPTCONA闭xo;    TIPR州)    xl86A;TICNT=0x0;    TICON=0x    0164C;.1.54    在主循环程序中,DSP要不断的从通信缓冲区中读取插补所需的信息,上位机也要不断的向该通信缓冲区中填充数据。    双端口通信通过侣A总线来实现。因为要控制6个步进电机,系统使用了从0342H到034FH的14个地址,6个地址是PC机写入的地址,还有6个是DSP反馈写入的地址,剩下2个地址做判断.为了防止发送数据出错,这里假设地址A为PC机写入的标志位,如果PC机写入了地址,则地址A中的内容为1,所以DSP读取数据的时候首先要判断地址A中的内容是否为1,如果是的话,就开始读取数据,读取完则把地址A中的内容改写为0,在给PC机反馈数据的时候,也设置了一个标志位地址B,如果地址B中的内容为0,则表明PC机已经读取了数据,DSP可以写入数据,然后把地址B中的内容改写为1。同理PC写入或者读取数据的时候也要对标志位进行判断,处理完数据的时候也要对标志位进行改写,程序框图如图5.1.2。另外在中断处理程序中,10ms内脉冲个数确定以后,DSP还需要发送一个脉冲作为FPGA的时基信号,起到同步的作用。南京理工大学硕士学位论文荃于璐P和日招A的机器人运动控制系统的研究图5                            .1.2中断处理程序流程图    由于要控制6个步进电机,系统分配地址段C为6个连续的地址,存储着从CP机读取来的数据,地址段D也为6个连续的地址,存储着上次从PC机读取来的数据,E、F也为地址段。在脉冲分配数据处理中,需要判断出各个电机的脉冲个数及方向,0表示电机反转,1表示电机正转,然后把判断出来的方向数据通过移位成一个数值,高位用0表示。接着把方向数值跟脉冲个数分别发送给FPGA,然后地址段D中的数值一一用地址段C中的数值替代为下次的定时器中断做准备。反馈数据处理就是按照一定的规则转换成PC机里的数值。PC机的程序设计也是类似的,还有一点需要注意,即保证控制的实时性,在程序设计过程中,要先保证DSP读取数据的正确性和及时性。52班动程序设计V肖ndowsXP操作系统出于安全性的考虑,所有涉及物理内存、磁盘、中断、南京理工大学硕士学位论文基于DSP和日祀八的机器人运动控制系统的研究端口读写的操作,都必须通过一个核心态的W.M(indoWwsDiverrMode)驱动程序l完成,禁止用户态的应用程序直接操纵拍端口读写.巧5以C++在v石ndows98操作系统中可直接使用-mpo与一tPO函数读写拍端口,而这在v石ndowsxP操作系统下是非法的.系统会出现一个特权指令异常的消息,提示你要么终止,要么调试这个出现异常的应用程序。由于本课题采用了稳定性和安全性较好的V五ndowsXP操作系统,因此,为了实现计算机对拐A总线的控制和读写,使运动控制卡能够有序的工作,就必须为这些设备开发相应的驱动程序。所以,如何用一种比较简单的方法来设计WDM设备驱动程序,以实现对拍端口的读写操作,己经变得非常重要。5‘2一1的特点wi    nDivrre是由Jnuo公司推出的一套优秀的驱动程序开发工具,它改变了传统驱g动程序开发的思路和方法,使复杂、专业化的驱动程序开发变得简单、快捷。WinDriver具有强大的设备驱动开发能力,支持用户模式下直接对硬件的编程访问,并且所开发的驱动程序适合于它所支持的各种操作系统(windows、Unux、solaris及0512),可以跨平台运行不需要修改源程序。WinDriver的特点如下:    )1快速开发。使用winDrivre,可以在很短的时间内完成访问10端口和存储区、处理中断、执行DMA操作访问PC卿自定义寄存器的工作;WinDriver可以生成基于C班5户JE侣刀IPSAPnPIPCMCI习tJSB等设备的驱动程序;支持在“用户模式”下编程,可以选用开发人员所熟悉的集成开发环境。如vc、VB、C什Buldire、DePhli等.    )2支持多种操作系统。W访DriVer开发完设备驱动程序后,只要在新的操作系统上重新编译一下,就可以运行“用户模式”下的驱动程序。    )3提供K。刀el模式的性能。WinD6ved亘过使用“Kemel插入”特性,可以将开发者在用户模式下—应用程序级(Rj刀93级)写入的驱动程序(中断控制和10访问等)升级到K曰mel模式(R访90)。通过这种方式开发的驱动程序能够获得每秒超过100仪刃次的中断。    )4具有硬件诊断调试能力.WinD朽ver包括一个功能强大的硬件探测器和调试器。在写入一行代码前,硬件调试器通过一个图形界面能够对硬件进行全面的测试。这种方式使开发人员在写驱动程序前,可以校验硬件是否按照需要工作.5J2的组成及工作原理1组成)izarWd向导:可视化开发工具,用于收集硬件信息,形成用户态库和代码框架V八nD时ver发行包:完成驱动程序的发行南京理工大学硕士学位论文基于OSP和日七A的机器人运动控制系统的研究Wl    nD哟vre开发文档:WlnD哟ver电子手册,范例程序等    实用程序集:WDDE          BUG.EXE驱动程序的调试工具WDREG.          EXE驱动程序的安装工具CP          巧CAN‘EXE获取PCI卡的信息并分配资源    CPI芯片组的待定A几:包括PLxApls,AMCCPC肠,V3A夕15等)2    工作原理Wi    nDriver开发系统由用户态和核态两部分组成。用户态部分主要是Win-Driver的用户态库以及用户编写的驱动程序代码,驱动程序通过调用WlnDriver库函数(iWndvrr.)h实现对硬件的操作。核态部分分WinDriver核心和核态嵌入两部分。V石nDriver核心对用户态库提供服务支持,硬件通过核心来传递中断请求信息和对FO端口以及内存映像地址的读写信息,同时核心将中断处理以及端口读写信息传递给核态嵌入部分,核态嵌入完成用户态代码的嵌入,实现代码核态下运行,如图5.2.1所示。    当硬件实施访问时,在用户模块中驱动程序调用WinDriver用户态库的函数,用户态库函数调用WinD哟ver核心进入到核心模块。在核心模块中WinDriver核心一方面响应硬件的信息,一方面将信息传递给WlnDriver核态嵌入部分,从而完成硬件访问.「                  ----一雨下面巍厉----一下图5一.2IWiDnrirev结构图.523W加D哟vre驭动程序的设计步砚整个驱动程序的设计流程如下所示:l()查找要访问的设备2()打开设备3()枚举该设备的资源(内存、刀0、中断)4()锁定该设备的资源,只能为我们所用,不能被其它程序访问5()访问板上的资源南京理工大学硕士学位论文基于DSP和F气A的机签人运动控制系统的研究6(    )解锁资源    7()关闭设备根据上述分析,运动控制卡的驱动程序设计流程如图5    ..22所示。下面详细说明其在VC杆环境下的开发过程:l(    )在工程文件中添加windVrr.h文件,其中包含了winDrir的AevPI函数,用户可以直接调用。2(    )在工程文件的源文件中包含:初ndowsh.,winictoLh,wndriVr.h三个头文件。    3()调用W,一吻印0函数,打开wiln场ver设备驱动程序,获得设备文件句柄。)调用W勺-Ca4(    rdReisgt州)函数,向WlnD哟vrK。刀ee】注册板卡硬件信息。5(    )使用WDseTransef找)函数来进行FO和内存的数据读取。随后调用WDesnlnValt()6(    )如使用中断的话,可以利用WD一玩正nabl试)使能中断,函数等待中断的到来。、再调用WD_close函数7(    )当完成硬件操作后,调用wDwecardUnreigsr注销函数,et关闭WinD幻ver设备驱动程序。轰全、衬丫为‘妆举资激魂贾定资教读峪数撼藻专数据结撷鑫飞卜品烈编康图5.12驱动程序设计流程图SJ.4控制卡驭动程序的设计根据上述的设计流程,本文在巧5    1公C什集成开发环境中利用V石nDriver设计了运动控制卡的驱动程序,并把相关函数封装在一个动态链接库(DLL)中,以供主程序的调用。)w刀wl    eCARDweREGISTER结构成员简介驱动程序主要完成的工作是对EA卡卫0地址进行读写。由于基于Wi    nD时ver编写南京理工大学硕士学位论文墓于璐P和日枯A的机器人运动控制系统的研究  的驱动程序是以w访DriverK。刀el为中介与物理硬件联系的.所以在进行实际的硬件访问之前,必须首先向Wi  nD喊vrK。刀ele登记硬件板卡信息。该过程是通过填写一个结构wD工ARDe  sREGIsTER,然后调用函数肠。-CajdrReisg沈武)实现的。下面介绍上述功能的具体实现。  WD一ARDe      sREGISTER结构中各成员描述了硬件板卡的各项资源信息,简要介绍如下:  W刃-CARD:W勺CARD是Wl      nD行ver定义的结构。其中包含硬件板卡的FO地址、  内存映象地址和中断信息等内容。其成员为:Card‘dw址ms,登记卡资源的项数;Ca  d.rtIm[e],登记卡的资源项的数组,每个数组说明一项资源的具体情况:i  Cadlrtm[e]iin,第1let项资源的类别,可能取n飞MesO(I阳资源)、ITEMesMEMORY(内存映象资源)    、n卫MweNTIERRUPT(中断资源)等,在控制卡驱动中为仃EMseO;ICa  dlrts[nle].i州。tshared,指明第1项资源是否可与其它应用程序共享,一般为TRUE,表示不共享。在控制卡驱动程序中,需要访问板卡的FO资源,还需要设置两项内容:  Ca  d一rlten诱1].1110,wAddrd,指明FO资源的基地址,Cad.xIlen”【]1工10.dBywt留,指明拍资源中刀0地址的个数。  )访问硬件拍端口的实现2      硬件刀0端口的访问主要通过场勺-竹朋s      efr()函数来实现.这个函数是对刀0端口或内存地址执行单个的读写指令,其函数的原形为:  DWORDWDe      sraTnsfer(HANDLEhwrD,认勺一TRANSFER*plhllls)      其中HAND比是V石nD哟ver打开的一个句柄,W刃eeITU以SFER为一结构,存放进行读写操作的命令,主要包含如下参数〔假设定义了一个WDw  eRANSFER结构体变T量仃ans    丘,):      。2Os.。耐Trefr朋5:操作命令,主要有3个功能,第一是指示是读命令还是写命令;第二是指示读写FO端口还是内存地址;第三是指示读写数据的大小,是读写一个字  节还是读写一个字等。        仃ans.dwporeftr:用来定义FO口的地址。FO端口读写例程如下:      WD』限ANSF      ERtnsaref‘BZERO(        仪ansr)ef;1定义W刃一TRANSFER结构完成数据传输nsart      ef〔cmdrT即5=侧巴BYTE;1定义读端口操作,每次读一字节仃出1      5丘忿dwP0t=dwlroAd此1端口地址WDe      s肠ansef找bWD,&。习.sr)ef;刀执行读操作      reUtrn加Ils.Datrefa.B珍;)动态链接库的设计3      1返回数据男               南京理工大学硕士学位论文基于OSP和日招人的机签人运动控制系统的研究本文利用叭5    耐C杆开发了一个动态链接库(DLL),方便主程序的调用。巧su沮C++支持三种DLL,它们分别是Non.MFcDu、RegulrDn、Eax咖sinDlool    ()Nonl一MFCDLL(非MFC动态链接库)No    n.NIF〔DLL指的是不用N『C的类库结构,直接用C语言写的D几,其导出的函数是标准的C接口,能被非MFC或N任C编写的应用程序所调用。如果建立的DLL不需要使用MFc,那么应该建立Non闷州J℃DLL,因为使用MFC会增大用户库的大小,从而浪费用户的磁盘和内存空间。2(    )ReugrDLalL(常规DLL)    Re四lraDLL和下述的ExtnseinDloSi一样,是用MFC类库编写的,它的一个明显的特点是在源文件里有一个继承。两nAPp的类,被导出的函数是C函数、C杆类或者C++成员函数,调用常规DLL的应用程序不必是MFC应用程序,只要是能调用类C函数的应用程序就可以,它们可以是在巧sualC什、Dephi、叭slBaausci、Bol胡dc等r编译环境下利用DLL开发应用程序。    3()Ex脚sinDLoL(扩展DLL)这种动态链接库是使用MFC的动态链接版本所创建的,并且它只被用MFC类库    所编写的应用程序所调用.扩展DLL和常规DLL不一样,它没有一个从Cv西nAPp继承而来的类的对象,所以,开发人员必须在D比中的DIU渡an函数添加初始化代码和结i束代码。由于这里没有用到MFC类,所以采用第一种方式创建DL    L。此DLL包含了以下6个函数:①B00L】    0esitnI()OV0l    D10esEnd()OBYTEI    OeReadByte(DWORDdwloAddr)④BYTEI    OesRead认/Ord(DWORDdwloAddr)    0V0ID10一认叭记Byt(eDW0RDdwIoAdd,BYTE加幽)r⑥VOD1    0)而te认陌rd口WORDdwloAdd,WORDwDatra)幻-加i    (t)函数主要实现运动控制卡的初始化工作,为其分配刀0地址锁定系统资源。刃一R司Byte(DwoRDdwIOAdd)和刃一Rerad认lord(DWORDdwIOAdd)分别完成r字节和字数据的读操作。刃一认喃tByet(eDw0RDdwIoAdd,BYTEbDatra)和10匕认叭te场/ord(DWORDdw10Add,WORDwDarat)分别完成字节和字数据的写操作。OwIe助do函数用来关闭运动控制卡,并释放系统资源。需要注意的是,在导出函数的开头要加上关键字e又t    的‘℃”(引号中的C必须大写),使它可以在其他编程语言中访问的DLL中的函数。在代机主程序中,调用动态链接库,通过卜沐的这些函数,可以方便的访问运动控制卡,对其进行控制。南京理工大学硕士学位论文墓于OSP和祠刃八的机器人运动控制系统的研究6总结与展望.61总结    本课题在掌握DSP、H七A应用开发技术的基础上,结合步行康复训练器的应用需求,分析了机器人运动控制系统的控制方案,给出了控制系统所属的控制类型,并实现了可编程的系统译码电路、脉冲分配电路和光电编码器信号处理电路的设计,最后通过仿真和系统测试验证了设计的正确性。具体研究与工作,内容如下:)设计了基于I1    SA总线的运动控制卡,能够完成实时性要求较高的运动控制。)设计了采用了双端RAM来完成主机与运动控制卡的通讯功能,并利用F2    PGA设计了译码电路、脉冲分配电路、光电编码器的信号处理电路,避免采用过多的逻辑器件,降低了电路的复杂程度,提高了稳定性。    3)设计了控制系统的软件设计以及运动控制卡的驱动程序。)综上所述,完成了步行康复训练器的所需要关键技术的研究,从这个意义上4    而言,也成功的论证了DSP+班心A方案的可行性,为以后完成这个项目奠定了扎实的基础,同时该控制系统具有开放性、实时性、可靠性。由于时间有限,还有些工作待以后完成。‘J展望    在本课题的研究中虽然取得了一些进展,但是在硬件设计和控制方式上仍然还有些不足,存在着进一步提升系统性能的空间。    )1没有充分利用DsP的资源,而2叨7A只有四个通用定时器,同时只能控制四个电机,而本课题中要同时控制六个电机,虽然说可以从软件角度来避免这个问题,对实际项目也不会产生太大的影响,但会增加软件的复杂性,影响控制系统的实时性。这种问题同样存在于光电编码器的信号处理电路的设计中,2407A自己也有反馈电路,但无法对六个电机同时进行反馈。为了从研究的角度出发,故用FPGA实现脉冲分配电路,达到了真正的同步,用FPGA实现了光电编码器的信号处理电路。因此24)7A有很多资源没利用上,但24(07A确实很适合用做来控制电机。)在控制上,没有完成P刃2    D控制程序的设计,因为在课题中控制的是步进电机,如果升降曲线处理的好,并不会产生失步,在即GA设计脉冲分配电路的时候充分的考虑到了这一点,故可以不用PID控制,也就没有完成闭环控制。在以后的研究中,如果没有PC机或者控制的不是步进电机,可以在系统设计中加入PD算法。    )3在总线设计上,采用了ISA总线,巧A设计简单,也可以满足整个项目的需要。但无法避免的匙SA总线性能确实有点落后,如果在以后的项目中要求更好的性能的话,可以对总线进行改进,比如PCI等。南京理工大学硕士学位论文基于OSP和F邢A的机器人运动控制系统的研究)在R叭G的脉冲分配电路的设计上,在本课题中,因为控制的是步进电机而且4    带有驱动器,所以只设计了脉冲波形的产生。而在许多场合,控制器控制的不仅仅是步进电机,在以后的研究中,可以增加对其他波形产生的研究,使控制系统满足多种用途。    )5随着微电子技术和电子设计自动化(EDA)技术的迅猛发展,片上系统(Ssy咖nChoP)的时代己经到来。这种片上系统可以将包括中央处理器(iCp切、数字信号处理器DSP以及总线接口和其它功能模块在内的整个电子系统集成到一个芯片上,实现更高的集成度和接口标准,使得系统可以根据具体需要实现灵活的重构裁减。本课题中在DSP里实现的功能较少而且巧A总线也可以在FPGA里实现,所以在以后的研究过程中,可以把DSP、巧A总线这些都在FPGA实现,那控制器的外围硬件电路将大大的简化。南京理工大学硕士学位论文基于D即和F汽八的机器人运动控制系统的研究致谢本论文是在导师周君老师和施祖康老师的悉心指导下完成的。导师渊博的学    识、严谨的治学态度和脚踏实地的工作作风给我留下了深刻的印象,这将成为我人生中一笔宝贵的财富,使我受益匪浅,在此谨向我的导师表示真诚的感谢!    在两年研究生期间,得到了本教研室孔琪、李定珍、吕凯、林祥、孙振银等同学的帮助,在此向他们表示诚挚的谢意,大家一起度过了一段非常难忘的时光,这将是我快乐的回忆。同时,感谢我的家人,在十几年的求学生涯中,没有他们做我的坚强后盾,我    无法顺利完成我的学业。他们给我信心和前进的动力,使我不惮于前驱,使我自强不息。要感谢的人太多,在此向那些曾经给予过我关心和帮助的人们表示最诚挚的感    谢。南京理工大学硕士学位论文墓于DSP和日芍A的机器人运动控制系统的研究参考文献1.尔桂花,窦口轩.运动控制技术.第1版北京:清华大学出版社.21洲)22.丁仕燕,韩江,朱方洲一开放式数控系统软件平台的研究.机械与电子夕加2(2:)5一833.吴培育,童劲松,陆志强,柔性自动化技术的展望,以eandMouldTeCoohfogy,19994.ZU刀城R.L,MOREIRALF.,改,DyD肛币c众父on丘gurtia皿比haiovrusnigg即颐cPGAF    sandCPLDs,R伙以刃Ingsofl6thBn比ilins丫mpaosiumonhtegatrdCiercuit朋ds    ysten.Desin旧2加3g5.吴宏,蒋仕龙等.运动控制器的现状与发展.制造技术与机床夕仪辫(:2)14一736.王家军,齐冬莲运动控制系统的发展与展望.电气时代.2以抖(1:弘5)067.张培仁,张志坚,郑旭东,张华宾.基于1日32位DSP的机器人控制系统的设计与实现.第1    版。北京:清华大学出版社.2068.罗飞.运动控制系统第1版,北京:化学工业出版社20039.邱云周,张春雷,高山.DSP与FPGA在运动控制中的应用和研究控制与传动.    2()3(X7):24一620陈爱国,1黄文玲,杨红红.步进电机升降速曲线的研究.机电产品开发与创新.20032)(    :7礴9411,王爱玲.现代数控原理及控制系统.第3版本.北京:国防工业出版社.2(]2X12.张雄伟,邹霞,贾冲DSP芯片原理与应用第1版北京:机械工业出版社一20053.播松,1黄继业,王国栋一现代DSP技术第1版.西安:西安电子科技大学出版社.2加34.赵负图DSP处理器和微控制器硬件电路.1第1版.北京:化学工业出版社.0026巧刘和平等.TMS320L凡40xDSP结构、原理及应用.第1版北京:北京航空航天大学出版社.    2加216.江思敏.TMs320U花40xDSP硬件开发教程.第1版.北京:机械工业出版社.20031.王晓明,7王玲.电动机的DsP控制第1版.北京:北京航空航天大学出版社.20(又8.谢宝昌,1任永德.电机的DSP控制技术及其应用.第1版.北京:北京航空航天大学出版社.    20051汪安民,9程星.DSP应用开发实用子程序第1版北京:人民邮电出版社2加520.张宝芬,张毅,曹丽.自动化检测技术及仪表控制系统第1版北京:化学工业出版社.    2以刃1.赵曙光,2郭万有,杨颂华.可编程逻辑器件原理、开发与应用第1版,西安:西安电子科技大学出版社.    2加12.于英民,于佳.计算机接口技术.第1版.电子工业出版社,2仪抖3.李贵山,2陈金鹏.C凋部总线及其应用.P第1版一西安:西安电子科技大学出版社.2003南京理工大学硕士学位论文基于DSP和F阶A的机器人运动控制系统的研究2425.26272829n曰内勺 ̄}且八, ̄勺一,,(美)科波特(Cobert,功等著,魏永明,耿岳,钟书毅译第3版五nux设备驱动程序.北京:中国电力出版社2050吴晓锋,杨旭雷,张浩双口RAM在DSP人机接口中的应用微机应用2002(10):4一272(美)Cha  rlesPetolzd著,伍卫国等译编码的奥秘北京:机械工业出版社2()0XTMS320LF/LCZ钓xDSPContro11sRefreerenceGuieTexadshisur’ItDen匕2(X阳刘艳玲‘采用MAX232实现MCS一1单片机与咒机的通信.5天津理工学院学报.1999,15(2):57一61侯伯亨,顾新VHDL硬件描述语言与数字逻辑电路设计,西安:西安科技大学出版社,2005潘松,黄继业.EDA技术实用教程,第1版.北京:科学出版社2004BobZ以dman‘DesinigngwithFPGAs&CPLDs,CMPBooks.2002PetrChaembesErngmengFe}1owVLSITecnohlogy.heTeTllComanlndmentsofEcxlelntDesein‘gwww.印gacomcn2002仁爱锋,初秀勤,基子FPGA的嵌入式系统设计.第1版,西安:西安电子科技大学出版社,2004褚振勇,翁木云卜FpGA设计与应用.第1版西安:西安电子科技大学出版社2002秦兴,周川东,王文‘基于FPGA的步进电机控制器设计.组合机床与自动化加工技术.2()2(X7):32一364咤」,,,J付滚,付旭东.位置检测装置一光电编码器.传感器与测试.组合机床与自动化加工2002但永平,杨雷.基于FPGA的光栅尺信号智能接口模块.国外电子元器件,2004(12):12一15薛宇艳开放式运动控制系统中的可编程逻辑设计与实现.南开大学硕士学位论文,2005清源科技.TMS320L尺40xDSP应用程序设计教程第1版.北京:机械工业出版社.2003韩安太,刘峙飞,黄海.DSP控制器原理及其在运动控制系统的应用.第1版.北京:清华大学出版社.2003

因篇幅问题不能全部显示,请点此查看更多更全内容