1.3 认识Arm-STM32
1.3.1 嵌入式系统
1. 嵌入式系统定义
嵌入式系统(Embedded system)是一种完全嵌入受控器件内部,为特定应用而设计的专用计算机系统。根据IEEE(国际电气和电子工程师协会)的定义:嵌入式系统是控制、监视或辅助设备、机器或用于工厂运作的设备。
目前,国内普遍认同的嵌入式系统定义是:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
嵌入式系统与通用计算机系统的本质区别在于系统的应用不同,嵌入式系统是将一个计算机系统嵌入到对象系统中。这个对象可能是庞大的机器,也可能是小巧的手持设备,用户并不关心这个计算机系统的存在。
在理解嵌入式系统的定义时,读者不要将嵌入式系统与嵌入式设备相混淆。嵌入式设备是指内部有嵌入式系统的产品、设备。例如,内含嵌入式系统的家用电器、仪器仪表、工控单元、机器人、手机等。
2. 嵌入式系统组成
根据嵌入式系统的定义可知,嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分,具有嵌入性、专用性与计算机系统3个基本要素。只要满足这3个要素的计算机系统,都可称为嵌入式系统。
嵌入式系统一般是由嵌入式处理器、存储器、输入输出和软件(嵌入式设备的应用软件和操作系统是紧密结合的)等4部分组成。嵌入式系统与计算机系统的区别如表1-2所示。
表1-2 嵌入式系统与计算机系统的区别
3. 嵌入式系统特点
嵌入式系统是面向用户、面向产品、面向应用的,与应用紧密结合,具有很强的专用性,必须结合实际系统需求进行合理的裁减。与通用计算机系统相比,嵌入式系统具有如下几个显著特点。
(1)嵌入式系统面向特定应用
嵌入式系统中的CPU是专门为特定应用设计的,具有低功耗、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于整个系统趋于小型化。
(2)软件要求固态化存储
固态化存储是为了提高运行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片中。
(3)嵌入式系统的硬件和软件都必须具备高度可定制性
嵌入式系统必须根据应用需求对软硬件进行裁剪以满足应用系统的功能、可靠性、成本、体积等要求。
(4)嵌入式系统的生命周期较长
嵌入式系统和具体应用是有机结合在一起的,它的升级换代也是和具体产品同步进行的。因此,嵌入式系统产品一旦进入市场,就具有较长的生命周期。
(5)嵌入式系统开发需要开发工具和环境
嵌入式系统本身并不具备在其上进行进一步开发的能力。在设计完成以后,用户通常也不能对其中的程序、功能进行修改,必须借助一套专用的开发工具和环境,才能进行开发。开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。
1.3.2 Arm Cortex-M3处理器
嵌入式系统的核心部件是各种类型的嵌入式处理器,目前全世界的嵌入式处理器已经有超过1000多种,体系结构有30多个系列。没有一种嵌入式处理器可以主导市场,嵌入式处理器的选择是根据具体的应用决定的。
1. Arm是什么
Arm(Advanced RISC Machines)可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。
20世纪90年代初,Advanced RISC Machines Limited公司(简称Arm公司)成立于英国剑桥。Arm公司是设计公司,是专门从事基于精简指令集计算机(Reduced lnstruction Set Computer,RISC)芯片技术开发的公司,该公司设计了大量高性能、廉价、耗能低的RISC处理器,以及配套的相关技术和软件。Arm公司既不生产芯片也不销售芯片,主要出售芯片设计技术的授权,是知识产权(IP)供应商。
世界各大半导体生产商从Arm公司购买其设计的Arm处理器核,然后根据各自不同的应用领域,加入适当的外围电路,从而形成自己的Arm微处理器芯片并进入市场。目前,全世界几十家大的半导体公司都在使用Arm公司的授权,使得Arm技术获得了更多的第三方工具、制造、软件的支持,又使其整个系统成本降低,产品更容易进入市场,更具有竞争力。
目前,采用Arm技术知识产权核(IP核,Intellectual Property Core)的处理器,即通常所说的Arm处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、DSP、无线移动应用等各类产品市场,在低功耗、低成本和高性能的嵌入式系统应用领域中处于领先地位。
2. Arm Cortex系列处理器
Arm Cortex系列处理器是基于Armv7架构的,分为Cortex-A、Cortex-R和Cortex-M 3类。在命名方式上,基于Armv7架构的Arm处理器已经不再沿用过去的数字命名方式,如Arm 7,Arm 9,Arm 11,而是冠以Cortex的代号。
(1)基于Armv7-A的称为“Cortex-A系列”,主要用于高性能(Advance)场合,是针对日益增长的运行Linux、Windows CE和Symbian操作系统的消费者娱乐和无线产品所设计与实现的。
(2)基于Armv7-R的称为“Cortex-R系列”,主要用于实时性(Real time)要求高的场合,针对需要运行实时操作系统来控制应用的系统,包括汽车电子、网络和影像系统。
(3)基于Armv7-M的称为“Cortex-M系列”,主要用于微控制器单片机(MCU)领域,是为那些对功耗和成本非常敏感,同时性能要求不断增加的嵌入式应用(如微控制器系统、汽车电子与车身控制系统、各种家电、工业控制、医疗器械、玩具和无线网络等)所设计与实现的。
3. Arm Cortex-M3处理器
Arm Cortex-M3处理器包括处理器内核、嵌套向量中断控制器(NVIC)、存储器保护单元、总线接口单元和跟踪调试单元等,具有的性能如下所述。
(1)Arm Cortex-M3核使用3级流水线哈佛架构,运用分支预测、单周期乘法和硬件除法等功能,实现了1.25 DMIPS/MHz的出色运算效率。
与0.9 DMIPS/MHz的Arm 7和1.1 DMIPS/MHz的Arm 9相比,功耗仅为0.19 mW/MHz。DMIPS(Dhrystone Million Instructions executed Per Second)主要用于测算整数计算能力。
其中,MIPS(Million Instructions executed Per Second)表示每秒百万条指令,用来计算一秒内系统的处理能力,即每秒执行了多少百万条指令。
(2)采用专门面向C语言设计的Thumb-2指令集,最大限度地降低了汇编语言的使用。而且Thumb-2指令集允许用户在C语言代码层面维护和修改应用程序,使得C语言代码部分非常易于重用。可以这么说,无须使用任何汇编语言,使得新产品的开发更易于实现,上市时间也大为缩短。
Thumb-2指令集免去了Thumb和Arm代码的互相切换,性能得到了提高。结合非对齐数据存储和位处理等特性,可在一个单一指令中实现读取/修改/编写功能,轻易以8位、16位器件所需的存储空间实现32位的性能。
(3)单周期乘法和乘法累加指令、硬件除法。
(4)准确快速的中断处理,永不超过12周期,最快仅6周期。内置的NVIC通过末尾连锁,即尾链(Tail-chaining)技术提供了确定的、低延迟的中断处理,并可以设置多达240个中断,可为中断较为集中的汽车应用领域实现可靠的操作。对于工业控制应用,存储器保护单元(Memory Protection Unit,MPU)通过使用特权访问模式可以实现安全操作。
(5)Flash修补和断点单元、数据观察点和跟踪单元、仪器测量跟踪宏单元和嵌入式跟踪宏单元,为嵌入式器件提供了廉价的调试和跟踪技术。
(6)扩展时钟门控(Clock Gating)技术和内置3种睡眠模式,适用于低功耗的无线设计领域。
因此,Arm Cortex-M3处理器是专门为那些对成本和功耗非常敏感,但同时对性能要求又相当高的应用而设计的。凭借缩小的内核尺寸、出色的中断延迟、集成的系统部件、灵活的硬件配置、快速的系统调试和简易的软件编程,Arm Cortex-M3处理器将成为广大嵌入式系统(从复杂的片上系统到低端微控制器)的理想解决方案,基于Arm Cortex-M3处理器的系统设计可以更快地投入市场。
1.3.3 STM32系列处理器
STM32系列处理器是由ST公司以Arm Cortex-M3为内核开发生产的32位处理器,专为高性能、低成本、低功耗的嵌入式应用而设计。目前,STM32系列处理器有以下几个不同系列。
1. STM32F101xx基本型系列
STM32F101xx基本型系列处理器使用高性能的32位Arm Cortex-M3的RISC内核,工作频率为36 MHz,内置高速存储器(高达128 KB的闪存和16 KB的SRAM),提供丰富的增强型外设和I/O端口(连接到两条APB总线)。
所有型号的器件都包含1个12位的ADC和3个通用16位定时器,还包含标准的通信接口:2个I2C、2个SPI和3个USART。
2. STM32F102xx USB基本型系列
STM32F102xx USB基本型系列处理器使用高性能的32位Arm Cortex-M3 RISC内核的USB接入MCU,工作频率为48 MHz,内置高速存储器(高达128 KB的闪存和16KB的SRAM),提供各种外设和连接两条APB总线的I/O端口。
所有型号的器件都包含1个12位的ADC和3个通用16位定时器,还包含标准的通信接口:2个I2C、2个SPI、1个USB和3个USART。
3. STM32F103xx增强型系列
STM32F103xx增强型系列处理器使用高性能的32位Arm Cortex-M3的RISC内核,工作频率为72 MHz,内置高速存储器(最高可达512 KB的闪存、64 KB的SRAM),具有丰富的增强型I/O端口和连接到两条高性能外设总线(APB)的外设。
所有型号的器件都包含2个12位的ADC、1个高级定时器、3个通用16位定时器和1个PWM定时器,还包含标准和先进的通信接口:2个I2C(SMBus/PMBus)、2个SPI同步串行接口(18 Mbit/s)、3个USART异步串行接口(4.5 Mbit/s)、1个USB(2.0标准接口)和1个CAN。
该系列芯片按片内内存的大小可分为三大类:小容量(16 KB和32 KB)、中容量(64 KB和128 KB)、大容量(256 KB、384 KB和512 KB)。
4. STM32F105/107xx互联型系列
STM32F105/107xx互联型系列处理器使用高性能的32位Arm Cortex-M3的RISC内核,工作频率为72 MHz,内置高速存储器(最高可达256 KB的闪存、64 KB的SRAM),具有丰富的增强型I/O端口和连接到两条高性能外设总线(APB)的外设。
所有型号的器件都包含2个12位的ADC、4个通用16位定时器,还包含标准和先进的通信接口:2个I2C(SMBus/PMBus)、3个SPI同步串行接口(18 Mbit/s)、5个USART接口、1个USB OTG全速接口和2个CAN接口。STM32F107xx系列还包括以太网接口。
STM32系列处理器具有丰富的外设配置、为低功耗应用设计的一组完整的节电模式,适用于多种应用场合。
(1)电力电子系统方面的应用;
(2)电机驱动、应用控制;
(3)医疗、手持设备;
(4)PC游戏外设、GPS平台;
(5)编程控制器(PLC)、变频器等工业应用;
(6)扫描仪、打印机;
(7)警报系统、视频对讲;
(8)暖气通风、空调系统、LED条屏控制。
5. STM32F103系列产品命名规则
STM32F103系列产品是按照“STM32F103XXYY”格式来命名的,具体含义如下。
(1)产品系列:STM32是基于Arm Cortex-M3核设计的32位微控制器。
(2)产品类型:F代表通用类型。
(3)产品子系列:101是基本型、102是USB基本型(USB全速设备)、103是增强型、105或107是互联型。
(4)引脚数目(第一个X):T是36脚、C是48脚、R是64脚、V是100脚、Z是144脚。
(5)闪存容量(第二个X):4是16 KB、6是32 KB、8是64 KB、B是128 KB、C是256 KB、D是384 KB、E是512 KB。
(6)封装(第一个Y):H是BGA、T是LQFP、U是VFQFPN、Y是WLCSP64。
(7)温度范围(第二个Y):6是工业级温度范围-40℃~85℃、7是工业级温度范围-40℃~105℃。
例如:STM32F103VCT6是基于Arm Cortex-M3核设计的32位微控制器系列、通用类型、增强型子系列、100个引脚、256 KB闪存容量,采用的是LQFP封装、温度范围是-40℃~85℃。