购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.4 ARM嵌入式系统开发实例
——车载嵌入式芯片STM32F103XX

STM32系列32位闪存ARM控制器来自ARM公司具有突破性的Cortex-M3内核,该内核是专门设计用于满足高性能、低功耗、实时响应、具有竞争价格的嵌入式领域的要求,是一款广泛应用于汽车电子、智能仪表等嵌入式系统的ARM处理器芯片。

STM32系列处理器现有的产品有STM32F10XX系列,其中分为STM32F101XX系列和STM32F103XX系列。STM32F101XX系列是基本型系列,可工作的最高频率为36MHz。STM32F103XX系列是增强型系列,可工作在72MHz,并且带有片内RAM和丰富的外设资源。这两个系列的处理器具有相同的片内闪存选项,在软件代码和芯片封装方面全面兼容。

1.4.1 系统资源与性能参数

STM32处理器采用ARM最先进的系统架构Cortex-M3,主要具有以下优势:

● 系统采用哈佛结构,数据与程序相互独立;

● Thumb-2指令集以16位的代码密度具有32位指令的性能;

● 单周期乘法指令及硬件除法指令,提高浮点运算的处理能力;

● 内置快速中断控制器NVIC,提高系统实时性,中断间的延迟时间只需6个CPU周期;

● 支持休眠/唤醒模式,从低功耗模式唤醒的时间只需6个CPU周期;

● 与ARMTDMI相比,运行速度可以提高35%,且代码量最多可节省45%。

在Cortex-M3平台上,STM32处理器具有极低的系统功耗。在STM32F103XX系列单片机中,针对实际工程应用中三种主要的能耗需求进行优化。这三种能耗需求分别是运行模式下高效率的动态耗电机制、待机状态时极低电能的消耗和电池供电时低电压工作的能力。为此,在STM32F103XX系列单片机中提供了3种低功耗模式和灵活的时钟控制机制,用户可以根据实际工程的需要进行合理优化。

值得注意的是,STM32的优势来源于两路高级外设总线(APB)结构,其中一个高速APB甚至可以达到CPU的运行频率,连接到该总线上的外设能以更高的速度运行。

STM32F103XX系列嵌入式处理器基于高性能32位的RIS的ARM Cortex-M3内核,工作频率为72MHz,并在片上集成了高速存储器,其中,Flash存储器最多可达512KB,SRAM最多可达48KB。所有的设备都提供了标准的通信接口,包含I 2 C接口、SPI灯口,以及USART接口等。片上系统还集成了一个12位的ADC,一个12位的DAC及多个16位的定时/计时器。具体型号的硬件资源如表1.3所示。

表1.3 STM32F103XX系列硬件资源

续表

1.ARM内核

采用ARM 32位的Cortex-M3处理器,最高工作频率可达72MHz,1.25DMIPS/MHz,支持单周期乘法和硬件除法。

2.片上存储器

处理器集成32~512KB的Flash存储器,6~48KB的SRAM存储器。

3.时钟、复位和电源管理

芯片支持2.0~3.6V的电源供电,其中IO接口的驱动电压最高可达5V。在芯片内部,集成了POR、PDR及可编程的电压。外接4~16MHz的无源晶振,内嵌出厂前调校的8MHz的RC振荡电路,以及40kHz的RC振荡电路。除此之外,系统还支持带校准功能的用于实时时钟RTC的32.768kHz晶振。

4.节电模式

芯片提供了3种支持低功耗的模式:休眠、停止及待机模式。在节电模式中,只维持为实时时钟RTC,以及备份寄存器供电使用的后备电源VBAT。

● 休眠模式:在休眠模式(Sleep-Now或者Sleep-On-EXIT)中,只有CPU停止工作,而其他所有的外设都继续运行。在中断/事件发生的时候唤醒CPU。

● 停止模式:停止模式允许以最小的系统功耗来保持SRAM和寄存器中的内容。1.8V区域的时钟都停止。PLL、HIS和HSE都被禁止使能。处理器可以通过外部中断从停止模式唤醒。

● 待机模式:在待机模式中,除了上述节点模式中禁止使能的资源外,1.8V内核电源也被关闭。

在表1.4中详细列出了不同节电模式的资源使能情况及唤醒操作。

5.模拟/数字转换器

系统内部自带了两个12位的ADC,其测量范围是0~3.6V,并且具有多路采样和数据保持功能。另外,片上还集成了一个温度传感器。

6.DMA

芯片内部集成12通道的DMA控制器,并支持定时/计数器、ADC、DAC、I 2 C、SPI、USART等接口。

表1.4 不同节电模式的资源使能情况及唤醒操作

7.快速IO端口

根据芯片型号的不同,STM32分别有26、37、51、80和112个独立的数据输入/输出(IO)端口,所有的端口都可以映像到16个外部中断向量。需要注意的是,除了特定的模拟信号输入端口,如ADC的参考电压输入端口(Vref+, Vref-),其他的数字端口都可以接受5V以内的电压输入。

8.调试模式

系统支持串口调试(SWD)模式和JTAG调试接口。

1.4.2 系统硬件设计

STM32F103XX系列芯片的内部总线和两条APB时钟总线将片上系统和外设资源紧密连接起来,其中内部总线是主系统总线,连接了CPU、存储器,以及系统时钟等。APB1总线用于连接高速外设,APB2则用于连接系统通用外设和中断控制。所有的数字输入/输出端口最多可以划分为(支持)PA、PB、PC、PD、PE、PF和PG这7个16位的端口。其他的外设接口引脚都是通过与这些IO端口的引脚“功能复用”而实现的,一般用AF来表示端口引脚的复用功能。

1.集成嵌入式Flash和SRAM存储器的ARM CortexTM-M3内核

ARM Cortex-M3处理器是用于嵌入式系统的最新一代的ARM处理器,具有极低的系统功耗和较高的性价比,并且提供了更高的数据处理能力和更快的中断系统响应。与以往的8位和16位的处理器相比,ARM Cortex-M3 32位的RISC处理器提供了更高效的代码效率。由于STM32F103XX系列处理器采用的是ARM内核,所以该系列处理器都可以兼容所有的ARM工具和软件。

2.嵌入式Flash存储器和RAM存储器

系统内置了多达512KB的嵌入式Flash,可用于存储程序代码和数据。多达64KB的嵌入式SRAM可以以CPU的时钟速度进行读写数据。

3.外部中断/事件控制器(EXTI)

外部中断/事件控制器由用于19条产生中断/事件请求的边沿探测器线组成。每根探测器线可以被单独配置用于选择触发事件(上升沿触发或下降沿触发),也可以被单独屏蔽。有一个挂起寄存器专门用来维护中断请求的状态。当外部线上出现长度超过内部APB2时钟周期的脉冲时,EXTI就可以探测到中断。整个系统具有112个GPIO引脚,且被分配到16个外部中断线。

4.系统时钟和启动

系统在启动时需要进行系统时钟的选择,但需要注意的是,在复位时内部8MHz的晶振被选作CPU处理器时钟。当然,用户也可以选择一个外部的4~16MHz时钟,并且在选用外部时钟的情况下,系统会对其进行监视以判定是否启动成功。

在这期间,控制器被禁止使能并且软件中断管理也随后被禁止使能。此外,多个预比较器可以用来配置AHB的频率,主要包括高速APB(APB2)和低速APB(APB1)。高速APB的最高频率为72MHz,低速APB的最高频率为36MHz。

5.Boot模式

系统在启动时,boot[1:0]引脚被用来设置boot启动选项,具体参数配置如表1.5所示。一般而言,系统均以第一种模式(BOOT1=x,BOOT0=1)进行工作进入用户编写的代码区;在BOOT1=0,BOOT0=1的模式下,芯片将从系统存储器启动。在这种模式下,用户可通过厂家设置的程序进行程序下载,即以ISP下载模式(串口下载)将烧写程序下载到芯片中。

表1.5 STM32F103XX的系统启动模式

6.电源管理

STM32F103XX系列处理器有一个完整的上电复位(POR)和掉电复位(PDR)电路。这两个电路一直有效,用于确保系统从2V启动或者电压回落到2V时进行一些必要的操作。当系统电源VDD低于一个特定的下限电压时,不需要外部复位电路,芯片也可以进入复位模式。

值得注意的是,STM32F103XX系列处理器中还嵌入了一个可编程的电压探测器(PVD)。PVD主要用于检测VDD,并且和VPVD限值进行比较,当VDD低于VPVD或者VDD高于VPVD时会产生一个中断。中断服务程序可以产生一个警告信息或者将处理器设置到一个安全状态。

1.4.3 系统外围接口

在STM32F103XX系列处理器中,主要包含以下几种片内外设。

1.DMA

12通道的通用DMA(Direct Memory Access,直接内存存取)可以用于存储器到存储器、外设到存储器和存储器到外设之间的数据传输。DMA控制器支持循环缓冲器管理,从而避免在到达缓冲区末端时产生中断。

每个通道都连接到专用的硬件DMA请求,同时支持软件触发,可以由用户对软件参数进行配置。

DMA可以和一些常用的外设一起使用,以提高处理速度,包括SPI、I 2 C、USART、通用定时器、DAC和ADC等。

2.RTC(实时时钟)和备份寄存器

RTC和备份寄存器通过一个开关来控制供电。当VDD有效时通过VDD供电,否则通过VBAT供电。备份寄存器可以用来在VDD无效时保存数据。

3.看门狗

STM32系列ARM Cortex-M3微控制器提供了两种不同的看门狗:独立看门狗和窗口看门狗。

独立看门狗基于12位的倒计数器和8位的预比较器,它由一个独立的40kHz的内部RC提供时钟,由于和主时钟独立工作,所以它可以随时工作在停止和待机模式。既可以用在系统出问题时来复位芯片,也可以作为一个空转定时器。独立看门狗的软件和硬件都可以通过参数来进行配置,而且计数器在调试模式下可以冻结。

系统所提供的另外一个看门狗是窗口看门狗。窗口看门狗基于一个在空转时可以设置的7位倒计数器,可以用在系统出问题时进行复位操作。窗口看门狗由系统主时钟提供时钟源,能够实现提早警告中断,并且计数器在调试模式下也可以冻结。

4.通用定时器(TIMx)

STM32系列处理器最多自带4个同步标准定时器。这些定时器基于一个16位的自动重载顺序/倒序计数器和一个16位的预比较器。每个定时器都具有分别用于输入捕获、输出比较、PWM或者单脉冲模式输出的4个独立通道。通过同步连接特性或者事件链,可以将多个定时器拼接在一起工作。 qAS80xcQ7u7zC8Ztey5RqwP8XcxZQe2NnPXQRsqi0JU/i1SdbWjL18289/p0bV0Q

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开