目录
stm32——32位单片机(数据总线是32位的)
一、什么是ARM
ARM这个缩写包含两个意思: 一是指ARM公司,二是指ARM公司设计的低功耗CPU及其架构,包括ARM1~ARM11与Cortex, 其中,被广泛应用的是ARM7、 ARM9、ARM11以及Cortex系列。
ARM公司及其ARM架构:
ARM是全球领先的32位嵌入式RISC芯片内核设计公司。RISC的英文全称是ReducedInstruction Set Computer, 对应的中文是精简指令集计算机。
特点是所有指令的格式都是一致的,所有指令的指令周期也是相同的,并且采用流水线技术。
ARM公司本身并不生产和销售芯片,它以出售ARM内核的知识产权为主要模式。全球顶尖的半导体公司,例如Actel、TI、 ST、Fujitsu、 NXP等均通过购买ARM的内核,结合各自的技术优势进行生产和销售,共同推动基于ARM内核包括Corter内核的嵌入式单片机的发展。ARM的设计具有典型的精简指令系统(RISCO) 风格。ARM的体系架构已经历了个版本,版本号分别是VI~V6。
二. Cortex 内核
Cortex是ARM的全新一代处理器内核,它在本质上是ARM V7架构的实现,它完全有别于ARM的其他内核,是全新开发的。按照3类典型的嵌入式系统应用,即高性能、微控制器、实时类,它又分成3个系列,即Cortex-A、Cortex-M、 Cortex-R。而STM32就属于Cortex-M系列。
Cortex-M旨在提供一种高性能、低成本的微处理器平台,以满足最小存储器、小引脚数和低功耗的需求,同时兼顾卓越的计算性能和出色的中断管理能力。目前典型的、使用最为广泛的是Cortex-M0、Cortex-M3、 Cortex-M4。
与MCS-51单片机采用的冯●诺依曼结构不同,Cortex-M (即stm32)采用的是哈佛结构,即程序存储器和数据存储器不分开、统一编址。
程序存储器:程序储存器的缩写是PC(Program Counter),它是一种专门用于指向当前正在执行的指令位置的寄存器,通常在CPU的结构中使用。程序储存器的作用是帮助计算机实现分步执行指令的功能,可以控制程序的运行顺序、管理数据传输和存储等。
数据存储器:RAM
三.什么是STM32
STM32是意法半导体(STMicroelectronics) 较早推向市场的基于Cortex-M 内核的微处理器系列产品,该系列产品具有成本低、功耗优、性能高、功能多等优势。
STM32目前常用的有STM32F103~107系列,简称“1系列”,最近又推出了高端系列STM32F4xx系列,简称“4系列”。前者基于Cortex-M3内核,后者基于Cortex-M4内核。
STM32F4xx系列在以下诸多方面做了优化:
(1)增加了浮点运算:
(2) DSP处理;
(3)存储空间更大,高达1M字节以上;
(4)运算速度更高,以168MHz高速运行时可达到210DMIPS的处理能力:
(5)更高级的外设,新增外设,例如,照相机接口、加密处理器、USB高速OTG接口等,提高性能,更快的通信接口,更高的采样率,带FIFO的DMA控制器。
四.STM32核心板原理图:
五.STM32的内部结构:
六.stm32系统结构简化图
STM32基本原理分析:
(1)程序存储器、静态数据存储器、所有的外设都统一编址,地址空间为4GB
(2)可将Cortex-M3内核视为STM32的“CPU",程序存储器、静态数据存储器、所有的外设均通过相应的总线再经总线矩阵与之相接。Cortex-M3内核控制程序存储器、静态数据存储器、所有外设的读写访问。
(3)STM32的功能外设较多,分为高速外设、低速外设两类,各自通过桥接再通过AHB系统总线连接至总线矩阵,从而实现与Cortex-M3 内核的接口。两类外设的时钟可各自配置,速度不一样。具体某个外设属于高速还是低速,已经被ST明确规定。所有外设均有两种访问操作方式:一是传统的方式, 通过相应总线由CPU发出读写指令进行访问,这种方式适用于读写数据较小、速度相对较低的场合;二是DMA方式,即直接存储器存取,在这种方式下,外设可发出DMA请求,不再通过CPU而直接与指定的存储区发生数据交换,因此可大大提高数据访问操作的速度。
(4)STM32的系统时钟均由复位与时钟控制器RCC产生,它有一整套的时钟管理设备,由它为系统和各种外设提供所需的时钟以确定各自的工作速度。
七.典型型号——STM32F103ZET6
根据程序存储容量,ST芯片分为三大类,LD(小于64KB)、 MD(小于256KB)、HD(大于256KB)
STM32F103ZET6类型属于第三类,它是STM32系列中的一个典型型号。
以下是它的性能简介:
(1)基于ARM Cortex-M3核心的32位微控制器,LQFP-144封装
(2)512KB片内Flash(相当于硬盘,程序存储器),64KB片内RAM(相当于内存,数据存储器),片内Flash支持在线编程 (IAP)。
(3)高达72MHz的系统频率,数据、指令分别走不同的流水线,以确保CPU运行速度达到最大化。
(4)通过片内BOOT区,可实现串口的在线程序烧写(ISP)。
(5)片内双RC晶振,提供8MHz和40kHz的频率。
(6)支持片外高速晶振(8MHz)和片外低速晶振(32kHz)。其中片外低速晶振可用于CPU的实时时钟,带后备电源引脚,用于掉电后的时钟行走。
(7)42个16位的后备寄存器(可以理解为电池保存的RAM),利用外置的纽扣电池,实现掉电数据保存功能。
(8)支持JTAG、SWD调试。可在廉价的J-LINK的配合下,实现高速、低成本的开发调试方案。
(9)多达80个GPIO(大部分兼容5V逻辑);4个通用定时器,2个高级定时器, 2个基本定时器; 3路SPI接口;2路IIS接口; 2路IIC接口; 5路USART;1个USB从设备接口; 1个CAN接口; 1个SDIO接口; 可兼容SRAM、NOR和NAND Flash接口的16位总线的可变静态存储控制器(FSMC)
(10)3个共16通道的12位ADC,2个共2通道的12位ADC,支持片外独立电压基准。ADC转换速率最高可达1us
(11)CPU的工作电压范围:2.0~3.6V