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