谭淑梅
(大庆师范学院 物理与电气信息工程学院,黑龙江 大庆163712)
STM32 系列高处理速度产品是ST 公司最近几年推出的一系列用来取代51 和所有低端单片机的新型处理器,内置资源丰富,集成12 位AD 和两路高级定时器,专为嵌入式应用底层化而专门设计的新型Cortex-M3 内核。STM32 系列新型单片机按其性能和存储空间的大小可分为两类:增强型系列和通用型系列。这二者在时钟频率上有着明显的区别,增强型系列MCU 时钟频率最高可达72MHZ,在同一系列处理器中性能是尤为突出的了。此外增强和通用两个系列都内置了一定大小的闪存,只是其容量大小和外设接口方式有所差别。
STM32 的CPU 采用的是72MHZ,是零等待处理器,即在处理数据时不需要响应时间,在一个机器周期里就能实现乘除法运算。该款单片机有着丰富的GPIO 接口,共有114 个引脚的,其中有80 个通用I/O口具有兼容5V 的特性,使得很多5V 模块也可以轻松的被STM32 处理,还可以配置出16 个外部中断,且内部总线上挂载着2 个12 位的模数转换器具有可以多重采集和保持采集数据的能力,内部还集成了温度传感器。由于STM32 给出的定位是ARM 处理器,所以其各方面性能都要远远高于普通的单片机,例如其内部集成的定时器从基本定时器,通用定时器再到高级定时器,总共多大7 个多,此外与外围设备的通信接口也集成了很多接口包括USART 接口、SPI 接口、还有CAN 接口和USB 2.0 接口,使得STM32 可以和大多数接口协议的芯片顺利完成信息通信。并且其内部还集成有DMA 直接存取寄存器,可以不占用CPU 的处理时间而直接将数据传输给处理器[2]。
STM32 MCU 允许GPIO 引脚被配置为8 种模式(可通过软件配置来实现),所谓GPIO 即使用STM32的通用输入输出模式。STM32 的通用输入输出引脚被分为GPIOC GPIOD……GPIOG 不同的组,例如GPIOA 共有PA0 到PA15 共16 个不同的引脚,如图1所示。
图1 结构图
STM32GPIO 可通过软件编程实现2MHZ、10MHZ、50MHZ 等不同速率的输出模式[2]。提高这个速率可提高GPIO 端口对内部电路的响应速率,可通过软件的MODE 寄存器来实现对GPIO 速率的设置,GPIO的配置如图2所示:
图2 结构图
STM32 的GPIO 的输入模式可配置为模拟输入、浮空输入、上拉输入、下拉输入四种模式,同样的GPIO 的输出模式也可设置为开漏输出、开漏复用输出、推挽复用输出、推挽输出4 种模式,具体的配置模式如图3所示。
图3 I/O 口配置图
STM32 是一款可配置为处于超低功耗模式的32 位高速高性价比的MCU,与传统的51 和AVR 单片机不同的是,STM32 单片机仅需通过USB 线和电脑连接即可完全工作正常。然而,基于Cortex-M3 内核设计的STM32 处理器是一个供电范围很宽(2.0 至3.6V)的新型处理器,一般情况采用比较适中的3.3V供电,只需在传统51 单片机的电源基础上通过ASM1117 进行压降至3.3V 即可,ASM1117 供电电路通常会考虑系统的稳定性和电源本身的波动性而选择在电源输入和输出端加上滤波电容,如图4所示。
图4 供电模块
当STM32 程序不可控及系统整体处于休眠状态时,希望程序可以重新初始化重新执行,可以采用重新上电的方式但更加合理的方案是加上一个复位按键就可以解决这个问题,也避免了由于重复的上电断电对系统本身造成的干扰。复位功能是通过将电容与单片机的复位引脚连接形成回路按键时通过的充放电来完成的,这样只需要在按键的地方加上一个电容然后形成一个回路,在按下按键的时候可以让电容完成充放电,如图5和图6所示。
图5 LED 灯
图6 电路按键及复位电路
我们接触的其实更多的是模拟量,如电流、浓度、光强、湿度等,都是无法直接显示出来的,为了便于处理和显示以及存储这些数据,就需要把这些模拟量转换成数字量,使其便于人机交互和单片机的数据处理。这里以STM32F103VET6 为核心芯片用到了其挂载的ADC 外设,该系列单片机内嵌了3 个12 位的互相独立的ADC,每个独立的ADC 有六个外部通道,这样三个AD 就可以测量18 路通道,并且可以通过软件配置成单次扫描和多通道混合扫描模式,这样就不用在外接有关ADC 转换的芯片了,只需要搭载一个模拟输入量就可以了。
该电路设计的参考电压负极是接地的,如图7所示。
在ADC 转换过程中实验数据不能够直接的表现出来,而我们希望显示在电脑上就可以直观的监测到数字量的变化,这时就只能采用串口通信来实现这个人机交互。该电路的核心芯片是MAX232,该电路的搭建参照其芯片使用手册,按照其经典接法连接就可以实现其功能。通过软件配置STM32 的PA10 引脚为其复用功能,即为USART1 的接收引脚,PA9 引脚也配置为其复用功能,即为USART1 的发送引脚上,这样就和电脑的串口接法是一样的如图8所示。
图7 ADC 采样电路
图8 串口电路
本文首先对STM32 的系统架构和基本功能进行了描述,在此基础上,对STM32 在供电模块、复位电路设计、ADC 转换电路、串口通信等典型电路设计进行了详细阐述。通过这些电路设计,可以为STM32 的应用打下良好的基础。
[1]任哲.嵌入式实时操作系统μC/OS-Ⅱ原理及应用[M].北京:北京航空航天大学出版社,2009.
[2]刘美茹主编.C++程序设计教程[M].哈尔滨:哈尔滨工业大学出版社,2005.
[3]李凤霞.C 语言程序设计教程[M].北京:北京理工大学出版社,2009.
[4]高海宾.Altium Designer 10 从入门到精通[M].北京:机械工业出版社,2011.