基于STM32的小车控制.doc
《基于STM32的小车控制.doc》由会员分享,可在线阅读,更多相关《基于STM32的小车控制.doc(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.摘要对于小车的控制,即是对于电机的控制。电机作为机电能量转换装置,其应用围已遍与国民经济的各个领域以与人们的日常生活中,所以怎么更好的对电机进行控制就显得尤为重要。基于Cortex- M3核的STM32F10x系列芯片是新型的32位嵌入式微处理器,其性能优良,移植性好,提高了对直流电机的控制效率,并对控制系统进行模块化设计,有利于智能小车的功能扩展和升级。本论文主要分析了基于STM32F103的小车控制系统的设计过程。此系统主要包括STM32F103控制器、液晶显示电路、键盘控制电路、电机驱动电路、红外探测电路、触角检测电路等。以STM32F103主控芯片与其外围扩展电路实现系统整体功能;小
2、车基本运动模式的选择与速度调节用按键开关式的键盘输入实现;同时液晶模块实时显示小车运动参数;用红外探测电路实现小车循迹功能;用触角传感检测模块实现小车简单避障功能。在硬件设计的基础上提出了实现电机控制功能、LCD显示功能与小车简单循迹和避障功能的软件设计方案,并在STM32集成开发环境IAR EWARM 5.3下编写了控制程序。关键词:PWM,STM32F103,电机,传感器ABSTRACTThe controlling to the caris the controlling to the motor.As a mechanical and electrical energy convers
3、ion devices, motor has been applied in every field of national economy and peoples daily life,therefore,howto control the motor better is particularly important. The STM32F10x series chip based on Cortex-M3 kernel is the new32-bit embedded MCU, which have the good performance and portability, and th
4、e STM32F10x have improved the efficiency of DC motor control, furthermore, the modular design ofcontrol system is helpful for function expansion and upgrades. This paper mainly analyzes the design process of the cars control system ,which usesthe STM32F103 as a master chip. This system primarily con
5、tains the STM32F103controller, LCDcircuit, the control circuit of keyboard, the circuit of motor-driven,the infrared detection circuit, the circuit of tentacles sensor etc. In this design, the whole system is controlled by the chip STM32F103 and its peripheral extended circuit;the basicmodels select
6、ion and speed accommodation can realize by the input of keyboard; at the moment , LCD module display the cars moving parameters real-timely; the infrared detection realize cars tracing function; tentacles sensor module complete the cars simple obstacle-avoidance function. Based on Hardware design, t
7、he paperputs forwarda software design scheme to realize the motor controlling, LCD display function , the cars simple trace and obstacle avoidance function. Then the control codeis written on IAR EWARM 5.3 which is an IDEofSTM32F103.KEY WORDS: PWM, STM32F103, motor, sensor目 录前言1第1章绪论21.1 STM32芯片介绍21
8、.1.1STM32处理器的分类21.1.2 STM32处理器的部结构与特点31.1.3 TIMx定时器介绍41.2 小车与其驱动器介绍61.2.1 小车结构与功能简介61.2.2 电机驱动电路简介7第2章小车控制系统硬件设计92.1 系统功能实现与需求分析92.2 主要电路设计102.2.1 STM32F103与外围电路设计102.2.2 电源电路设计122.2.3 电机驱动电路设计122.2.4 液晶显示电路设计132.2.5 键盘扩展电路设计142.2.6 触角探测电路设计152.2.7 红外探测电路设计15第3章小车控制系统软件设计173.1 IAR开发环境介绍173.2 程序设计思路与
9、部分模块程序183.2.1 程序设计思路183.2.2 按键子程序193.2.3 循迹子程序213.2.4 自由行走子程序223.2.5 LCD显示子程序23第4章结论24致谢25参考文献26附录2725 / 28前言随着计算机、微电子、信息技术的快速发展,智能化技术的开发速度越来越快,程度越来越高,广泛应用于海洋开发、宇宙探测、工农业生产、军事、社会服务、娱乐等各个领域。智能电动小车系统以迅猛发展的汽车电子为背景,涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科,主要由路径识别、角度控制与车速控制等功能模块组成,被应用于隧道探测、机器人、考古、娱乐等许多方面。因此,对智能小
10、车的研究具有重要的实际意义。嵌入式技术依靠其体积小、成本低、功能强等特点,适应了智能化发展的最新要求。单片机作为控制系统的微处理器,在数据处理和代码存储等方面都已经无法满足系统的要求,ARM微处理器资源丰富,具有良好的通用性。Cortex-M3是ARM公司最新推出的第一款基于ARMv7体系的处理器核。它主要针对MCU领域,在存储系统、中断系统、调试接口等方面做了较大的改进,有别于过去的ARM7处理器;Cortex-M3具有高性能、低功耗、极低成本、稳定等诸多优点,非常适合汽车电子、工业控制系统、医疗器械、玩具等领域。基于Cortex-M3核的STM32系列处理器于2007年由ST公司率先推出,
11、它集先进Cortex-M3核结构、出众创新的外设、良好的功耗和低成本于一体,极大的满足自动控制系统设计要求。作为先进的32位通用微控制器的领跑者,STM32以其出众的性能、丰富且灵活的外设、很高的性价比以与令人意外的功耗水准,使其自面世以来得到众多设计者的青睐,众多行业领导者纷纷选用STM32作为新一代产品的平台。因此将STM32F103应用于智能小车的控制系统是一种较好的选择。基于此,本文提出了一个比较合理的智能小车系统设计方案。整个小车系统以STM32F103芯片为控制核心,附以外围电路,利用红外探测器、触角传感器采集外界信息和检测障碍物;充分利用STM32F103的串口、并口资源和高速的
12、运算、处理能力,来实现小车自动识别路线按迹行走、躲避障碍物,并且通过LCD显示器实时显示小车运动参数;配置STM32F103通用定时器为PWM输出模式产生PWM波,通过步进调节PWM波占空比参数控制电机的转速;设计简便的按键式键盘输入来切换小车运行模式,以与调节小车速度。第1章绪论1.1 STM32芯片介绍2006年ARM公司推出了基于ARMv7架构的Cortex系列的标准体系结构,以满足各种技术的不同性能要求,包含A、R、M三个分工明确的系列1。其中,A系列面向复杂的尖端应用程序,用于运行开放式的复杂操作系统;R系列适合实时系统;M系列则专门针对低成本的微控制领域。Cortex-M3是首款基
13、于ARMv7-M体系结构的32位标准处理器,具有低功耗、少门数、短中断延迟、低调试成本等众多优点。它是专门为在微控制系统、汽车车身系统、工业控制系统和无线网络等对功耗和成本敏感的嵌入式应用领域实现高系统性能而设计的,它大大简化了编程的复杂性,集高性能、低功耗、低成本于一体2。半导体制造厂商意法半导体ST公司是ARM公司Cortex-M3核开发项目一个主要合作方,2007年6月11日ST公司率先推出了基于Cortex-M3核的STM32系列MCU。本章将简要介绍STM32系列处理器的分类、部结构与特点,并对本设计中重点应用的通用定时器做进一步分析。1.1.1 STM32处理器的分类STM32系列
14、处理器目前分为2个系列。STM32F101是标准型系列,工作在36MHZ;STM32F103是增强型系列,工作在72MHZ,带有更多片RAM和更丰富的外设。这两个系列的产品拥有相同的片Flash选项,在软件和引脚封装方面是兼容3。标准型系列是STM32处理器入门产品,其价格仅相同于16位MCU却拥有32位MCU的性能,其外设的配置能提供优秀的控制和联接能力。增强型系列产品则将32位MCU的性能和功效引向一个新的级别。含的Cortex-M3核工作在72MHZ,能实现高端运算,其外设的配置能提供极好的控制和联接能力。 STM32全系列处理器拥有的脚对脚、外设与软件的高度兼容性,这给其应用带来全方位
15、的灵活性,可以在不必修改原始框架与软件的条件下,将应用升级到需要更多的存储空间,或精简到使用更少的存储空间,或改用不同的封装规格。对于使用同一平台进行多个项目的开发而言,STM32更是一种非常好的选择。因为在STM32全系列产品中,既有适合仅需少量的存储空间和引脚,也有满足需要更多的存储空间和引脚;既有适于高性能应用的,又有满足低功耗要求的;既有适合低成本简单应用,也有满足高端复杂应用的。全系列兼容,使得项目之间的代码重用和代码移植变得非常方便。1.1.2 STM32处理器的部结构与特点STM32F103系列微处理器是首款基于ARMv7-M体系结构的32位标准RISC (精简指令集)处理器,提
16、供很高的代码效率,在通常8位和16位系统的存储空间上发挥了ARM 核的高性能。该系列微处理器工作频率为72MHz,置高达128K 字节的Flash存储器存储器存储器是用来存储程序和数据的部件,有了存储器,计算机才有记忆功能,才能保证正常工作。它根据控制器指定的位置存进和取出信息。 全文和20K 字节的SRAM,具有丰富的通用I/O 端口。其部结构图如图1.1所示。图1.1 STM32F10x部结构图4STM32F103系列微处理器主要资源和特点如下5:1. 多达51个快速I /O 端口,所有I/O口均可以映像到16个外部中断,几乎所有端口都允许5V 信号输入。每个端口都可以由软件配置成输出(推
17、挽或开漏)、输入(带或不带上拉或下拉)或其它的外设功能口。2. 2个12位模数转换器,多达16个外部输入通道,转换速率可达1MHz,转换围为0 36V;具有双采样和保持功能;部嵌入温度传感器温度传感器。3. 灵活的7路通用DMA 可以管理存储器到存储器、设备到存储器和存储器到设备的数据传输,无须CPU 任何干预。通过DMA可以使数据快速地移动,这就节省了 CPU 的资源来进行其他操作。DMA 控制器支持环形缓冲区的管理,避免了控制器传输到达缓冲区结尾时所产生的中断。它支持的外设包括:定时器、ADC、SPI、I2C和USART 等。4. 调试模式:支持标准的20脚JTAG 仿真调试以与针对Cor
18、tex- M3核的串行单线调试(SWD)功能。通常默认的调试接口是JTAG 接口。5. 含有丰富的通信接口:三个USART异步串行通信接口、两个I2C 接口、两个SPI接口、一个CAN 接口和一个USB接口,为实现数据通信提供了保证。6. 部包含8个定时器。在本设计中电机调速通过定时器的PWM功能实现。这将在下一节做进一步介绍。1.1.3 TIMx定时器介绍STM32F10x系列处理器部有8个定时器,其中TIM1和TIM8为高级控制定时器,TIM2、TIM3、TIM4和TIM5为4个独立的通用定时器,TIM6和TIM7为基本定时器。这8个定时器各包含一个16位自动装载计数器,由各自的可编程预分
19、频器驱动。其中基本定时器可以为通用定时器提供时间基准,特别地可以为数模转换器(DAC)提供时钟,实际上,它们在芯片部直接连接到DAC并通过触发输出直接驱动DAC。通用定时器TIMx,它适用于多种场合,包括测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM)。通过对定时器预分频器和RCC时钟控制器预分频器的编程,可将脉冲长度和波形周期在几个微秒到几个毫秒间进行调整。每个定时器都是完全独立的,没有互相共享任何资源,它们也可以一起同步操作。STM32F103主控芯片的8个定时器中,高级控制定时器TIM1和TIM8与4个通用定时器均可生成PWM波。高级控制定时器与通用定时器相比较,它
20、们有非常多的相似之处,虽然前者功能要强大些,但鉴于后者已能够满足设计要求,因此选用通用定时器作为PWM生成模块。下面简要介绍通用定时器的特性与功能。通用定时器TIMx (TIM2、TIM3、TIM4和TIM5)主要特性如下6:1. 16位向上、向下、向上/向下自动装载计数器。2. 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为165536之间的任意数值。3. 4个独立通道:输入捕获、输出比较、PWM生成(边缘或中间对齐模式)、单脉冲模式输出。4. 使用外部信号控制定时器和定时器互连的同步电路。 5. 如下事件发生时产生中断/DMA:更新:计数器向上溢出/向下溢出,计数器初始化
21、(通过软件或者部/外部触发);触发事件(计数器启动、停止、初始化或者由部/外部触发计数);输入捕获;输出比较。 6. 支持针对定位的增量(正交)编码器和霍尔传感器电路。7. 触发输入作为外部时钟或者按周期的电流管理。对通用定时器TIMx功能简要描述如下7:时基单元可编程通用定时器的主要部分是一个16位计数器和与其相关的自动装载寄存器。这个计数器可以向上计数 、向下计数或者向上向下双向计数。此计数器时钟由预分频器分频得到。时基单元包含计数器寄存器(TIMx_CNT)、预分频器寄存器 (TIMx_PSC)和自动装载寄存器 (TIMx_ARR),它们都可以由软件读写,在计数器运行时仍可以读写。预分频
22、寄存器用于设定计数器的时钟频率;自动装载寄存器的容是预先装载的,其容被永久的保存在影子寄存器,或每次更新事件UEA发生时传送到影子寄存器;当计数器达到溢出条件且当TIMx_CR1寄存器中的UDIS位为0时,产生更新事件。更新事件也可由软件产生。定时器工作模式有计数器模式、输入捕获模式、PWM输入模式、强制输出模式、PWM模式等,根据设计要求,定时器应配置成PWM模式生成不同占空比的PWM波。以下对PWM模式做简要介绍。脉冲宽度调制(PWM)模式可以产生一个由TIMx_ARR寄存器确定频率、由TIMx_CCRx寄存器确定占空比的信号。在TIMx_CCMRx寄存器中的OCxM位写入110(PWM模
23、式1)或111(PWM模式2),能够独立地设置每个OCx输出通道产生一路PWM。使用PWM模式,必须通过设置TIMx_CCMRx寄存器的OCxPE位使能相应的预装载寄存器,最后还要设置TIMx_CR1寄存器的ARPE位,(在向上计数或中心对称模式中)使能自动重装载的预装载寄存器。因为仅当发生一个更新事件的时候,预装载寄存器才能被传送到影子寄存器,因此在计数器开始计数之前,必须通过设置TIMx_EGR寄存器中的UG位来初始化所有的寄存器。OCx的极性可以通过软件在TIMx_CCER寄存器中的CCxP位设置,它可以设置为高电平有效或低电平有效。OCx的输出使能通过(TIMx_CCER和TIMx_B
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STM32 小车 控制
限制150内