DSP直流电机调速课程设计_第1页
DSP直流电机调速课程设计_第2页
DSP直流电机调速课程设计_第3页
DSP直流电机调速课程设计_第4页
DSP直流电机调速课程设计_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、直流电机PWM调速原理介绍:调节PWM信号占空比。可以调节直流电机速度

(1)、直流电机调速原理:

当改变励磁电流时,可以改变磁通量的大小,从而达到变磁通调速的目的。但由于励磁线圈发热和电动机磁饱和的限制,电动机的励磁电流和磁通量只能在低于其额定值的范围内调节,故只能弱磁调速。而对于调节电枢外加电阻R时,会使机械特性变软,导致电机带负载能力减弱。当改变电枢电压,理想空载转速随电枢电压升降而发生相应的升降变化。不同电枢电压的机械特性曲线相互平行,说明硬度不随电枢电压的变化而改变,电机带负载能力恒定。当我们平滑调节他励直流电机电枢两端电压时,可实现电机的无级调速。

(2

)、PWM基本原理:

PWM是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,如电机调速、温度控制、压力控制等。在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。设电机始终接通电源时,电机转速最大为V,当我们改变占空比D:t/T时,就可以得到不同的电机平均速度,从而达到调速的目的。严格地讲,平均速度与占空比D并不是严格的线性关系,在一般的应用中,可以将其近似地看成线性关系。

(3)、实现方法:

PWM信号的产生通常有两种方法:一种是软件的方法;另一种是硬件的方法。硬件方法的实现已有很多文章介绍,这里不做赘述。本文主要介绍利用单片机对PWM信号的软件实现方法。2、电路的工作原理及主要芯片的性能:(1)电路的工作原理图为:(2)L298N的工作原理:L298N是SGS公司的产品,其内部包含4通道逻辑驱动电路,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机口。由L298N构成的PWM功率放大器的工作形式为单极可逆模式,2个H桥的下侧桥晶体管发射极连在一起,其引脚排列如图1所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传号。L298可驱动2个电机,OUTlOUT2和OUT3、OUT4之间分别接2个电动机。5、7、10、12脚接输人控制电平,控制电机的正反转,ENA、ENB接控制使能端,控制电机的停转。这些特性使得L298N很适合用作小型直流电机控制芯片。下面图1为L298N的外部引脚图:图1:L298N的外部引脚3、脉宽可调的PWM方波程序:(1)程序软件流程图:(2)程序代码(加注释):#include "f2407_c.h"//屏蔽中断程序voidinlinedisable(){ asm("setcINTM");}//系统初始化子程序intinitial(){ asm("setc SXM"); //符号位扩展有效 asm("clrc OVM"); //累加器中结果正常溢出 asm("clrc CNF"); //B0被配置为数据存储空间 SCSR1=0x81FE; //CLKIN=6M,CLKOUT=4CLKIN=24M WDCR=0x0E8; //不使能看门狗,因为SCSR2中的WDOVERRIDE //即WD复位后的缺省值为1,故可以用软件禁止看门狗 IMR=0x0000; //禁止所有中断 IFR=0x0FFFF; //清除全部中断标志,"写1清0" WSGR=0x00; //禁止所有的等待状态}//EVB模块的PWM初始化程序intpwminitial(){ MCRC=MCRC|0x007E; //IOPE1-6被配置为基本功能方式,PWM7-12 ACTRB=0x0666; //PWM12,10,8低有效,PWM11,9,7高有效 DBTCONB=0x00; //不使能死区控制 CMPR4=0x1000; CMPR5=0x3000; CMPR6=0x5000;T3PR=0x6000;//设置定时器3的周期寄存器,并设置CMPR4-6,//以确定不同的输出占空比 COMCONB=0x8200; //使能比较操作 T3CON=0x1000; //定时器3为连续增计数模式}//该中断服务程序主要是为了防止干扰,不做任何其它操作void interruptnothing(){ return; //中断直接返回}//主程序main(){ disable(); //总中断禁止 initial(); //系统初始化 pwminitial(); //PWM输出初始化 T3CON=T3CON|0x9040; //启动定时器3 while(1) { ; }}(3)调试方法、过程及结果:将示波器的红色表笔分别与DSP的J8-1、J8-3、J8-5相连,观察示波器上的输出波形,然后改变方波的占空比,看示波器上输出方波是否改变。上述的程序运行的结果可以从示波器上看出来,当红色表笔与J8-1相连时,示波器上的显示图形为:T3=T1+T2,T2=5T1,由此可见,该方波的占空比为1:5。当红色表笔与J8-3相连时,示波器上的显示图形为:T3=T1+T2,T2=T1,由此可见,该方波的占空比为1:1。当红色表笔与J8-5相连时,示波器上的显示图形为:T3=T1+T2,5T2=T1,由此可见,该方波的占空比为5:1。结果分析:由CMPR4=0x1000;CMPR5=0x3000;CMPR6=0x5000;T3PR=0x6000;四条语句可以看出DSP上J8-1、J8-3、J8-5输出的方波占空比理论值应该分别为1:5、1:1、5:1,与真实输出一致,说明输出方波的占空比与CMPR4、CMPR5、CMPR6、T3PR的赋值有关,改变这些值,就可以改变输出方波的占空比。4、CAN总线通信程序:(1)程序软件流程图:发送流程图接收流程图(2)程序代码(加注释):发送程序代码(加注释):#include"f2407_c.h"//引用头部文件intCAN_FLAG;//定义标志寄存器voidsystem_init();//声明在程序中需要用到是函数voidCANMBX_ISR();voidCAN_INIT();voidinlinedisable(){asm("setcINTM");}voidinlineenable(){asm("clrcINTM");}//系统初始化子程序//(1)主程序main(){system_init();//系统初始化子程序CAN_FLAG=0x00;//清CAN用户标志,CAN_FLAG=0表示收到数据CAN_INIT();//CAN初始化子程序enable();for(;;){TCR=0x20;//MBX3请求发送while(TCR&0x2000==0)//等待发送应答continue;TCR=0x2000;//清TA3和MIF3标志位CAN_FLAG=0x0000;//清接收到标志MDER=0x0000;//邮箱不使能MCR=0x0140;//CDR=1,数据改变请求MBX3A=MBX2A;//用邮箱2中数据更新3中的数据MBX3B=MBX2B;MBX3C=MBX2C;MBX3D=MBX2D;MCR=0x0480;//DB0=1,AB0=1,STM=0设置为正常工作模式MDER=0x04C;}}//(2)系统初始化子程序voidsystem_init(){asm("setc SXM"); //抑制符号位扩展 asm("clrc OVM"); //累加器中结果正常溢出 asm("clrc CNF"); //B0被配置为数据存储空间 asm("setc INTM"); //禁止所有中断 SCSR1=0x81FE; //CLKIN=6M,CLKOUT=4CLKIN=24M WDCR=0x0E8; //不使能看门狗,因为SCSR2中的WDOVERRIDE //即WD复位后的缺省值,故可以用软件禁止看门狗 IMR=0x0010; //开中断优先级5 IFR=0x0FFFF; //清除全部中断标志,"写1清0"}//(3)CAN初始化子程序voidCAN_INIT(){MCRB=MCRB|0x0C0;//设置IOPC6、IOPC7为CANRX,CANTXCAN_IFR=0x0FFFF;//清所有中断标志LAM1_H=0x7FFF;//设置邮箱3、2的屏蔽ID寄存器LAM1_L=0x0FFFF;//0则ID必须匹配MCR=0x1000;//CCR=1改变配置请求while(GSR&0x0010==0)continue;//CCE=1时即可配置BCR2、BCR1寄存器BCR2=0x01;//波特率预分频寄存器BCR1=0x033;//波特率设置为500KbpsMCR=MCR&0x0EFFF;//CCR=0改变配置请求while(GSR&0x0010!=0)continue;//只有当CCE=0时,配置BCR2、BCR1寄存器成功MDER=0x040;//不使能邮箱2,邮箱2改为接收方式MCR=0x0103;//CDR=1,数据区改变请求MSGID2H=0x2447;//设置邮箱2的控制字及ID,IDE=0,AME=0,AAM=0//标准方式为MSGID2H[12~2]MSGID2L=0x0FFFF;MSGCTRL2=0x08;//设置控制,数据长度DCL=8,RTR=0数据帧MBX2A=0x1000;//邮箱2信息初始化MBX2B=0x3000;MBX2C=0x0000;MBX2D=0x0000;MSGID3H=0x2447;/设置邮箱3的标识符MSGID3L=0x0FFFF;MSGCTRL3=0x08;//RTR=0,DCL=8MBX3A=0x1500;//邮箱3信息初始化MBX3B=0x2000;MBX3C=0x5500;MBX3D=0x6000;CAN_IMR=0x0F7FF;CAN_IFR=0x0FFFF;MCR=0x0480;//DB0=1,AB0=1,STM=1设置为自测试模式MDER=0x04C;//使能邮箱2和3,邮箱2为接收方式//Counter=0;}//(4)中断程序voidinterruptGRIS5(){switch(PIVR){case64:CANMBX_ISR();break;}enable();return;}voidCANMBX_ISR(){RCR=0x040;//复位RMP2和MIF2CAN_FLAG=1;//置用户接收标志}//直接返回中断服务程序voidinterruptnothing(){ return;}接收程序代码(加注释):#include"f2407_c.h"//引用头部文件intCAN_FLAG;//定义标志寄存器voidsystem_init();//声明在程序中需要用到是函数voidCANMBX_ISR();voidCAN_INIT();voidinlinedisable(){asm("setcINTM");}voidinlineenable(){asm("clrcINTM");}//EVB模块的PWM初始化程序intpwminitial(){MCRC=MCRC|0x007E; //IOPE1-6被配置为基本功能方式,PWM7-12ACTRB=0x0666; //PWM12,10,8低有效,PWM11,9,7高有效DBTCONB=0x00; //不使能死区控制CMPR4=MBX2A;CMPR6=MBX2B;T3PR=0x6000;//设置定时器3的周期寄存器,并设置CMPR4-6,以确定不同的输出占空比COMCONB=0x8200; //使能比较操作T3CON=0x1000; //定时器3为连续增计数模式}//(1)主程序main(){disable(); //总中断禁止system_init();//系统初始化子程序CAN_FLAG=0x00;//清CAN用户标志,CAN_FLAG=0表示收到数据CAN_INIT();//CAN初始化子程序enable();for(;;){while(CAN_FLAG==0)continue;//等待接收数据CAN_FLAG=0x0000;//清接收到标志MDER=0x0000;//邮箱不使能MCR=0x0140;//CDR=1,数据改变请求pwminitial(); //PWM输出初始化T3CON=T3CON|0x9040; //启动定时器3MCR=0x0480;//DB0=1,AB0=1,STM=0设置为正常工作模式MDER=0x044;}}//(2)系统初始化子程序voidsystem_init(){asm("setc SXM"); //抑制符号位扩展 asm("clrc OVM"); //累加器中结果正常溢出 asm("clrc CNF"); //B0被配置为数据存储空间 asm("setc INTM"); //禁止所有中断 SCSR1=0x81FE; //CLKIN=6M,CLKOUT=4CLKIN=24M WDCR=0x0E8; //不使能看门狗,因为SCSR2中的WDOVERRIDE //即WD复位后的缺省值,故可以用软件禁止看门狗 IMR=0x0010; //开中断优先级5 IFR=0x0FFFF; //清除全部中断标志,"写1清0" WSGR=0x00; //禁止所有的等待状态}//(3)CAN初始化子程序voidCAN_INIT(){MCRB=MCRB|0x0C0;//设置IOPC6、IOPC7为CANRX,CANTXCAN_IFR=0x0FFFF;//清所有中断标志LAM1_H=0x7FFF;//设置邮箱3、2的屏蔽ID寄存器LAM1_L=0x0FFFF;//0则ID必须匹配MCR=0x1000;//CCR=1改变配置请求while(GSR&0x0010==0)continue;//CCE=1时即可配置BCR2、BCR1寄存器BCR2=0x01;//波特率预分频寄存器BCR1=0x033;//波特率设置为500KbpsMCR=MCR&0x0EFFF;//CCR=0改变配置请求while(GSR&0x0010!=0)continue;//只有当CCE=0时,配置BCR2、BCR1寄存器成功MDER=0x040;//不使能邮箱2,邮箱2改为接收方式MCR=0x0103;//CDR=1,数据区改变请求MSGID2H=0x2447;//设置邮箱2的控制字及ID//IDE=0,AME=0,AAM=0,标准方式为MSGID2H[12~2]MSGID2L=0x0FFFF;MSGCTRL2=0x08;//设置控制,数据长度DCL=8,RTR=0数据帧MBX2A=0x3000;//邮箱2信息初始化MBX2B=0x3000;MBX2C=0x0000;MBX2D=0x0000;MSGID3H=0x2447;//设置邮箱3的标识符MSGID3L=0x0FFFF;MSGCTRL3=0x08;//RTR=0,DCL=8MBX3A=0x1234;//邮箱3信息初始化MBX3B=0x5678;MBX3C=0x9abc;MBX3D=0x1111;CAN_IMR=0x0F7FF;CAN_IFR=0x0FFFF;MCR=0x0480;//DB0=1,AB0=1,STM=1设置为自测试模式MDER=0x04C;//使能邮箱2和3,邮箱2为接收方式}

温馨提示

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

评论

0/150

提交评论