您的位置 首页 应用

STM32学前班教程之一:为什么挑选STM32?

为什么是它——我选择STM32的原因。——–首先声明一下:该教程由思蜕盟论坛原创,本人一是为了自己学习,自我感觉此对stm32入门很有帮助

为什么是它——我挑选STM32的原因。

——–首要声明一下:该教程由思蜕盟论坛原创,自己一是为了自己学习,自我感觉此对stm32入门很有协助,二是为了给更多的初学者带来便当,所以决议转载。转载中纠正其间的部分过错,尽量参加最新的信息,并添加自己的部分见地和学习的感触,期望对阅览者带来点点阅览价值!真挚欢迎读者提出疑问,然后一起沟通,一起进步!

我对未来的规划是以功用性为主的,在功用和面积之间做以平衡是我的首要挑选,而把运算放在第二位,这根我的专业有联系。里边的运算其实并不杂乱,在入门阶段想尽量削减所触摸的东西。

不过说实话,对DSP的外设并和开发环境不满意,这是为什么STM32一出就转向的原因。下面是我自己做过的两块DSP28的全功用最小体系板,在做这两块板子的过程中发现要想极力缩小DSP的面积真实不容易(现在只能到达50mm×45mm,这仍是没有其他器材的情况下),尤其是双电源的供电办法和1.9V的电源让人很头疼。

后来因为一个项目,触摸了LPC2148并做了一块板子,发现小型的ARM7在外设够用的情况下其实很不错,所以开端收集相关芯片材料,也一起对小面积的AVR和51都进行了大致的比较,这个时分发现了CortexM3的STM32,比2148具有更丰厚和灵敏的外设,功用几乎是2148两倍(依照MIPS值核算)。正好2148我还没上手,就直接转了这款STM32F103。

与2811比较较(中心1.8V供电情况下),135MHz×1MIPS。现在用STM32F103,72MHz×1.25MIPS,功用是DSP的66%,STM32F103R型(64管脚)芯片面积只需2811的51%,STM32F103C型(48管脚)面积是2811的25%,最大功耗是DSP的20%,单片价格是DSP的30%。且有更多的串口,CAP和PWM,这是有用的。高端类型有SDIO,理论上比SPI速度快。

由以上比较,预备将未来的具有操作体系的高端运用交给DSP的新式浮点型单片机28335,而将一切紧凑型小型、微型运用交给STM32。

ARM Cortex-M3比较于ARM其他系列微操控器,具有以下优势或特色:
1.三级流水线+分支猜测
ARM Cortex-M3与ARM7内核相同,选用合适于微操控器运用的三级流水线,但添加了分支猜测功用。

现代处理器大多选用指令预取和流水线技能,以进步处理器的指令履行速度。流水线处理器在正常履行指令时,假如碰到分支(跳转)指令,因为指令履行的次序可能会产生变化,指令预取行列和流水线中的部分指令就可能报废,而需求从头的地址从头取指、履行,这样就会使流水线“断流”,处理器功用因而而受到影响。特别是现代C言语程序,经编译器优化生成的方针代码中,分支指令所占的份额可达10-20%,对流水线处理器的影响会的更大。为此,现代高功用流水线处理器中一般都参加了分支猜测部件,便是在处理器从存储器预取指令时,当遇到分支(跳转)指令时,能主动猜测跳转是否会产生,再从猜测的方向进行取指,然后提供给流水线接连的指令流,流水线就能够不断地履行有用指令,确保了其功用的发挥。
ARM Cortex-M3内核的预取部件具有分支猜测功用,能够预取分支方针地址的指令,使分支推迟削减到一个时钟周期。

2.哈佛结构
从内核拜访指令和数据的不同空间与总线结构,能够把处理器分为哈佛结构和普林斯顿结构(或冯.诺伊曼结构)。冯.诺伊曼结构的机器指令、数据和I/O共用一条总线,这样内核在取指时就不能进行数据读写,反之亦然。这在传统的非流水线处理器(如MCS51)上是没有什么问题的,它们取指、履行分时进行,不会产生抵触。但在现代流水线处理器上,因为取指、译码和履行是一起进行的(不是同一条指令),一条总线就会产生总线抵触,有必要刺进推迟等候,然后影响了体系功用。ARM7TDMI内核便是这种结构的。
而哈佛结构的处理器选用独立的指令总线和数据总线,能够一起进行取指和数据读写操作,然后进步了处理器的运转功用。ARM Cortex-M3、ARM966E、ARM926EJ、ARM1136JF等内核都选用了哈佛结构。

3.内置嵌套向量中止操控器(NVIC
针对业界对ARM处理器中止呼应的问题,Cortex-M3初次在内核上集成了嵌套向量中止操控器(NVIC)。Cortex-M3的中止推迟只需12个时钟周期(ARM7需求24-42个周期);Cortex-M3还运用尾链技能,使得背靠背(back-to-back)中止的呼应只需求6个时钟周期(ARM7需求大于30个周期)。以STM32运转在75MHz为例,中止推迟只需80ns-160ns。别的,Cortex-M3选用了根据栈的反常形式,使得芯片初始化的封装更为简略。
ARM7TDMI内核不带中止操控器,详细MCU的中止操控器是各芯片厂商自己参加的,这使得各厂商的ARM7 MCU中止操控部分都不相同,给用户运用及程序移植带来了很大费事。Cortex-M3内核集成NVIC,各厂商出产的根据Cortex-M3内核的MCU都具有一致的中止操控器,对用户运用各种Cortex-M3 MCU,特别是中止编程带来了很大的便当。

4.支撑位绑定操作
曾经的ARM内核不支撑位操作,当需求对一个变量或端口的某一位操作时,先要用逻辑与/或指令屏蔽其他的位,使位操作需求较多的指令和时钟周期。ARM
Cortex-M3选用了一种特别的办法——位绑定:把一个地址单元的32位变量中的每一位,经过一个简略的地址转化算法,映射到另一个地址空间,每一位占用一个地址,对此地址空间的操作,只需数据的最低一位是有用的,其他高31位的值被疏忽。相当于把一个“横”的32位字给“竖”起来。这样对新的映射空间操作时,就能够不必屏蔽操作,优化了RAM和I/O寄存器的读写,进步了位操作的速度。
这种办法粗看起来如同丢失了许多地址空间,其实关于32位的ARM处理器而言,一共能够寻址4GB的空间,而关于一个MCU来说,一般只用到几百KB的空间。所以这种处理办法一点点不会影响一个MCU的正常运用,又大大简化了处理器的规划,能够说是一种良策。

5.支撑串行调试(SWD)
ARM处理器一般都运用JTAG调试接口,使得仿真、调试东西一致而廉价,便当了用户开发。但JTAG调试接口至少要占用芯片的5-6个引脚,这关于一些引脚较少的MCU来说,有时会对仿真调试和I/O运用带来费事。
ARM
Cortex-M3在坚持本来JTAG调试接口的基础上,还支撑串行调试(SWD)。运用SWD时,只占用2个引脚,就能够进行一切的仿真和调试,节省了调试用引脚,用户就能够运用更多的引脚。
别的,Cortex-M3支撑8个硬件断点(ARM7、ARM9只支撑2个硬件断点),能够削减断点调试时对代码的影响,确保仿真、调试的时序准确性。

6.内核支撑低功耗形式
ARM内核已经是一个高功用、低功耗的内核,但ARM7、ARM9等内核自身只需运转/中止形式,没有其他形式。各芯片厂商只能在内核基础上,对各自参加的外设界说各种低功耗形式。Cortex-M3参加了类似于8位处理器的内核低功耗形式,支撑3种功耗管理形式:经过一条指令当即睡觉;反常/中止退出时睡觉;深度睡觉。使整个芯片的功耗操控更为有用。以STM32为例,其RAM和寄存器状况坚持的停机形式耗电仅为14uA,从此状况的发动时刻仅为7us。
Cortex-M3的运转功耗(Active Mode)也很低。以STM32系列微操控器为例,其典型功耗约为500uA/MHz,也仅仅现在业界超低功耗单片机MSP430系列(约为250uA/MHz)的2倍。但MSP430是16位处理器,而STM32是32位处理器。

7.高效的Thumb2 16/32位混合指令集
ARM7、ARM9等内核运用不同的处理器状况别离履行32位的ARM指令和16位的Thumb指令,运用状况切换指令完结ARM状况和Thumb状况的切换。Cortex-M3运用更高效的Thumb2指令集,它是一种16/32位混合编码指令,兼容Thumb指令。关于一个运用程序编译生成的Thumb2代码,以挨近Thumb编码的代码尺度,到达了挨近ARM编码的运转功用。Thumb2是一种紧凑、高效的新一代指令集。
Thumb2指令集是面向高档言语的指令集,合适于C言语编程,由编译器生成方针代码,不主张直接运用Thumb2汇编言语编程。

8. 32位硬件除法和单周期乘法
以往的ARM处理器没有除法指令,在某些除法密集型运用中功用不尽满意。Cortex-M3参加了32位除法指令,弥补了这一缺点,使Cortex-M3能够和其他通用处理器相同,完结各种数学运算操作。
Cortex-M3还改进了乘法运算部件,32成果的32位x32位乘法操作只需一个时钟周期。这一功用使得运用Cortex-M3来进行乘、乘加运算时,已迫临DSP的功用,因而特别合适一些需求简略DSP的运用领域,如电机操控、数字滤波、FFT改换等。
需求指出的是,32位的乘/除运算,关于一个8位机而言,已经是一段比较杂乱的程序,而关于32位的Cortex-M3而言,只需一句指令。因而,即便二者作业主频相同,实践运转功用也不是一个数量级的。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/257420.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部