基于STM32嵌入式接口与传感器应用开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

任务2 ARM嵌入式开发平台

本任务重点学习ARM嵌入式开发平台的基本原理、功能和结构,并进一步学习STM32微处理器的原理、功能及片上资源,学习STM32开发平台的构成以及开发环境的搭建。

2.1 学习场景:ARM嵌入式开发平台有哪些应用

ARM微处理器具有体积小、低功耗、低成本、高性能等优点,采用32位精简指令集(RISC)微处理器架构,被广泛应用于多个领域的嵌入式系统设计中,如消费类多媒体、教育类多媒体、嵌入控制、移动式应用以及DSP等。ARM技术被授权于多个厂家,每个厂家都有各种特有的ARM产品和服务。经过近年来的发展,ARM很快成为RISC标准的缔造者和引领者,并在嵌入式系统微处理器领域中稳坐“霸主”地位。

ARM微处理器具有不同的产品系列,其使用方式也不同。Cortex-A系列微处理器常用来作为全功能微处理器使用,可运行Android、Linux或Windows等操作系统,需要使用特殊的方法进行程序编译和烧录。Cortex-M系列微处理器是作为具有特定功能的嵌入式微处理器而设计的,芯片既可运行裸机程序,也可运行小型的嵌入式操作系统,但本质上都是一次性程序下载,因此Cortex-M系列微处理器的程序需要在特定的集成开发环境上开发,开发环境调试完成后再通过仿真器将程序下载到微处理器中。ARM Cortex-M4结构示意图如图2.1所示。

图2.1 ARM Cortex-M4结构示意图

2.2 开发目标

(1)知识要点:嵌入式ARM的组成与结构;STM32微处理器和开发平台。

(2)任务目标:能够列举5种嵌入式ARM芯片;能够列举STM32微处理器的功能参数。

2.3 原理学习:ARM微处理器

2.3.1 ARM微处理器简介及其产品系列

1.ARM微处理器简介

ARM是32位精简指令集(RISC)微处理器,具有低成本、高性能、低功耗等优点,被广泛用于多个领域的嵌入式系统中。ARM是对一类微处理器的称统,也是一个公司的名字。ARM于1983年开始由Acorn电脑公司(Acorn Computers Ltd)设计,在1985年时开发出了ARM1。在20世纪80年代晚期,Acorn开始与苹果公司合作开发新版的ARM内核,并在1990成立ARM(Advanced RISC Machines Ltd.)公司。在1991年发布了ARM6,从ARM7开始ARM内核被普遍认可和广泛使用,以后陆续推出了ARM9TDMI、ARM9E、ARM10E、XScale、ARM11、ARMv6T2、ARMv6KZ、ARMv6K、Cortex。ARM公司的经营模式在于出售其半导体知识产权核心(IP Core),由合作公司生产各具特色的芯片。

目前,全世界几十家大的半导体公司都在使用ARM公司的授权,使得ARM技术获得更多第三方工具和软件的支持,有更好的软件开发和调试环境,从而加快了产品的开发。目前,ARM微处理器广泛应用在消费电子产品、便携式设备、电脑外设、军用设施中,其中占有手机微处理器95%的市场份额、上网本微处理器30%的市场份额,平板电脑微处理器70%的市场份额。

ARM微处理器之所以能够在32位微处理器市场上占有较大的市场份额,主要是由于ARM微处理器具有功耗小、成本低、功能强,非常适合作为嵌入式微处理器使用。目前,ARM微处理器几乎已经深入工业控制、无线通信、网络应用、消费类电子产品和安全产品等多个领域。ARM产品链如图2.2所示。

2.ARM微处理器产品系列

由于ARM公司成功的商业模式,使得ARM微处理器在嵌入式市场上取得了巨大的成功,ARM微处理器系统已占据了32位RISC微处理器75%以上的市场份额。ARM微处理器体系结构的发展经历了v1到V6的变迁,在v6后,ARM微处理器的体系结构采用了新的分类。ARM公司于2004年开始推出基于ARMv7架构的Cortex系列内核,该内核又可细分为三大系列:A、M、R。目前嵌入式行业主流的ARM微处理器包括Cortex、ARM7、ARM9、ARM11等几个系列。ARM微处理器系列如图2.3所示。

图2.2 ARM产品链

图2.3 ARM微处理器系列

(1)ARM7系列。ARM7系列微处理器内核采用冯·诺依曼体系结构,包括ARM7 TDMI、ARM7 TDMI-S、ARM720T及ARM7EJ-S。其中,ARM7 TDMI内核的应用较为广泛,它属于低端微处理器内核,内核支持64位结果的乘法,支持半字、有符号字节存取;支持32位寻址空间,即4GB线性地址空间;包含了嵌入式ICE模块以支持嵌入式系统调试,硬件调试由JTAG测试访问端口访问,JTAG控制逻辑被认为微处理器核的一部分;广泛的第三方支持,并与ARM9 Thumb系列、ARM10 Thumb系列微处理器相兼容。典型产品是Samsung公司的S3C44B0系列。ARM7系列微处理器主要用于对成本和功耗要求比较苛刻的消费类电子产品。

(2)ARM9系列。ARM9系列微处理器的内核采用哈佛体系结构,将数据总线与指令总线分开,从而提高了对指令和数据访问的并行性,提高了效率。ARM9 TDMI将流水线的级数从ARM7 TDMI的3级增加到了5级,并采用哈佛体系结构,ARM9 TDMI的性能在相同的工艺条件下为ARM7 TDMI的2倍。

ARM9系列微处理器包含ARM920T、ARM922T和ARM940T等类型,可以在高性能和低功耗特性方面提供最佳的性能;采用5级流水线,指令执行效率更高;支持数据缓存和指令缓存,具有更高的指令和数据处理能力;支持32位ARM指令集和16位Thumb指令集;支持32位的高速AMBA总线接口;全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。

ARM920T微处理器在ARM9 TDMI微处理器的基础上,增加了分离式的指令缓存和数据缓存(并带有相应的存储器管理单元I-MMU和D-MMU)、写缓冲器以及AMBA接口等。

ARM9系列微处理器主要应用于无线通信设备、仪器仪表、安全系统、机顶盒、高端打印机、数码相机和数码摄像机等场合,典型产品是Samsung公司的S3C2410A。

(3)ARM11系列微处理器。ARM11微处理器在提高性能的同时允许在性能和功耗之间进行权衡,以满足某些特殊应用,通过动态调整时钟频率和供电电压,可以完全控制两者的平衡。ARM11系列主要有ARM1136J、ARM1156T2、ARM1176JZ三个型号。

(4)ARM Cortex系列。ARM Cortex系列微处理器采用哈佛体系结构,使用的指令集是ARMv7,是目前使用的ARM嵌入式微处理器中指令集版本最高的一个系列。采用了Thumb-2技术,该技术比纯32位代码少使用31%的内存,减小了系统开销,同时能够提供比已有的基于Thumb技术的解决方案高38%的性能。ARMv7架构还采用了NEON技术,将DSP和媒体处理能力提高了近4倍,并支持改良的浮点运算,满足下一代3D图形、游戏应用以及传统嵌入式控制应用的需求。此外,ARMv7还支持改良的运行环境,以满足JIT(Just In Time)和DAC(Dynamic Adaptive Compilation)技术的使用。另外,ARMv7架构对于早期的ARM微处理器也提供了很好的兼容性。

ARM Cortex-A是高端应用微处理器,可实现高达2GHz的标准频率,用于支持下一代移动互联设备。这些微处理器具有单核和多核两类,主要应用在智能手机、智能本、上网本、电子书阅读器和数字电视等产品。

ARM Cortex-R是实时微处理器,应用在具有严格的实时响应嵌入式系统,主要应用在家庭消费性电子产品、医疗行业、工业控制和汽车行业。

ARM Cortex-M系列微处理器主要是针对微控制器领域开发的,是低成本和低功耗的微处理器,主要应用在智能测量、人机接口设备、汽车和工业控制系统、大型家用电器、消费性产品和医疗器械等方面。

2.3.2 ARM微处理器的组成及结构

ARM架构是构建每个ARM微处理器的基础。随着技术的不断发展,ARM架构可满足不断增长的新功能、高性能需求以及新兴市场的需要。有关最新公布的版本信息请参见ARM公司官网。

1.精简指令集计算机

早期的计算机采用复杂指令集计算机(Complex Instruction Set Computer,CISC)体系,如Intel公司的x86系列微处理器。在CISC指令集的各种指令中,大约有20%的指令会被反复使用,占整个程序代码的80%;而余下的大约80%的指令却不经常使用,在程序设计中只占20%。在CISC中有许多复杂的指令,通过增强指令系统的功能,虽然简化了软件,但却增加了硬件的复杂程度。

精简指令集计算机(Reduced Instruction Set Computer,RISC)体系结构优先选取使用频率最高的简单指令,避免复杂指令;将指令长度固定,减少指令格式和寻址方式种类,以控制逻辑为主,不用或少用微码控制等,RISC已经成为当前计算机发展不可逆转的趋势。

2.哈佛(Harvard)结构

在ARM7以前的微处理器采用的是冯·诺依曼结构,从ARM9以后的微处理器大多采用哈佛结构。哈佛结构的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址、独立访问。系统具有程序的数据总线与地址总线,以及数据的数据总线与地址总线,这种分离的程序总线和数据总线允许在一个机器周期内同时获取指令字(来自程序存储器)和操作数(来自数据存储器),从而提高了执行速度及数据的吞吐率;又由于程序存储器和数据存储器在两个独立的物理空间中,因此取址和执行能完全重叠,具有较高的执行效率。

3.流水线技术

流水线技术应用于计算机系统结构的各个方面,其基本思想是将一个重复的时序分解成若干个子过程,而每个子过程都可以有效地在其专用功能段上与其他子过程同时执行。

指令流水线就是将一条指令分解成一连串执行的子过程,例如,把指令的执行过程细分为取指令、指令译码和执行三个过程。在微处理器中,流水线技术把一条指令的串行执行子过程变为若干条指令的子过程在微处理器中重叠执行。

4.ARM微处理器的工作模式

ARM微处理器支持7种工作模式,分别为:用户模式(USR)、快中断模式(FIQ)、中断模式(IRQ)、管理模式(SVR)、中止模式(ABT)、未定义模式(UND)和系统模式(SYS),这样的好处是可以更好地支持操作系统并提高工作效率。

2.3.3 STM32系列微处理器

1.STM32系列微处理器简介

STM32系列微控制器是ST公司以ARM公司的Cortex-M0、Cortex-M3、Cortex-M4和Cortex-M7四种RISC内核开发的系列产品,芯片型号与内核的对应关系如表2.1所示。

表2.1 STM32芯片型号与内核的对应关系

续表

STM32系列微处理器在指令集方面是向后兼容的,对于相同封装的芯片,大部分引脚的功能也是基本相同的(少数电源与新增功能引脚有区别),用户可以在不修改印制电路板的条件下,根据需要更换不同资源(如Flash、RAM),甚至可以更换不同内核的芯片来完善自己的设计工作。

2.STM32F407系统架构

STM32F407/417系列MCU面向需要在小至10mm×10mm的封装内实现高集成度、高性能、嵌入式存储器和外设,广泛应用在医疗、工业与消费类领域。STM32F407/417系列MCU提供了工作频率为168MHz的Cortex-M4内核(具有浮点单元)的性能。在168MHz的时钟频率下,从Flash存储器执行时,STM32F407/417系列MCU就能够提供210 DMIPS/566 CoreMark的性能,并且利用意法半导体的ART加速器实现了。等待访问Flash存储器,同时DSP指令和浮点单元扩大了产品的应用范围。STM32F407系统架构如图2.4所示。

图2.4 STM32F407系统架构

主系统由32位多层AHB总线矩阵构成,总线矩阵用于主控总线之间的访问仲裁管理,仲裁采取循环调度算法。总线矩阵可实现以下部分的互连。

八条主控总线是:

· Cortex-M4内核I总线(S0)、D总线(S1)和S总线(S2);

· DMA1存储器总线(S3)和DMA2存储器总线(S4);

· DMA2外设总线(S5);

· 以太网DMA总线(S6);

· USB OTG HS DMA总线(S7)。

七条被控总线是:

· 内部Flash ICODE;

· 内部Flash DCODE;

· 主要内部SRAM1(112KB);

· 辅助内部SRAM2(16KB)或者辅助内部SRAM3(64KB),后者仅适用STM32F42xx和STM32F43xx系列器件;

· AHB1外设和AHB2外设;

· FSMC(Flexible Static Memory Controller,可变静态存储器控制器)。

几条总线的解释如下:

(1)S0:I总线。此总线用于将Cortex-M4F内核的指令总线连接到总线矩阵,内核可通过此总线获取指令。此总线访问的对象是存储代码的存储器(内部Flash、SRAM或通过FSMC连接的外部存储器)。

(2)S1:D总线。此总线用于将Cortex-M4F数据总线和64KB的CCM数据RAM连接到总线矩阵,内核通过此总线进行立即数加载和调试访问。此总线访问的对象是存储代码或数据的存储器(内部Flash或通过FSMC连接的外部存储器)。

(3)S2:S总线。此总线用于将Cortex-M4F内核的系统总线连接到总线矩阵,用于访问位于外设或SRAM中的数据,也可通过此总线获取指令(效率低于ICODE)。此总线访问的对象是112KB、64KB和16KB的内部SRAM,包括APB外设在内的AHB1外设、AHB2外设,以及通过FSMC连接的外部存储器。

(4)S3、S4:DMA1/2存储器总线。此总线用于将DMA1/2存储器总线主接口连接到总线矩阵,DMA通过此总线来执行存储器数据的输入和输出。此总线访问的对象是数据存储器,如内部SRAM(112KB、64KB、16KB)以及通过FSMC连接的外部存储器。

(5)S5:DMA2外设总线。此总线用于将DMA2外设主总线接口连接到总线矩阵,DMA通过此总线访问AHB外设或执行存储器间的数据传输。此总线访问的对象是AHB、APB外设,以及数据存储器,如内部SRAM以及通过FSMC连接的外部存储器。

(6)S6:以太网DMA总线。此总线用于将以太网DMA主接口连接到总线矩阵,以太网DMA通过此总线向存储器存取数据。此总线访问的对象是数据存储器,如内部SRAM(112KB、64KB和16KB),以及通过FSMC连接的外部存储器。

(7)S7:USB OTG HS DMA总线。此总线用于将USB OTG HS DMA主接口连接到总线矩阵,USB OTG HS DMA通过此总线向存储器加载/存储数据。此总线访问的对象是数据存储器,如内部SRAM(112KB、64KB和16KB)以及通过FSMC连接的外部存储器。

(8)总线矩阵。线矩阵用于主控总线之间的访问仲裁管理,仲裁采用循环调度算法。

(9)AHB/APB总线桥(APB)。借助两个AHB/APB总线桥APB1和APB2,可在AHB总线与两个APB总线之间实现完全同步的连接,从而灵活地选择外设频率。

本书将基于意法半导体公司生产的STM32微处理器来讲述嵌入式接口技术开发。STM32F407VET6采用32位ARM Cortex-M4内核且集成由自适应计算单元(FPU)的微处理器内核,拥有0等待访问的内置存储器数据读取和内存保护机制,该芯片工作频率为168MHz,指令处理能力为1.25 DMIPS/MHz,具有DSP浮点运算单元。STM32F407VET6微处理器如图2.5所示。

图2.5 STM32F407VET6微处理器

2.3.4 STM32开发平台

本书采用的开发平台为xLab未来开发平台,提供两种类型的智能节点:经典型无线节点ZXBeeLite-B和增强型无线节点ZXBeePlus-B,集成锂电池供电接口、调试接口、外设控制电路、RJ45传感器接口等。本书所使用的节点类型为增强型无线节点ZXBeePlus-B,详细说明如下。

ZXBeePlusB增强型无线节点采用ARM Cortex-M4 STM32F407微处理器,具有2.8英寸真彩LCD液晶屏,板载HTU21D型高精度数字温湿度传感器,RGB三色高亮LED指示灯,两路继电器,蜂鸣器,摄像头接口;板载信号指示灯(电源、电池、网络、数据),四路功能按键,四路LED灯;集成锂电池接口,集成电源管理芯片,支持电池的充电管理和电量测量;板载USB串口,Ti仿真器接口,ARM仿真器接口;集成以太网;集成四路RJ45工业接口;提供ARM芯片功能输出,硬件包含I/O、DC 3.3V、DC 5V、UART、RS-485、两路继电器等功能;提供四路3.3V、5V、12V电源输出。xLab未来开发平台如图2.6所示。

图2.6 xLab未来开发平台

xLab未来开发平台按照传感器的类别设计了丰富的传感设备,涉及采集类、控制类、安防类、显示类、识别类、创意类等。

1.采集类开发平台

采集类开发平台包括:温湿度传感器、光照度传感器、空气质量传感器、气压高度传感器(或气压海拔传感器)、三轴传感器、距离传感器、继电器、语音识别传感器等,如图2.7所示。

图2.7 采集类开发平台

· 两路RJ45工业接口,包含I/O、DC 3.3V、DC 5V、UART、RS-485、两路继电器输出等功能,提供两路3.3V、5V、12V电源输出。

· 采用磁吸附设计,可通过磁力吸附并通过RJ45工业接口接入无线节点进行数据通信。

· 温湿度传感器的型号为HTU21D,采用数字信号输出和 I2C通信接口,测量范围为-40~125℃,以及5%RH~95%RH。

· 光照度传感器的型号为BH1750,采用数字信号输出和I2C通信接口,对应的输入光范围为1~65535 lx。

· 空气质量传感器的型号为MP503,采用模拟信号输出,可以检测气体酒精、烟雾、异丁烷、甲醛,检测浓度为10~1000ppm(酒精)。

· 气压高度传感器的型号为FBM320,采用数字信号输出和I2C通信接口,测量范围为300~1100hPa。

· 三轴传感器的型号为LIS3DH,采用数字信号输出和I2C通信接口,量程可设置为±2g、±4g、±8g、±16gg为重力加速度),16位数据输出。

· Sharp红外距离传感器的型号为GP2D12,采用模拟信号输出,测量范围为10~80cm,更新频率为40ms。

· 采用继电器控制,输出无线节点有两路继电器接口,支持5V电源开关控制。

· 语音识别传感器的型号为LD3320,支持非特定人识别,具有50条识别容量,返回形式丰富,采用串口通信。

2.控制类开发平台

控制类开发平台包括:风扇、步进电机、蜂鸣器、LED灯、RGB灯、继电器等设备,如图2.8所示。

图2.8 控制类开发平台

· 两路RJ45工业接口,包含I/O、DC 3.3V、DC 5V、UART、RS-485、两路继电器输出等功能,提供两路3.3V、5V、12V电源输出。

· 采用磁吸附设计,可通过磁力吸附并通过RJ45工业接口接入无线节点进行数据通信。

· 风扇为小型风扇,采用低电平驱动。

· 步进电机为小型42步进电机,驱动芯片为A3967SLB,逻辑电源电压范围为3.0~5.5V。

· 使用小型蜂鸣器,采用低电平驱动。

· 两路高亮度LED灯,采用低电平驱动。

· RGB灯采用低电平驱动,可组合出任何颜色。

· 采用继电器控制,输出无线节点有两路继电器接口,支持5V电源开关控制。

3.安防类开发平台

安防类开发平台包括:火焰传感器、光栅传感器、人体红外传感器、燃气传感器、触摸传感器、振动传感器、霍尔传感器、继电器、语音合成传感器等,如图2.9所示。

· 两路RJ45工业接口,包含I/O、DC 3.3V、DC 5V、UART、RS-485、两路继电器输出等功能,提供两路3.3V、5V、12V电源输出。

图2.9 安防类开发平台

· 采用磁吸附设计,可通过磁力吸附并通过RJ45工业接口接入无线节点进行数据通信。

· 火焰传感器采用5mm的探头,可检测火焰或波长为760~1100nm的光源,探测温度为60℃左右,采用数字开关量输出。

· 光栅传感器的槽形光耦的槽宽10mm,工作电压为5V,采用数字开关量信号输出。

· 人体红外传感器的型号为AS312,电源电压为3V,感应距离为12m,采用数字开关量信号输出。

· 燃气传感器的型号为MP-4,采用模拟信号输出,传感器加热电压为5V,供电电压为5V,可测量天然气、甲烷、瓦斯气、沼气等。

· 触摸传感器的型号为SOT23-6,采用数字开关量信号输出,检测到触摸时,输出电平翻转。

· 振动传感器,低电平有效,采用数字开关量信号输出。

· 霍尔传感器的型号为AH3144,电源电压为5V,采用数字开关量输出,工作频率宽(0~100kHz)。

· 采用继电器控制,输出无线节点有两路继电器接口,支持5V电源开关控制。

· 语音合成传感器的芯片型号为SYN6288,采用串口通信,支持GB2312、GBK、UNICODE等编码,可设置音量、背景音乐等。

4.显示类开发平台

显示类开发平台包括:LCD屏、数码管、五向开关、传感器端子等,如图2.10所示。

· 两路RJ45工业接口,包含I/O、DC 3.3V、DC 5V、UART、RS-485、两路继电器输出等功能,提供两路3.3V、5V、12V电源输出;

· 采用磁吸附设计,可磁力吸附并通过RJ45工业接口接入无线节点进行数据通信;

图2.10 显示类开发平台

· 硬件分区设计,丝印框图清晰易懂,包含传感器编号,模块采用亚克力防护;

· LCD传感器:驱动芯片型号为ST7735,65K色,分辨率为128×160,SPI通信接口,1.8英寸;

· 数码管传感器:4位共阴极数码管,驱动芯片型号为ZLG7290,采用I2C通信接口;

· 五位开关:五向按键,驱动芯片型号为ZLG7290,采用I2C通信接口。

2.4 任务小结

通过本任务的学习和实践,读者可以了解基于不同内核发展的ARM系列微处理器型号,通过对ARM的体系结构学习,了解ARM微处理器的工作原理。

2.5 思考与拓展

(1)ARM微处理器有哪些系列?

(2)简述ARM微处理器的工作模式。

(3)简述ARM微处理器的存储器组织方式。

(4)STM32系列微处理器常见型号与特性有哪些?