什么是单片机(MCU)?ARM?STM32?STM32F103ZET6?
①单片机MCU:
一种集成电路芯片,将具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能。
可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路集成到一块硅片上构成的一个小而完善的微型计算机系统。
(上述功能描述听起来比较模糊,这部分会在原理图部分详细讲述如何画一块主控板),通常在我们获得一款单片机(如下图左/右圈内)后需要对其外设(下图右红圈外部分)进行硬件上的电路设计和在规定编译环境下进行编程。
②ARM: ARM 是一个做芯片标准的公司,它负责的是芯片内核的架构设计,ARM确定了芯片内核的一套标准。只包括单片机中最核心的部分,并不是完整的处理器/单片机。ARM把这个核卖给各大半导体公司。所以,任何一个做基于ARM内核标准的芯片(如Cortex-M3内核),他们的内核结构都是一样的,不同的是他们的存储器容量,片上外设,IO 以及其他模块的区别。而由于STM32基于固件库开发,使使用者容易上手进而脱颖而出。
既然大家都使用的是Cortex-M3核,也就是说,本质上大家都是一样的,这样ARM公司为了能让不同的芯片公司生产的Cortex-M3芯片能在软件上基本兼容,和芯片生产商共同提出了一套标准CMSIS标准(Cortex Microcontroller software Interface Standard),翻译过来是“ARM Cortex™ 微控制器软件接口标准”。
③STM32: ST是指意法半导体公司,M是Microelectronics的缩写,32表示32bit处理器,单片机位数指CPU处理的数据的宽度,参与运算的寄存器的数据长度。32位单片机的数据总线宽度为32位,通常可直接处理8位或16位或32位数据。
STM32主要系列如下图,从图中可以看出不同系列对应的ARM内核是不一样的,这也导致我们在开发一款主控时需要的某些文件和定义是不同的。
④STM32F103ZET6
对于不同系列,如STM32F103和STM32F407的区别,可以很容易在ST意法半导体的官网上找到(https://www.stmcu.com.cn/Product/pro_detail/STM32F1/product)
如何选择主控?
通过上节现在你应该可以直观地看到,单片机只是你手里或者你见过的开发板上最核心的那块芯片(红圈内),而其它部分则被称为外设(红圈外),这部分是根据不同的公司比如正点原子自行设计的。
总体来说,ARM公司设计了单片机内核标准,ST公司设计了单片机,正点原子基于设计好的单片机进行外设包括软件和硬件的设计。 也就是说在这里我们个人代替不了ARM也代替不了ST,我们唯一可以代替的角色就是正点原子,由此,选择主控就有两个方向:
-
买一块: 比如买正点原子的STM32F407ZET6,在他的基础上,如果他设计的外设上已经引 出我们需要的功能(即很多你能看到的接口),那么只用在程序里进行启用即可。当然 也肯定会有他没有设计的功能(或者说没有引出引脚,通常说这个功能的引脚不够用)。 比如STM32F407ZET6只有一个485通信的接口,当我需要多个485设备连接时,就没 有那么多口可以用,所以买一块的缺点就在于传感器系统和动力系统所需要的接口是否 满足你买到的那块芯片。至于为什么STM32F407ZET6口会这么少,原因是在于这是一 个学习板,主要是为了让我们去学习不同功能用的。
-
画一块: 相反,当我们自己充当正点原子的角色时,我们就可以添加我们想要的接口,从 而可以不用担心接口不够用的问题。但是画一块的缺点就在于板子的稳定性是不是我们 能够保证的。不管是对于机器人比赛还是自己设计一款机器人系统来说,稳定性,尤其 是电路的稳定性是尤其重要的,每年到比赛场上都会有很多队伍的板子出现通信或者线 路的故障,所以使用自己画的板子一定要在有足够的经验和自信上才去用。(当然本人 是鼓励去画板子的,我们只要不断地尝试才能知道稳不稳定,也能更加清楚地知道单片 机工作的原理。)
选择的步骤:
①常见的单片机MCU有51系列、AVR系列(AT系列)、STC系列、MSP系列、PIC系列、STM32系列。51系列作为最早诞生的单片机,其缺点是显而易见的,不关是编程麻烦,更重要的是运行慢、稳定性差;而AVR系列C语言写法有较大差异、STC是AVR和51的结合体(国产)、MSP不容易上手、PIC与寄存器深入打交道,更重要的是他们与STM32相比可参考的资料要少很多很多,所以对于本科阶段学习嵌入式芯片而言,STM32系列是既适用于学习又适用于比赛或系统设计的高性价比选择。
②选择了STM32系列,接下来就是选择F系列,主流的32单片机通常能够买到F1和F4系列且有相对最多的资料,尤其是F103和F407。从价格上看,F407比F103贵不少,正是因为F407比F103更快更稳定。所以从学习上看,F1资料多而且便宜是最好的选择,而比赛上看F4将是更好的选择。
③现在以STM32F407ZET6和STM32F407VET6为例做最后的对比。参照2.2.1节中STM32系列各个名称的含义,以上两者最大的区别就在于封装的管脚数目不一样,Z为144引脚,V为100引脚,也就是说二者只是在扩展的一些功能上有区别,而驱动方式等都是一脉相承的。(通常我们在开发一款单片机时,选择好了它的型号才能知道需要导入什么文件,需要怎么更改它的参数)
④在你成功完整地学过一款单片机后,你就可以根据你下一次的需求去选择专一特点、适合的单片机,而不用限定在STM32之内。
MPU与MCU的区别
当你在ST官网上选择型号时,你会发现还有一个叫MPU的东西:
MCU(Mirco Controller Unit)叫做微控制器,根据外界的信号(刺激),产生一些响应,做一点简单的人机交互,不要求太高的主频(及单片机的时钟频率),比如早期的51单片机时钟为12MHZ左右,现在的ARM系列(包括ST、NXP的产品等)主频一般也在100多MZH,如STM32F407为168MZH,STM32F103为72MZH。一般不需要去做功能复杂和运算量大的程序,而大部分MCU都是32位的。
MPU(Micro Processor Unit)叫做微处理器,类似于CPU(中央处理器)、GPU(图像处理器)、DSP(数字信号处理器)等,处理器顾名思义是用来处理的,处理的对象就是数据。如GPU正是由于它强大的并行浮点运算能力才能支持高速的图像处理,使音视频播放、多媒体技术成为可能。同样由于这样的处理能力使之在AI时代来临之时发挥巨大作用。高运算量决定了他拥有高的主频,而大部分MPU都已经到了64位。早期主频如ARM9系列的MPU就已经达到了400MZH左右,而现在的手机MPU更是达到了GHZ级别。现有的MPU如树莓派、Jetson(机器人视觉图像处理常用)等。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/37747.html