-
软件设计开发文档
1.
主控芯片及其编译器
该项目主控芯片采用飞思卡尔半导体公司的
32
位
微控制器
MKE02Z16VLC2
,
该芯片基于
ARM
结构体系的
Cortex
?
-M0+
内核,
其中的
FlexTimer/PWM
(
FT
M
)模块为电机控制提供了很方便的接
口
,
方
便
控
制
输
出
pwm
控
制
电
机
转
p>
速
。
驱
动
电
路
芯
片
采
用
FSB50760SFT
,该芯片将
MOSFET
集成在芯片内,减少了控制电路
p>
的大小,同时,
芯片内部还集成了温度传感器,可以时刻监控芯片温
度。
编译器采用
IAR
Systems
公司的
IAR
Embedded
Workbench
for
ARM
。
2.
控制方案简介
< br>该项目控制方案采用有传感器方波控制,采用霍尔传感器检测电
机转子位置信息,
并根据霍尔传感器信号进行相关的换向处理。
2.1
无刷直流电机有传感器基本控制理论
无刷直流
电机采用电子换向装置代替了传统直流电机的机械换向
装置,又具有与直流电机类似的机
械特性,其磁钢置于转子上,通过
不断地变换定子绕组通电方式产生旋转磁场驱动转子转
动。
由于转子
采用了永磁体结构,无刷直流电机具有体积小、重
量轻、结构简单的
特点。随着电力电子技术的发展,无刷直流电机的应用越来越广泛。<
/p>
快速有效地确定位置传感器和绕组间的相序关系是实现无刷直流电
机调速功能的关键。
电机的换向的时机取决与转子的位置,
而转
子的
位置可以通过霍尔传感器来获得,
因此处理好了电机的换向
操作就可
以控制无刷直流电机的运行。
无刷直流电机的转子磁钢呈瓦片形,
磁极与定子绕组间气隙均匀,
气隙磁场呈梯形分布。
定子绕组感应电动势波形为梯形波。
无刷直流
电机定子绕组通常采用三相星形接法,需要应用三相全桥控制电路,
其驱动控制系统结构如图所示。
由
V1
~<
/p>
V6
六只功率管构成的驱动全桥可以控制绕组的通电状
态。
按照功率管的通电方式,
可以分为两两导通和
三三导通两种控制
方式。
由于两两导通方式提供了更大的电磁转
矩而被广泛采用。
在两
两导通方式下,每一瞬间有两个功率管导
通,每隔
1
/
6
周期即
60
°
电角度换相一次,每只
功率管持续导通
120
°电角度,对应每相绕组
持续导通
120
°,在此期间相电流方向保持不变。为
保证产生最大的
电磁转矩,
通常需要使绕组合成磁场与转子磁场
保持垂直。
由于采用
换相控制方式,
其
定子绕组产生的是跳变的磁场,
使得该磁场与转子
磁场的位置保
持在
60
°~
120
< br>°相对垂直的范围区间。
功率管的换相信号需要从位置
传感器的状态得出,换相时刻也就
是霍尔传感器的信号状态改变的时刻。
因此霍尔传感器和三相绕组对
应关系的确定对于电机的正确运行非常重要。
p>
2.2
霍尔传感器的安装方式
为了产生正确的换向信号,霍尔传感器安装位置有一定要求,通
常有<
/p>
120
°安装和
60
°安装两种方式,如图所示。
在本项目中霍尔传感器采用
30
度安装
方式,
由于电机转子为
4
对极,
因此安装方式和
120
度的是一样的,
位置传感器输出波形、
电机定子
绕组通电电流
和反电动势相位关系如图所示。
以位置传感器的信号状
态区分,
将无刷直流电机的运行状态分割为
6
个
状态。
各功率管导通
区间如图所示。在实际控制中,霍尔传感器
在跳变成高电平后,不会
迅速进行换向,在转子转过
30
度之后才进行换向操作。因此下图只
是理论上图形实际图形感应电动势
的波形应该向后移动
30
度。
2.3
直流无刷电机调速
直流无刷电机转速由直流电压控制。电压越高,转得越快;电压
越低,转得
越慢。用脉宽调制(
PWM
)方式来控制电机的输入电压。
p>
PWM
占空比越高,等效电压就越高,占空比越低,等效电压就越低
。
3.
主程序和中断程序设计
本系统软件设计的主体框架由主程序和中断程序构成。主程序主
要包括系
统初始化和主循环两部分。
系统初始化主要负责系统运行所
需要
的各种初始化设置,包括系统各外设时钟、外设
I/O
引脚功能
、
中断向量表、外设模块初始化、参数初始化等。主循环主要包括运行
< br>状态控制、
上位机通信等。
中断程序主要用来实现一些主
要控制算法,
包括
PWM
输出、霍尔中
断处理、转速与转子位置计算、过流保护等
一些重要部分。
3.1
主程序设计
< br>开始
系统初始化
设置中断优先级
N
检测
VSP
调速电压是否等于
0
Y
程序进入主循环
串口通信,打印运
行数据信息
运行状态是否正常
N
进入错误处理程序
Y
霍尔错
误,瞬间过流过压
结束
Y
N
重启
其他错误是否超过
10
次
Y
主程序中主要处理电机运行状
态,电机有以下几种运行状态,待
机状态、
启动状态、
运行状态、
错误处理状态。
在
< br>VSP
电压低于
1.8V
时,电
机处于待机状态。电机大于
1.8V
时,电机处于启动状态,启
动成功后,电机进入运行状态。当电机运行过程中出现错误时,电机
进入错误处理阶段,如果电机出现霍尔错误,过压和过流的错误,系
统将会一直处于
停机的状态,
其他的错误电机将会重启,
错误次数超
过
10
次后,电机将会停机。在主程序中还处理和
上位机通信,包括
电机运行的一些数据信息,电压电流以及温度转速等。
3.2
中断程序设计
p>
电机的主要控制程序都写在了中断里面,其中主要包括
PWM
中
断,霍尔中断,
AD
采样中断,过流保护中断。其中
PWM
中断优先
级和过流保护的优先级最高,
当出现过流时,
电机能
够第一时间停机。
霍尔中断的优先级次之,
AD
采样中断的优先级最低。
3.2.1AD
采样中断
AD
初始化模块功能是设置相应的控制寄存器,
将
引脚
PTB0
,
PTB1
,
PTB2
,
PTB3
p>
设置为
AD
采样引脚,其中
PTB0
引脚采样直流母线电压,
PTB1
引脚采样速度控制电压,
PTB2
引脚采样母线电
流,
PTB3
引脚采
样驱动芯片的温度
。
采样时间为
PWM
输出后延迟
12.75us
采样,
这样
< br>做的原因是确保能采样到稳定的电流信号。
AD
采样中断流程图如下所示:
p>
开始
AD
初始化,采样母线电压电流、驱动
芯
片温度、
VSP
控制信号
电流是否超过
2A
读取
A
D
采样值,并进行滤波处理
电压是否超过
400V
故障标志位置
1
,
错误代码为
12
温度是否超过
< br>90
度
故障标志位置
1
,
错误代码为
13
故障
标志位置
1
,
错误代码为
11
AD
中断处理程序
AD
中段处理函数为
void ADC
_Isr(void)
,输入输出参数都为空,
其功能主要是处
理采样数据,
为了在程序中进行滤波处理,
相应的采
样数据进行了放大处理,其中电流信号放大了
16
倍,直流母线电压
信号放大了
1024
倍,
温度采样信号放大了
16
倍,
p>
速度控制信号放大
了
1024
倍。
3.2.2
霍尔中断
霍尔中断在系统中定义为
KBI
键盘处理中断,初始化
函数为
unsigned char KBI_init(void)
< br>,该函数输入参数为空,输出值为无符号
字符型参数,如果函数返回值为
1
,则表示霍尔状态初始化失败。键
盘中断主要
用于处理霍尔传感器的状态,
其中初始化函数主要功能是
设置相
应的寄存器,将引脚
PTA1
,
PTA
2
,
PTA3
,其中
< br>PTA1
对应
霍尔传感器
Hc<
/p>
的信号,
PTA2
对应霍尔传感器
Hb
的信号,
PTA3
对
应霍尔传感器
Ha
的信号。键盘中
断触发条件为硬件电平触发,当电
平变化时,触发相应的处理程序。
霍尔中断处理流程图如下: