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