【STM32学习1】基础知识与概念明晰

目录

前言

一、什么是嵌入式系统?

二、STM32框架

三、关于硬件与软件的一些概念

四、知名芯片厂商简介

总结


前言

在开始学习STM32单片机之前,脑海中已经有了许多零碎的概念,在此对其做出明确的定义与解释,以增加知识学习的条理性。

一、什么是嵌入式系统?

        嵌入式系统(embedded system),是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。与我们通常意义上讲的计算机,也就是个人电脑(Personal Computer,PC)相比,嵌入式系统功能更为单一,而个人电脑更为灵活,可以满足用户多种不同的需要。比如电子手表,不需要电脑那样丰富的功能,里面的电子元件便可称为嵌入式系统。如果把个人电脑比作综合性大学,什么学科都有,则嵌入式系统就是职业技术学校,体量小,但够专业。

        随着电子技术的不断发展,诞生了许多的专业名词,包括CPU、MCU、MPU、DSP、单片机、Soc……他们的概念你中有我、我中有你,许多又是英文缩写,让人理解起来晕头转向。其实这些名词之间也没有什么明确的界限,许多只是因关注的角度不同而诞生。

  • 中央处理单元(Central Processing Unit,CPU;Central Processor):英文中又叫做central processor或者main processor。早期是指计算机中执行基本算术、逻辑、控制和输入/输出 (I/O) 操作的电子电路。不包括存储器、外围电路以及GPU等模块。
  • 微处理器(Micro Processing Unit,MPU):当前所有的CPU均可被称为微处理器,这是在CPU发展过程中诞生的名词。随着技术的进步,CPU在性能提升的同时体积也越来越小,为了突出这一特点有的人便把CPU称为MPU。MPU一词被广泛用于嵌入式领域,便不局限于CPU所包含的功能,GPU、DSP等专业的处理器也被归于微处理器。
  • 微控制器(Micro Controller Unit,MCU):一般又可以称为单片机(single-chip microcomputer),指的是嵌入式领域中把CPU、存储器、定时器、各种I/O接口都集成在一块芯片上的微型计算机。与微处理器相比,微控制器除了CPU一般还包括其他的计算机组成模块。

  • 片上系统(System on a Chip,SoC):嵌入式领域的名词,指集成在单一芯片上的电子系统,相较于微控制器,片上系统一般只功能更加强大的处理器。
  • 图像处理单元(Graphic Processing Unit,GPU):也就是我们常说的显卡,在计算机系统上执行绘图运算工作的处理器。
  • 数字信号处理器(Digital Signal Processor,DSP):专门用于数字信号处理的微处理器。

 另外还有大家耳熟能详的PLC、PLD、FPGA等名词,概念简单描述以下

  • 可编程逻辑控制器(Programmable Logic Controller,PLC):源于工业领域,具有微处理器,用于自动化控制的数字电子设备。早期的PLC用来代替继电器实现逻辑控制,然而随着计算机技术发展,PLC的结构与功能变得与一般计算机系统类似。可以理解为一种源于工业领域的计算机系统。
  • 可编程逻辑器件(Programmable Logic Device,PLD):可以编辑硬件进而改变逻辑的集成电路,代表为现场可编辑逻辑门阵列(Field Programmable Gate Array,FPGA)。相较于一般的微控制器(单片机)更偏向硬件编程,通过硬件描述语言在芯片上自定义集成电路。有的人将FPGA称作半集成电路。
  • 专用集成电路(Application Specific Integrated Circuit,ASIC):依产品需求不同而定制的特殊规格集成电路,由于单个专用集成电路芯片的生产成本很高,如果出货量较小,有的时候使用可编程逻辑器件(如FPGA)来作为目标硬件实现集成电路设计。

        试着用一张图表示这些名词之间的关系,如有纰漏,敬请斧正。 

 

二、STM32框架

        STM32属于MCU,也是当下最流行的MCU之一。芯片内核采用的是ARM公司的Cortex-M架构,总体框架如下图所示

  • CMSIS( Cortex Microcontroller Software Interface Standard ):翻译过来是ARM Cortex™ 微控制器软件接口标准,可以理解为ARM公司向各芯片厂商提供内核架构的同时,为了统一性,也提供了驱动这些内核的软件标准。芯片厂商只要使用了ARM公司的Cortex架构,在设计程序时就要采用CMSIS定义的标准。
  • HAL(Hardware Abstract Layer):翻译过来是硬件抽象层。这是ST公司依照CMSIS标准,将底层的寄存器操作与一些外设配置封装得到的代码库。这样统一了STM32众多型号芯片的开发代码,增强了代码的可移植性,但过多的封装层也降低了代码的运行效率。

简单来讲,CMSIS是ARM公司推出的统一接口标准,而HAL是ST公司在CMSIS基础上推出的封装层,他们的作用都是在芯片底层与用户程序之间添加一个中间层,用户就不需要过多了解芯片底层内核的操作方式,只需要掌握中间层接口的使用方法,便可驱动芯片。好比我不太懂打印机的内部电路、工作原理,但厂商已经帮我们拿一个大外壳把整个机器罩住,留了几个按键在外面,我只需要知道这几个按键的功能,按一按便可以打印出纸张。

        其实像HAL这样的封装库还有另外几种,只是我们这次选择了HAL库,其它的比如经典的标准外设库以及最新推出的LL库,或者我们直接对STM32的寄存器进行操作(STM32Snippets),它们各自有各自的优劣,如下表所示

三、关于硬件与软件的一些概念

  • 硬件(Hardware):计算机系统中的物理、有形部分,包括机箱、主板、显示器等。
  • 软件(Software):按照特定顺序组织的电脑数据与指令,计算机中的非有形部分。主要可以分为系统软件与应用软件。
  • 固件(Firmware): 一种特殊的软件,对于硬件内部更加贴近与重要。固件担任驱动芯片的最底层工作。
  • 驱动(Driver):为了适应不同的操作系统环境,为硬件提供的驱动硬件的小段代码一般被称为驱动,也是一种特殊的软件。相比于固件,驱动是为了在不同的操作系统上运行硬件而生,如果世界上只有一种操作系统,也就没有驱动存在的必要了。
  • 中间件(Middleware):提供系统软件与应用软件之间的连接,便于软件之间的沟通的软件。这样看来STM32相关的HAL库与CMISIS类似一种固件与中间件的结合。

四、芯片厂商简介

        我们在学习STM32嵌入式知识时,离不开使用各大公司的产品,这里对一些公司与其产品做一个简单的介绍

  • ARM公司(英国,1991):全球领先的半导体知识产权(IP)提供商。全世界超过95%的智能手机和平板电脑都采用ARM的架构 。ARM设计了大量高性价比、耗能低的RISC处理器、相关技术及软件。总的来讲ARM主要为各芯片厂商提供芯片架构与内核设计,不生产芯片。另外现在流行的嵌入式软件卡法系统Keil,其公司于2005年被ARM收购。
  • 意法半导体(ST)公司(意大利、法国,1987):是由意大利的SGS微电子公司和法国Thomson半导体公司合并而成,涉及的业务包括通信、汽车、计算机、消费等半导体工业的各个方面。ST公司是世界第一大专用模拟芯片和电源转换芯片制造商,世界第一大工业半导体和机顶盒芯片供应商,而且在分立器件、手机相机模块和车用集成电路领域居世界前列。我们使用的STM32便是其生产的一款32位MCU产品。
  • 英特尔Intel(美国,1968):如雷贯耳的半导体行业和计算创新领域的全球领先厂商。我们日常中电脑的CPU大多为Intel的产品。最早的51单片机便由Intel于1980年推出,后来各大芯片厂商推出的凡是兼容Intel 8051指令集的芯片均称为51单片机。
  • 德州仪器(Texas Instruments,TI)(美国、1930):是全球领先的半导体公司,为现实世界的信号处理提供创新的数字信号处理(DSP)及模拟器件技术。除半导体业务外,还提供包括传感与控制、教育产品和数字光源处理解决方案。

当然还有许多知名的芯片设计公司,比如我们熟知的苹果、AMD、英伟达等,只是与STM32关系不那么大,不再详述。

五、开发准备

  • 集成开发环境(Integrated Development Environment,IDE):辅助程序开发人员开发的应用软件,在开发工具内部就可以辅助编写源代码文本、并编译打包成为可用的程序。IDE通常包括编程语言编辑器、自动构建工具、通常还包括调试器,有些IDE包含编译器。著名的IDE有Microsoft Visual Stdio、MyEclipse、PyCharm……STM32CubeIDE就是ST官方推出的一款专门用于开发STM32程序的IDE。

        许多人的习惯是在STM32CubeMX中作基础的配置,然后在Keil中添加代码,完成编译、烧录与调试。但这样毕竟是两个程序,STM32CubeIDE则集合了这两者的功能,并且也是官方推出,所以也可以尝试使用一下这款软件。这款软件基于eclipse开发,界面都十分相似,所以熟悉java以及eclipse的朋友使用这款软件会十分得心应手。

c975d535755810ceb16681f89d61192b.jpeg

        对于要使用的每个STM32芯片,首先我们手上必备的两本手册(ST官网有pdf版):

  • 参考手册(Reference manual)
  • 数据手册(Datasheet)

        其中参考手册包括各个功能模块的具体信息、原理、各种工作模式介绍、配置方法以及寄存器相关信息;数据手册包括芯片的基本参数、引脚数量与各自功能、电气特性、封装信息等内容。一般在选型与硬件设计阶段,参考数据手册多一些,而到了程序设计阶段,参考手册就是必须的了。以下是STM32G4系列的参考手册的“自我介绍”:

        本参考手册的目标是应用程序开发人员。 它提供了关于的完整信息如何使用STM32G4系列单片机的内存和外设。  


总结

        介绍了嵌入式的一些基本概念,STM32的运行框架,一些关于硬件与软件的概念,以及一些芯片厂商。最后简单提了提一些开发STM32的工具与文档。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值