电动车无刷电机控制器软件设计详解
作者:谢渊斌原作发表在《电子报 2007 年合订本》下册
版权保留,转帖请注明出处
本文以 MICROCHIP公司所生产的 PIC16F72 为基础说明软件编程方面所涉及的要点,此文所涉及的源程
序均以 PIC 的汇编语言为例。
由于软件不可避免需与硬件相结合,所以此文可能出现硬件电路图或示意图。
本文适合在单片机编程方面有一定经验的读者,有些基础知识恕不一一介绍。
我们先列一下电动车无刷马达控制器的基本要求:
功能性要求:
1.电子换相
2.无级调速
3.刹车断电
4.附加功能
a.限速
b.1+1 助力
c.EBS 柔性电磁刹车
d.定速巡航
e.其它功能(消除换相噪音,倒车等)
安全性要求:
1.限流驱动
2.过流保护
3.堵转保护
3.电池欠压保护
4.节能和降低温升
5.附加功能(防盗锁死,温升限制等)
6.附加故障检测功能
从 上面的要求来看,功能性要求和安全性要求的前三项用专用的无刷马达驱动芯片加上适当的外围电路
均不难解决,代表芯片是摩托罗拉的 MC33035,早期的控 制器方案均用该集成块解决。但后来随着竞争
加剧,很多厂商都增加了不少附加功能,一些附加功能用硬件来实现就比较困难,所以使用单片机来做控
制的控制器迅 速取代了硬件电路芯片。
但是硬件控制和软件控制有很大的区别,硬件控制的反应速度仅仅受限于逻辑门的开关速度,而软件的运
行则需要时间。要使软件 跟得上电机控制的需求,就必须要求软件在最短的时间内能够正确处理换相,
电流限制等各种复杂动作,这就涉及到一个对外部信号的采样频率,采样时机,信号的 内部处理判断及
处理结果的输出,还有一些抗干扰措施等,这些都是软件设计中需要再三仔细考虑的东西。
PIC16F72 是一款哈佛结构,精 简指令集的 MCU,由于其数据总线和指令总线分开,总共 35 条单字指令,
0-20M 的时钟速度,所以其运算速度和抗干扰性能都非常出色,2K 字长的 FLASH 程序空间,22 个可用
的 IO 口,同时又附加了 3 个定时/计数器,5 个 8 位 AD 口,1 个比较/捕捉/脉宽调制器,8 个中断源,这些
优异的性能为电 动车控制器控制提供了良好的硬件环境和软件基础,一经推出就赢得众多设计人员的热