1 / 31
文档名称:

STM32的小车控制.docx

格式:docx   大小:633KB   页数:31页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

STM32的小车控制.docx

上传人:小果冻 2024/5/11 文件大小:633 KB

下载得到文件列表

STM32的小车控制.docx

相关文档

文档介绍

文档介绍:该【STM32的小车控制 】是由【小果冻】上传分享,文档一共【31】页,该文档可以免费在线阅读,需要了解更多关于【STM32的小车控制 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。I摘要对于小车的控制,即是对于电机的控制。电机作为机电能量转换装置,其应用范围已普及国民经济的各个领域以及人们的日常生活中,所以怎么更好的对电机进行控制就显得尤为重要。基于Cortex-M3内核的STM32F10x系列芯片是新型的32位嵌入式微处理器,其性能优良,移植性好,提高了对直流电机的控制效率,并对控制系统进行模块化设计,有利于智能小车的功能扩展和升级。本论文主要分析了基于STM32F103的小车控制系统的设计过程。此系统主要包括STM32F103控制器、液晶显示电路、键盘控制电路、电机驱动电路、红外探测电路、触角检测电路等。以STM32F103主控芯片及其外围扩展电路实现系统整体功能;小车根本运动模式的选择及速度调节用按键开关式的键盘输入实现;同时液晶模块实时显示小车运动参数;用红外探测电路实现小车循迹功能;用触角传感检测模块实现小车简单避障功能。在硬件设计的根底上提出了实现电机控制功能、LCD显示功能及小车简单循迹和避障功能的软件设计方案,。关键词:PWM,STM32F103,电机,传感器II目录前言 1第1章绪论 STM32处理器的分类 7第2章小车控制系统硬件设计 15第3章小车控制系统软件设计 23第4章结论 24致谢 25参考文献 26附录 27前言随着计算机、微电子、信息技术的快速开展,智能化技术的开发速度越来越快,程度越来越高,广泛应用于海洋开发、宇宙探测、工农业生产、军事、社会效劳、娱乐等各个领域。智能电动小车系统以迅猛开展的汽车电子为背景,涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科,主要由路径识别、角度控制及车速控制等功能模块组成,被应用于隧道探测、机器人、考古、娱乐等许多方面。因此,对智能小车的研究具有重要的实际意义。嵌入式技术依靠其体积小、本钱低、功能强等特点,适应了智能化开展的最新要求。单片机作为控制系统的微处理器,在数据处理和代码存储等方面都已经无法满足系统的要求,ARM微处理器资源丰富,具有良好的通用性。Cortex-M3是ARM公司最新推出的第一款基于ARMv7体系的处理器内核。它主要针对MCU领域,在存储系统、中断系统、调试接口等方面做了较大的改进,有别于过去的ARM7处理器;Cortex-M3具有高性能、低功耗、极低本钱、稳定等诸多优点,非常适合汽车电子、工业控制系统、医疗器械、玩具等领域。基于Cortex-M3内核的STM32系列处理器于2024年由ST公司率先推出,它集先进Cortex-M3内核结构、出众创新的外设、良好的功耗和低本钱于一体,极大的满足自动控制系统设计要求。作为先进的32位通用微控制器的领跑者,STM32以其出众的性能、丰富且灵巧的外设、很高的性价比以及令人意外的功耗水准,使其自面世以来得到众多设计者的青睐,众多行业领导者纷纷选用STM32作为新一代产品的平台。因此将STM32F103应用于智能小车的控制系统是一种较好的选择。基于此,本文提出了一个比较合理的智能小车系统设计方案。整个小车系统以STM32F103芯片为控制核心,附以外围电路,利用红外探测器、触角传感器采集外界信息和检测障碍物;充分利用STM32F103的串口、并口资源和高速的运算、处理能力,来实现小车自动识别路线按迹行走、躲避障碍物,并且通过LCD显示器实时显示小车运动参数;配置STM32F103通用定时器为PWM输出模式产生PWM波,通过步进调节PWM波占空比参数控制电机的转速;设计简便的按键式键盘输入来切换小车运行模式,以及调节小车速度。,以满足各种技术的不同性能要求,包含A、R、M三个分工明确的系列[1]。其中,A系列面向复杂的尖端应用程序,用于运行开放式的复杂操作系统;R系列适合实时系统;M系列那么专门针对低本钱的微控制领域。Cortex-M3是首款基于ARMv7-M体系结构的32位标准处理器,具有低功耗、少门数、短中断延迟、低调试本钱等众多优点。它是专门为在微控制系统、汽车车身系统、工业控制系统和无线网络等对功耗和本钱敏感的嵌入式应用领域实现高系统性能而设计的,它大大简化了编程的复杂性,集高性能、低功耗、低本钱于一体[2]。半导体制造厂商意法半导体ST公司是ARM公司Cortex-M3内核开发工程一个主要合作方,2024年6月11日ST公司率先推出了基于Cortex-M3内核的STM32系列MCU。本章将简要介绍STM32系列处理器的分类、内部结构及特点,并对本设计中重点应用的通用定时器做进一步分析。STM32处理器的分类STM32系列处理器目前分为2个系列。STM32F101是标准型系列,工作在36MHZ;STM32F103是增强型系列,工作在72MHZ,带有更多片内RAM和更丰富的外设。这两个系列的产品拥有相同的片内Flash选项,在软件和引脚封装方面是兼容[3]。标准型系列是STM32处理器入门产品,其价格仅相同于16位MCU却拥有32位MCU的性能,其外设的配置能提供优秀的控制和联接能力。增强型系列产品那么将32位MCU的性能和成效引向一个新的级别。内含的Cortex-M3内核工作在72MHZ,能实现高端运算,其外设的配置能提供极好的控制和联接能力。STM32全系列处理器拥有的脚对脚、外设及软件的高度兼容性,这给其应用带来全方位的灵巧性,可以在不必修改原始框架及软件的条件下,将应用升级到需要更多的存储空间,或精简到使用更少的存储空间,或改用不同的封装规格。2对于使用同一平台进行多个工程的开发而言,STM32更是一种非常好的选择。因为在STM32全系列产品中,既有适合仅需少量的存储空间和引脚,也有满足需要更多的存储空间和引脚;既有适于高性能应用的,又有满足低功耗要求的;既有适合低本钱简单应用,也有满足高端复杂应用的。全系列兼容,使得工程之间的代码重用和代码移植变得非常方便。-M体系结构的32位标准RISC〔精简指令集〕处理器,提供很高的代码效率,在通常8位和16位系统的存储空间上发挥了ARM内核的高性能。该系列微处理器工作频率为72MHz,内置高达128K字节的Flash存储器和20K字节的SRAM,具有丰富的通用I/O端口。。[4]STM32F103系列微处理器主要资源和特点如下[5]:,所有I/O口均可以映像到16个外部中断,几乎所有端口都允许5V信号输入。每个端口都可以由软件配置成输出〔推挽或开4漏〕、输入〔带或不带上拉或下拉〕或其它的外设功能口。,多达16个外部输入通道,转换速率可达1MHz,转换范围为0~36V;具有双采样和保持功能;内部嵌入温度传感器。、设备到存储器和存储器到设备的数据传输,无须CPU任何干预。通过DMA可以使数据快速地移动,这就节省了CPU的资源来进行其他操作。DMA控制器支持环形缓冲区的管理,防止了控制器传输到达缓冲区结尾时所产生的中断。它支持的外设包括:定时器、ADC、SPI、I2C和USART等。:支持标准的20脚JTAG仿真调试以及针对Cortex-M3内核的串行单线调试〔SWD〕功能。通常默认的调试接口是JTAG接口。:三个USART异步串行通信接口、两个I2C接口、两个SPI接口、一个CAN接口和一个USB接口,为实现数据通信提供了保证。。在本设计中电机调速通过定时器的PWM功能实现。这将在下一节做进一步介绍。,其中TIM1和TIM8为高级控制定时器,TIM2、TIM3、TIM4和TIM5为4个独立的通用定时器,TIM6和TIM7为根本定时器。这8个定时器各包含一个16位自动装载计数器,由各自的可编程预分频器驱动。其中根本定时器可以为通用定时器提供时间基准,特别地可以为数模转换器(DAC)提供时钟,实际上,它们在芯片内部直接连接到DAC并通过触发输出直接驱动DAC。通用定时器TIMx,它适用于多种场合,包括测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM)。时钟控制器预分频器的编程,可将脉冲长度和波形周期在几个微秒到几个毫秒间进行调整。每个定时器都是完全独立的,没有互相共享任何资源,它们也可以一起同时操作。STM32F103主控芯片的8个定时器中,高级控制定时器TIM1和TIM8及4个通用定时器均可生成PWM波。高级控制定时器与通用定时器相比较,它们有非常多的相似之处,虽然前者功能要强大些,但鉴于后者已能够满足设计要求,因此选用通用定时器作为PWM生成模块。下面简要介绍通用定时器的特性及功能。4通用定时器TIMx(TIM2、TIM3、TIM4和TIM5)主要特性如下[6]:、向下、向上/向下自动装载计数器。(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65536之间的任意数值。:输入捕获、输出比较、PWM生成(边缘或中间对齐模式)、单脉冲模式输出。。:更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发);触发事件(计数器启动、停止、初始化或者由内部/外部触发计数);输入捕获;输出比较。(正交)编码器和霍尔传感器电路。。对通用定时器TIMx功能简要描述如下[7]:时基单元可编程通用定时器的主要局部是一个16位计数器和与其相关的自动装载存放器。这个计数器可以向上计数、向下计数或者向上向下双向计数。此计数器时钟由预分频器分频得到。时基单元包含计数器存放器(T)、预分频器存放器(TIMx_PSC)和自动装载存放器(TIMx_ARR),它们都可以由软件读写,在计数器运行时仍可以读写。预分频存放器用于设定计数器的时钟频率;自动装载存放器的内容是预先装载的,其内容被永久的保存在影子存放器,或每次更新事件UEA发生时传送到影子存放器;当计数器到达溢出条件且当TIMx_CR1存放器中的UDIS位为0时,产生更新事件。更新事件也可由软件产生。定时器工作模式有计数器模式、输入捕获模式、PWM输入模式、强制输出模式、PWM模式等,根据设计要求,定时器应配置成PWM模式生成不同占空比的PWM波。以下对PWM模式做简要介绍。脉冲宽度调制〔PWM〕模式可以产生一个由TIMx_ARR存放器确定频率、Rx存放器确定占空比的信号。MRx存放器中的OCxM位写入‘110’(PWM模式1)或‘111’(PWM模式2),能够独立地设置每个OCx输出通道产生一路PWM。使用PWM模式,MRx存放器的OCxPE位使能相应的预装载存放器,最后还要设置TIMx_CR1存放器的ARPE位,(在向上计5数或中心对称模式中)使能自动重装载的预装载存放器。因为仅当发生一个更新事件的时候,预装载存放器才能被传送到影子存放器,因此在计数器开始计数之前,必须通过设置TIMx_EGR存放器中的UG位来初始化所有的存放器。xP位设置,它可以设置为高电平有效或低电平有效。OCx的输出使能通过(xNE、MOE、OSSI和OSSR位的组合控制。在PWM模式(模式1或模式2)下,Rx始终在进行比较,Rx≤T≤Rx。根据TIMx_CR1存放器中CMS位的状态,定时器能够产生边沿对齐的PWM信号或中央对齐的PWM信号[8]。PWM输出信号的占空比由TIMx_CRRx存放器确定的。其公式为“占空比=(TIMx_CRRx/TIMx_ARR)*100%〞,因此,可以通过向CRR中填入适当的数来输出自己所需的频率和占空比的方波信号,进而实现本设计中调速功能。,本论文所设计的小车分为电机系统、显示系统、控制系统、避障和循迹系统五大结构。电机系统使用两个电机〔A和B〕,设定正转、反转和停止三种状态,分别控制***和右轮,通过两个电机的转动状态切换控制小车的行驶方向,例如前进、后退、左转、右转,实现小车的根本运动功能;通过对电机转速的调节控制小车的运动速度。根据实际情况,假设两个电机相对安装,那么表1-1是电机转动状态与小车运动方向的关系表。表1-1电机转动状态与小车运动方向关系表运动状态电机A〔右轮〕电机B〔***〕前进正转反转后退反转正转右转停止正转左转正转停止7小车的显示系统,即小车装有液晶显示器〔128×64〕,初始化由编程设定,小车运动过程中实时显示小车的运动参数,并可在以后予以扩展,根据实际运用的需要显示更多内容。小车的控制系统为按键开关式的键盘,设定小车启动/停止、自由行走模式/循迹模式、加速/减速六种状态,最初都赋以高电平,当按键被按下时,即触发低电平,使小车按相应状态运动。小车避障系统,即在自由行走模式下通过触角传感器对障碍物检测,使小车实现自动避障功能。小车循迹系统,即在循迹模式下通过红外探测器对黑迹不断进行检测,自动识别路线,使小车按指定的路线行驶。,。L298是恒压恒流双H桥集成电机芯片,可同时控制两个电机,且输出电流可到达2A。直流电机驱动电路使用最广泛的就是H型全桥式电路,这种驱动电路可以很方便实现直流电机的四象限运行,分别对应正转、正转制动、反转、反转制动。,,S1、S2为一组,S3、S4为另一组,两组的状态互补,一组导通那么另一组必须关断。当S1、S2导通时,S3、S4关断,电机两端加正向电压,可以实现电机的正转或反转制动;当S3、S4导通时,S1、S2关断,电机两端为反向电压,电机反转或正转制动。7