《自动化与仪器仪表》2014年11期(总第181期)基于STM32的电动滑板车控制器设计韩颖1,2,张重雄2(1江苏省常州建设高等职业技术学校设备工程系江苏常州,213000)(2南京理工大学电子工程与光电技术学院江苏南京,210094)摘要:介绍了一种基于STM32F103单片机的电动滑板车控制器的设计。通过分析电动滑板车的功能需求和控制原理,采用高压高速驱动器IR2101和相关保护电路,实现了对电动滑板车的平稳加减速、刹车、堵转、失控等方面的控制。通过试验发现,采用本控制器的电动滑板车运行稳定,爬坡能力、起动性能、刹车性能以及堵转防破坏能力等方面有了明显的提高。关键词:电动滑板车;控制器;STM32F103;IR2101DOI编码:10.14016/j.cnki.1001-9227.2014.11.059Abstract:Abstract:ThispaperintroducesakindofelectricscootercontrollerbasedonSTM32F103microcontroller.Onthebasisofana-lyzingthecontrolprincipleandfunctionalrequirementsoftheelectricscooter,itrealizedthesmoothdeceleration,brake,thein-creaseinlocked-rotor,outofcontrolandothercontrolfortheelectricscooterthroughahighvoltageandhighspeedpowerMOS-FETandIGBTdriverIR2101andrelatedprotectioncircuit.Throughtheexperiment,itfoundthattheelectricscooterusingthiscon-trollerrunstablyandhaveobviousimprovementaboutclimbingability,startingperformance,brakingperformanceandlocked-rotordamageresistantability,etc.KeywordsKeywords::Electricscooter;Controller;STM32F103;IR2101中图分类号:TP271.4文献标识码:A文章编号:1001-9227(2014)11-0059-03收稿日期:2014-09-17作者简介:韩颖(1981-),女,江苏常州人,工程硕士,讲师,主要研究方向为电子仪器仪表技术、楼宇智能化工程技术。0引言滑板运动极富娱乐性和挑战性,深受年轻人喜爱。但传统的滑板车存在一个最大的问题:若要保持前进,则必须一只脚不停的蹬地以提供动力;若运动中要停止,则必须用一只脚使劲撑地,施加一个反作用力。随着电子技术和控制技术的发展,内置有电动马达的电动滑板车应运而生,其以电力作为动力。电动滑板车既可作为传统滑板车玩,又可通过启动马达使之成为代步工具,既有运动的乐趣,又有舒适的享受[1]。电动滑板车要具有起步响应速度快、运行平稳、爬坡性能好等特点,且驱动电机可能会因驾驶者操控或爬坡等原因而处于临界堵转运行状态,这些特性给电动滑板车控制器的设计增加了不小的难度[2]。本文通过分析电动滑板车的功能,研究其控制原理,设计一种基于STM32F103单片机的控制器,使其性能得到明显的改善。1硬件设计硬件系统主要包括主控电路(微处理器)、电机驱动电路、过流/堵转检测电路、蓝牙通讯模块、系统电源电路与电池电量监测电路以及声光报警指示等部分,其总体框图如图1所示。主控电路(微处理器)主控电路(微处理器)蓝牙通讯模块蓝牙通讯模块电机驱动电路电机驱动电路声光报警、夜行灯电路等声光报警、夜行灯电路等直流电机直流电机过流/堵转检测电路过流/堵转检测电路电池电量监测电路电池电量监测电路电池电源电池电源DC/DC降压电路DC/DC降压电路图1系统硬件总体设计框图1.1电机驱动电路本设计中考虑到滑板调速和承载的体重,采用了双电机驱动方式。选用了两个单个功率为80W的直流有刷电机,总功率为160W。在电动滑板车的驱动电路中,最主要的是对电机的控制,即加减速和刹车的控制。设计中采用高压高速驱动器IR2101[3]控制极低导通阻抗场效应管IRF3205[4]的导通与截止,实现电动滑板车的加减速和刹车。IR2101是一种高压高速、栅极驱动、双通道功率驱动器,其采用高度集成的电平转换技术,很大程度上降低了逻辑电路对功率器件的控制要求,使驱动电路的可靠性得到了提高;同时,由外部自举电容对上管上电,大大减少驱动电源数目,在工程上减少了电源数目和控制变压器体积,不仅提高了系统的可靠性,还降低了产品的成本[5]。电机驱动电路如图2所示,在加减速时,PWM1输入为低,HO输出也为低,Q1截止;PWM2输入一占空比可变的方波,在PWM2为高电平时,LO输出+15V,此时Q2、Q3的栅极电压比源极高15V,Q2、Q3导通,同时利用IR2101的电容自举功能,通过快恢复二极管1N5819对自举电容C24、C25进行充电[6];通过调节PWM2的占空比就可以改变Q2、Q3的导通与截止的时间,即可调节电机的转速,实现对电动滑板车的速度控制。12345678ABCD87654321DCBATitleNumberRevisionSizeA3Date:12-Aug-2014SheetofFile:C:\DocumentsandSettings\Administrator\\\MyDesign1.ddbDrawnBy:VCCR280.01R270.01CUR_TestA-+B1R775PWM2Q1IRF3205PWM1C26470uF/25VD81N5819C2510uF/25VC27104R2410R2510C29470uF/50VC24104VCC1HIN2LIN3COM4LO5Vs6HO7Vb8IR1IR2101Q2IRF3205Q3IRF3205+15VA-+B2R775图2电机驱动电路图59基于STM32的电动滑板车控制器设计韩颖,等刹车是电动滑板车中电机控制的重要部分。本控制器采用的是电机能耗制动(直流制动)法,单纯依靠电机消耗动能达到制动目的,类似高铁运行过程中电子刹车的原理,既能实现快速制动效果,又能防止电机抱死而发生意外。刹车时,PWM1先输入一个占空比为90%的方波,PWM2输入一个与之互补的占空比为10%的方波。在PWM2为低,PWM1为高时,先将Q2、Q3截止,断开电机运转回路,IR2101的VS端虚地,HO端输出对于虚地的电压为+15V,也就是Q1的栅极电压比源极高15V,保障Q1很好的饱和导通,此时电机处于惯性转动状态,同时使转子两端通过Q1形成一个新的回路(相当于续流电路),其转子按旋转方向切割磁力线,产生反向电动势,形成一个制动力矩,提供反向作用力;在PWM1为低,PWM2为高时,Q1截止,Q2、Q3导通,对自举电容C24、C25进行充电实现自举电路功能,如此反复电机受到持续的反作用力而慢下来。1.2过流/堵转检测电路本电动滑板车中采用R775型直流有刷电机,功率80W,电压DC24V,额定电流4.8A。在电机运转过程中,对电流的控制直接影响着电机及电池组的性能和寿命。直接检测电机的电流大小比较困难,所以需要通过传感器间接测得。考虑到安装方便、精度要求、价格等因素,采用了应用广泛的康铜丝作为电流传感器,图2中的电阻R27和R28即为0.01Ω的康铜丝电阻,并联后用于电机电流的采样,结合LM358内部的两个独立运算放大器构成了电流检测电路和堵转保护电路。电机过流/堵转检测电路如图3所示,为检测到由流经电机的大电流在电流传感器上产生的微弱电压信号,CUR_Test送入LM358D的A运放构成的同相比例运算电路进行放大。R10、R20决定了放大倍数,R16和C22组成的高频滤波电路用于滤除信号中的高次谐波。经放大滤波后的信号CUR_AD输入主控电路进行A/D转换处理进行检测并判断是否过流,当电流过大,调节PWM2输出,减小电流。同时,CUR_Test输入LM358D的B运放结合R5、R6、R7构成的比较器。如电机发生堵转,电流剧增,不仅会烧毁电机,还会损坏电池。本控制器设定最大电流为30A,而采样电阻为0.005Ω,当测得电压超过0.15V时,比较器的反向输入端电平高于同相输入端电平,输出低电平(产生一个下降沿),触发主控电路的外部中断,停止电机驱动输出,以达到保护电机和电池组的目的。12345678ABCD87654321DCBATitleNumberRevisionSizeA3Date:12-Aug-2014SheetofFile:C:\DocumentsandSettings\Administrator\\\MyDesign1.ddbDrawnBy:567B84U5BLM358D231A84U5ALM358D+5VR1210KR154.7K+5VR19150R141K+5VR161KCUR_TestR1010kR201KCUR_INTCUR_ADR3151C22101+5V图3电机过流/堵转检测电路1.3主控电路本控制器采用STM32F103单片机作为主控芯片,其使用高性能的ARMCortex-M332位的RISC内核,包含1个PWM定时器、3个通用16位定时器、2个12位的ADC、3个USART等,所有I/O口可以映像到16个外部中断[7]。STM32F103具有运算速度快、体积小、功耗低、外围接口资源丰富等优点,性能远远超越51内核单片机。本控制器的电池组电量监测信号输入STM32F103的ADC_IN0端口(PA0),通过A/D积分结果计算当前的电量;电机过流检测信号CUR_AD输入STM32F103的ADC_IN9端口(PB1)进行电流检测,计算流经电机的电流;堵转保护信号CUR_INT输入PA15口,该端口配置为外部中断输入口;PB8、PB9用作两个PWM信号的输出端口;PA9、PA10作为通用同步异步收发器端口,设计中用作与蓝牙模块通讯的串口。本控制板采用的蓝牙模块是集成化的蓝牙串口模块,开发方便,具有强抗干扰能力,发射功率较小。1.4电源电路该控制器中采用16节磷酸铁锂电池,其中每两节并联后再串联,即电压约为29V(VCC)。驱动电路部分供电电源是+15V,集成运算放大器的电源是+5V,主控电路的电源是+3.3V。系统电源VCC经功率电阻分压(100Ω、2W)后输入至三端可调电压稳压器LM317,经调整后输出得到+15V电压;+15V电源又输入L7805得到+5V电压;+5V电压再输入正向低压降稳压器L1117-3.3得到+3.3V电压。分压电阻为功率电阻,相当于电源内阻,将通过电阻分压后的电压值送到主控电路中进行处理,用以检测电池电量值,判断电源电压是否亏欠,可以有效保护电池组。2软件设计系统的软件主要实现以STM32F103为核心的各种功能。软件设计中使用了MDK-ARM系列的KeiluVision4集成开发环境[8],其为ARM处理器提供了一个完整的开发环境,功能强大,提高软件的可靠性和实时性,降低软件设计的复杂性。开始开始速度保持速度保持蓝牙通讯配对成功否?蓝牙通讯配对成功否?通过蓝牙接收到数据否?通过蓝牙接收到数据否?是刹车命令吗?是刹车命令吗?是调节速度命令吗?是调节速度命令吗?电池电量是否充足?电池电量是否充足?输出刹车信号输出刹车信号通过PWM调节速度通过PWM调节速度电机过流了吗?电机过流了吗?调整电机驱动输出调整电机驱动输出电量不足声光报警电量不足声光报警系统初始化系统初始化YNYN数据解码数据解码YNYNYNYN停止输出电机驱动停止输出电机驱动蓝牙信号丢失声光报警蓝牙信号丢失声光报警图4系统主程序流程图60《自动化与仪器仪表》2014年11期(总第181期)本系统的主程序流程图,如图4所示。