第1章 绪论

近些年来,采用蓄电池供电的小功率电动汽车逐渐进入人们的视野。这种类型的电动汽车具有体积小、低速转矩大、充电方便、车辆售价低、单位里程行驶成本低等优势,受到了市场的欢迎。以山东省市场为例,在当地政府的积极支持下,加上山东省作为农业大省、人口大省的市场需求推动,山东省成长为小功率电动汽车的产销大省。据统计,2016年全国小功率电动汽车销量达100万辆。其中,山东省就销售了61.83万辆,2013年以来销量延续4年保持50%的高速增长,已成为山东省汽车工业突出的新增长点。

根据山东省汽车行业协会对外公布的统计数据显示,2016年山东省的小功率电动汽车产销量分别达到62.26万辆和61.83万辆,同比均增长47.76%,产销量占全国总产量的50%以上。2017年3月9日,山东省政府发布了《山东省“十三五”战略性新兴产业发展规划》,展示了山东省政府对于规范四轮小功率电动汽车管理的决心。规划中明确提出大力支持小功率电动汽车发展,推动安全、适用、便捷、低成本的小功率电动汽车发展,着力满足乡村出行需求;到2020年,建成聊城、临沂、枣庄、潍坊、德州等一批新能源汽车产业集聚区,纯电动轿车、载货电动车等各类新能源汽车产量达到100万辆。

此外,电动低速代步车、电动观光车、物流车、环卫车等也都采用了与小功率电动汽车相似的技术路线。其采用蓄电池为车辆提供电能,利用控制器将蓄电池提供的直流电压转变为交流电压并驱动交流电动机,电动机经减速器和差速器后驱动车轮转动。基于成本和可靠性方面的考虑,一般小功率电动汽车前轮设计为转向,后轮则集成后驱动、减速器和差速器。

小功率电动汽车控制器(本书中简称为控制器)作为车辆中的核心部件,其负责接收驾驶员的驾驶指令信息,用来控制电动机运行,其性能的好坏对于车辆的正常行驶具有重要作用。

从功能上来说,控制器的功能主要包括以下几个方面。

(1)接收驾驶员的输入信息,并据此控制动力电机的旋转方向和输出力矩。驾驶员的信息包括挡位信息、油门踏板信号、刹车踏板信号等。

(2)检测车辆状态并采取应对措施,如回收车辆的制动能量(也称馈能制动)、电子防溜坡等。

(3)控制仪表盘显示车速、电池电压等信息。

(4)采集电机转速、温度等信号,完成对动力电机的高性能控制。

本书介绍了基于STM32F103VBT7芯片的小功率电动汽车控制器的开发方法。STM32F103VBT7是意法半导体(ST)公司生产的基于Cortex-M3内核的一款32位ARM微处理器。该系列芯片主频为72 MHz,集成了定时器、CAN(Controller Area Network,控制器局域网络)、ADC(Analog to Digital Conversion,模数转换器)、SPI(Serial Peripheral Interface,串行外设接口)、I2C(Inter-Integrated Circuit,内部整合电路)、USB(Universal Serial Bus,通用串行总线)、UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)等多种功能,具体特性如下。

● 基于ARM 32位的Cortex-M3内核。ARM是微处理器行业的一家知名企业,研发和提供多种处理器的架构、相关技术及软件。Cortex-M3是ARM研制的一个32位的处理器内核,该内核在低功耗、低成本、高性能等方面具有较突出的优势。

● 最高72 MHz工作频率。一般采用外接20 M晶振,通过配置芯片内部的倍频电路后产生72 MHz时钟信号。芯片内置了单周期乘法和硬件除法电路,可显著提高乘除法的执行速度。

● 从16k到512k字节的FLASH程序存储器,STM32F103VBT7中的最后四个表明了芯片的引脚数目和存储容量等信息。

➢ “V”位置字符表示引脚数目,其中T表示36脚,C表示48脚,R表示64脚,V表示100脚,Z表示144脚;

➢“B”位置字符表示FLASH的容量,其中4表示16 k字节,6表示32 k字节,8表示64 k字节,B表示128 k字节,C表示256 k字节,D表示384 k字节,E表示512 k字节;

➢“T”位置字符表示芯片的封装形式,其中H表示BGA封装,T表示LQFP封装,U表示VFQFPN封装,Y表示WLCSP64封装;

➢ “7”位置字符表示芯片的工作温度范围,其中6表示-40~85 ℃,7表示-40~105 ℃。

●芯片内部提供最大为96 k字节的SRAM(Static Random-Access Memory,随机存取存储器)。

● 支持2.0~3.6 V单一电源供电。

●芯片内部具有上电/断电复位管理电路、可编程电压监测器。

●芯片内部具有多个晶体振荡器。

●芯片内部内置时钟PLL(Phase Lock Loop,锁相环)倍频电路。

●芯片内部有2个12位ADC模数转换器。

➢ 转换范围:0至电源电压,最大允许的电源电压为3.6 V。

➢ 具有双采样和信号保持功能。

➢ 内置温度传感器,可以直接获取芯片温度。

●芯片内部有2个DMA(Direct Memory Access,直接内存存取)控制器,共12个DMA通道并分为2组:第一组名称为DMA1,有7个通道;第二组名称为DMA2,有5个通道。

●芯片支持的外设有定时器、ADC、SPI、USB、I2C和UART等。

●芯片具有SWD(Serial Wire Debug,串行单线调试)和JTAG(Joint Test Action Group,联合测试行为组织)接口。

●芯片内部具有多个定时器,功能包括捕获输入脉冲边沿、输出特定占空比的方波信号、进行脉冲计数等。

●芯片多数端口兼容5 V电压信号。

STM32F103系列处理器芯片售价低、性能可满足一般场合的需要,因而在控制器领域具有很强的竞争力。目前已经广泛应用在电源、电机控制、手持仪器、扫描仪等设备中。市场上一些典型的小功率电动汽车控制器中,也大量采用了STM32F103系列芯片。在一些传统的电机控制和工业伺服等领域,该芯片也得到了广泛的应用。该芯片成本低、内设资源丰富等特点可以满足多种工业场合和消费电子场合的需求,具有较好的应用前景。

本书介绍了基于STM32F103VBT7的小功率电动汽车控制器的完整开发过程,控制器的额定电池电压为60 V(例如可利用5节12 V铅酸蓄电池串联得到),额定功率3.3 kW。本书包括控制器的硬件电路设计、功能电路设计和软件开发等多个方面,既可以作为学习STM32F103VBT7的参考,也可以作为学习电机和小功率电动汽车控制的教材。并且其中的一些典型电路的设计,对于从事电力电子变换器等领域的技术开发人员,也有一定的借鉴意义。

本书以介绍STM32F103VBT7的使用方法为线索,根据实际产品的功能需求不断展开论述,最终给出了详细的小功率电动汽车控制器实现过程,为读者提供了正确而完整的基于STM32F103VBT7的小功率电动汽车控制器解决方案。本书的行文顺序兼顾了项目开发的先后次序,按照项目进展的需求介绍相关内容。通过本书,读者可以了解STM32F103VBT7芯片的使用,理解研发小功率电动汽车的关键技术,提高项目开发效率。

第2章介绍STM32F103VBT7芯片的软件开发环境Keil μVision,包括软件的安装以及如何添加源文件和编译下载程序等。

第3章介绍C语言编程的相关知识,包括 C语言语法简介、C语言数据类型、C语言关键词介绍、C语言函数介绍和宏定义等在控制器开发过程中需要用到的知识。

第4章介绍控制器UART接口的使用,包括硬件电路的设计和软件编程。并且基于已有的计算机软件,介绍了一种通过上位机软件观察和修改处理器中的内存变量的方法,为开发控制器功能、实现在线调试提供了条件。

第5章介绍控制器操作外部EEPROM(Electrically Erasable Programmable Read Only Memory,电可擦除可编程只读存储器)的方案,包括硬件的设计方案和软件的编写。利用该功能,控制器的生产厂家可以设计一些基础参数,如电压电流保护阈值、最大允许行驶速度等;而控制器的销售商、售后工程师或者用户也可以在实际使用中,微调功能参数,改善控制器性能。

第6章介绍控制器的I/O操作方法,以及对应的控制器的继电器控制、数字I/O信号的处理电路等内容。该功能可以用来处理用户输入的车辆挡位信息和故障信息等,并可以完成故障灯闪烁等。

第7章介绍ADC电路的设计和功能实现,该功能可以用来采集蓄电池电压、直流母线电容电压、控制器的输出电流、油门踏板信号和温度传感器信号等。

第8章介绍PWM(Pulse Width Modulation,脉冲宽度调制)电路的设计和功能实现,利用该功能将输出6路方波信号,该信号经过驱动电路后控制主电路中的MOSFET工作。本章还介绍了相应的硬件电路的设计方案。

第9章介绍测量电动机转速的方法。具体包括:利用脉冲边沿测量方波周期的方法,该方法可用于测量电动机在较低转速时的速度;利用固定周期累计的脉冲数的方法来计算电动机转速,该方法可用于测量电动机在较高转速时的速度。本章描述了处理脉冲的硬件电路方案和软件实现方法。

第10章介绍CAN通信功能的硬件方案和软件设计,可以实现驱动仪表工作,可实时显示车辆运行状态。

第11章介绍控制器程序的总体设计框架。基于前述章节完成的分项功能,本章将所有功能进行整合,设计了控制器的整体软件框架和各功能模块的实现方法。