《DSP原理及电机控制应用》课程设计DSP直流电机调速课程设计Word下载.docx

上传人:b****3 文档编号:17143793 上传时间:2022-11-28 格式:DOCX 页数:17 大小:312.81KB
下载 相关 举报
《DSP原理及电机控制应用》课程设计DSP直流电机调速课程设计Word下载.docx_第1页
第1页 / 共17页
《DSP原理及电机控制应用》课程设计DSP直流电机调速课程设计Word下载.docx_第2页
第2页 / 共17页
《DSP原理及电机控制应用》课程设计DSP直流电机调速课程设计Word下载.docx_第3页
第3页 / 共17页
《DSP原理及电机控制应用》课程设计DSP直流电机调速课程设计Word下载.docx_第4页
第4页 / 共17页
《DSP原理及电机控制应用》课程设计DSP直流电机调速课程设计Word下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

《DSP原理及电机控制应用》课程设计DSP直流电机调速课程设计Word下载.docx

《《DSP原理及电机控制应用》课程设计DSP直流电机调速课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《《DSP原理及电机控制应用》课程设计DSP直流电机调速课程设计Word下载.docx(17页珍藏版)》请在冰豆网上搜索。

《DSP原理及电机控制应用》课程设计DSP直流电机调速课程设计Word下载.docx

(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()

setcSXM"

//符号位扩展有效

clrcOVM"

//累加器中结果正常溢出

clrcCNF"

//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为连续增计数模式

//该中断服务程序主要是为了防止干扰,不做任何其它操作

voidinterruptnothing()

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:

结果分析:

由CMPR4=0x1000;

CMPR5=0x3000;

CMPR6=0x5000;

四条语句可以看出DSP上J8-1、J8-3、J8-5输出的方波占空比理论值应该分别为1:

5、1:

1、5:

1,与真实输出一致,说明输出方波的占空比与CMPR4、CMPR5、CMPR6、T3PR的赋值有关,改变这些值,就可以改变输出方波的占空比。

4、CAN总线通信程序:

发送流程图接收流程图

发送程序代码(加注释):

//引用头部文件

intCAN_FLAG;

//定义标志寄存器

voidsystem_init();

//声明在程序中需要用到是函数

voidCANMBX_ISR();

voidCAN_INIT();

voidinlinedisable()

}

voidinlineenable()

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()

//抑制符号位扩展

//累加器中结果正常溢出

//B0被配置为数据存储空间

//禁止所有中断

//CLKIN=6M,CLKOUT=4CLKIN=24M

//即WD复位后的缺省值,故可以用软件禁止看门狗

IMR=0x0010;

//开中断优先级5

//(3)CAN初始化子程序

voidCAN_INIT()

MCRB=MCRB|0x0C0;

//设置IOPC6、IOPC7为CANRX,CANTX

CAN_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;

//波特率设置为500Kbps

MCR=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=8

MBX3A=0x1500;

//邮箱3信息初始化

MBX3B=0x2000;

MBX3C=0x5500;

MBX3D=0x6000;

CAN_IMR=0x0F7FF;

//DB0=1,AB0=1,STM=1设置为自测试模式

//使能邮箱2和3,邮箱2为接收方式

//Counter=0;

}

//(4)中断程序

voidinterruptGRIS5()

switch(PIVR)

case64:

CANMBX_ISR();

break;

voidCANMBX_ISR()

RCR=0x040;

//复位RMP2和MIF2

CAN_FLAG=1;

//置用户接收标志

//直接返回中断服务程序

voidinterruptnothing()

return;

接收程序代码(加注释):

MCRC=MCRC|0x007E;

ACTRB=0x0666;

//PWM12,10,8低有效,PWM11,9,7高有效

DBTCONB=0x00;

CMPR4=MBX2A;

CMPR6=MBX2B;

//设置定时器3的周期寄存器,并设置CMPR4-6,以确定不同的输出占空比

COMCONB=0x8200;

//使能比较操作

T3CON=0x1000;

//定时器3为连续增计数模式

disable();

while(CAN_FLAG==0)continue;

//等待接收数据

T3CON=T3CON|0x9040;

//启动定时器3

MDER=0x044;

//抑制符号位扩展

//累加器中结果正常溢出

//B0被配置为数据存储空间

//禁止所有中断

//CLKIN=6M,CLKOUT=4CLKIN=24M

//不使能看门狗,因为SCSR2中的WDOVERRIDE

//即WD复位后的缺省值,故可以用软件禁止看门狗

//开中断优先级5

//清除全部中断标志,"

//禁止所有的等待状态

BCR1=0x033;

MCR=MCR&

=0)continue;

//设置邮箱2的控制字及ID

//IDE=0,AME=0,AAM=0,标准方式为MSGID2H[12~2]

MBX2A=0x3000;

//设置邮箱3的标识符

MBX3A=0x1234;

MBX3B=0x5678;

MBX3C=0x9abc;

MBX3D=0x1111;

//置用户接收标志

CMPR4=MBX2B;

//直接返回中断服务程序

将两台DSP试验箱用两根导线连接起来,一台电脑作为发送端,运行发送程序,一台电脑作为接收端,运行接收程序,通过改变发送程序中MBX2A、MBX2B的赋值,间接改变CMPR4、CMPR6的值,因此,输出的方波的占空比改变了,从而影响了电机的转速和旋转的方向,即实现了通过改变发送信息,控制电机的转速和正反旋转。

5、各模块输出的波形图:

输入的两路波形可以从示波器上看出来,如下:

输出的两路波形可以从示波器上看出来,如下:

从示波器上可以看出,影响电机转速的是方波的占空比,占空比越大,则平均电压越高,两路输出,J8-1一路输出高电平,J8-5一路输出低电平,则实现正传,如果J8-1一路输出低电平,J8-5一路输出高电平,则实现反转。

通过改变占空比,间接改变平均电压,平均电压越小,转速越慢,平均电压越大,转速越快。

6、课程设计收获与体会:

通过本次课程设计,我对DSP这门课程有了更进一步的认识,由原来的半知半解,到现在的初步掌握,对于本次课程设计的收获分一下几点:

(1)熟悉掌握了L298N这块芯片的引脚及其功能;

(2)认识并且理解了DSP控制直流电机的原理;

(3)掌握了直流电机PWM调速的原理;

(4)对于改变方波的占空比,进而控制电机的转速和旋转方向有了深刻的认识,可以熟练的控制电机的转速,并且实现正传和反转;

(5)更好的认识了CAN控制器对于信号的发送和接收操作。

7、参考文献:

(1)《DSP原理及电机控制应用》北京航空航天大学出版社,刘和平、邓力、江渝、郑群英编著;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 营销活动策划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1