版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、三 江 学 院本科毕业设计(论文)题 目 基于TI2812 DSP的无刷直流电动机 控制软件设计 电气与自动化工程学院 院 电气工程及其自动化 专业学 号 B05071006 学生姓名 邢小强 指导教师 熊 田 忠 起讫日期 2009年2月23日至2009年5月25日 设计地点 L422 III摘 要 无刷直流电机既具有直流电机结构简单、运行可靠、维护方便等一系列优点,还具备交流电机运行效率高、无励磁损耗及调速性能好等诸多优点,现已广泛应用于工业控制的各个领域。本文在对无刷直流电动机调速系统的发展及应用综述的基础上,介绍了采用DSP芯片对无刷直流电动机进行换向与转速控制的微机控制系统。文中给出
2、了系统的总体设计方案,分析了无刷直流电机的工作原理、控制电路、驱动电路,提出了软件控制无刷电机的策略。阐述了软件框架的基本结构以及各个模块的具体设计方法。文中还对DSP芯片 (TMS320F2812)进行了一些介绍。最后运用实际的硬件平台以及上位机软件(LabVIEW)对无刷直流电动机进行监控,证明了该系统工作良好,达到了预期目标。关键词:无刷直流电动机,DSP芯片,软件控制AbstractBrushless DC motor with a DC motor is simple in structure, reliable operation, easy maintenance, such a
3、s a series of advantages, also has high efficiency AC motor run, no excitation loss and good speed, and many other advantages, has been widely used in various industrial control field.This article in the brushless DC motor speed control system overview of the development and application on the basis
4、 of the paper introduces the DSP chip on the exchange of brushless DC motor and speed control to the Microcomputer Control System. In this paper, the overall design of the system program, analysis of the brushless DC motor working principle, control circuit, driver circuit, a software strategy for b
5、rushless motor control. Framework set out the basic structure of software modules, as well as the specific design methods. The article also DSP Core (TMS320F2812) to introduce a number.Finally, the use of the actual hardware platform, as well as PC software (LabVIEW) for brushless DC motor control,
6、show that the system is good, reaching the target.Keywords: brushless DC motor, DSP chips, Control Software目录第一章 绪论- 1 -1.1 无刷直流电动机的发展现状- 1 -1.2 DSP与无刷直流电动机的联系- 2 -1.3 本文研究的内容- 3 -第二章 无刷电动机的结构及工作原理- 4 -2.1无刷直流电动机的结构- 4 -2.2无刷直流电动机的工作原理- 4 -第三章 电机控制中的DSP的特点和选择- 7 -3.1 TMS320F2812的简介- 7 -3.2电机控制中的DSP的
7、特点- 8 -3.3 DSP软件设计特点- 10 -3.3.1 DSP开发环境CCS2000- 10 -3.3.2 C语言与汇编语言的分析比较- 10 -第四章 电机控制中的DSP软件设计- 12 -4.1 各模块的程序及说明- 12 -4.1.1系统时钟的初始化模块- 12 -4.1.2 事件管理器EV的初始化模块- 13 -4.1.3 串行通讯SCI的初始化模块- 15 -4.1.4 输入捕捉(CAP)中断- 16 -4.1.5定时器T1- 19 -4.1.6 DSP与上位串口通信协议- 20 -4.2 DSP程序的总体框架- 21 -第五章 结论及展望- 22 -5.1 结论- 22 -
8、5.2 展望- 22 -参考文献- 23 -致谢- 24 - 24 -第一章 绪论1.1 无刷直流电动机的发展现状直流电动机具有很多优点,如优秀的线性机械特性、宽的调速范围、大的起动转矩、简单的控制电路等,长期以来一直广泛地应用在各种驱动装置和伺服系统中。但是直流电动机的电刷和换向器却成为阻碍它发展的障碍。机械电刷和换向器因强迫性接触,造成其结构复杂、可靠性差、变化的接触电阻、火花、噪音等一系列问题,影响了直流电动机的调速精度和性能。因此,长期以来人们一直在研究一种不用电刷和换向器的直流电动机。随着电子技术、功率半导体技术和高性能的磁材料制造技术的飞速发展,这种想法已经能够实现。无刷直流电动机
9、利用电子换向器取代了机械电刷和机械换向器,因此使这种电动机不仅保留了直流电动机的优点,而且又具有交流电动机的结构简单、运行可靠、维护方便等优点,使它一经出现就以极快的速度得到发展和普及。无刷直流电动机用一套电子换向装置代替了有刷直流电动机的机械换向装置,保留了有刷直流电动机宽阔而平滑的优良调速特性。同时又克服了有刷直流电动机机械换向带来的一系列缺点,具有高能量密度,高转矩惯性化,高效率等特点。2 0世纪8 0年代以后,随着电力电子技术、微电子技术和现代电机控制理论的发展,使得交流调速系统也逐步具备了宽调速范围、高调速精度、快速动态响应以及四象限运行等良好的技术性能,其取代直流调速系统已成为必然
10、的发展趋势。交流调速系统一般说来由同步电动机调速系统和异步电动机调速系统两大部分组成。但是近年来,永磁同步电动机因其突出的优点而在中、小功率电气传动系统中获得了广泛的应用。其中具有梯形波反电动势的永磁同步电动机,常被称为无刷直流电动机(即方波电动机);而具有正弦波反电动势的永磁同步电动机,则被称为正弦波永磁同步电动机。由于无刷直流电动机的定子电流为方波驱动,它相对正弦波永磁同步电动机的正弦波驱动来讲,在相同的条件下逆变器获取方波要比获取正弦波容易得多,再加上其控制方发法也比正弦波永磁同步电动机的简单,而且我国稀土储量世界第一,生产大容量的无刷直流电动机已成为可能。永磁无刷直流电动机控制系统是随
11、着永磁电动机和电力电子技术的发展而不断完善发展的,它主要具有以下的优点:a.永磁无刷直流电动机出力大、重量轻、体积小、效率高并且转动惯量小,目前它已成为高性能驱动场合的理想伺服电动机。b.与直流调速系统比较:无刷直流电动机无电刷和机械换向器、工作可靠、无电火花产生,同时它又具有类似于普通直流电动机的调速性能。由于无刷直流电动机的调速原理与普通直流电动机的相同,因此由它们组成的调速系统也较为类似,在无刷直流电动机调速系统中可以借鉴普通直流调速系统的成熟设计经验。c.与异步电动机调速系统比较:其控制方法简单,功率变换器不必为电机提供无功功率,并且电机转子无励磁、效率高、低速性能好。d.与一般变频调
12、速的同步电动机比较:它不存在失步问题,并且提高了动态性能,而与采用矢量控制的同步电动机相比,其控制结构简单,便于工程化。综上所述,无刷直流电动机既具备交流电动机结构简单、工作可靠、维护方便、寿命长等优点,也具备普通直流电动机运行效率高、转矩大、调速方便、动态性能快等优点,同时克服了普通直流电动机机械换向所引起的电火花干扰,维护难等诸多缺点,它综合了直流电动机和交流电动机的优点,是新一代电气传动的发展方向之一。1.2 DSP与无刷直流电动机的联系无刷直流电机与电力电子技术、数字信号处理技术、自动控制技术等密切相关,其中的一个关键问题是要解决电子换向控制器的设计和实现。电子换向控制器的发展经历了模
13、拟控制电路、模拟数字混合控制电路、专用集成控制电路、微处理器控制电路、数字信号处理器控制电路等阶段。从发展趋势来看,以数字信号处理器DSP为核心的控制电路将代表无刷直流电机电子换向控制器的发展方向。随着控制算法的日趋复杂,需要处理的数据量大大增加,加之实时性和精度要求的不断提高,微处理器的处理速度己不能满足要求,人们自然而然地想到了具有快速运算能力的数字信号处理器。近年来,各种集成化单片DSP的性能得到很大的改善,软件和开发工具越来越多,越来越好,价格却大幅度降低,从而使得DSP器件及技术更容易使用,价格也能为广大用户接受。而各大DSP生产厂商纷纷推出自己的内嵌式DSP电机控制专用集成电路,使
14、得DSP与无刷直流电机的结合成为一种必然趋势。近年来,无刷直流电机的研究工作者正热衷于研究取消位置传感器,而实现无位置传感器控制将是无刷直流电机研究的发展趋势,并且无位置传感器控制的实现常常和DSP联系在一起。由TI公司所推出的TMS320F2812是专为电机控制应用而优化设计的单片DSP控制器,它不仅具有强大高速的运算处理能力,而且在片内集成了丰富的电机控制外围部件(事件管理器、PWM产生电路、ADC转换模块等),这为实现无刷直流电机的无位置传感器控制提供了极大的便利。针对目前人们在研究设计无刷直流电机系统时,大多仍习惯采用机械位置传感器的情况,本文主要研究无位置传感器的无刷直流电机数字控制
15、系统的设计及其实现。利用无刷直流电机运行时各相绕组本身存在的反电动势作为转子位置的反馈信号代替机械位置传感器的作用,在转子位置检测硬件电路的基础上,借助TMS320F2812 DSP芯片的可编程助能,实现了无刷直流电机的无位置传感器控制,克服了机械位置传感器的存在给无刷直流电机所带来的诸多不利影响。通过TMS320F2812 DSP芯片的采用,达到了“硬件软化”的目的,简化了整个控制系统的结构设计,不仅降低了成本,而且提高了系统的可靠性。1.3 本文研究的内容本课题以无刷直流电动机为被控对象,以TMS320F2812定点DSP芯片为处理器,结合上位软件,实现上位机对无刷直流电动机的启动、停止、
16、速度的控制,并实时的显示无刷直流电动机的速度。本课题研究的主要内容有以下几个方面:A、 DSP对无刷直流电动机的霍尔捕获、换向、及速度采样的软件设计B、 DSP和上位机通信协议的软件设计第二章 无刷电动机的结构及工作原理2.1无刷直流电动机的结构无刷直流电动机的转子是由永磁材料制成的、具有一定磁极对数的永磁体。与永磁同步伺服电动机非常类似,转子的结构分为两种:第一种是将瓦片状的永磁体贴在转子外表上,称为凸极式;另一种是将永磁体内嵌到转子铁心中,称为嵌入式。但与永磁同步伺服电动机的转子有所区别,为了能产生梯形波感应电动势,无刷直流电动机的转子磁钢的形状呈弧形(瓦片形),磁极下定转子气隙均匀,气隙
17、磁场呈梯形分布。定子上有电枢,这一点与永磁有刷直流电动机正好相反,永磁有刷直流电动机的电枢装在转子上,而永磁体装在定子上。无刷直流电动机的定子电枢绕组采用整距集中式绕组。绕组的相数有二、三、四、五相,但应用最多的是三相和四相。各相绕组分别与外部的电子开关电路相连,开关电路中的开关管受位置传感器的信号控制。无刷直流电动机的工作离不开电子开关电路,因此由电动机本体、转子位置传感器和电子开关电路三部分组成了无刷直流电动机控制系统。其原理框图如图2-1所示。图中,直流电源通过开关电路向电动机定子绕组供电,位置传感器随时检测到转子所处的位置,并根据转子的位置信号来控制开关管的导通和截止,从而自动地控制了
18、哪些绕组通电,哪些绕组断电,实现了电子换向。图2-1 无刷直流电动机的原理框图2.2无刷直流电动机的工作原理普通直流电动机的电枢在转子上,而定子产生固定不动的磁场。为了使直流电动机旋转,需要通过换向器和电刷不断地改变电枢绕组中电流的方向,使两个磁场的方向始终保持相互垂直,从而产生恒定的转矩驱动电动机不断旋转。无刷直流电动机为了去掉电刷,将电枢放到定子上去,而转子做成永磁体,这样的结构正好与普通直流电动机相反。然而即使这样改变还不够,因为定子上的电枢通入直流电以后,只能产生不变的磁场,电动机依然转不起来。为了使电动机的转子转起来,必须使定子电枢各相绕组不断的换相通电,这样才能使定子磁场随着转子的
19、位置不断的变化,使定子磁场与转子永磁磁场始终保持90左右的空间角,产生转矩推动转子旋转。为了详细说明无刷直流电动机的工作原理,下面以三相无刷直流电动机为例,来分析它的转动过程。图2-2 无刷直流电动机原理图 图1-2所示是三相直流电动机的工作原理图。采用霍尔位置传感器,MOSFET电子开关电路为全桥式驱动。要让电机转动起来,首先DSP必须根据霍尔传感器感应到的电机转子目前所在位置,然后依照定子绕线决定开启(或关闭)MOSFET功率管的顺序,如图1-2中AH、BH、CH(这些称为上臂功率管)及AL、BL、CL(这些称为下臂功率管),使电流依序流经电机线圈产生顺向(或逆 向)旋转磁场,并与转子的磁
20、铁相互作用,如此就能使电机顺时/逆时转动。当电机转子转动到霍尔感应出另一组信号的位置时,DSP又再开启下一组功率管,如此循环电机就可以依同一方向继续转动直到DSP决定要电机转子停止则关闭功率管(或只开下臂功率管);要电机转子反向则功率管开启顺序相反。 基本上功率晶体管的开法可举例如下: AH、BL一组AH、CL一组BH、CL一组BH、AL一组CH、AL一组CH、BL一组 但绝不能开成AH、AL或BH、BL或CH、CL。此外因为电子零件总有开关的响应时间,所以功率管在关与开的交错时间要将零件的响应时间考虑进去,否则当上臂(或下臂)尚未完全关闭,下臂(或上臂)就已开启,结果就造成上、下臂短路而使功
21、率晶体管烧毁。 无刷直流电动机有多种结构,每种电动机可分为半桥驱动和全桥驱动,全桥驱动又可分为星形和角形连接以及不同的通电方式。因此,不同的选择会使电动机产生不同的性能并且成本也不相同。以下对此作一个对比。a.绕组利用率不像普通直流电动机那样,无刷直流电动机的绕组是断续通电的。适当地提高绕组通电利用率将可以使同时通电半导体数增加,使电阻下降,提高效率。从这个角度来看,三相比四相好,四相比五相好,全桥比半桥好。b.转矩的波动无刷直流电动机的输出转矩波动比普通的直流电动机的大。因此希望尽量减小转矩波动。一般相数越多,转矩的波动越小。全桥驱动比半桥驱动转矩的波动小。c.电路成本相数越多,驱动电路所使
22、用的开关管越多,成本越高。全桥驱动所使用的开关管多一倍,因此成本要高。多相电动机的成本也高。综合上述分析,目前以三相星形全桥驱动方式应用最多。第三章 电机控制中的DSP的特点和选择3.1 TMS320F2812的简介 TMS320F281X系列DSP(数字信号处理器)是TI公司最新推出的数字信号处理器。而TMS320F2812是这一系列产品中最具代表性的产品。与本系统其他芯片相比,TMS320F2812片上资源最丰富,并有1MB的外设寻址空间。 TMS320F2812可达到每秒执行1.5亿次指令的速度(150MIPS),具有单周期32位*32位的乘和累加操作(MAC)功能。F2812片内集成了
23、128K*16位的FLASH存储器、1 6通道模拟输入高速12位模/数转换器(A/D),多个功能丰富的通用计时器,多路可编程脉宽调制(PWM)输出,可编程脉宽调制死区,多路信号输入捕捉(CAP),光电编码盘接口(QEP),以及业界通用的异步串行接口(SCI),串行(同步)外设接口(SPI)和(CAN)总线接口。这些丰富的片上资源使得TMS320F2812在工业控制中尤其是在电机控制应用中比传统的单片机有着无与伦比的优势。也正是这一点, TMS320F2812正在被越来越广泛地应用在工业控制和电机控制的不同领域。 TMS320F2812 DSP的结构如图 3-1它采用了改进的哈佛结构,该结构支持
24、分离的程序总线和数据总路线。这样的总线结构使取指令、执行指令、数据传送和外设控制可以并行进行,因此可以极大地提高工作速度。这保证了指令系统中的大多数指令可以实现单指令操作,即一条指令可以实现多种操作。由上图可见,F2812 DSP可分成三部分:DSP内核、存储器、外围设备。DSP内核是DSP的核心,它担负着数据运算、信号处理的任务。它包括了累加器、中央算术逻辑单元CALU、状态寄存器ST0和ST1、辅助寄存器、乘法器、移位器、临时寄存器T和乘法寄存器P。存储器包括了128K字的Flash程序存储大、1K 字的OPT型只读存储器、两个4K字的单口随机存储器(SARAM)(L0和L1)、一块8K字
25、SARAM(H0)、两块1K字SARAM(M0和M1) 。外围设备指的是DSP芯片中集成的除内核以外的功能模块,习惯上称之为外设。它包括事件管理器、CAN接口、ADC转换器、SPI和SCI串行接口、McBSP(多通道缓冲串口)。图 3-1 TMS320F2812 DSP的结构图3.2电机控制中的DSP的特点1.由于采用了高性能的静态CMOS制造技术,因此该DSP具有低功耗和高速度的特点,内核工作电压1.8V,外设工作电压为3.3V,有4种低功耗工作方式,单指令周期最短为6.67ns(1500MHZ),最高运算速度可达150MIPS,八级指令流水线,低功耗有利于电池供电的应用场合;而高速度非常适
26、用于电动机的实时控制。2.两个专用于电动机控制的事件管理器(EV),每一个都包括:4个1 6位通用定时器,12个16位脉宽调制(PWM)输出通道,1个能够快速封锁输出的外部引脚PDPINTX(其状态可从COMMONX寄存器获得),可防止上下桥臂直通的可编程死区功能,6个捕捉单元,2个QEP(正交编码器脉冲电路)。3.可编程看门狗定时器,保证程序运行安全。4.有串行接口SPI和SCI模块。5.有基于锁相环的时钟发生器(PLL)。6.有1149.1-1990IEEE标准的JTAG仿真接口。根据以上分析,本次设计采用芯片TMS320F2812,如图3-2所示图3-2 TMS320F2812芯片图3.
27、3 DSP软件设计特点3.3.1 DSP开发环境CCS2000 CCS2000是TI公司的DSP集成开发环境。提供了环境配置、源文件编辑、程序调试、跟踪和分析等工具,可以帮助用户在一个软件环境下完成编辑、编译链接、调试和数据分析等工作。与TI提供的早期软件开发工具相比,利用CCS2000能够加快软件开发进程,提高工作效率。 安装完CCS2000后将USB仿真器插入PC机的USB插槽中,启动计算机后识别SEED-XDSUSB2.0硬件,识别后安装USB仿真器驱动 CCS2000的调试界面如图3-3:图3-3 CCS2000的调试界3.3.2 C语言与汇编语言的分析比较 DSP编程必然要面临的一个
28、问题就是选择使用何种编程方法。选择的结果通常都是在汇编语言与高级语言如C或C+之间选择其中一种。CC的好处包括模块化、可移植性以及可复用性。此外,不仅大多数的嵌入式程序设计员使用过这种高级语言,而且己经存在大量的代码基础,可以通过一种相对简单的方法将这些代码从原来的微控制器或DSP移植到新的DSP平台中。而汇编语言是针对特定体系结构的,因此代码重用仅限于同一系列的处理器。而采用高级语言开发可以不必知道处理器平台。使用汇编语言编程困难的原因,还在于它过分专注于DSP寄存器组、运算单元与存储器之间的数据交流。而在CC+高级语言中,这一过程通常是通过调用变量、函数以及子程序的方法在一个更加抽象的层面
29、来完成的,因此使得编程更为简单。对速度或存储器要求特别高的子程序,可以考虑使用汇编语言,以提高程序在DSP上的运行效率。尽管高级语言编译器在程序优化转换方面做的很好,但在对DSP数据流与运算进行直接、仔细的控制时仍然存在不足之处。这也往往将高级语言与汇编语言结合使用的原因。高级语言在程序控制以及基本的数据处理方面有着不错的表现,而汇编语言则在高效的数学运算与速度最为关键的中断服务过程方面体现出明显的优势。考虑到C的方便、简单,汇编语言的高性能,将高级语言与汇编语言结合起来是最佳办法。对于CCS2000的C语言编程除了要遵守编译器的规定,还有些注意:装载程序前注意要先清空程序RAM;C编译器本身
30、有入口函数,功能是建立C环境;除了特殊情况,一般要找到并调用库函数。当RAM空间或运算时间不够时,才考虑混合编程,主要是注意函数与中断程序前后按要求保护。 第四章 电机控制中的DSP软件设计通过驱动板控制无刷直流电动机的旋转,DSP本身的软件设计包括:系统时钟的初始化、外围设备的配置、控制程序的设计以及程序整体架构的编排。个模块如下:4.1 各模块的程序及说明4.1.1系统时钟的初始化模块void InitSysCtrl(void) Uint16 i; EALLOW; SysCtrlRegs.PLLCR = 0xA; /设置系统时钟为150MHz for(i= 0; i< 5000; i
31、+) /等待系统时钟PLL锁相环稳定 SysCtrlRegs.HISPCP.all = 0x0000; /设置高速外设的时钟为150MHz SysCtrlRegs.LOSPCP.all = 0x0002; /设置低速外设的时钟为37.5MHz SysCtrlRegs.PCLKCR.bit.EVAENCLK=1; /使能EV-A外设的高速时钟(150MHz) SysCtrlRegs.PCLKCR.bit.EVBENCLK=1; /使能EV-B外设的高速时钟(150MHz) SysCtrlRegs.PCLKCR.bit.SCIENCLKA=1; /使能SCI-A的外设低速时钟(37.5MHz) E
32、DIS;系统时钟150MHz为DSP TMS320F2812的内核时钟频率,该时钟主要提供给CPU完成取指令、读指令、完成指令操作等。外设时钟的设置与系统时钟是分开来的,这是DSP的一大特点。DSP的外设又分为低速外设(McBSP、SCI、SPI)和高速外设(ADC、EVA、EVB),在设计无刷电机驱动程序中,因为要用EVA事件管理器中的输入捕捉和PWM功能,所以将EVA开启且时钟设置到最高(使PWM的调节范围达到最大)4.1.2 事件管理器EV的初始化模块void InitEv(void)EALLOW;/PWM1PWM6 GpioMuxRegs.GPAMUX.bit.PWM1_GPIOA0
33、= 1; GpioMuxRegs.GPAMUX.bit.PWM2_GPIOA1 = 1; GpioMuxRegs.GPAMUX.bit.PWM3_GPIOA2 = 1; /CAP1CAP3 GpioMuxRegs.GPAMUX.bit.CAP1Q1_GPIOA8 = 1; GpioMuxRegs.GPAMUX.bit.CAP2Q2_GPIOA9 = 1; GpioMuxRegs.GPAMUX.bit.CAP3QI1_GPIOA10 = 1; /CAP4CAP6 GpioMuxRegs.GPBMUX.bit.CAP4Q1_GPIOB8 =1; GpioMuxRegs.GPBMUX.bit.CAP
34、5Q2_GPIOB9 =1; GpioMuxRegs.GPBMUX.bit.CAP6QI2_GPIOB10 =1; /设置CAP1CAP3 EvaRegs.CAPCON.bit.CAPRES = 0; /所有捕获单元和正交编码的寄存器清零 EvaRegs.CAPCON.bit.CAPQEPN = 1; /cap12使能 EvaRegs.CAPCON.bit.CAP3EN = 1; /cap3使能 EvaRegs.CAPCON.bit.CAP12TSEL = 0;/选择定时器2作为时基 EvaRegs.CAPCON.bit.CAP3TSEL = 0; /选择定时器2作为时基 EvaRegs.CA
35、PCON.bit.CAP1EDGE = 3; /双沿捕获 EvaRegs.CAPCON.bit.CAP2EDGE = 3; /双沿捕获 EvaRegs.CAPCON.bit.CAP3EDGE = 3; /双沿捕获 /设置CAP4CAP6 EvbRegs.CAPCONB.bit.CAPRES = 0; EvbRegs.CAPCONB.bit.CAPQEPN = 0; /cap45使能 EvbRegs.CAPCONB.bit.CAP6EN = 1; /cap6使能 / EvaRegs.EVAIFRC.bit.CAP1INT = 1; /清除中断标志 EvaRegs.EVAIFRC.bit.CAP2
36、INT = 1; EvaRegs.EVAIFRC.bit.CAP3INT = 1; EvaRegs.EVAIMRC.bit.CAP1INT = 1; /中断使能 EvaRegs.EVAIMRC.bit.CAP2INT = 1; EvaRegs.EVAIMRC.bit.CAP3INT = 1; EvaRegs.CAPFIFO.bit.CAP1FIFO = 1; EvaRegs.CAPFIFO.bit.CAP2FIFO = 1; EvaRegs.CAPFIFO.bit.CAP3FIFO = 1; EDIS; /初始化定时器1和pwm16的输出 EvaRegs.T1PR = t1prd; / 设定P
37、WM载波频率20K EvaRegs.T1CNT = 0x0000; / 定时器1计数器 EvaRegs.T1CON.all = 0x0b40; /8 分频,使能定时器操作,连续增减模式 EvaRegs.DBTCONA.all = 0x03f8; /32分频,死区时间2.5us左右 EvaRegs.EVAIMRA.bit.T1PINT = 1; /定时器1周期中断允许 EvaRegs.EVAIFRA.bit.T1PINT = 1; /清除标志 / 使能 PWM1-PWM6 EvaRegs.CMPR1 = pwm; EvaRegs.CMPR2 = pwm; EvaRegs.CMPR3 = pwm;
38、 EvaRegs.COMCONA.all = 0x8200; /使能比较操作pwm16由相应的比较逻辑驱动 / 初始化定时器2 EvaRegs.T2PR = t2prd; / 定时器2的周期为20k EvaRegs.T2CNT = 0x0000; / Timer2 counter EvaRegs.T2CON.all = 0x1440; /16分频,使能定时器操作,连续增模式 EvaRegs.EVAIMRB.bit.T2PINT = 1;/定时器2周期中断允许 EvaRegs.EVAIFRB.bit.T2PINT = 1;/清除标志 EvbRegs.T4PR = t2prd; / 定时器2的周期
39、为20k EvbRegs.T4CNT = 0x0000; EvbRegs.T4CON.all = 0x1872; /1分频,使能定时器操作,连续增模式 EvbRegs.EVBIMRB.bit.T4PINT = 1;/定时器2周期中断允许 EvbRegs.EVBIFRB.bit.T4PINT = 1;/清除标志 要让无刷电机转起来,首先要捕捉霍尔传感器输出的转子位置信号,通过初始化EVA的输入捕捉CAP13,捕捉霍尔的信号。接着根据位置信号通过PWM控制导通定子的下一相线圈。对电机速度的采用光电编码器测量,通过初始化EVB的正交编码器和定时器T4捕捉光电编码器的速度信号,接着通过初始化T1定时器
40、每隔50us读取T4的计数器寄存器,获得速度值。4.1.3 串行通讯SCI的初始化模块void InitSci(void)/ Initialize SCI-A:*UART_MODE = 0x44;EALLOW;GpioMuxRegs.GPFMUX.all = 0x0030;EDIS;/* loopback 8 bit data */SciaRegs.SCICCR.all = 0x07;/使用地址位模式协议 8位SciaRegs.SCICTL1.all = 0x03;/发送使能,接收到的字符送到SCIRXEMU和SCIXBUFSciaRegs.SCICTL2.all = 0x03;/使能RXRD
41、Y/BRKDT中断,使能TXRDY中断SciaRegs.SCIHBAUD = 0x00;SciaRegs.SCILBAUD = 0xF3;/19200SciaRegs.SCICTL1.all = 0x23; /使能SCIPieCtrl.PIEIER9.bit.INTx1 = 1;/使能SCI写中断PieCtrl.PIEIER9.bit.INTx2 = 1; /使能SCI读中断int SciaTx_Ready(void)unsigned int i;if(SciaRegs.SCICTL2.bit.TXRDY = 1)i = 1;elsei = 0;return(i);int SciaRx_Rea
42、dy(void)unsigned int i;if(SciaRegs.SCIRXST.bit.RXRDY = 1)i = 1;elsei = 0;return(i); DSP通过串口和上位机进行通讯,完成在上位机对电机的控制和速度的实时显示。通过初试话SCI,实现对串口的波特率,传输位,截止位,串口号的配置。串口的读与写是采用中断方式,避免了数据的丢失。4.1.4 输入捕捉(CAP)中断interrupt void cap_isr(void) /*以下用来检测传感器的输出电平,用来换向*/ / Uint32 kk = t2prd; EALLOW; flag = 1; EvaRegs.CMPR1
43、 = pwm; EvaRegs.CMPR2 = pwm; EvaRegs.CMPR3 = pwm; GpioMuxRegs.GPAMUX.bit.CAP1Q1_GPIOA8 = 0;/设定cap13为gpio GpioMuxRegs.GPAMUX.bit.CAP2Q2_GPIOA9 = 0; GpioMuxRegs.GPAMUX.bit.CAP3QI1_GPIOA10 = 0; GpioMuxRegs.GPADIR.bit.GPIOA8 = 0;/设定cap13为输入 GpioMuxRegs.GPADIR.bit.GPIOA9 = 0; GpioMuxRegs.GPADIR.bit.GPIOA
44、10 = 0; capstastus = (GpioDataRegs.GPADAT.all&0x0700)>>8; if(dir=1) switch(capstastus)/ir2136 的hin和lin是反向的 case 1: EvaRegs.ACTR.all = 0x7fd;break;/h3 fall/50/1 case 2: EvaRegs.ACTR.all = 0xfd7;break;/h1 fall/21/7 case 3: EvaRegs.ACTR.all = 0x7df;break;/h2 rise/52/3 case 4: EvaRegs.ACTR.all
45、 = 0xd7f;break;/h2 fall/43/4 case 5: EvaRegs.ACTR.all = 0xf7d;break;/h1 rise/30/0 case 6: EvaRegs.ACTR.all = 0xdf7;break;/h3 rise/41/6 else switch(capstastus)/ir2136 的hin和lin是反向的 case 1: EvaRegs.ACTR.all = 0xdf7;break;/h1 rise case 2: EvaRegs.ACTR.all = 0xf7d;break;/h3 fall case 3: EvaRegs.ACTR.all
46、= 0xd7f;break;/h2 rise case 4: EvaRegs.ACTR.all = 0x7df;break;/h1 fall case 5: EvaRegs.ACTR.all = 0xfd7;break;/h3 rise case 6: EvaRegs.ACTR.all = 0x7fd;break;/h2 fall /*/ GpioMuxRegs.GPAMUX.bit.CAP1Q1_GPIOA8 = 1;/重新设定cap13为gpio GpioMuxRegs.GPAMUX.bit.CAP2Q2_GPIOA9 = 1; GpioMuxRegs.GPAMUX.bit.CAP3QI1
47、_GPIOA10 = 1; EvaRegs.EVAIFRC.all = 7 ; / 清捕捉中断 EvaRegs.CAPFIFO.all = 0x01500; / 清空捕捉堆栈 PieCtrl.PIEACK.bit.ACK3 = 1;/cap1中断向cpu申请中断输入捕捉中断完成对霍尔信号(图4-1)的捕捉,完成 PWM波(图4-2)的配置从而改变六个MOSFET的导通顺序,达到无刷直流电机换向的作用。图4-1 霍尔信号图4-2 PWM波形4.1.5定时器T1interrupt void t1pint_isr(void) NO_pwm_v_M1+; if(NO_pwm_v_M1 = 2000)
48、NO_pwm_v_M1 = 0; Send_Flag1 = 0; T4cntj = EvbRegs.T4CNT; if(j = 0) speed_M1 = (T4cntj - T4cnt1)*10; /完成对速度的计算 j = 1; else speed_M1 = (T4cntj - T4cnt0)*10; j = 0; EvaRegs.EVAIFRA.bit.T1PINT = 1;/清除中断标志 EvaRegs.EVAIMRA.bit.T1PINT = 1;/中断允许 PieCtrl.PIEACK.bit.ACK2 = 1;/向cpu申请中断定时T1为50us中断一次,完成对T4计数器寄存器
49、值的读取,从而获得无刷直流电动机的速度值。另外在和上位机进行通信的过程中,为了避免上位机不能及时的读取到DSP发过去的数据,通过T1定时器完成对发送数据的控制,200ms发送一次数据。4.1.6 DSP与上位串口通信协议 为了上位机能正确的识别出DSP所发数据的含义,比如速度值和故障值的区别。还有DSP能识别上位机所发数据得具体含义。 协议的规定如下: 1-电机开关:11开。22关。33正转。44反转。2-速度调节3-角度调节4-11软件准备好5-串口校验(返回发送值)9-数据联结9为开头的数据加入到以后的数的后面,当遇到2开头时添加后结束。取速度的协议程序例子如下 if(SciaTx_Rea
50、dy() = 1)&&(Send_Flag1 < 3) Send_Flag1+; if(k = 0) Sci_VarTxk = 0x20; /速度的标志位 SciaRegs.SCITXBUF = Sci_VarTxk; k = 1; else if(k = 1) Sci_VarTxk = speed_M1&(0x00ff);/速度值的低八位 SciaRegs.SCITXBUF = Sci_VarTxk; k = 2; else if(k = 2) Sci_VarTxk = (speed_M1&(0xff00)>>8;/速度值的高八位 SciaRegs.SCITXBUF = Sci_VarTxk; k = 0; 4.2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 34912-2024工业锅炉系统节能设计指南
- 果园经营权转让合同模板
- 个人与公司间借款协议书范本2024年
- 婚前财产协议书公证流程
- 展览延期协议书范本
- 自由职业者合作工作室合伙协议
- 房屋中介服务协议书样式
- 设计合同补充协议范本
- 沥青运输合同模板
- 建筑施工合同补充协议模板
- 咖啡线下活动策划方案
- 草原牧歌-鸿雁 课件 2024-2025学年人音版(简谱)(2024)初中音乐七年级上册
- 期中模拟试卷(1-4单元)(试题)-2024-2025学年五年级上册数学人教版
- 期中测试卷(1-3单元)(试题)-2024-2025学年六年级上册数学苏教版
- 人教版八年级上册生物期中考试试卷
- 2024年江苏省淮安市中考英语试题卷(含答案解析)
- 《医疗机构工作人员廉洁从业九项准则》制定主题学习课件
- 《大学美育》 课件 22.模块五 第二十二章 光影交织的摄影艺术之美
- 2024-2030年月子中心行业市场发展分析及发展趋势与投资前景研究报告
- 小学数学西南师大五年级上册四小数混合运算小数混合运算 PPT
- 《大数据导论通识课版》PPT课件
评论
0/150
提交评论