毕业论文基于STM32单片机的最小硬件系统的软硬件设计与实现.docx
《毕业论文基于STM32单片机的最小硬件系统的软硬件设计与实现.docx》由会员分享,可在线阅读,更多相关《毕业论文基于STM32单片机的最小硬件系统的软硬件设计与实现.docx(45页珍藏版)》请在冰豆网上搜索。
毕业论文基于STM32单片机的最小硬件系统的软硬件设计与实现
基于STM32单片机的最小硬件系统的软硬件设计与实现
摘 要
随着人们生活水平的提高,人们对消费电子的需求也越来越高,智能硬件和移动平台的成熟,也为STM32的发展提供了基础和动力。
系统采用ARMCortex-M3内核的STM32F103VET6作为微控制器,设计了CH340USB下载电路,JLINK下载电路供下载调试代码,结合DS18B20、VS838、红外遥控、蜂鸣器、LED发光管、RS232、RS485以及板载TFT液晶等外围设备,以及对这些外设的编程控制,实现了温度计、上下位机通信、红外遥控器、定时时钟、触摸画板、TFT液晶显示等集成与一板的功能。
关键词:
STM32F103VET6,TFT液晶,DS18B20
Abstract
Alongwithlivingstandardenhancement,thepeopletoexpendelectronicthedemandtobealsogettinghigherandhigher.Intelligent mobileplatform mature, alsoprovide thefoundationanddrivingforce forthedevelopmentofSTM32.
ThesystemadoptsARM Cortex-M3asSTM32F103VET6’skernel asthecontrollertocombinedwithDS18B20, VS838, infraredremotecontrol, buzzer, LEDluminoutube,RS232,RS485andtheonboard TFTLCD andotherperipheralequipment, aswellas peripheralprogramming control, realizedthe thermometer, serialcommunication, infraredremotecontrol,timingclock, drawingboard, touch TFTliquidcrystaldisplay isintegratedwith a function.
Keywords:
STM32F103VET6,TFTLCD,DS18B20
第1章系统概述与硬件电路设计
1.1系统的总体架构
STM32F103VET6的最小硬件系统主要包括了电源电路和微控制电路已经各种外设电路和下载电路组成,其系统框图如图1.1所示。
图1.1STM32最小硬件系统框图
如图,供电模块提供整个系统所需的电源,分别为5V和3.3V两种电压,其中3.3V电压提供给微处理器和板子上其他芯片供电,5V提供给红外遥控模块供电,以及提供给TFT液晶背光电源,另外5V和3.3V也作为外接电源,为其他没有集成在板子上的外设模块提供电源。
DS18B20将采集到的温度以模拟量电压的形式传送给微处理器,再经过数模转换得到具体的温度值。
RS232为串口通信模块,可以实现上位机与下位机的通信。
USB和JLINK电路可以实现下载代码并调试的功能,需要注意的是,其中USB电路只能完成代码的下载,并不能实现在线硬件调试的功能。
红外和按键为外部的输入设备。
TFT液晶屏作为整个系统的输出,显示设备。
STM32F103VET6则是整个系统的核心,为处理器部分。
1.2电源模块
电源是电子设备中不可缺少的一部分,电源模块的主要功能即是为整个系统提供电源,保证系统的正常运行。
电源模块电路如图1.2所示。
图1-2电源模块电路
USB电源经过AMS11173.3之后产生了3.3V的直流电源供系统使用。
C101、C102可以防止电感效应而产生的自激,并可以滤去电源的高频杂波部分。
C103用来减小由于负载电流瞬时变化而引起的高频干扰,用来进一步减小输出脉动和低频干扰,使电源输出更加稳定。
D102为电源指示灯。
1.3微控制器模块
本设计中的微控制器采用意法半导体公司出产的STM32F103VET6芯片,STM32F103VET6基于ARMCortex-M3内核设计,片上集成有丰富的数字和模拟资源,512K字节的内部Flash和64K的内部SRAM,允许最高72MHz的工作频率,是一款性价比很高的32位ARM处理器,是低成本ARM嵌入式应用的极佳选择。
其引脚分布如图1-3所示。
图1-3STM32F103VET6引脚图
STM32F103VET6模块接口电路如图1-4所示。
图中,P10为跳线接口,用于选择系统的启动模式:
当BOOT0=1时用户闪存存储器被选为启动区域,此时可以通过串口下载程序;当BOOT0=0时,系统存储器被选为启动区域。
电容C9至C15为STM32F103VET6电源引脚的旁路电容,能够起到稳定电源的作用,在PCB布板时应尽量靠近MCU。
Y2为8MHz晶振,Y1为32.768K低速晶振,为STM32F103VET6提供工作时钟,在设计时也要靠近MCU,避免干扰。
RST电路为复位电路。
为了PCB布线的方便,STM32F103VET6微控制器各引脚的接口描述如表1.1所列。
图1.4STM32F103VET6模块接口电路
表1.1STM32F103VET6引脚接口分布表
STM引脚编号
连接器件
备注
8,9
32.768kHz晶振Y1
RTC时钟晶振
12,13
8MHz晶振Y2
系统时钟
PD0,1,8,9,10,14,15
PE7~PE15
触摸液晶模块接口
液晶16位数据口
PA9,PA10
USART1接口
PE6
18B20数据口
PA2,PA3
USART2接口
PE1~PE4
按键
PC6~PC9
红外遥控接口
现成红外模块
PC12
蜂鸣器
PB5,PE5
LED0,LED1
PB12~PB15
Flash的SPI接口
W25X16芯片
1.4TFT液晶显示模块
STM32F103VET6有着丰富的I/O接口,选择显示器件时有充足的余地。
以往的电路设计一般都采用LCD1602或LCD12864,不过有一点不足,它们都是黑白屏,不能够提供彩色图片显示的功能。
随着TFT液晶屏的广泛使用,它的价格也越来越低,并且更符合本设计的要求,因而本系统便采用7寸TFT-LCD。
而且,STM32F103VET6具有FSMC功能(可变静态存储控制器),这样在驱动TFT液晶方面不仅速度快而且更加的稳定,以及节省资源。
此款TFT液晶的显示驱动采用ILI9320,其特征如下:
1.800×480分辨率
2.供电电压2.5~3.3V
3.背光电压5V
4.16位数据接口
5.支持多页操作
6.16字节真彩色
7.高的对比、高亮度、低功耗
当TFT触摸屏被按下时会得到模拟的电压值,因此如果要想将该值转换成对应的坐标就需要一个A/D控制器。
这种触摸屏的A/D控制芯片市场上有很多,本系统触摸控制芯片采用的是TI公司的ADS7846,低压I/O触摸屏控制器。
其芯片引脚图见图1-5所示,各个引脚的功能如表1-2所列。
图1-5ADS7846引脚图
表1-2ADS7846芯片引脚说明
引脚
号码
引脚
名称
引脚说明
1
+VCC
电源(2.2V~5.25V)
2
X+
X+位置输入
3
Y+
Y+位置输入
4
X-
X-位置输入
5
Y-
Y-位置输入
6
GND
地
7
VBAT
电池监控器输入
8
AUX
ADC辅助输入
9
VREF
基准电压输入输出(2.5V)
10
+VCC
数字I/O电源(2.2V~5.25V)
11
笔断控制脚
12
DOUT
连续数据输出,数据在DCLK下降沿转换,
为高电平时输出高阻抗
13
BUSY
BUSY输出,
为高电平时输出高阻抗
14
DIN
连续数据输入,数据在DCLK上升沿保持
15
芯片选择输入,控制转换时间,控制连续数据输入输出寄存器。
为高电平时等同于掉电模式,仅仅对ADC有效
16
DCLK
外部时钟输入端。
时钟驱动SAR转换器,并与连续输入输出同步
本系统的液晶为第三方模块,所以只需要在系统板上留出了TFT液晶的接口即可,如图1-6所示。
图1-6TFT液晶接口
1.5红外遥控模块
系统的红外接收模块采用的是PT2272芯片方案,PT2272是一款用以解码的专用芯片,当编码芯片PT2262(本系统只采用了解码芯片)发出的编码信号由:
地址码、数据码、同步码组成一个完整的码字,当解码芯片PT2272接收到信号后,在其地址码经过两次比较核对后,VT脚才会输出高电平,这时相应的数据脚也输出高电平。
芯片引脚如图1-8所示,模块实物图如图1-9所示。
图1-8PT2272解码芯片引脚图
图1-9红外接收模块实物图
工作原理:
模块除去VCC和GND引脚之外还有4个数据引脚,分别为D0,D1,D2,D3,所以可以表示的二进制由0000到1111,一共可以解析16种编码。
每当一个按键按下,数据引脚都会有唯一的一组输出。
1.6USB供电下载电路
USB下载电路,既可以为系统板提供电源,又能够实现下载代码的功能,电路只要实现是依靠CH340USB转串口芯片。
CH340是一个USB总线的转接芯片,能够实现USB转串口、USB转红外或者USB转打印口。
在串口方式下,CH340提供常用的MODEM联络信号,能够用于为计算机扩展异步串口,或者能将普通的串口设备直接升级到USB总线。
其原理框图如图1-10所示。
电路图如图1-11所示。
图1-10CH340芯片工作原理
图1-11USB供电下载电路
Y3为12M晶振,C20、C21为滤波电容,去掉晶振的高次谐波,使晶振出来的波形更接近于方波。
ISP_TX、ISP_RX为连接到MCU的串口引脚,这样便可以实现和下位机的通信。
CH340_D+、CH340_D-为连接到USB的数据引脚,这样便实现了和上位机的通信。
D1为二极管1N4118,作用是防止电流回灌MCU的I\O口,防止打坏复位引脚。
Q2和Q3为三极管,这里用作开关功能,配合BOOT0、BOOT1点位,使得源码可以成功下载。
1.7蜂鸣器电路
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
图1-12蜂鸣器电路
BEEP连接到了MCU的I\O引脚,Q1为PNP型的三极管,当BEEP输出高时,则Q1处于截止状态,蜂鸣器没有电流流过,不发出声音;当BEEP输出为低时,Q1处于开通状态,蜂鸣器有电流流过,就会发出声音。
1.8RS232电路
RS232为一种异步通信传输接口,一般通常有9个引脚和25个引脚种子标准,本系统板上为DB9母口接口。
主要由三根线实现异步通信的功能:
RX、TX、GND。
其中RX为接收端,TX为发送端,GND为信号地。
如图1-13所示。
图1-13DB9串口通信接口
STM32F103VET6控制器自身没有RS232通信功能,具备的是USART串口外设,所以系统板上采用的是SIP3232芯片,把USART电平转换为RS232电平,如图1-14所示。
图1-14RS232电路图
第2章系统选型与软件设计
2.1系统元器件选型及参数介绍
2.1.1系统微控制器选型
MCU的选择在整个系统设计中至关重要,在满足大内存、高速率、通用性、价格便宜等要求前提下,由于本系统选用了7寸TFT液晶作为系统的输出器件,所以考虑到驱动液晶的效果和实时响应等因素,本课题选择具有FSMC可变静态存储控制器功能的STM32F103VET6作为主控芯片。
STM32F103VET6是一个具备低功耗,高性能,高性价比的32位的ARM单片机,片内含512kBytesISP(In-systemprogrammable)的可反复擦写10万次的Flash只读程序存储器,以及64K片内SRAM,器件采用意法半导体公司的高密度、非易失性存储技术制造,采用了Cortex-M3内核。
功能强大的微型计算机STM32F103VET6可为许多嵌入式控制应用系统提供高性价比的解决方案。
STM32F103VET6芯片具有以下特性:
1.采用Cortex-M3内核;
2.512KB片内在系统可编程Flash程序存储器;
3.时钟频率可达72MHz;
4.64K字节片内随机读写存储器(SRAM);
5.100个可编程输入/输出引脚;
6.8个16位定时/计数器;
7.84个中断源,16级优先级;
8.4个全双工串行通信接口;
9.看门狗;
10.待机功能;
2.1.2系统温度传感器选型
系统采用的温度传感器是一种典型的有源传感器—DS18B20。
其工作原理是基于由于某些材料在受到了温度变化后,在其相应的特定表面产生电荷的压电效应。
DS18B20温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度高等特点。
传感器的弱点:
高内阻、小功率。
功率小,输出的能量微弱,这对外接电路要求很高。
但是,DS18B20综合来看,还是现今无论是用在商用还是工控应用非常广泛的一款芯片,足以见得其可靠的稳定性。
如图2-1所示DS18B20温度传感器封装。
技术性能描述:
1.独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
2.测温范围-55℃~+125℃,固有测温误差(注意,不是分辨率,这里之前是错误的)1℃。
3.支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。
4.工作电源:
3.0~5.5V/DC(可以数据线寄生电源)
5.在使用中不需要任何外围元件
6.测量结果以9~12位数字量方式串行传送
7.不锈钢保护管直径Φ6
8.适用于DN15~25,DN40~DN250各种介质工业管道和狭小空间设备测温
9.标准安装螺纹M10X1,M12X1.5,G1/2”任选
10.PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。
图2-1DS18B20封装图
2.1.3系统USB转串口芯片选择
CH340是一个USB总线的转接芯片,能够实现USB转串口、USB转红外或者USB转打印口。
在串口方式下,CH340能够提供常用的MODEM联络信号,能够用于为计算机扩展异步串口,或者能将普通的串口设备直接升级到USB总线。
特点:
1.全速USB设备接口,兼容USBV2.0,外围元器件只需要晶体和电容。
2.仿真标准串口,用于升级原串口外围设备,或者通过USB增加额外串口。
3.计算机端Windows操作系统下的串口应用程序完全兼容,无需修改。
4.硬件全双工串口,内置收发缓冲区,支持通讯波特率50bps~2Mbps。
5.支持常用的MODEM联络信号RTS、DTR、DCD、RI、DSR、CTS。
6.通过外加电平转换器件,提供RS232、RS485、RS422等接口。
7.软件兼容CH341,可以直接使用CH341的驱动程序。
8.支持5V电源电压和3.3V电源电压。
CH340内置了USB上拉电阻,UD+和UD-引脚直接连接到了USB总线上。
芯片内置电源上电复位功能。
CH340芯片正常工作时需要由外部的XI引脚提供频率为12MHz的时钟信号。
一般情况下,时钟信号来源由CH340芯片内置的反相器稳频振荡产生。
外围电路只要在XI和X0两个引脚之间接一个晶体振荡器(晶振),而且需要分别为XI和XO引脚对地连接一个振荡电容,通常为10PF和22PF。
芯片支持两种电压模式:
5V电源电压和3.3V电源电压。
当使用5V工作的工作电压时,芯片输入外部5V的电源,并且在芯片的V3引脚处应该接容量为4700pF或者0.01uF的电源退耦电容。
当使用3.3V工作电压时,芯片的V3引脚要和VCC相连,同时输入3.3V电源电压,并且与芯片相连接的其它电路的工作电压是不可以超过3.3V的。
芯片可以支持USB设备的自动挂起功能以来节约功耗,当NOS引脚为低电平的时候,芯片将禁止USB设备的挂起功能。
在异步串口通信方式下CH340芯片的引脚包括:
数据传输引脚(TX)、MODEM联络信号引脚、辅助引脚。
数据传输引脚包括:
TX引脚和RX引脚。
如图2-2为CH340。
图片2-2CH340图
2.1.4系统显示器选择
STM32系列采用一种新型的存储器扩展技术—FSMC,在外部存储器扩展方面具有独特的优势,可根据系统的应用需要,方便地进行不同类型大容量静态存储器的扩展,所以本系统采用的就是FSMC驱动液晶的方法。
FSMC(可变静态存储控制器)是STM32处理器系列中内部集成256K以上的Flash,后缀是XC、XD和XE的高存储密度的微控制器所特有的存储控制机制功能。
之所以称为“可变”,是由于通过对特殊功能寄存器的设置,FSMC能够自动根据不同的外部存储器类型,发出相应的数据/地址/控制信号类型来自动的匹配信号的速度,从而使得STM32系列的微控制器不仅能够应用于各种不同类型、不同速度的外部静态存储器,而且还能够在不增加外部器件的条件下同时扩展很多种不同类型的静态存储器,以满足系统设计在对存储容量、产品体积以及成本方面的综合要求,如图2-3为FSMC映射地址空间。
图2-3FSMC映射地址空间
FSMC技术优势:
1.支持多种静态存储器类型。
STM32通过FSMC可以与SRAM、ROM、PSRAM、NORFlash和NANDFlash存储器的引脚直接相连。
2.支持丰富的存储操作方法。
FSMC不仅支持多种数据宽度的异步读/写操作,而且支持对NOR/PSRAM/NAND存储器的同步突发访问方式。
3.支持同时扩展多种存储器。
FSMC的映射地址空间中,不同的BANK是独立的,可用于扩展不同类型的存储器。
当系统中扩展和使用多个外部存储器时,FSMC会通过总线悬空延迟时间参数的设置,防止各存储器对总线的访问冲突。
4.支持更为广泛的存储器型号。
通过对FSMC的时间参数设置,扩大了系统中可用存储器的速度范围,为用户提供了灵活的存储芯片选择空间。
5.支持代码从FSMC扩展的外部存储器中直接运行,而不需要首先调入内部SRAM。
STM32作为新一代ARMCortex-M3内核处理器,其卓越的性能和功耗控制能够适用于非常广泛的应用领域;而其特殊的可变静态存储技术FSMC也具有非常高度的灵活性,对于存储容量要求较高的嵌入式系统设计,能够在不增加外部分立器件的前提下,扩展多种不同类型和容量的存储芯片,来降低系统设计的复杂性和难度,提高了系统的可靠性。
2.2系统软件设计
2.2.1软件编程环境介绍
系统软件设计采用C语言编程,编译环境为KEILUV4。
KEILARM是美国的KEILSoftware公司推出的ARM系列兼容单片机C语言软件开发系统软件,和汇编相比较,C语言无论在功能性上、结构性、可读性、以及可维护性上都有非常明显的优势,因而非常适合初学者。
KEILARM软件提供非常丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
更重要的一点是,只要看一下生成后的汇编代码,就可以体会到KEILARM生成的目标代码效率是非常高的,基本没有什么无效语句,多数语句生成的汇编代码非常的紧凑,而且非常容易理解。
在开发大型的软件的时候就更加可以体现高级语言的优势。
KEILARM可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可以用软件自身或其它的编辑器来编辑C文件,然后由KEILARM的编辑器来编译连接生成单片机可以识别并能够执行的二进制文件(.HEX),然后就可以用单片机的烧录软件来将HEX文件拷进单片机内。
软件主要三个方面:
一是初始化系统;二是检测解锁遥控按键;三是执行功能函数,并进行显示。
这些操作都是在主程序中进行的。
本系统的软件采用的是模块化的结构,这样程序的结构就非常清楚,易读性好,而且便于调试和修改。
2.2.2系统设计总流程
本系统的软件设计主要包含2部分,硬件板子的设计和各功能模块函数的设计。
软件设计平台使用KEILARM。
各个功能之间的关系,采用的是遥控器模式,用遥控器和外部按键操作。
达到了各个功能之间的切换和选择。
软件设计总流程图,如图2-4所示。
图2-4软件总流程图
2.2.3TFT液晶驱动
本设计所使用的TFT液晶所使用的是ILI9320作为显示驱动的芯片,数据的读写方式是采用的模块硬件设置为16位的数据模式。
要想实现TFT的液晶显示功能主要依靠的是两个操作:
写显示缓存GRAM,想要显示的颜色数值;写寄存器操作,此为所有的对TFT液晶进行设置的操作。
写显示缓存的操作相对来说是比较简单的,只需要写入颜色的数值即可,它的操作时序如图2-5所示。
16位数据总线是采用的565的模式读写数据的,其数据的映射关系如图2-6所示。
低5位代表蓝色,中间的6位代表绿色,高5位代表的是红色,数值大则代表颜色深。
图2-5写显示缓存操作时序
图2-616位数据映射图
写寄存器的操作是实现对TFT液晶的显示功能的核心的操作,它的操作时序如图2-7所示。
先写入想要操作的寄存器号码,然后写入对应的数据,即完成一次命令操作,本设计驱动所示用的命令如表2-1所列,编号的具体含义如下。
图2-7写寄存器操作时序
表2-1ILI9320常用命令表
R0:
这个命令有两个功能,对其写时,最低位是OSC,功能是开启或关闭振荡器,当要对其读时,则返回控制器的型号。
R3:
入口模式命令,其中I/D0﹑I/D1﹑AM这三位控制的是液晶屏幕的显示方向。
在更新了一个数据后,根据I/D[1:
0]这两位的设置可以控制地址计数器的自动加/减1。
AM的功能是用来控制GRAM的更新方向的:
当AM=0的时候,地址以行方向更新;当AM=1的时候,地址是按照列的方向来更新的,其关系如图2-9所示。
图2-9GRAM显示方向设置图
R7:
显示控制命令。
当CL=1的时候,8位色;当CL=0的时候,26万色。
D0﹑D1﹑BASEE控制显示器的开和关,当全设为1的时候,显示器会开启;全为0的时候,显示器会关闭。
R32、R33:
设置了GRAM对应的行地址和列地址。
当写入一个颜色时,先通过这两个命令来设置位置,之后再写入颜色数据。
R34:
写数据到GRAM,当写入这个命令以后,地址计数器才可以增加或减少。
R80~R83:
对应GRAM地址行列大小的设置。
TFT要实现显示功能需要先对ILI9320初始化,具体步骤如图2-10所示。
完成初始化之后,就可以通过写显示缓存和写寄存器实现TFT的显示。
图2-10TFT显示初始化
2.2.4DS18B20温度传感器驱动
DS18B20的存储器结构示于图2-11。
由一个暂存的RAM和一个存储高低温报警触发值的非易失性电可擦除RAM组成。
当在单总线上通讯的