步进电机控制系统设计_第1页
步进电机控制系统设计_第2页
步进电机控制系统设计_第3页
步进电机控制系统设计_第4页
步进电机控制系统设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE23目录第1章DSP步进电机控制系统简介 11.1TMS320LF2407DSP简介 11.2两相步进电机结构 21.3两相步进电机的原理 31.4两相步进电机的供电方式 3第2章DSP硬件系统设计 42.1系统总框图 42.2各硬件介绍 42.2.1TMS320LF2407芯片说明 42.2.2电源电路 52.2.3复位电路 62.2.5LED电路 72.2.6RAM 72.2.7步进电机驱动电路 82.2.874LS08电路 9第3章软件设计 103.1程序设计思路 103.2程序流程图 103.3程序设计 113.3.1初始化程序 113.3.2键盘扫描程序 123.3.3中断服务程序 133.3.4主程序 14第4章编程与调试 184.1调试步骤 184.2调试结果 19第5章致谢与总结 20附录 21总电路原理图 21参考文献 22第1章DSP步进电机控制系统简介1.1TMS320LF2407DSP简介TMS320LF240x系列DSP是专为数字电机控制和其它控制系统而设计的。它内部不但有高性能的C2xxCPU内核,配置有高速数字信号处理的结构,且有单片电机控制的外设。TMSLF2407将数字信号处理的高速运算功能与面向电机的强大控制功能结合在一起,成为传统的多微处理器单元和多片系统的理想替代品,可用于控制功率开关转换器,可提供多电机的控制等。TMSLF2407采用诸如自适应控制、卡尔曼滤波和控制等先进的控制算法,支持多项式的高速实时算法,因而可减少力矩纹波、降低攻耗、减少振动,从而延长被控设备的寿命,TMS320LF2407采用4级流水线结构与改进的哈佛结构。片内外设及存储器资源如下:(1)双8路或单16路的10位A/D转换器,转换时间为375ns(该指标视型号而不同)。(2)片内存储器:32K字闪存、2.5K字RAM,其中包含544字的双端口RAM(DARAM),2K字的单端口RAM(SARAM)。(3)41个可独立编程的多路复用I/O引脚。(4)两个事件管理器EVA、EVB,适用于控制各种类型的电机,为工业自动化方面的应用奠定了基础。两个事件管理器EVA、EVB包含有如下资源:2个16位通用定时器;8个16位PWM通道;对外部事件进行定时捕捉的3个捕捉单元,其中2个具有直接与光电编码器输出脉冲相连接的能力;防止击穿故障的可编程PWM死区控制。(5)串行通信接口SCI模块。(6)串行外设接口SPI模块。(7)带锁相环PLL的时钟模块。(8)5个外部中断(复位、两个驱动保护中断与两个可屏蔽中断)。(9)CAN2.0B模块,即控制器局域网模块。(10)看门狗(WD)定时器模块。(11)可扩展的192K字的空间,分别为64K字的程序存储器空间、64K字的数据存储器空间、64K字的I/O空间。(12)用于仿真的JTAG接口。1.2两相步进电机结构图1.2两相步进电机结构图电动机轴向结构如图2.1所示。转子被分为完全对称的两段,一段转子的磁力线沿转子表面呈放射形进入定子铁心,称为N极转子;另一段转子的磁力线经过定子铁心沿定子表面穿过气隙回归到转子中去,称为S极转子。图中虚线闭和回路为磁力线的行走路线。相应地定子也被分为两段,其上装有A、B两相对称绕组.同时,沿转子轴在两段转子中间安装一块永磁铁,形成转子的N、S极性。从轴向看过去,两段转子齿中心线彼此错开半个转子齿距。1.3两相步进电机的原理通常电机的转子为永磁体,当电流流过定子绕组时,定子绕组产生一矢量磁场。该磁场会带动转子旋转一角度,使得转子的一对磁场方向与定子的磁场方向一致。每输入一个电脉冲,电动机转动一个角度前进一步。它输出的角位移与输入的脉冲数成正比、转速与脉冲频率成正比。改变绕组通电的顺序,电机就会反转。所以可用控制脉冲数量、电动机各相绕组的通电顺序来控制步进电机的转动。1.4两相步进电机的供电方式两相四线的步进电机,有两个绕组:A,B。在半步供电方式时,电机的通电方式采用顺序八拍一个循环给两相绕组供电为:八拍,半步:(+A)(+B)--(+B)--(-A)(+B)--(-A)--(-A)(-B)--(-B)--(+A)(-B)--(+A)-。两相混合式步进电动机还有一种供电方式为双4拍整步方式,即采用通电次序两相,四拍:(+A)(+B)--(-A)(+B)--(-A)(-B)--(+A)(-B)—。第2章DSP硬件系统设计2.1系统总框图DSP系统由电源、锁相环、时钟、复位电路、JTAG仿真、RAM存储模块、LED显示等电路组成,系统框图如图2.1所示:RAMRAM存储模块LEDLED显示电源电源TMS320LF2407TMS320LF2407复位电路复位电路74LS08电路74LS08电路图2.1系统总框图2.2各硬件介绍2.2.1TMS320LF2407芯片说明封装类型:LQFP工作温度最低:-40°C工作温度最高:125°CDSP类型:定点MMAC:40器件标号:320存储器容量,RAM:5KB封装类型:剥式工作温度范围:-40°Cto+125°C接口类型:CAN,SCI,SPI电源电压最大:3.6V电源电压最小:3V针脚数:144频率:30MHz2.2.2电源电路系统采用TPS7333Q进行3.3V电压的转换对最小系统供电,并添加滤波电容。电源电路图如图2.4所示。图2.2电源电路图2.2.3复位电路JTAG是JOINTTESTACTIONGPOUP的简称,JTAG接口用于连接DSP系统板和仿真器,实现仿真器DSP访问,JTAG的接口必须和仿真器的接口一致,否则将无法连接上仿真器。TMS320LF2407A内部带有复位电路,因此可以直接RS复位引脚外面接一个上拉电阻即可。JTAG连接图如图2.5所示。图2.3JTAG电路图2.2.5LED电路系统用8个LED灯指示计数值的0-255,计数输入通过按键中断实现。按键接在XINT1上并上拉,下降沿有效,8个LED分别接在E口的IOPE0-IOPE7上,按键及LED灯指示电路如图2.6所示。图2.4按键及LED灯指示电路2.2.6RAMCY7C1021RAM特点如下:1.64K,16位静态RAM2.高速转换时间:8、10、12、15ns3.CMOS低功耗管理4.TTL可共存界面5.3.3V供电6.完全静态管理:无时钟或刷新要求7.三种输出状态8.高位、低位数据控制 CY7C1021RAM芯片引脚图如图2.7所示。图2.5CY7C1021RAM芯片引脚图2.2.7步进电机驱动电路由DSP产生的PWM信号不足以直接驱动电机运行,需要使用驱动电路,可使用集成芯片ULN2803,它是恒压恒流双H桥电机芯片,可同时控制两台直流电机,输出电流可达2A。使用时应使用供电电压VS大于其逻辑电压VSS,否则将会出现电机失控的现象。另外,为了保护电机,在驱动电路中需要加入两组续流二极管。为了降低和减小驱动电路对控制系统的影响,可加入光耦器件。DSP产生的PWM波经施密特反相器74HC14后加到TLP521-4光耦上进行光电隔离,再送给驱动芯片ULN2803.这样控制信号就变得稳定可靠了。驱动电路如图2.8所示。图2.6步进电机驱动电路2.2.874LS08电路系统采用74LS08二输入四与门,有利于减少线路,提高系统的稳定性和时钟的准确性,74LS08右端接入一个大阻值电阻,有利于保护芯片不受损伤,模块使用外用滤波器电路回路来抑制信号抖动和电磁干扰,使信号抖动和干扰最小,其电路图如下: 图2.374LS08电路第3章软件设计3.1程序设计思路程序开始时不断扫描键盘输入,当按下“5”时,开关标志位变为1,中断服务程序开始,根据标志计数器加1或减1,从0到3共4拍,将控制子响应的控制字送到步进电机驱动器。实现步进电机的转动。3.2程序流程图 中断服务程序流程图如图3.1所示。中断服务开始中断服务开始开关标志位为1?方向标志为1?送反向控制字,步数计数器加1送正向控制字,步数计数器加1计数512?计数512?方向标志置为1方向标志置为-1中断服务程序结束是否是否否否是是图3.1中断服务程序流程图主程序流程图如图3.2所示。开始开始初始化DSP时钟初始化中断寄存器、定时器初始化ICETEK-CTR,步进电机使能键盘检测按下键盘“5”?开关标志位置1进入中断服务程序否是如图3.2主程序流程图3.3程序设计3.3.1初始化程序 系统初始化化程序如下:voidICETEKLF2407AInit(){ asm("setcINTM"); (*PIRQR0)=0; uWork=(*WSGR); uWork&=0x0fe3f; (*WSGR)=uWork; *WDCR=0x6f; *WDKEY=0x5555; *WDKEY=0xaaaa; *SCSR1=0x81fe;//40m}3.3.2键盘扫描程序 键盘扫描程序如下:charConvertScanToChar(unsignedcharcScanCode){ charcReturn;cReturn=0; switch(cScanCode) { caseSCANCODE_0:cReturn='0';break; caseSCANCODE_1:cReturn='1';break; caseSCANCODE_2:cReturn='2';break; caseSCANCODE_3:cReturn='3';break; caseSCANCODE_4:cReturn='4';break; caseSCANCODE_5:cReturn='5';break; caseSCANCODE_6:cReturn='6';break; caseSCANCODE_7:cReturn='7';break; caseSCANCODE_8:cReturn='8';break; caseSCANCODE_9:cReturn='9';break; } returncReturn;}3.3.3中断服务程序系统中断服务程序如下:voidinterruptgptime1(void){uWork=(*PIVR);switch(uWork){ case0x27: { (*EVAIFRA)=0x80;CTRLR=pwm1[nStep]; if(on==1) { nStep+=nAddStep; if(nStep<0) { nStep=3;num++; if(num>0&&num<=128)LBDS=uLED[3]; elseif(num>128&&num<=256)LBDS=uLED[2]; elseif(num>256&&num<=384)LBDS=uLED[1]; elseLBDS=uLED[0]; if(num==512) {num=0;nAddStep=1;on=0;} } elseif(nStep>3) { nStep=0;num++; if(num>0&&num<=128)LBDS=uLED[0]; elseif(num>128&&num<=256)LBDS=uLED[1]; elseif(num>256&&num<=384)LBDS=uLED[2]; elseLBDS=uLED[3]; if(num==512){num=0;k=0;nAddStep=-1;on=0;} } } else LBDS=15; nCount++;nCount%=18; if(z==0){portc=0;z=1;} else{z=0;portc=1;} break; }}}3.3.4主程序主程序如下:#include"2407c.h"#include"scancode.h"#include"math.h"#include"LF2407A.h"#defineT46uS 0x0d40voidgp_init(void);voidDelay(unsignedintnTime);voidinterrupttime(void);charConvertScanToChar(unsignedcharcScanCode);voidICETEKLF2407AInit();ioportintport8;//子程序接口voidDelay(unsignedintnDelay); //延时子程序voidled0(void);//unsignedintT46uS;ioportunsignedintport8000;ioportunsignedintport8005;ioportunsignedintport8001;ioportunsignedintport8002;ioportunsignedintport8003;ioportunsignedintport8004;ioportunsignedintport8007;#defineLBDSport8#defineCTRGRport8000#defineCTRLCDCMDRport8001#defineCTRKEYport8001#defineCTRLCDCRport8002#defineCTRCLKEYport8002#defineCTRLCDLCRport8003#defineCTRLCDRCRport8004#defineCTRLAport8005#defineCTRLRport8007ioportunsignedintportc; unsignedintuWork,nCount,num,on=0,k;unsignedintpwm1[8]={0x8c,0x89,0x83,0x86};intnAddStep=-1,nStep,z=0,j;unsignedintuLED[4]={12,9,3,6}; //控制字,逐位置1:0001B0010B0100B1000Bmain(){ unsignedintnScanCode,uWork,uWork1,i; unsignedcharcKey; uWork1=(*PIVR); ICETEKLF2407AInit(); CTRGR=0; CTRGR=0x80; CTRGR=0; //使能CTR CTRLR=0;CTRLR=0x40;CTRLR=0x0c0; uWork1=port8002; nStep=0;nAddStep=1;cKey=0; CTRLR=0x0c2; asm("setcINTM"); //关闭可屏蔽中断 (*PIRQR0)=0; *EVAIMRA=0x80; *EVAIFRA=0xffff; *GPTCONA=0x0100; *T1PR=0x1d4c; *T1CNT=0; *T1CON=0x1440; *IMR=0x3; *IFR=0xffff; asm("clrcINTM"); while(1) { if(nCount==16) { nCount=0; nScanCode=CTRKEY; nScanCode&=0x0ff; uWork=CTRCLKEY; CTRLR=0x0c2; if(nScanCode!=0) { if(nScanCode==SCANCODE_Enter) break; else { cKey=nScanCode; } cKey=nScanCode; if(cKey!=0) { if(cKey==5) { on=1; } } } } Delay(1); }}第4章编程与调试4.1调试步骤1.调试准备⑴连接设备①关闭计算机和实验箱电源。②如使用PP型仿真器则用附带的并口连线连接计算机并口和仿真器相应接口。③检查ICETEK-LF2407-A板上JP6的位置,应连接在1-2位置(靠近DSP芯片端),即设置DSP工作在MP方式。④关闭实验箱上三个开关。⑵开启设备①打开计算机电源。②打开实验箱电源开关,ICETEK-CTR板上J2、J3灯亮;打开位于实验箱中部的电机电源开关,ICETEK-CTR板上J4灯亮。③打开ICETEK-LF2407-A板上电源开关,注意板上指示灯DS1灭、DS2和DS3亮。④如使用USB型仿真器用附带的USB电缆连接计算机和仿真器相应接口,注意仿真器上两个指示灯均亮。⑶设置CodeComposerStudio为Emulator方式⑷启动CodeComposerStudio2.打开工程并浏览程序,工程目录为D:\2407EDULab\SAMotor3.编译并下载程序D:\2407EDULab\SAMotor\Dbug\SAMotor.out文件4.点击运行按钮运行程序,观察结果。5.停止程序运行并退出。4.2调试结果当按下按键“5”启动步进电机后,步进电机顺时针转动,同时可看到DS2、DS3、DS4、DS5四个发光二极管随着步进电机相序的变动而变动,当步进电机转过360°后,步进电机停止运转,四个LED灯灭。再次按下按键“5”,步进电机逆时针转动,四个放光二极管随着相序变动而

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论