壹诺半导体(深圳 )有限公司

13年

壹诺半导体(深圳 )有限公司

卖家积分:23001分-24000分营业执照:已审核经营模式:贸易/代理/分销所在地区:广东 深圳企业网站:
http://www.szhmw-ic.com/

收藏本公司 人气:780145

企业档案

  • 相关证件:营业执照已审核 
  • 会员类型:
  • 会员年限:13年
  • Alisa QQ:2881929101
  • 电话:0755-82709129
  • 手机:15811806673
  • 张小姐 QQ:2881929063
  • 电话:0755-82709129
  • 手机:13715139366
  • 阿库IM:
  • 地址:深圳市华强北路上步工业区101栋5楼508-520房
  • 传真:0755-82767516
  • E-mail:805183191@QQ.com

产品分类

集成电路(IC)(110)

电源IC(93)

半导体存储器(13)

二极管(17)

三极管(10)

场效应管MOSFET(26)

可控硅IGBT(1)

单片机(28)

电容器(32)

电阻器(20)

电感器(2)

连接器/接插件(13)

开关(5)

传感器(7)

保险丝(2)

变压器(2)

继电器(4)

逆变器(2)

放大器(21)

光电子/光纤/激光(7)

LED(3)

PLC/可编程控制器(3)

编码器(1)

其他未分类(1)

您的当前位置:

壹诺半导体(深圳 )有限公司 > 技术资料 > 初识STM32

初识STM32

发布时间: 2018/4/26 19:01:06 | 646 次阅读

本文主要介绍STM32与单片机、嵌入式、ARM的关系,引入介绍STM32的特点、选型以及简单介绍一下Cortex-M3内核。

STM32和单片机

     单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种IO口和中断系统、定时器\计数器等功能(如:电机驱动、PWM调制、AD信息采集转换等电路)集成在一块硅片上构成小而完善的微型计算机系统。常见的有以前8位的51单片机。STM32是一种32位的单片机,运行速度、功耗、IO接口等都高度优于8位单片机,不但可以进行寄存器编程,还可以调用STM32的固件库进行编程,简化了软件的开发和后期的移植。

STM32和嵌入式

     嵌入式是以应用为中心,计算机技术为基础,软硬件可裁减,适用应用系统对功能、性能、体积等有针对要求的的专用计算机系统。嵌入式主要分为DSP、微控制器MCU、微处理器、Soc四种。一个完整的嵌入式研发包括硬件层、驱动层、操作系统层、应用层开发。STM是一种微控制器MCU,也就是说属于嵌入式的一种。

STM32和ARM

ARM可以理解为一个公司名,也可以理解为一种微处理的全程,也可以理解为一种技术。ARM是一家从事制作芯片标准的公司,并不生产芯片。它负责芯片内核结构的设计,而把具体实现授权与其他芯片厂家,如TI、ST等。ARM公司为了能让不同芯片公司生产的芯片在软件上基本兼容提出了ARM Cortex内核。而本次自学的STM32F103ZET6的内核就是Cortex-M3。

Cortex-M3

Cortex-M3是一个 32位处理器内核。内部的数据路径是 32位的,寄存器是 32位的,存储器接口也是 32 位的。CM3 采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。这样一来数据访问不再占用指令总线,从而提升了性能。为实现这个特性, CM3内部含有好几条总线接口,每条都为自己的应用场合优化过,并且它们可以并行工作。但是另一方面,指令总线和数据总线共享同一个存储器空间(一个统一的存储器系统)。

寄存器组

处理器拥有R0-R15的寄存器组,其中R13为堆栈指针SP,SP有两个,但是同一时刻只能有一个可以看到,这就是所谓的“banked”寄存器。

a、R0-R12都是 32位通用寄存器,用于数据操作。但是注意:绝大多数 16位Thumb指令只能访问R0-R7,而 32位 Thumb-2指令可以访问所有寄存器。

b、Cortex-M3拥有两个堆栈指针,然而它们是 banked,因此任一时刻只能使用其中的一个。

主堆栈指针(MSP):复位后缺省使用的堆栈指针,用于操作系统内核以及异常处理例程(包括中断服务例程)

进程堆栈指针(PSP):由用户的应用程序代码使用。

堆栈指针的两位永远是0,这意味着堆栈总是4字节对齐的。

c、R14:连接寄存器--当呼叫一个子程序时,由R14存储返回地址

d、R15:程序计数寄存器--指向当前的程序地址,如果修改它的值,就能改变程序的执行流(这里有很多技巧)

e、Cortex-M3还在内核水平上搭载了若干特殊功能寄存器,包括:

程序状态字寄存器组(PSRs)

中断屏蔽寄存器组(PRIMASK, FAULTMASK, BASEPRI)

控制寄存器(CONTROL)

Cortex-M3处理器支持两种处理器的操作模式,还支持两级特权操作。

两种操作模式分别为:处理者模式(hander mode)和线程模式(thread mode)。引入两个模式的本意,是用于区别普通应用程序的代码和异常服务例程的代码——包括中断服务例程的代码。

Cortex-M3 的另一个侧面则是特权的分级——特权级和用户级。这可以提供一种存储器访问的保护机制,使得普通的用户程序代码不能意外地,甚至是恶意地执行涉及到要害的操作。处理器支持两种特权级,这也是一个基本的安全模型。

Cortex-M3的简评

1、高性能

许多指令都是单周期的——包括乘法相关指令。并且从整体性能上,Cortex-M3比得过绝大多数其它的架构。

指令总线和数据总线被分开,取值和访内可并行不悖。

Thumb-2的到来告别了状态切换的旧世代,再也不需要花时间来切换于 32位 ARM状态和16位Thumb状态之间了。这简化了软件开发和代码维护,使产品面市更快。

Thumb-2指令集为编程带来了更多的灵活性。许多数据操作现在能用更短的代码搞定,这意味着 Cortex-M3的代码密度更高,也就对存储器的需求更少。

取指都按 32位处理。同一周期多可以取出两条指令,留下了更多的带宽给数据传输。

Cortex-M3的设计允许单片机高频运行( 现代半导体制造技术能保证 100MHz以上的速度)即使在相同的速度下运行,CM3的每指令周期数(CPI)也更低,于是同样的 MHz下可以做更多的工作;另一方面,也使同一个应用在 CM3上需要更低的主频。

2、先进的中断处理功能

内建的嵌套向量中断控制器支持240条外部中断输入。向量化的中断功能大大减少了中断延迟,因为不在需要软件去判断中断源。中断的嵌套也是在硬件水平上实现的,不需要软件代码来实现。

Cortex-M3在进入异常服务例程时,自动压栈了 R0-R3, R12, LR, PSR 和PC,并且在返回时自动弹出它们,这多清爽!既加速了中断的响应,也再不需要汇编语言代码了

NVIC支持对每一路中断设置不同的优先级,使得中断管理极富弹性。粗线条的实现也至少要支持 8级优先级,而且还能动态地被修改。

优化中断响应还有两招,它们分别是“咬尾中断机制”和“晚到中断机制”。

有些需要较多周期才能执行完的指令,是可以被中断-继续的——就好比它们是一串指令一样。这些指令包括加载多个寄存器(LDM),存储多个寄存器(STM),多个寄存器参与的PUSH,以及多个寄存器参与的 POP。

除非系统被彻底地锁定,NMI(不可屏蔽中断)会在收到请求的时间予以响应。对很多安全-关键(safety-critical)的应用,NMI都是必不可少的(如化学反应即将失控时的紧急停机)。

STM32F103ZET6

STM32F103ZET6是一款大容量的MCU,512K Flash 64K SRAM有丰富的外设接口。

序言:接触嵌入式一段时间了,但是因条件有限个人技能没得到太大的提升。自己制定计划用半年的时间来自学STM32,希望半年有所收获。

     本文主要介绍STM32与单片机、嵌入式、ARM的关系,引入介绍STM32的特点、选型以及简单介绍一下Cortex-M3内核。

STM32和单片机

     单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种IO口和中断系统、定时器\计数器等功能(如:电机驱动、PWM调制、AD信息采集转换等电路)集成在一块硅片上构成小而完善的微型计算机系统。常见的有以前8位的51单片机。STM32是一种32位的单片机,运行速度、功耗、IO接口等都高度优于8位单片机,不但可以进行寄存器编程,还可以调用STM32的固件库进行编程,简化了软件的开发和后期的移植。

STM32和嵌入式

     嵌入式是以应用为中心,计算机技术为基础,软硬件可裁减,适用应用系统对功能、性能、体积等有针对要求的的专用计算机系统。嵌入式主要分为DSP、微控制器MCU、微处理器、Soc四种。一个完整的嵌入式研发包括硬件层、驱动层、操作系统层、应用层开发。STM是一种微控制器MCU,也就是说属于嵌入式的一种。

STM32和ARM

ARM可以理解为一个公司名,也可以理解为一种微处理的全程,也可以理解为一种技术。ARM是一家从事制作芯片标准的公司,并不生产芯片。它负责芯片内核结构的设计,而把具体实现授权与其他芯片厂家,如TI、ST等。ARM公司为了能让不同芯片公司生产的芯片在软件上基本兼容提出了ARM Cortex内核。而本次自学的STM32F103ZET6的内核就是Cortex-M3。