1湖南信息学院课程论文基于DSP的直流电机控制的实现学生姓名:乐昌国学号:201201266122年级专业:12级电子信息工程3班指导老师:雷求胜系别:电子信息系湖南·长沙二0一五年一月2基于DSP的直流电机控制的实现第一部分:课题研究的目的和意义1、研究目的学习用C语言编制中断程序,控制VC5509DSP的通用I/O管脚产生不同的占空比的PWM信号,了解VC5509DSP的通用I/O管脚的控制方法、以及直流电机的控制原理和控制方法,掌握DSP技术的开发与应用、进一步实现高速度、高精确的直流电机控制。2、DSP技术的发展前景:目前,DSP市场正处于高速成长阶段,在数字化、个人化和网络化的推动下,2009年世界DSP市场营业额已超过800亿美元,预计未来的年增长率高达40%,在全球DSP市场中,仅就美国而言,据估计,美国有超过1亿辆汽车、几千万台个人通信装置、每个家庭中就有5~20个联网的家用电器以及数以百万计的工厂使用DSP系统。中国已成为DSP芯片的最大市场,数码相机、IP电话和手持电子设备的热销带来了对DSP芯片的巨大需求。尽管DSP市场日趋成熟,但仍有成长空间。互联网和设备个性化是当前信息社会的特征。互联网是PC时代全球经济新的增长点,由于PC市场仍未饱和,市场潜力巨大,也是DSP潜在的应用领域。而手机、PDA、MP3播放器以及手提电脑等则是设备个性化的典型代表,这些设备的发展水平取决于DSP的发展。新的形势下,DSP面临的要求是处理速度更高,功能更多更全,功耗更低,存储器用量更少。3、DSP开发手段:包括硬件和软件发展DSP的软件、硬件的开发以及系统的集成,日益关注。如何提高开发速度、降低开发难度,是所有开发者共同关心的问题。除了必须了解DSP本身的结构和技术指标外,大量的时间和精力花费在熟悉和掌握开发工具和环境上。系统复杂程度的百分之八十取决于软件。所以,设计人员都极为看重先进的、易于使用的开发环境与工具。DSP的开发环境如何,开发工具的功能是否丰富,使用是否方便,是一件十分重要的事情。TI的DSP开发环境和工具主要包括以下3个方面:(1)代码生成工具(编译器、链接器、优化C编译器、转换工具等);(2)系统集成及调试环境与工具;(3)实时操作系统一个DSP软件可使用汇编或C语言编写源程序,通过编译、链接、工具产生DSP执行代码。在调试阶段,可利用软件仿真在计算机上仿真运行;也可利用硬3件调试工具将代码下载到DSP中,并通过计算机监控、调试运行该程序。当调试完成后,可将该程序代码固化到程序存储器中,以便DSP目标系统脱离计算机单独运行。DSP软件设计:通过编程进行算法实现,并使程序效率满足实时性要求。汇编:代码效率高,复杂。高级语言(C):可读性强,易维护,代码效率不高。混合编程:通常以C代码为主体,调用汇编代码函数(算法核心,占用大部分运行时间,达95%)。设计过程:了解编程规范,进行软件组织:控制程序+初始化程序+I/O程序+核心算法程序。其中存储器配置很重要,文档管理(修改记录、程序注释)也必不可少。模块化设计,易于调试。4、DSP开发工具:软硬件配合调试,需要硬件仿真器(Emulator)和软件仿真器(Simulator),他们都属于DSP开发工具。选择开发工具是选择的重要参考指标。硬件资源包括片内RAM、ROM的容量,外部可扩展的程序和数据空间,总线接口,I/O接口等。运算精度:定点DSP:精度较低,功耗较低,价格低;浮点DSP:精度较高,功耗较高,价格高。5、论文研究对象技术中的应用:将工业控制中普遍使用的PI算法在DSP上实现PWM波形输出,由于单片机自身性能的限制,已难以满足高速度,高精确的电机控制要求,而用DSP则很好的实现用于直流无刷电机控制的PWM波形输出。直流电机具有上述一系列优点,因此,它的用途也适用于航空航天、电子设备、采矿、化工等特殊工业部门。第二部分:系统基本功能的介绍1、直流电机的转速控制方法可分为两类:对励磁磁通进行控制的励磁控制法和对电枢电压进行控制的电枢控制法。励磁控制法在低速时受磁极饱和的限制,在高速时受换向火花和换向器结构强度的限制,并且励磁线圈电感较大,动态响应较差,所以这种控制方法用的很少。大多应用场合都使用电枢控制法,但绝大多数直流电机采用的是开关驱动方式,使半导体功率器件工作在开关状态,通过脉宽调制PWM来控制电动机的电枢开关,实现调速。42、实验原理图3-2、4-2如下:PWM直流电机控制原理图5第三部分:系统的硬件实现和软件实现。1.硬件部分:准备PC兼容机一台,ICETK-VC5509-A-USB-EDU实验箱一台。2.软件部分:硬件仿真软件,编写程序如下:#includemyapp.h#includeICETEK-VC5509-EDU.h#includescancode.h//:--DefineTimer0'sRegisters---//ioportunsignedint*tim0;ioportunsignedint*prd0;ioportunsignedint*tcr0;ioportunsignedint*prsc0;//:--EndofDefine-----------------//voidInitMcBSP();unsignedintuN,nCount,nCount1;main(){unsignedchardbScanCode,dbOld;dbScanCode=dbOld=0;nCount=nCount1=0;PLL_Init(20);SDRAM_init();InitCTR();InitMcBSP();uN=60;CTRGR=1;InitInterrupt();TIME_init();while(1){6if(nCount1==0){dbScanCode=GetKey();if(dbScanCode!=dbOld){dbOld=dbScanCode;if(dbScanCode==SCANCODE_Enter)break;elseif(dbScanCode==SCANCODE_Plus)PCR1|=2;elseif(dbScanCode==SCANCODE_Minus)PCR1&=0x0fffd;elseif(dbScanCode==SCANCODE_0)uN=100;elseif(dbScanCode==SCANCODE_1)uN=80;elseif(dbScanCode==SCANCODE_2)uN=60;elseif(dbScanCode==SCANCODE_3)uN=40;elseif(dbScanCode==SCANCODE_4)uN=20;elseif(dbScanCode==SCANCODE_5)uN=0;}}}CloseCTR();exit(0);7}voidInitInterrupt(void){//设置中断控制寄存器IVPD=0x80;IVPH=0x80;IER0=0x10;DBIER0=0x10;IFR0=0xffff;asm(BCLRINTM);}voidinterruptTimer()//中断响应函数{nCount++;nCount%=100;if(nCountuN)PCR2|=4;elsePCR2&=0x0fffb;nCount1++;nCount1%=5120;}voidInitMcBSP(){//IOPin:McBSP2.FSRS22//SPCR1.RRST_=0,PCR.RIOEN=1,PCR.FSRM=1,PCR.FSRP=0/1SPCR1_2&=0x0fffe;PCR2|=0x1400;//IOPin:McBSP1.CLKXS14//SPCR2.XRST_=0,PCR.XIOEN=1,PCR.CLKXM=1,PCR.CLKXP=0/1SPCR2_1&=0x0fffe;PCR1|=0x2200;}8voidTIME_init(void){tim0=(unsignedint*)0x1000;prd0=(unsignedint*)0x1001;tcr0=(unsignedint*)0x1002;prsc0=(unsignedint*)0x1003;*tcr0=0x04f0;*tim0=0;*prd0=0x0100;*prsc0=2;*tcr0=0x00e0;}第四部分:调试及结果分析如果程序退出或中断时电机不停止转动,就将ICETEK-CTR模块的电源开关关闭再开启一次。有时键盘控制不是非常灵敏,这是因为程序用了轮询方式读键盘输入的结果,这时就需要多按几次按键才行。电动机是一个电磁干扰源,它的启动还会影响电网电压的波动,其周围的电器开关也会引发火花干扰。9第五部分:总结直流电机受控可以改变转速和方向,必须熟练掌握其实验操作步骤;在实验前一定要仔细检查试验箱的好坏、能否可以与计算机正常连接,把程序编写完成后、编译正确无误再导入,在硬件仿真的方式下进行运行、同时认真观察程序运行结果,用开关和数字键、进行直流电机的开关与转速的快慢,来实现直流电机的控制。