还剩32页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《DSP原理及应用》课程设计指导书学院机械工程学院系所测控技术与仪器系班级姓名学号指导老师江苏大学测控技术与仪器系2016-01-18应用于包装机的步进电机控制器的设计(江苏大学机械工程学院仪器科学与工程系,江苏,镇江,212013)摘要本文介绍了以典型电机微控制器TMS320LF2407芯片为控制核心的步进电机控制系统,阐述了如何利用TMS320LF2407实现电机转向、速度控制,并给出了相应系统控制策略简述了步进电机的驱动控制和DSP的PWM脉宽调制原理,详细阐述了DSP实现步进电机的加减速控制问题步进电机是一种通过电脉冲信号控制相绕组电流实现定角转动的机电元件,与其他类型电机相比具有易于开环精确控制、无积累误差等优点,广泛运用于数控机床、机器人、自动化仪表等领域DSP芯片的出现,开创了步进电机控制的新局面用DSP控制的步进电机不仅减小了控制系统的体积、简化了电路,同时进一步提高了电机控制的精度和控制系统的智能化,从而逐步实现控制系统的嵌入式基于DSP的步进电机控制技术在九十年代时期得到了较大发展,主要应用在工业、航天、机器人、精密测量等领域数控机床、跟踪卫星用电经纬仪在采用了步进电机技术后,大大提高了控制与测量精度,这样就使步进电机伺服系统的应用前景更加广阔鉴于此,本文提出了基于DSP的步进电机控制系统的设计方案包括其硬件设计和软件设计在软件设计中给出了主要控制程序,达到对步进电机转向、转速的控制,如正转、反转、加速、减速等使用DSP最明显的优点在于提高了系统的可靠性,并降低了整个系统的成本实验证明,此驱动系统简化了电路,提高了系统控制性能关键词步进电机;DSP;控制系统;TMS320LF2407;目录TOC\o1-3\h\u第一章绪论
11.1引言
11.2数字信号处理器DSP发展和现状
21.3课题背景及意义3第二章总体方案设计
52.1设计方案
52.2TMS320LF2407DSP芯片介绍
52.
2.1TMS320LF2407的性能特点
52.
2.2A/D转换原理
72.
2.3TMS320LF2407内部A/D转换模块概述
72.
2.4事件管理器
82.
2.5通用定时器
82.
2.6全比较单元
92.
2.7捕获单元和正交编码脉冲电路
92.3四相反应式步进电机
102.
3.1步进电机的结构
102.
3.2步进电机的工作原理
112.4四相反应式步进电机的数学模型
122.
4.1电路方程
122.
4.2机械方程
122.5驱动芯片结构与特点12第三章详细设计
143.1系统硬件设计
153.2系统软件设计
153.
2.1DSP开发软件CCS介绍
153.
2.2程序控制流程
163.
2.3电机初始化程序
163.
2.4电机控制程序
173.3程序调试19第四章心得体会20参考文献21附录22第一章绪论
1.1引言随着人们生活水平不断提高,对各种方便食品的需求也随之大增,这近一步拉动了我国食品包装业的快速发展包装机http://baike.so.com/doc/
5580647.html\thttp://baike.so.com/doc/_blank是发展比较快的包装机械之一,拥有着广阔的发展前景在制袋、充填、封口为一体的包装机中,要求包装用塑料薄膜定位定长供给,采用步进电机与拉带滚轮直接连接拉带,不仅结构得到了简化,而且调节极为方便,只要通过控制面板上的按钮就可以实现,这样既节省了调节时间,又节约了包装材料步进电机是一种把电脉冲信号变成直线位移或角位移的控制电机它的位移速度与脉冲频率成正比,位移量与脉冲数成正比每来一个脉冲电压,转子就旋转一个步距角根据电压脉冲的分配方式,步进电机各相绕组的电流轮流切换,从而使电机旋转步进电机具有步进数可控、运行平稳、价格便宜的优点,在加速器控制系统中的应用很广传统的步进电机一般可分为永磁式步进电动机PMStepMotor,反应式步进电动机VRStepMotor和混合式步进电动机HybridStepMotor三种在数字化电机控制系统产生之前,要想获得高性能的步进电机驱动要么是采用昂贵、难维护的直流电机配便宜的控制装置,要么就是使用便宜的交流电机配昂贵、复杂的控制装置基于DSP的数字化电机控制的出现改变了这一状况,由于DSP强大的运算能力,它可以实时地实现一些先进的控制算法,获得高性能的电机驱动控制数字化电机控制的优点正是由于数字化的信号和信号处理所带来的,和模拟控制相比,它具有互联方便,稳定性好,便于大规模集成,可以构成复杂的系统,容易修改,便于测试、调试和大规模生产等优点数字化电机控制技术包括两个组成部分,现代电机控制理论和数字信号处理,其中数字信号处理又包括数字信号处理技术和数字信号处理器技术数字化电机控制的发展和这几个方面的进展是密不可分的现代电机控制理论以矢量控制理论为代表,还有近年来得到快速发展的直接转矩控制理论等,这些高性能的控制方案需要进行大量的实时运算,用模拟器件的硬件方案来实现相当困难,难以实用化只是在具有强大运算能力的控制器如DSP等价格下降,性能提高之后,数字化的高性能控制方案才开始大量步入实用领域
1.2数字信号处理器DSP发展和现状DSP是DigitalSignalProcessor的缩写,DSP在70年代末、80年代初产生后起初并不显眼,主要应用于一些特定的数字信号处理密集的领域如军事的声纳和雷达、监测和监听设备,以及气象卫星、地震监测器等虽受到个人计算机发展光辉的遮掩,它一直在幕后悄悄发展着80年代后期开发出较通用产品后,逐步进入各个领域近年来,随着通讯领域的红火,个人计算机的普及以及家用电器的发展,DSP更是从幕后走到了台前,各种应用如手机、MODEM、硬盘、声卡、显卡、DVD.VCD、可视电话、数字电视、数字相机、导弹、高保真音响、洗衣机、空调、语音识别、游戏等等数不胜数,大到上天入地,小到我们每个人的身边,现在是哪儿都有它的踪迹了如果说CPU是PC时代的技术核心,则说DSP是后PC时代的技术核心毫不为过由于具有超强的数字信号处理能力和合理的性价比,二十几年时间,DSP的发展日益迅猛,应用日益广泛现在,DSP已经成为计算机网络、无线通讯、信息家电、电子产品、图形处理、视频会议、数字音频广播等领域的核心业内人士预言DSP将是未来发展最快的电子器件,是电子产品更新换代的决定性因素DSP芯片能够高速发展,一方面得益于集成电路的发展,另一方面也得益于巨大的市场目前,DSP芯片的价格越来越低,性能价格比日益提高,具有巨大的市场潜力据世界半导体贸易统计组织(WSTS)发布的统计和预测报告显示1996~2005年,全球DSP市场一直保持稳步增长,2005年增长率为35%;另据CCID统计2005年中国DSP增长率超过40%,销售量达到13亿块据市场调查公司ICE统计,1998年DSP市场达
33.4亿美元,其中通信占48%,计算机/MODEM占30%,硬盘12%,消费类产品5%,军用航空航天5%,典型应用产品和市场包括电视会议、文件成像、可视电话、数字蜂窝电话、数字设备、电机调速等,一些家用电器如空调、洗衣机、电冰箱等为了节能和静音也开始采用DSP控制DSP按数据格式分可分为定点DSP和浮点DSP两种,也可按用途分为通用型DSP和专用型DSP,近年来德州仪器TI和美国模拟器件公司AnalogDevice简称AD都推出了专门针对电机控制领域的专用型DSP系列,TI是TMS320-2XX系列,AD则是ADMC系列,这些芯片都是定点DSP,具有普通定点DSP的运算能力和单片机般的外围设备,使得它们成为用于数字化电机控制的最佳选择当前,DSP芯片还在快速发展中,它的处理速度正随着时间的前进而不断提高,从1982年的5MIPS每秒百万指令到1997年的100MIPS,再到现在的2000MIPS多DSP单一化,预计2007年将达到320000MIPSDSP的价格则正走着一条相反的道路,据DSP最大的生产厂家TI公司的历史价格统计,12年来每MIPS的价格己从200美元降到了一个美元,价格的下降导致应用领域的扩大,而应用的扩大也引起价格的下降,形成了一种良性的循环技术的高速发展引发了信息产业革命,以计算机技术、通信技术为核心的信息技术正在以前所未有的速度改变着人们的生活和工作方式数字信号处理是信息技术中的一个核心问题实现数字信号处理的核心器件是数字信号处理器以后简称为DSP数字化电机控制包括电机模型的数字化和信号处理的数字化,而DSP的运算速度则是这样的实时一控制所必须的为实现上述步进电机控制和交流电机控制融合的想法,由于其中有较多实时数学运算的要求,因此考虑使用德州仪器TIC2000系列DSP中的TMS320LF2407来实现
1.3课题背景及意义用DSP控制的步进电机不仅减小了控制系统的体积、简化了电路,同时进一步提高了电机控制的精度和控制系统的智能化,从而逐步实现控制系统的嵌入式基于DSP的步进电机控制技术在九十年代时期得到了较大发展,主要应用在工业、航天、机器人、精密测量等领域数控机床、跟踪卫星用电经纬仪在采用了步进电机技术后,大大提高了控制与测量精度,这样就使步进电机伺服系统的应用前景更加广阔DSP控制器的技术水平主要体现在三个层面硬件方案、核心控制算法以及应用软件功能国内步进电机控制器所采用的硬件平台和国外产品相比并没有太大差距,有的甚至更加先进DSP用于电机控制有很多好处1可执行高级运算,减少力矩纹波,从而实现低振动、长寿命;2高级运算使谐波减小,很容易满足国家要求,同时降低滤波器成本;3提供无传感器运算,省去位置和速度传感器4实时产生平滑的、近乎完美的参考模型,获得良好的控制性能;5控制逆变器,产生高精度PWM输出;6提供单片机控制系统本课题的研究内容是使用TI公司的DSP芯片TMS320LF2407控制步进电机,实现步进电机的驱动,构成控制系统第二章总体方案设计
2.1设计方案本次设计是步进电机控制器系统,整个控制系统分为四个部分DSP中央控制器TMS320LF
2407、外接电位器、步进电机及其驱动在本次设计中采用的电机是微型四相反应式步进电动机,其接受数字控制信号(电脉冲信号),并转换为与之相对应的角位移基于对低碳节能的考虑,在这里设计成一个单四拍信号来进行步进电动机的控制,通电顺序为A-B-C-D-A,步距角为15°驱动芯片采用的是ULN2003芯片,控制流程如下首先由DSP的A/D转换模块将电位器输出的模拟信号转换为数字信号,然后将该数字信号输入到DSP中以设定脉冲信号的间隔时间以便控制电机的转速,接着将由DSP的四个I/O口提供脉冲信号给驱动芯片,脉冲信号经过驱动芯片的处理后用来驱动步进电机的四个相,从而达到控制电机运转的目的在本次步进电机的控制系统中,由于步进电动机本身所拥有的精确定位特点我们采用开环控制系统系统总体结构图如下所示图2-1系统总体结构图
2.2TMS320LF2407DSP芯片介绍
2.
2.1TMS320LF2407的性能特点TMS320LF2407芯片是TexasInstruments公司生产的16位定点数字信号处理器TMS320C2000家族中的一种,是TMS320X240X系列DSP控制器中功能最强、片上设施最完备的一个型号与其他TMS320C2000系列芯片相比具有以下特点
1、采用高性能静态CMOS技术,使供电电压降为
3.3V,减小了控制器功耗;40MIPS的最高指令执行速度使得指令周期为33ns30MHz,从而提高了控制器的实时控制能力
2、基于TMS320C2xxDSP的CPU内核,保证了TMS320LF2407代码和TMS320系列DSP代码兼容
3、片内有高达32K字FLASH程序存储器,高达
1.5K字数据/程序RAM,544字双口RAMDARAM和2K字单口RAMSARAM
4、两个事件管理模块EVA和EVB,每个模块包括两个16位通用定时器;8个16位脉宽调制PWM通道它们能够实现PWM的对称和非对称波形;可编程PWM死区控制以防止上下桥臂同时输出触发脉冲;3个捕获单元;片内光电编码器接口电路;16通道10位A/D转换器事件管理器模块适用于控制交流感应电机、无刷直流电机、开关磁阻电机、步进电机和功率逆变器
5、可扩展外部存储器总共192K字空间64K字程序存储空间;64K字数据存储空间;64K字I/O寻址空间
6、看门狗定时器模块WDT可用来监控系统软件和硬件的操作,它可以按照用户设定的时间间隔产生中断如果软件执行进入一个不正确的循环或者CPU运行出现异常时,该模块可以实现系统复位,使系统进入预定状态
7、控制器局域网络CAN
2.0模块CAN模块给用户提供了设计分布式或网络化运动控制系统接口
8、串行通信接口SCI模块用于实现DSP与其他异步外设之间的串行通信,其接收器和发送器都是双缓冲的
9、16位串行外设SPI接口模块用于DSP与外设或其他控制器进行串行通信,典型应用包括与数模转换器、LED显示驱动等器件的通信此外,TMS320LF2407包含高达40个可单独编程或复用的通用输入/输出引脚和基于锁相环的时钟发生器之所以称TMS320LF2407为电机控制专用芯片,主要原因在于该芯片内置有功能强大的事件管理器、PWM脉冲发生器和两路10位模数转换模块有了事件管理器强大的实时处理功能和PWM控制波形发生器以及两路同时采样、保持、转换的高速A/D,TMS320LF2407几乎可以实现任何电机控制
2.
2.2A/D转换原理A/D转化电路亦称“模拟数字转换器”,简称“模数转换器”将模拟量或连续变化的量进行量化(离散化),转换为相应的数字量的电路随着数字技术,特别是信息技术的飞速发展与普及,在现代控制通信及检测等领域,为了提高系统的性能指标,对信号的处理广泛采用了数字计算机技术由于系统的实际对象往往都是一些模拟量如温度压力位移图像等要使计算机或数字仪表能识别处理这些信号,必须首先将这些模拟信号转换成数字信号;而经计算机分析处理后输出的数字量也往往需要将其转换为相应模拟信号才能为执行机构所接受这样,就需要一种能在模拟信号与数字信号之间起桥梁作用的电路-模数和数模转换器A/D转换器的功能是把模拟量变换成数字量由于实现这种转换的工作原理和采用工艺技术不同,因此生产出种类繁多的A/D转换芯片A/D转换器按分辨率分为4位、6位、8位、10位、14位、16位和bcd码的31/2位、51/2位等按照转换速度可分为超高速转换时间≤330ns、次超高速330~
3.3μs、高速转换时间
3.3~333μs、低速转换时间>330μs等A/D转换器按照转换原理可分为直接a/d转换器和间接a/d转换器所谓直接A/D转换器,是把模拟信号直接转换成数字信号,如逐次逼近型,并联比较型等其中逐次逼近型a/d转换器,易于用集成工艺实现,且能达到较高的分辨率和速度,故目前集成化A/D芯片采用逐次逼近型者多;间接A/D转换器是先把模拟量转换成中间量,然后再转换成数字量,如电压/时间转换型积分型;电压/频率转换型,电压/脉宽转换型等其中积分型a/d转换器电路简单,抗干扰能力强,切能作到高分辨率,但转换速度较慢有些转换器还将多路开关、基准电压源、时钟电路、译码器和转换电路集成在一个芯片内,已超出了单纯A/D转换功能,使用十分方便
2.
2.3TMS320LF2407内部A/D转换模块概述TMS320LF2407的A/D转换模块(ADC)具有以下特性
1、带内置采样和保持(S/H)的10位ADC
2、多达16个模拟输入通道(ADCIN0-ADCIN15)
3、自动排序的能力一次可执行最多16个通道的“自动转换”,而每次要转换的通道都可以通过编程来选择
4、两个独立的最多可选择8个模拟转换通道的排序器(SEQ1和SEQ2)可以独立工作在双排序器模式,或者级联之后工作在一个最多可选择16个模拟转换通道的排序器模式
5、在给定的排序方式下,4个排序控制器(CHSELSEQN)决定了模拟通道转换的顺序
6、可单独访问的16个结果转换器(RESULT0-RESULT15)用来储存转换结果
7、可有多个触发源启动A/D转换软件软件立即启动(用SOC和SEQN);EVA/B事件管理器(在EVA/B中有多个事件源可以启动A/D);外部ADCSOC引脚;
8、灵活的中断控制,允许在每一个或每隔一个序列的结束时产生中断请求
9、排序器可工作在启动/停止模式,允许多个按时间排序的触发源同步转换
10、EVA和EVB可各自独立地触发SEQ1和SEQ2(仅用于双排序器模式)
11、采样和保持获取时间窗口有单独的预定标控制
12、内置校验模式
13、内置自测试模式
2.
2.4事件管理器在实际应用中,使用TMS320LF2407来构成运动控制系统的关键是该芯片具有一个事件管理器EventManager专用外设模块事件管理器是一个专门用于电动机控制的外设模块,主要由通用定时单元、比较单元、捕获单元、正交编码脉冲电路QEP和外部输入组成
2.
2.5通用定时器TMS320LF2407的每个事件管理模块有两个可编程通用定时器GP每个GP定时器xEVA,x=1,2;对EVB,x=3,4包括一个16位定时器增/减计数的计数器TxCNT,可读写一个16位定时器比较寄存器映射双缓冲寄存器TxCMPR,可读写一个16位定时器周期寄存器映射双缓冲寄存器TxPR,可读写一个16位定时器控制寄存器TxCON可读写可选择的内部或外部输入时钟用于内部或外部时钟输入的可编程预定标器Prescaler控制和中断逻辑用于四个可屏蔽的中断下溢、溢出、定时器比较和周期中断可选方向的输入引脚TMRDIR当选择双向计数方式时,可以用来选择向上或向下计数在实际应用中,这些定时器能够产生系统所需要的计数信号、离散控制系统的采样周期、QEP电路、捕获单元和比较单元的时基等为了适应不同应用的需要,每个通用定时器都有6种可选的计数模式,分别是停止/保持模式;单增计数模式;连续增计数模式;定向增/减计数模式;连续增/减计数模式;单增/减计数模式每个GP定时器都有一个比较寄存器和一个比较PWM输出引脚,通用定时器可以工作在比较操作模式或比较PWM输出模式当工作在比较操作模式时,定时器的计数器值总是和相关的比较寄存器中的值相比较,当两者相等时就发生比较匹配事件当工作在比较PWM模式时,其输出引脚的信号受通用定时器控制寄存器的定义、定时器所处的计数模式以及定时器的计数方向的影响
2.
2.6全比较单元事件管理器EVA模块中有三个全比较单元CMPxx=1,2,3;事件管理器EVB模块中同样有三个全比较单元CMPxx=4,5,6每个比较单元都可以工作在比较模式或PWM模式下,可以通过COMCON中的位决定每个比较单元的工作模式当比较模式被选中并且全比较操作被使能时,定时器的计数器就会不断地与全比较单元的比较寄存器中的值进行比较当发生比较匹配时,全比较单元的输出引脚会根据ACTR中的定义产生合适的电平跳变,同时比较中断标志被置位如果同组中没有其他更高优先级的中断挂起,该中断标志将向DSP内核发出中断请求当工作在PWM模式下,全比较的操作类似于通用定时器的比较操作
2.
2.7捕获单元和正交编码脉冲电路捕获单元在TMS320LF2407的捕获引脚上出现跳变时被触发,事件管理器总共有6个捕获单元当捕获引脚CAPx对EVA,x=1,2,3对EVBx=4,5,6上检测到所选的跳变时,所选的GP定时器的计数值被捕获并存储在两级FIFO栈中每个EV模块都有一个正交编码脉冲电路该电路被使能后,可以在编码和计数引脚CAPI/QEPI和CAP2/QEP2对于EVA模块或CAP3lQEP3和CAP4/QEP4对于EVB模块上输入正交编码脉冲正交编码脉冲电路可用于连接光电编码器以获得旋转机械的位置和速率信息此电路在处理电机测速光电编码器的输出信号时很有用,可以大大简化电机测速的软硬件开销,提高控制系统的测速精度与可靠性如果使能了正交编码脉冲电路,则相应引脚上的捕获功能将被禁止
2.3四相反应式步进电机
2.
3.1步进电机的结构四相步进电机的基本机构如图2-2四相步进电机在结构上分为转子和定子两部分定子一般由硅钢片叠成,定子上所绕的线圈称为励磁线圈对于如图
2.1所示的绕线方式,A、A’引线形成一相,B、B’引线形成一相C、C’引线形成一相D、D’引线形成一相当给某相线圈通电时将形成8个磁极这样,对于四相八级步进电机共有A、A’,B、B’,C、C’和D、C’四个绕组、8个磁极每个定子磁极内表面都分布着小齿,它们大小相同,间距相同转子是由软磁材料制作成的其外表面也均匀分布着小齿,这些小齿与定子磁极上的小齿相同,形状相似由于小齿的齿距相同,所以不管是定子还是转子,它们的齿距角都可以由下式(
2.1)来计算式中,Z为转子的齿数图2-2四相步进电机步进示意图
2.
3.2步进电机的工作原理在步进电机的结构中必定有错齿和对齿的存在如图2-3所示我们把定子小齿和转子小齿对齐的状态称为对齿;把定子小齿与转子小齿不对齐的状态称为错齿错齿的存在是步进电机能够旋转的前提条件如果给处于错齿状态的相线圈通电,转子在电磁力的作用下,如果磁极相异,则转子向完全对齿方向转动,如果磁极性相同,则转子向完全错齿方向转动假设将电机的转子置于线圈所产生的磁场中,便会受到磁场的作用而产生与磁场方向一致的力,转子便开始转动,直到转子的磁场和线圈的磁场方向一致为止步进电机的转动就是基于这一原理实现的定子小齿转子小齿(a)对齿(b)错齿图2-3定子齿与转子齿的磁导现象按如下四个步骤循环通电A’A相通电,电流方向为A’—A;B’B相通电,电流方向为B’—B;C’C相通电,电流方向为C’—C;D’D相通电,屯流力向为D’—D可以分析出,在每一次通电过程中,步进电机的转子均相对上次通电时的平衡位置顺时针旋转了一个位移角对绕组通电一次的操作称为一拍,根据上面给出的算式每给电机一个脉冲,步进电机将转过15度,既转过一圈则需要,360/15=24个脉冲
2.5驱动芯片结构与特点本次设计采用的驱动芯片是ULN2003它是高耐压、大电流达林顿陈列由七个硅NPN达林顿管组成该电路的特点如下ULN2003的每一对达林顿都串联一个
2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连可以直接处理原先需要标准逻辑缓冲器来处理的数据ULN2003工作电压高.工作电流大.灌电流可达500mA,并且能够在关断时承受50v的电压,输出还可以在高负载电流并行运行图2-4ULN2003内部结构图第三章详细设计
3.1系统硬件设计系统硬件设计详细信息请查阅成员朱永良报告
3.2系统软件设计
3.
2.1DSP开发软件CCS介绍CCS(CodeComposerStudio)软件是德州仪器公司专为TMS320系列DSP开发的一个开发软件CCS在Windows环境下工作,类似于VC++集成开发环境,它采用图形接口界面,提供有编辑工具和工程管理工具,将代码产生工具,如汇编器、链接器、C/C++编译器、建库工具整合为一个统一的开发平台CCS支持汇编语言、C/C++语言编程能对DSP进行指令级的仿真和可视化实时数据分析,极大地方便了DSP系统地软硬件开发但多数情况下,考虑到软件的移植性问题,一般采用C语言编程下图所示为CCS平台的组成图3-1 CCS平台组成CCS集成的源代码编辑环境,使程序的修改更为方便;CCS集成的代码生成工具,使开发设计人员不必键入大量的命令及参数;CCS集成的调试工具,使程序调试一目了然,大量的观察窗口使程序调试得心应手更重要的是CCS增强了实时、嵌入信号的开发过程,开发人员可在不中断程序运行的情况下检查算法的对错,实现对硬件的实时跟踪调试,大大缩短了程序的开发时间
3.
2.2程序控制流程如下图所示为主程序流程图图3-2主程序流程图程序运行开始后,首先进行系统初始化,初始化内容包括将DSP的IOPE0到IOPE7管脚设置为I/O模式、将中断模式位清零使所有未屏蔽的中断使能、将IOPE0到IOPE7管脚设置为低电平既使开发板上的灯全部熄灭、定时器1初始化设置定时周期和计数模式等
3.
2.3电机初始化程序main{SystemInit;//系统初始化MCRC=MCRC0xFF00;//IOPE0-7设为IO口模式PEDATDIR=0xFF00;//所有LED=0asmCLRCINTM;LcdInit;/*LCD初始化*/Timer1Init;//定时器初始化while1{KeyLed;}}voidSystemInit//系统初始化程序{asmSETCINTM;/*关闭总中断*/asmCLRCSXM;/*禁止符号位扩展*/asmCLRCCNF;/*B0块映射为on-chipDARAM*/asmCLRCOVM;/*累加器结果正常溢出*/SCSR1=0x83FE;/*系统时钟CLKOUT=20*2=40M*//*打开ADCEVAEVBCAN和SCI的时钟系统时钟CLKOUT=40M*/WDCR=0x006F;/*禁止看门狗看门狗时钟64分频*/KickDog;/*初始化看门狗*/IFR=0xFFFF;/*清除中断标志*/IMR=0x0002;/*打开中断2*/}
3.
2.4电机控制程序图3-3电机控制流程图voidKeyLed{ifnumled==AD//修改参数AD可以控制步进电机转速{PEDATDIR=PEDATDIR0xFF00;//IOPE1234=0;LED全灭PEDATDIR=PEDATDIR|0x0002;//IOPE=1;LED1亮}ifnumled==2*AD{PEDATDIR=PEDATDIR0xFF00;//IOPE1234=0;LED全灭PEDATDIR=PEDATDIR|0x0004;//IOPE2=1;LED2亮}ifnumled==3*AD{PEDATDIR=PEDATDIR0xFF00;//IOPE1234=0;LED全灭PEDATDIR=PEDATDIR|0x0008;//IOPE3=1;LED3亮}ifnumled==4*AD{PEDATDIR=PEDATDIR0xFF00;//IOPE1234=0;LED全灭PEDATDIR=PEDATDIR|0x0010;//IOPE3=1;LED4亮}ifnumled=4*AD{Que;WriteMenu16b;numled=1;}}程序初始化后,DSP的AD转换模块将电位器输入的电压模拟信号转换为数字信号并存在结果寄存器RESULT0(设计采用的通道为AD0通道)中,我们通过赋值的方式将寄存器里的值赋给数组,然后用求平均数的方式来进行滤波,最后将平均值赋值整数值AD根据上面的程序可以看出AD的大小决定了脉冲之间的间隔,也就是说通过调节AD的值可以控制电机的转速
3.3程序调试在PC机系统安装好编译软件CCS
3.3后,在计算机桌面上将出现两个快捷方式图标,一个是SetupCCStudiov
3.3,另一个是CCStudiov
3.3SetupCCStudiov
3.3是用来对该编译器的运行环境进行配置;CCStudiov
3.3为程序仿真调试集成环境软件CCS集成开发环境不能直接将汇编源代码或C语言源代码文件Build生成DSP可执行代码必须使用项目(Project)来管理整个设计和调试过程项目保存为*.pjt文件新建完项目并把C源程序文件(.C)、汇编源程序文件.ASM、目标文件.OBJ、库文件.LIB、命令文件.CMD等都加入后,便可以开始调试程序其中的头文件将通过在程序中用include来添加在调试过程中也遇到了一些问题,例如电机无法正常运转,后来在同学的帮助下终于找到了问题的所在,最终解决了问题第四章心得体会这次为期一周的DSP课程设计,我不仅仅学到了DSP设计方面的知识,更使我懂得一个仪器的设计过程在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性在方案设计选择和芯片的选择上,培养了我们综合应用的能力对集成开发环境CCS的使用也有了更深的了解,对DSP芯片的应用也有了更深刻的体会还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力并且我们熟练掌握了有关器件的性能及测试方法再次感谢老师的辅导以及同学的帮助,是他们让我有了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路课程设计时间虽然很短,但我学习了很多的东西,使我眼界打开,感受颇深在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!参考文献
[1]王玲,王晓明.电动机的DSP控制-TI公司DSP应用.北京北京航空航天大学出版社,2004
[2]刘和平,邓力.DSP原理及电机控制应用.北京北京航空航天大学出版社,2006
[3]王晓丹.基于单片机的步进电机细分驱动系统的研究[硕士学位论文].长沙中南大学控制科学与工程,2008
[4]孙忠献.电机技术与应用.福州福建科学技术出版社,2004
[5]李爱芹.基于DSP的三相混合式步进电机细分驱动系统研究[硕士学位论文].杭州浙江工业大学控制理论与控制工程,2006
[6]孙忠献.电机技术与应用.福州福建科学技术出版社,2004
[7]章烈剽.基于单片机的高进度步进电机控制研究[硕士学位论文].武汉武汉理工大学控制理论与控制工程,2007
[8]刘爱萍.基于C8051F005单片机的两相混合式直线步进电机驱动系统的设计[硕士学位论文].呼和浩特内蒙古农业大学农业电气与自动化,2007
[9]汤涌.基于电机参数的同步电机模型.电网技术,2007
[10]杨渝钦.控制电机.天津机械工业出版社,2008附录/*Main.c*//*步进电机控制系统程序*/#includehd
44780.h#includeglobal.cvoidSystemInit;voidTimer1Init;voidLcdInitvoid;voidWriteComUint16com;voidWriteMenu1Uint16numUint16*pBuffer;voidKickDog;voidKeyLed;voidLv;voidQue;Uint16a
[6]b
[6];unsignedintnumled=0;unsignedinti=0j=0t0=0k=0D=0;unsignedintRESULT_0=0AD=0;unsignedintAD0
[18]AD_0AD_FLAG=0;floatAD_E=
0.0;main{SystemInit;//系统初始化MCRC=MCRC0xFF00;//IOPE0-7设为IO口模式PEDATDIR=0xFF00;//所有LED=0asmCLRCINTM;LcdInit;/*LCD初始化*/Timer1Init;//定时器初始化while1{KeyLed;}}voidSystemInit{asmSETCINTM;/*关闭总中断*/asmCLRCSXM;/*禁止符号位扩展*/asmCLRCCNF;/*B0块映射为on-chipDARAM*/asmCLRCOVM;/*累加器结果正常溢出*/SCSR1=0x83FE;/*系统时钟CLKOUT=20*2=40M*//*打开ADCEVAEVBCAN和SCI的时钟系统时钟CLKOUT=40M*/WDCR=0x006F;/*禁止看门狗看门狗时钟64分频*/KickDog;/*初始化看门狗*/IFR=0xFFFF;/*清除中断标志*/IMR=0x0002;/*打开中断2*/}voidTimer1Init{EVAIMRA=0x0080;//定时器1周期中断使能EVAIFRA=0xFFFF;//清除中断标志GPTCONA=0x0000;T1PR=2500;//定时器1初值定时
0.4us*2500=1msT1CNT=0;T1CON=0x144E;//增模式TPS系数40M/16=
2.5MT1使能}voidKeyLed{while1{ifAD_FLAG==1{AD_FLAG=0;fori=0;i18;i++{AD_Simple;AD0[i]=RESULT_0;}Lv;}}ifnumled==AD//修改这些参数可以控制步进电机转速{PEDATDIR=PEDATDIR0xFF00;//IOPE1234=0;LED全灭PEDATDIR=PEDATDIR|0x0002;//IOPE=1;LED1亮}ifnumled==2*AD{PEDATDIR=PEDATDIR0xFF00;//IOPE1234=0;LED全灭PEDATDIR=PEDATDIR|0x0004;//IOPE2=1;LED2亮}ifnumled==3*AD{PEDATDIR=PEDATDIR0xFF00;//IOPE1234=0;LED全灭PEDATDIR=PEDATDIR|0x0008;//IOPE3=1;LED3亮}ifnumled==4*AD{PEDATDIR=PEDATDIR0xFF00;//IOPE1234=0;LED全灭PEDATDIR=PEDATDIR|0x0010;//IOPE3=1;LED4亮}ifnumled=4*AD{Que;WriteMenu16b;numled=1;}}voidQue{intv=2500/AD;a
[2]=v/1000;//千位a
[3]=v-a
[2]*1000/100;//百位a
[4]=v-a
[2]*1000-a
[3]*100/10;//十位a
[5]=v-a
[2]*1000-a
[3]*100%10;//个fori=0;i=6;i++{b[i]=a[i]+0x30;};}voidAD_Simple{ADCTRL1=0x4000;/*ADC模块复位*/asmNOP;ADCTRL1=0x0020;/*自由运行启动/停止模式双排序器工作模式*/MAXCONV=0x0000;CHSELSEQ1=0x0000;//第0通道ADCTRL2=0x4000;//复位使排序器指针指向CONV00ADCTRL2=0x2000;/*启动ADC转换*/whileADCTRL20x1000==0x1000;/*等待转换完成*/asmNOP;RESULT_0=RESULT06;}voidLv{unsignedintMaxAD0=0;unsignedintMinAD0=AD0
[0];unsignedinttempAD0=0;forj=0;j18;j++{ifAD0[j]MaxAD0MaxAD0=AD0[j];elseifAD0[j]MinAD0MinAD0=AD0[j];}forj=0;j18;j++{tempAD0=tempAD0+AD0[j];}AD_0=tempAD0-MaxAD0-MinAD0/16;AD_E=AD_0*100/1023+10;AD=intAD_E;}voidinterruptc_int2/*定时器1中断服务程序*/{T1CNT=0;numled++;ifPIVR!=0x27{asmCLRCINTM;return;}t0++;ifAD_FLAG==0t0%1000==0//定时AD采样{AD_FLAG=1;}EVAIFRA=0x80;asmCLRCINTM;}voidKickDog/*踢除看门狗*/{WDKEY=0x5555;WDKEY=0xAAAA;}#includeglobal.c#includehd
44780.h#defineSetRSPADATDIR=PADATDIR|0xFF08#defineClrRSPADATDIR=PADATDIR0xFFF7#defineSetRWPADATDIR=PADATDIR|0xFF10#defineClrRWPADATDIR=PADATDIR0xFFEF#defineSetEPADATDIR=PADATDIR|0xFF20#defineClrEPADATDIR=PADATDIR0xFFDFvoidLCDPINvoid{PEDATDIR=PEDATDIR|0x0080;PBDATDIR=PBDATDIR0x00FF;}voidLCDPOUTvoid{PEDATDIR=PEDATDIR0xFF7F;PBDATDIR=PBDATDIR|0xFF00;}voiddelayUint16number{Uint16j;forj=0;jnumber;j++;}//============================================voidBusyvoid{Uint16Temp=0x0080;LCDPIN;delay200;ClrRS;SetRW;whileTemp{SetE;delay50;Temp=PBDATDIR;Temp=Temp0x0080;ClrE;delay50;}}//==========================================voidWriteComUint16com{Busy;delay100;LCDPOUT;delay200;ClrRS;ClrRW;delay50;com=0xFF00|com;PBDATDIR=com;SetE;delay50;ClrE;}voidWriteMenu1Uint16numUint16*pBuffer{Uint16it;WriteCom0x80;SetRS;ClrRW;delay50;fori=num;i!=0;i--{t=*pBuffer;t=0xFF00|t;PBDATDIR=t;SetE;delay50;ClrE;pBuffer++;}}//================================================================voidLcdInitvoid{WriteCom0x30;WriteCom0x30;WriteCom0x30;delay1000;WriteCom0x01;delay1000;WriteCom0x02;delay1000;WriteCom0x06;delay1000;WriteCom0x0c;delay1000;WriteCom0x38;}//==================================================================//Nomore。