基于STM32单片机的牵引车遥控器设计毕业论文
2020-04-10 14:40:12
摘 要
本文主要针对牵引车设计一套基于STM32F1系列单片机的遥控器和接收器,可以完成通过遥控器和接收器之间的收发数据来对牵引车前进、后退、左转及右转等动作进行控制,并且根据需求可以添加更多的功能。其中包括硬件系统的设计和程序代码的编写。
论文主要研究了STM32单片机基本原理和组成结构;串口通信的相关原理;并研究了如何对STM32单片机通过代码的设计来进行串口通信。
最后的结果表明了对STM32单片机和串口通信的相关研究无错误,成功的实现要求的相关功能并通过预留了多余的I/O能够根据需求添加更多的功能。
本文的特色:与传统的红外遥控器相比,本文通过设计了一个系统进行无线串口通信可以根据需求实现更多的功能,可以自定义数据格式,并且遥控距离远且信号稳定,适用于工业场合。
关键词:牵引车;遥控器;接收器;STM32;串口通信
Abstract
This article mainly designs a set of remote controllers and receivers based on the STM32F1 series of single-chip microcomputers for tractors. It can complete control forward, backward, turn left and turn right of the tractors by sending and receiving data between the remote controller and the receiver. and can add more functions according to the demand. Including the design of the hardware system and the preparation of program code.
The thesis mainly researches the basic principle and composition of STM32 MCU and the related principles of serial communication. It also studies how to design serial communication for STM32 MCU through code design.
The final result shows that there is no error in the related research of STM32 MCU and serial port communication. The successful implementation of the related functions requires that more functions can be added according to requirements by reserving redundant I/O.
This article features: Compared with traditional infrared remote control, this article designed a system for wireless serial communication can be achieved according to the needs of more functions, you can customize the data format, and remote control distance and signal stability, suitable for industrial applications
Key Words:Tractor; Remote control;Receiver;STM32;Serial communication
目录
第1章 绪论 1
1.1国内外研究现状 1
1.2研究的目的和意义 1
1.2研究的内容及方案 1
1.3研究的预期目标 3
第2章 遥控器和接收器的硬件系统设计 4
2.1 MCU的选型 5
2.2 最小系统的设计 6
2.2.1电源电路 6
2.2.2 复位电路 7
2.2.3 时钟电路 8
2.2.4 调试接口电路 8
2.2.5 启动模式电路 9
2.3 通信系统的设计 10
2.3.1 串口通信的基本原理 10
2.3.2 无线通信模块的原理及配置 11
2.3.3 通信电路的设计 14
2.4 显示系统的设计 15
2.4.1 显示模块的选型 15
2.4.2 OLED介绍 15
2.4.3 OLED显示模块介绍 15
2.4.4 显示电路的设计 17
2.5 发射板电路设计 18
2.6 接收板电路设计 20
第3章 遥控器和接收器的软件设计 22
3.1 串口的配置 22
3.2 按键扫描程序 25
3.3 OLED显示程序 26
3.4 继电器控制程序 27
3.5 总体程序流程 28
第4章 总结与展望 31
4.1 全文总结 31
4.2 展望 31
致谢 32
参考文献 33
附录A 遥控器原理图 34
附录B 接收器原理图 35
附录C 遥控器软件主程序 36
附录D 接收器软件主程序 42
第1章 绪论
1.1国内外研究现状
遥控器是一种用一组信号来远程控制机器的装置,最早是由一个叫做尼古拉特斯拉的发明家在1898年发明出来得。最初的遥控器还是有线的,但是因为其不便性,后来演变成无线的。一开始的无线遥控器是利用超声波来调节频道和声音,但是这种遥控器会被生活中的超声波所干扰,一些人和动物也能听到遥控器的声音。直到1980年,人们开发出了可以发送和接收红外线的半导体后,以这种半导体为核心的红外遥控器就慢慢的取代了以超声波为控制信号的遥控器。现代的遥控器主要分为两类,一种是传统的红外遥控器,其主要应用在家电等场合,原理是使用波长为0.76-1.5微米之间的近红外线来控制信号。红外遥控有不影响周边环境、不干扰其他电器设备等优点,但是遥控范围较小也是它的缺陷。另一种遥控器为无线电遥控器,主要是利用无线电信号传递指令,接收部分接收到指令后进行一系列的动作,由于其遥控范围较广,多用于工业控制等场合。
接收器就是与遥控器相对应的对目标进行控制的部分,一般在家电等电器中是集成在整个电路中,没有单独的接收器;但是在一些工业场合,要对电机等进行控制,这时候就需要单独设计一个接收器进行工作。
1.2研究的目的和意义
本设计所设计的牵引车遥控器和接收器是用于在火车检修时拖动火车的牵引车上,通过遥控器发送的无线信号对接收器进行控制,接收器收到无线信号后应产生开关量信号来对继电器进行控制以控制牵引车的前进、后退、左转、右转等动作。
在牵引车上遥控装置应该做到操作简单,响应快,稳定性高,特殊编码,遥控距离远等特点,这些要求就需要设计符合要求的遥控器和接收器。首先,由于红外遥控的遥控距离小,所以不能用在牵引车上;虽然无线电遥控器符合设计要求,但是由于其场合特殊,所以还需要对其进行进一步的设计才能满足设计要求。本设计的目的就是使牵引车能够安全、稳定、快速的响应遥控器的指令,这有助于提高列车检修时的效率和安全。
1.2研究的内容及方案
由于牵引车的遥控要求简单,快速,稳定等特点,现作如下几个方案进行选择:
方案一:采用异步串行通信,使用触摸屏控制遥控器发送信号给接收器,再由接收器控制牵引车并返回应答数据,遥控器接收到应答数据后显示器显示相对应的内容。这种方案因为采用了串口通信,所以不需要采用同步时钟源,对于通信的可靠程度有很大的提高,但是串行通信的速度没有并行通信快;使用了触摸屏进行控制,这样能够延长遥控器的使用寿命,对于用户的使用体验也更好,但是其成本高,其界面的编程也较不方便;使用了显示器对牵引车的状态进行显示能够更加方便的进行控制和管理。系统框图见图1.1
图1.1 方案一系统框图
方案二:采用异步并行通信,使用触摸屏控制遥控器发送信号给接收器,再由接收器控制牵引车并返回应答数据,遥控器接收到应答数据后显示器显示相对应的内容。方案二与方案一的区别在于通信方式,采用了异步并行通信,这种通信方式的特点是通信速度快,但是也有明显缺陷,就是其占用的I/O口较多,并且收发时容易产生错误。系统框图见图1.2。
图2.2 方案二系统框图
方案三:采用异步串行通信,使用按键控制遥控器发送信号给接收器,再由接收器控制牵引车并返回应答数据,遥控器接收到应答数据后显示器显示相对应的内容。方案三与方案一的区别在于控制方式,方案三采用了传统遥控器所使用的按键控制,这种控制方式的特点是成本低,方便操作,能够小型化,便于携带。但是也有其不利的地方,就是相比于触摸屏控制台等长期在一个地方的控制终端,便携式的小型遥控器容易损坏和丢失。系统框图见图1.3。
图1.3 方案三系统框图
综合考虑,在通信方式上,虽然异步串行通信的速度没有并行通信快,但是其通信速度也足够满足设计要求,并且更加稳定和可靠。在控制方式上,考虑到成本和便携性等因素,还是选择使用按键控制的便携式小型遥控器。所以最终的设计方案是,使用异步串行通信为通信方式,使用按键作为控制方式,通过按键控制遥控器发送信号给接收器,再由接收器控制牵引车并返回应答数据,遥控器接收到应答数据后显示器显示相对应的内容。
在选择何种芯片作为MCU也需要进行考虑。传统的芯片有C51,但是C51芯片的内存小,速度慢,对于无线数据传输这种场合时远远达不到要求,所以本设计采用使用近几年市面上使用最为广泛的STM32系列芯片,其内存、处理速度等性能完全能够满足本次设计的要求。
1.3研究的预期目标
本设计中应该要实现的功能是:遥控器控制接收器产生开关量信号以对牵引车进行控制并且显示出牵引车当前的状态。
所以本次设计的预期目标是,通过在发送器上的按键来发送数据,接收器收到数据后进行判断后对继电器进行控制,并返回应答数据;接收器收到应答数据后将其显示在显示屏上。
第2章 遥控器和接收器的硬件系统设计
通过确定后的方案,可知系统总体的信号流向为:由遥控器上按键按下触发的开关量信号输入到单片机,单片机接收到信号后将设定好的数据通过无线模块发送给接收器上的无线模块;接收器上的无线模块将数据发送给单片机,单片机根据数据返回应答数据给遥控器上的无线模块后对相对应的继电器输出开关量信号以对牵引车进行控制;遥控器上的无线模块接收到应答数据后将数据传给单片机,单片机再根据应答信号在显示屏上进行相应的显示。系统框图如图2.1所示
图2.1 系统框图
所以本章主要介绍的内容为:单片机最小系统的设计;通信系统的设计;显示系统的设计;按键电路的设计;继电器电路的设计,具体按键对应的继电器及牵引车的动作见表2.1。
表2.1 按键功能表
按键 | 继电器 | 牵引车 |
KEY1 | J1 | 启动 |
KEY2 | J2 | 停止 |
KEY3 | J3 | 前进 |
KEY4 | J4 | 后退 |
KEY5 | J5 | 左转 |
KEY6 | J6 | 右转 |
2.1 MCU的选型
本设计中的控制信号为遥控器上的按键,受控信号为接收器上发出的电平信号。通过按下按键,控制接收器上输出的电平信号来控制电机的驱动,都通过I/O进行控制即可,并且本设计所采用的I/O口数量较少,只有所以在选择MCU时不需要选择I/O数量较多的IC,容易造成性能上的浪费。
STM32微控制器的种类和型号多种多样,在确定单片机的型号时做出了以下的选择:首先,选择的是STM32F103系列的微控制器,原因是STM32F103系列的微控制器采用的是高性能的ARM Cortex-M3处理器,ARM Cortex-M3处理器是一个功耗较小的处理器,特点是中断响应快且调试简便。它专为需要快速中断响应的嵌入式应用而设计,包括微处理器,汽车和工业控制系统等相关领域 [1]。
ARM Cortex-M3的主要特点包括:
- 性能强。在相同的主频下能处理更多的任务;
- 功耗低。延长了电池的寿命,这对于无线系统的应用是至关重要的;
- 响应快。能迅速的响应中断;
- 低成本。现在市场上低端的IC价格还不超过7元;
- 使用更加方便。现在市场上32位处理器的使用率高,能够更简单的进行编程和调试,给设计减少负担;
- 代码更加合理。能够出色的完成各种目标[2]。
基于Cortex-M3内核的处理器已经非常广泛的应用在各种场合,而且性价比较高。Cortex-M3内核设计人员在设计上在不断降低成本,使得现在一个单一的小型芯片可以抵得上以前三四块传统的单片机。
并且Cortex-M3内核还有一个重要特点就是基础代码在所有系统中都可以重用并且方便移植。Cortex-M3内核架构非常精细,能够与C语言无缝配合,C程序代码可以很容易移植并重用。
在确定了选用STM32F103系列单片机后需要再进行最后的最终选型,在最终选型上,本设计选择采用的是STM32F103RCT6这款芯片,其命名规则如下:
- STM32:STM32代表ARM Cortex-M3内核的32位微控制器;
- F:代表芯片子系列;
- 103:103代表增强型系列;
- R:R这一项表示引脚数,字母T表示有36个引脚,字母C表示有48个引脚,字母R表示有64个引脚,字母V表示100个引脚,字母Z表示有144个引脚,字母I表示176个引脚;
- C:C这一项代表内嵌Flash容量,其中6代表32K字节Flash,8代表64K字节Flash,B128代表K字节Flash,C代表256K字节Flash,D代表384K字节Flash,E代表512K字节Flash,G代表1M字节Flash;
- T:T这一项表示封装类型,字母H表示封装为BGA类型,字母T表示为LQFP类型,字母U表示为VFQFPN类型;
- 6:6这一项表示工作温度范围,其中6表示-40——85℃,7表示-40——105℃。
综上所述,STM32F103RCT6这款MCU性能足够强大,64个引脚也保证有充足的I/O口[3]。根据以上的数据可以得知此芯片非常符合这次设计的要求。
2.2 最小系统的设计
STM32微处理器和51单片机类似,只有芯片是无法独立工作的,要用相关电路构成最小系统才能进行工作,最小系统中的电路包括3.3V电源电路、时钟电路、复位电路、调试接口、启动模式选择电路等。
2.2.1电源电路
STM32F1系列器件工作电压 为2.0-3.6V,在芯片上,VDD引脚必须连接到VDD电源并外接退耦电容(100nF陶瓷电容,个数由器件VDD引脚个数决定)。如果需要使用ADC,VDD的支持范围为2.4-3.6V,否则VDD支持2.0-3.6V的宽电压范围。在常规使用中,通常采用3.3V供电。
VBAT引脚可以连接到外部后备电池(1.8-3.6V)。如果没有使用外部后备电池,可以将此引脚连接到VDD并连接一个100nF陶瓷电容作退耦。VDDA引脚必须连接两个外部退耦电容,并保持VDDA与VDD相同供电电压。VREF 引脚可以连接到VDDA电源。
在本设计中,整体系统采用7.2V锂电池经行供电,这就需要降压电路将电压降低到3.3V并进行稳压,本设计采用的芯片为AMS1117-3.3,并外接了两个电容进行稳压和滤波。并且在设计中并不需要采用备用电池,所以将电路中的VBAT引脚通过一个100nF的陶瓷电容与3.3V的电源相连接。具体的电源电路如图2.2,图2.3所示。
图2.2 电池供电电路
图2.3 最小系统电源电路
2.2.2 复位电路
STM32具有一个完整的POR/PDR电路,只要VDD低于特定的阈值,就将处于复位模式。所以本设计采用低电平复位,如图2.4所示,当按键未按下时,复位引脚RESET为高电平输入,当按键按下时,复位引脚RESET为低电平输入,即进入复位模式。
图2.4 复位电路
2.2.3 时钟电路
STM32有3种时钟可选为系统时钟(SYSCLK):HSI(内部振荡器时钟)、HSE(外部时钟,可以是时钟源输入或外部晶体振荡器)和PLL时钟,另外STM32还具有以下两个二级时钟源:可用于独立看门狗和停止/待机模式RTC唤醒提供时钟源的40kHz内部低速RC;为RTC提供时钟源的32.768kHz低速外部晶体振荡器[3]。
在简单的应用中下,可选择内部时钟作为系统时钟源。在需要精确定时的情况下(如串行通信、系统精确定时、内部RTC等),需使用外部时钟源。系统时钟要选择外部时钟源输入或外部晶体振荡器时钟,RTC使用外部32.768kHz晶体振荡器。最小系统时钟电路如图2.5。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: