DIY编程器网

标题: ARM LPC2101的无刷直流电机控制方案(下) [打印本页]

作者: liyf    时间: 2012-1-27 19:26
标题: ARM LPC2101的无刷直流电机控制方案(下)

  
         
   
3.3  MOSFET选择
  在系统中使用NXP半导体PH1875L N沟道MOSFET,相关的电机电压是12 V,电机启动的最大电流是103 A。作为12 V的电机,MOSFET的电压Vds至少为40 V。需要足够的灌电流来启动电机,可以通过软件控制在系统运行过程中减小电流。PH1875L需要使用的最大灌电流是45.8 A,漏电流是183 A。PH1875L的SMD贴片封装如图6所示。



图6  SO669(LFPAK)封装
3.4  MOSFET驱动选择
  MOSFET驱动提升了控制器输出信号驱动电机的能力。本设计选择NXP芯片PMD2001D和PMGD280UN,如图7所示。



图7  简化的MOSFETMOSFET全桥和半桥驱动电路
3.5  速度控制和方向控制
  为了控制方向和电机速度,用10 kΩ的电位器,连接到LPC2101 ADC输入端(参见图4)。由于是10位A/D,实际上只需要8位就可以采用256个步进数值,如图8所示。采用10位A/D可以达到1 024个步进数值。



图8  电位器模拟速度输入和方向
4  硬件与软件设计
4.1  硬件设计
  控制部分的电路原理如图9所示。电源和电机部分的电路原理如图10所示。



图9  控制部分电路原理
4.2  软件设计
  软件部分采用C语言编写,使用Keil μVision(ARM7 RealView V3.0)开发环境。主函数实现如下功能: 读取电位器数值来调整速度和电机方向;读取电机反电动势电流;设定PWM占空比和控制Q1"Q4 MOSFET输出;执行RS232通信。图11表示控制系统流程。使用RS232接口每200 ms给PC端计算机发送电机速度和电流、电压信息。电机控制软件部分状态机如图12所示。状态处理是在主程序循环中处理的,LPC2101的定时器2用于产生PWM信号。在每个PWM信号中断子程序进入后,可以通过改变占空比来调整既定电机速度并设置MOSFET输出控制Q1"Q4。定时器0用于10 ms的系统定时。



图10  电源和电机部分电路原理



图11  主程序流程
  LPC2101配置使用Keil ARM开发环境中标准的启动代码,设定CCLK时钟为60 MHz,PCLK时钟为15 MHz。相关测试代码包括main.c,adc.c,timer0.c,motor.c,uart.c,bcd.h等。
  相关代码见本刊网站www.mesnet.com.cn——编者注。
5  总结
  使用LPC2101 ARM7内核开发无刷电机控制系统,代码精简,控制系统可靠。经过长时间实际测量证明,系统相关器件的选型设计是稳定的。另外,目前增强型51系列微处理器的价格、性能与LPC21系列相比较,LPC21系列功耗低, 价格与普通8位机价格差不多,但是性能却比增强型51系列好。比如,带Modem的双串口,双I2C接口,带大容量的Flash和RAM存储区,多通道PWM,多个32位定时器,高精度10位A/D转换器等。因此,从芯片设计和系统设计上,该无刷电机产品有一定的推广价值。



图12  状态流程
         
          [/td]
        [/tr]
      




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2