关键词不能为空

当前您在: 主页 > 英语 >

DSP电机控制系统驱动程序的设计

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-01 23:46
tags:

-

2021年2月1日发(作者:louise)


DSP


电机控制系统驱动程序的设计








摘要:设计了一种


DSP

< p>
电机控制系统,开发了电机控


制可视化界面。建立计算机(上位机)与


DSP


(下位机)之


间的串口通信机制,既 而完成对电机运行的复杂控制。着重


分析


DSP


电机驱动程序的结构和相关代码,


理清程序设计的


思路 ,供相关研究人员借鉴。







关键词:


DSP


直流电机



串口通信



程序设计






中图分类号:


TP29


文献标识码:


A


文章编号:


1007-9416



2014



12-0147-03





Abstract



A kind of DSP motor control system was designed


and one motor control visual interface was developed in the


paper. The serial communication mechanism between PC of


host and DSP of client is established to finish complicated


controls of DC motor. Focus on the analysis of structures and


related codes of DSP motor drive program is expected to clear


program design ideas for relevant science researches.





Key Words



DSP




DC motor




serial communication




program design





目前,


利用


DSP


实现对电动机运行的控制已经成为电机


拖动领域流行且成 熟的方案。


通过


DSP


可以实施对多类 型电


机的多形式的运动控制,其中最突出的是对电机宽域且平滑


的调速,依据电机与


DSP


类型的不同,具有诸多实用的方案< /p>


[1



2]


。关 于直流电机的调速,理论上可以采取三种方式:


改变电枢电压,改变电枢回路电阻,调节 励磁磁通,但是由


于其它两种方法缺陷明显,目前主要采用改变电枢电压的方

< p>
法:通过调节


DSP


输出的


PWM


波形的占空比,调控输入到


电机电枢绕组的电压有效值 ,既而实现电机速度在较宽的范


围内平滑改变


[3]

< p>






本文介绍一种基于


DSP TMS3 20F2812


的电机控制系统。


利用


Visual Studio 2010



VS2010


)开发电机控制界面,构建


了计算机


(上位机 )



DSP


(下位机)


之间串口的通信机制,


实现对电机运动的控制。


着力讨 论以


DSP


为信息交换枢纽的


电机驱动 程序的设计。






1


控制系统开发






首先,利用集成了


.net Framework 4.0



Visual Studio


2010 Windows


应用程序开发平台,采用

< p>
C#


语言开发出电机


控制界面,

< br>用以实现如开停、



/


减速、< /p>


运行状态查询等可视


化电机控制功能,如图


1


所示;其次,构建上位机与下位机


之间的串口通信机制,由 上位机


PC


把相应的控制命令传递


给下 位机


DSP


,执行电机控制的操作命令;最后,由


DSP



成电机控制系统的信息交换枢纽,一方面传 递上位机下达的


控制命令给电动机,另一方面把电动机运行状态的相关信息


反馈给上位机,实现对电机运行状态的实时监控。






该控制系统整体为主从式计算机结 构如图


2


所示,其中


PC


为上位机,


DSP


为下位机,两者之间通过串口


RS232C



议交换数据。硬件电路连接 如图


3


所示,包括计算机、


DSP


开发板、仿真器、电机驱动电路板、直流电动机和一些电路


连接线。






2


驱动程序设计






CCS 3.3


是一个集成版的


DSP


应用程序 开发环境,


基本涵


盖了


TI

< p>
公司所有型号的


DSP


,与其它版本相比体积稍大 ,但


是代码优化效率较高,调试方便,是目前用的最多的


DSP



序开发平台。


该电机控制系统利用< /p>


C


语言基于


CCS3.3


软件平


台开发


DSP


的电机驱 动程序,


建立电机控制策略实施的纽带。






DSP


的驱动程序主要包括:各个外设的初始化函数、主


函数与输入中 断函数。其中初始化函数完成相应外设的初始


化定义,如系统、输入

/


输出引脚、串行通信接口、事件管理


器等;主函数完成相 关变量、宏及功能函数的定义,最后形


成一个死循环,等待


CP U


对电机控制命令中断请求的响应,


完成对电机运动的调节;中 断函数为电机各种控制命令在


DSP


电机驱动程序中的入口,利 用事件响应机制去完成对电


机行为的控制。程序整体采用模块化结构,通过调用一个个< /p>


功能子函数来实现对电机的不同控制,逻辑清晰,便于实现


系统功 能的扩展。






驱动程序的设计思路如图


4


所示,


首先需要完成


DSP


相应功能外设的初始化,即准备好去执行电机的控制命令,


然后等待串口的电机控制命令的输入,即形成一个死循环。


当串口有电机操作指令输入 时,随即发生中断事件,调用中


断函数,执行相应的电机操作指令,包括电机的起


/


停、正


/


反转、加


/


减速、状态查询等;在指令完成后,返回死循环进

< p>
入待命状态,等待下一个电机操作指令,周而复始。






2.1


主函数






首先引用相关的头文件,定义相应的宏、变量与功能函


数,然后在主函数中完成相关变量、函数及外设功能的初始


化,


最后形成一个死循环,


等待串口输入对


CPU


的中断请求,


既而完成电机行为的相关控制指令。以下程序代码 的省略部


分,均为


DSP


程序的一些固 定的功能语句,如中断的使能、


外设功能的设定等,为了节省篇幅,不再一一列出,可以 参


阅文献


[4]






//


头文件,宏、变量、功能函数定义等






……;






void main



void







{





InitSysCtrl


()




//


初始化系统函数






//C PU


中断,


PIE


寄存器、外设初始化


[4]





……;






InitGpio


()




//


初始化

< p>
Gpio







InitEv

()








for



i = 0




i < 4




i++




/ /


初始化数


组变量






{





Sci_VarRx[i] = 0



//


存储电机控制指令






}





i = 0



//


初始化






M1_Flag=0




M2_Flag=0



//


电机起始为停止状态






//


电机控制界面显示波特率初值






sen dMsg



UD







sendMsg



UD








//


定时 器


T3



T1


计数使能






E=1







E=1







/*


使能


SCI


中断,



CPU


中断,


使能全局与实时中断


[ 4]*/





……;






for


(;





{ }





}





2.2


功能函数






该电机控制系统实现了控制


2


台(易于扩展到多台)直


流电机的起


/


停、正


/


反转、加


/


减速、状态查询等行为,由于


程序采用模块化结构,每一个控制 功能都对应特定的功能函


数,且每一个功能函数的结构类似,皆为先判断指令对象,


然后再依据不同的指令代码执行对应的动作。因此在此仅列


出加速功 能函数的代码,其中省略部分为对两台以上电机的


相同操作,不再重复。其它功能函数以 此类推。






void M_Inc



unsigned int num




//


加速函数






{





if< /p>




num==1



&



M1_Flag



=0





//


电机


M1





{





//


占空比增加


2%





1=1+375







if< /p>



1>=0x41EB







{





//


最大占空比值为


90%





1=0x41EB







}





}





else if



< br>num==2



&


< p>
M2_Flag



=0





//


其它电机






{





……;


//


相同控制代码






}





}





2.3


系统初始化函数



-


-


-


-


-


-


-


-



本文更新与2021-02-01 23:46,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/595905.html

DSP电机控制系统驱动程序的设计的相关文章