欢迎来到天天文库
浏览记录
ID:56759529
大小:42.50 KB
页数:3页
时间:2020-07-07
《无刷直流电机软件的设计.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、4.3控制器软件设计软件设计是控制系统最重要的一个组成部分,软件设计的好坏直接关系着整个控制系统性能的优良,控制系统的软件设计一定要具备实时性、可靠性和易维护性,对此,选择一款简单、方便的开发环境对于系统软件的整体优化以及提高整个系统的开发效率有很大的影响。目前支持STM32系列控制芯片且应用比较广泛的主要有IAREWARM和KEILMDK这两个集成开发环境,本文采用的开发环境是KEILMDK,它是ARM公司推出的嵌入式微控制器开发软件,集成了业界领先的Vision4开发平台,具有良好的性能,是ARM开发工具中的最好的选择,适合于不同层次的开发人员使用,尤其是它与我们经常使用的51单片机开
2、发环境KeilC51的整体布局和使用方法类似,只有一些地方不同,操作起来比较熟练,很容易上手,极大的减小了开发人员的使用难度,缩短了开发周期,提高了开发效率,因此这款KEILMDK得到了很多人的认可。STM32的软件开发主要开发方式有2种,就是基于寄存器的开发和基于库函数的开发,其中基于寄存器的开发方式就更51单片机的开发差不多,它是通过直接操作芯片内部的各个寄存器来达到控制芯片的目地,这种方式较直观,程序运行占用的资源少,但对于STM32这种寄存器数目非常多的芯片来说,采用寄存器的开发方式会减慢开发速度,还让程序可读性降低。而基于库函数的开发方式则是对寄存器的封装,它向下处理与寄存器直接
3、相关的配置,向上为用户提供配置寄存器的接口,这种方式大大降低了使用STM32的条件,不仅提高了开发效率,而且程序还具有很好的可读性和移植性,因此本文采用的是基于库函数的开发方式,编程语言全采用C语言。4.3.1主程序设计无刷直流电机控制系统的软件设计主要是由主程序和中断服务子程序两大部分组成,主程序基本是完成系统初始化,电机启动、停止信号检测以及PWM定时器的打开与关闭等工作。系统开机上电,首先对系统中要用到的各个模块进行各项的初始化准备工作,主要包括系统时钟的配置、系统定时器的配置、系统中断向量的配置、PWM输出定时器的配置、通用GPIO端口的配置、霍尔位置检测定时器的配置、电流电压检测
4、ADC的配置以及DMA通道配置等等。系统初始化完成后,等待电机启动,检测到电机启动信号时,开启PWM定时器,电机开始运行,随后循环检测电机停止信号,当检测到电机的停止信号时关闭PWM输出,使电机停止运行。系统软件主程序流程图如下图所示。4.3.2中断子程序设计中断服务子程序是一个系统控制软件的核心,为了保证该系统能够正常工作,要求控制电路能够非常准确、及时地检测出电机的位置信号,以保证电机绕组的正确换相,同时还要实时的检测电机运行过程中的电流及转速,因此把对电机转子位置信号的检测以及电机转速和电流的检测都放到中断服务子程序中来控制。中断子程序还要完成直接转矩控制策略的实现以及PWM控制信号
5、的输出等功能,具体的中断服务子程序流程图如下图所示。
此文档下载收益归作者所有