您的位置 首页 开关

【E问E答】8位仍是32位,微处理器怎样选?

正如汽车代替了马车,电子邮件代替了普通邮件一样,32位元微控制器(MCU)让8位元MCU变得黯然失色。尽管未来8位元MCU朝向32位元MCU发展将会成为现实,但目前还没那么容易实现。事实证明8位元

  正如轿车替代了马车,电子邮件替代了一般邮件相同,32位元微操控器(MCU)让8位元MCU变得相形见绌。尽管未来8位元MCU朝向32位元MCU开展将会成为实践,但现在还没那么简略完结。事实证明8位元MCU和32位元MCU仍是互补的技能,在一些方面各有千秋,而在其它方面的体现却相同超卓。这其间的诀窍在于厘清何种运用适宜哪种MCU架构。

  本文比较了8位元MCU和32位元MCU的运用事例,可作为怎么挑选这两种MCU架构的攻略运用。

  本文大部分32位元典范将注重于ARM Cortex-M设备,Cortex-M在不同MCU供货商产品组合中体现十分相似。因为8位元MCU有许多种架构,所以很难对8位元供货商之间进行相似的产品比较。为了进行比较,本文将运用广泛运用、易于了解的8051 8位元架构。

  事实上,“ARM Cortex和8051哪个比较好”不是个逻辑问题,反而像是在问“吉他和钢琴哪个好”?真正要处理的问题是“哪种MCU最能协助处理现在面对的问题?”。

  不同的任有必要运用不同的东西,运用者意图是要了解“怎么才干善用所具有的东西”,包含8位元和32位元设备。

  对不同的设备进行比较,需求对其进行丈量。有许多建构东西可供挑选,本文尽量挑选一些认为能够进行最公正的比较,且最能代表开发人员真实体会的情境。

  以下ARM材料是透过GCC+ nanoCLibrary和-03最佳化选项所生成。

  此一比较实验并不为任何一种设备的代码最佳化,只是简略完结90%开发人员都会运用的常见代码,并出现一般开发人员所见到的成果,而不是抱负状况下的成果。当然,花费许多时刻、精力和财力去调整8051代码使其体现胜过ARM是或许的,反之亦然,但一开端就挑选适宜该项作业的最佳东西比费尽心力做最佳化简略多了。

  8位元MCU成效继续精进

  在开端对架构进行比较前,要留意到并非一切的MCU都是相同,这一点十分重要。

  假如将依据ARM Cortex-M0+处理器的现代MCU与30年前的8051 MCU做比照,8051 MCU在功用上当然不会胜出。走运的是,许多供货商一直对8位元处理器继续出资。

  例如芯科实验室(Silicon Labs)正继续更新依据8051中心的EFM8 MCU产品线,其效能比原始的8051架构更高,而且开发进程也已完结现代化。所以在许多运用中,8位元中心能够简略补偿比M0+或M3中心晦气的当地,甚至在一些方面功用更佳。

  开发东西也很重要。现代嵌入式韧体开发需求全功用IDE、现成的韧体库、丰厚的典范、完好的评价和入门套件,以及帮手运用,以简化硬体设定、材料库办理和量产编程之类的作业。当MCU有了现代化的8位元中心和开发环境时,在许多状况下,这样的MCU将逾越依据ARM-Cortex的相似MCU。

  以系统规划挑选MCU

  第一个一般性准则是:ARM Cortex-M中心更适用于较大的系统规划(》64KB代码),而8051设备适用于较小的系统规划(《8KB代码)。中等规划的系统能够挑选两种方法,这取决于系统要履行的使命。需求留意的是,在大多数状况下,周边组合将会发挥重要效果。假如需求三个UART、一个LCD操控器、四个时脉和两个ADC,运用者或许不会在8位元MCU上找到一切的周边。

  易用性与本钱/尺度之比较

  关于中等规划的系统来说,运用任何一种架构都能够完结作业。但首要须考量是挑选ARM中心带来的易用性,仍是8051设备带来的本钱和物理尺度优势。

  ARM Cortex-M架构具有共同的贮存形式,并在一切常见编译器中援助完好的C99,这使得该架构十分易于写韧体。此外,还可得到一系列材料库和协力厂商代码。

  当然,这种易用性的价值便是本钱。关于高复杂性、上市时刻较短的运用或缺少经历的韧体开发人员来说,易用性是个重要要素。

  比起32位元MCU,8位元MCU的本钱颇具优势。运用者常常会发现内建2KB/512B(Flash/RAM)的小容量8位元MCU,而却很难找到低于8KB/2KB的32位元MCU。在不需求许多资源的系统中,贮存容量小的MCU能够让系统开发人员取得明显的本钱下降。因而,对本钱极为灵敏或仅需较小贮存容量的运用,会更倾向于挑选8051处理方案。

  8位元晶片一般也具有物理尺度上的优势。例如Silicon Labs供给的最小32位元QFN封装为4mm×4mm,而依据8051的8位元晶片的QFN封装可小至2mm×2mm。

  晶片级封装(CSP)的8位元和32位元架构之间的差异较小,但却使本钱增加,且拼装较难。关于空间严厉受限的运用来说,一般需求挑选8051设备来满意约束要求。

  通用代码/RAM功率易影响MCU本钱

  8051 MCU本钱较低的首要原因之一是其运用Flash和RAM的功率一般比ARM Cortex-M中心更高,这答应系统选用更少资源完结。系统越大,这种影响就越小。

  可是,这种8位元贮存资源的优势并不总是如此,这一点很重要。在某些状况下,ARM中心会像8051中心相同高效或比其更高效。例如32位元运算在ARM MCU上仅需求一条指令,而在8051 MCU上则需求多条8位元指令。明显,这种代码在ARM架构上有更高的履行功率。

  ARM架构在Flash/RAM尺度较小时的两个首要缺陷是代码空间功率和RAM运用的可猜测性。首要也是最明显的问题是通用代码空间功率。8051中心运用1位元组、2位元组或3位元组指令,而ARM中心运用2位元组或4位元组指令。

  一般状况下,8051指令更小,但这一优势因实践上花费许多时刻而遭到削弱,ARM中心比8051在一条指令下能做更多作业。32位元运算便是这样一个典范。以实践来说,指令宽度是能在8051上发生适度的更密布代码。

  代码空间功率

  在含有涣散式存取变数的系统中,ARM架构的载入/贮存架构一般比指令宽度更为重要。试想信号量的完结,一个变数需求在代码周围的多个不同方位进行减量(分配)或许增量(开释)。ARM中心有必要将变数载入到暂存器,对其进行操作并重新贮存,这需求三条指令。另一方面,8051中心能够直接在记忆体方位上进行操作,且仅需一条指令。跟着每次对变数完结作业量的增大,由载入/贮存而发生的耗费就变得微乎其微。但关于每次仅完结一点作业的状况来说,载入/贮存能发生重要影响,让8051取得明显的功率优势。

  尽管信号量在嵌入式软体中并十分见结构,但简略的计数器和标志却广泛运用于操控导向的运用中并发挥相同的效果。许多常见的MCU代码都归于这一类型。

  另一个原因是ARM处理器比8051中心具有更多的自在运用堆叠。一般状况下,8051设备针对每次函式呼叫仅在堆叠上贮存回来位址(2位元组),透过一般分配给堆叠的静态变数处理许多的使命。在某些状况下,这会发生问题,因为这会形成函数预设不行重入。可是,这也意味着有必要保存的堆叠空间很小,且彻底可猜测,这在RAM容量有限的MCU中至关重要。

  举个简略的比如,实验者规划了以下程式,然后丈量funcB内部的堆叠深度,发现M0+中心的堆叠用了四十八个位元组,而8051中心的堆叠仅用了十六个位元组。当然,8051中心还静态装备了八个位元组的RAM,一共用了二十四个位元组。在较大的系统中,这个差异显得微乎其微,可是在仅有256位元组的ARM的系统中,这就变得很重要。

  架构细节之考量

  假定有依据ARM和依据8051的MCU各一个,配有所需的周边,那么关于较大的系统或需求关键考虑易用性的运用来说,ARM设备是更好的挑选。假如首要考量的是低本钱/小尺度,那么8051设备将是更好的挑选。本文以下关于每种架构更拿手的运用进行更具体的剖析,一起也划分出一般准则。

  影响延时要素

  两种架构的中止和函式呼叫延时存在很大差异,8051比ARM Cortex-M中心更快。

  此外,高阶周边汇流排(APB)装备的周边也会影响延时,这是因为材料有必要透过APB和AMBA高功用汇流排(AHB)传输。终究,当运用高频中心时脉时,许多依据Cortex-M的MCU需求分配APB时脉,这也增加了周边延时。

  实验者做了个简略的实验,实验中的中止是透过I/O引脚触发的。该中止对引脚宣布一些信号,并依据引发中止的引脚更新标志,之后再量测其部分参数的改动。

  8051中心在中止服务程式(ISR)进入和退出时显示出优势。可是,跟着中止服务程式(ISR)越来越大和履行时刻的增加,这些推迟将变得微乎其微。和既有准则共同,系统越大,8051的优势越小。此外,假如中止服务程式(ISR)涉及到许多材料移转或大于8位元的整数材料运算,中止服务程式(ISR)履行时刻的优势将转向ARM中心。例如,一个选用新样本更新16位元或32位元滚动均匀(Rolling Average)的ADC ISR或许在ARM设备上履行的更快。

  8051中心的基本功用是操控代码,其间关于变数的存取是涣散的,而且运用了许多操控逻辑(If、Case等)。8051中心在处理8位元材料时也是十分有用的,而ARM Cortex-M中心拿手材料处理和32位元运算。此外,32位元材料通道使得ARM MCU仿制大的材料愈加有用,因为它每次能够移动四个位元组,而8051每次仅能够移动一个位元组。因而,那些首要把材料从一个当地移到另一个当地(例如UART到CRC或许到USB)的材料流处理运用更适宜挑选依据ARM处理器的系统。

  来做个简略的实验。实验者编译以下两种架构的函数(公式1),变数巨细为uint8_t、uint16_t和uint32_t。

  跟着材料量的增加,8051中心需求越来越多的代码来完结这项作业,终究超越了ARM函数的巨细。在16位元的状况下,代码巨细简直相似,在履行速度上稍优于32位元中心,因为相同代码一般需求更少周期。还有一点很重要:只要选用最佳化的ARM编译代码时,这种比较才有用。未最佳化的代码需求花费几倍长的时刻。

  这并不意味着有许多材料移动或32位元运算的运用不应该挑选8051中心完结。

  在许多状况下,其它方面的考量将超越ARM中心的功率优势,或许说这种优势是无关紧要的。举例来说,考虑运用UART到SPI桥接器时,该运用花费大部分时刻在周边之间仿制材料,而ARM中心会更高效地完结该使命。可是,这也是一个十分小的运用,或许放入到一个仅有2KB贮存容量的晶片就满足了。

  尽管8051中心功率较低,但它依然有满足的处理才能去向理该运用中的高材料速率。关于ARM设备来说,可用的额定周期或许处于闲暇回圈或“等候中止”(WFI),等候下一个可用的材料到来。在这种状况下,8051中心依然最有含义,因为额定的CPU周期是微乎其微的,而较小的Flash封装会节省本钱。假如运用者要运用额定的周期去做些有含义的作业,那么额定的功率将是至关重要的,且功率越高越或许越有利于ARM中心。这个比如阐明,清楚被开发系统所注重的环境中的各种架构优势是多么重要,而作出这个最佳的决议是简略但却重要的一步。

  目标为8051特别优势

  8051设备不像ARM设备般共同的贮存映射,而是对存取码(Flash)、IDATA(内部RAM)和XDATA(外部RAM)有不同的指令。为了发生高效的代码,8051代码的目标会阐明它指向什么空间。可是,在某些状况下,运用通用目标,能够指向任何空间,可是这种类型的目标是低效的存取。例如,将目标指向缓冲区并将该缓冲区材料输出到UART的函数。假如目标是XDATA目标,那么XDATA阵列能被发送到UART,但在代码空间中的阵列,首要需求被仿制到XDATA。通用目标能一起指向代码和XDATA空间,但速度较慢,而且需求更多的代码来存取。

  专用区域目标在大多状况下能发挥效果,可是通用目标在编写运用状况不知道的可重用代码时十分灵敏。假如这种状况在运用中很常见,那么8051就失去了其功率优势。

  细心评价了解MCU运用优势

  本文现已屡次留意到,运算倾向于挑选ARM,而操控倾向于挑选8051,但没有运用只是着眼于核算或操控,该怎样才干界说各种运用,并核算出它的适宜规模呢?

  本文考量一个由10%的32位元核算、25%的操控代码和65%的一般代码构成的假定运用时,其不能清晰的归成8或32位元类别。这个运用也更注重代码空间而不是履行速度,因为其并不需求一切可用的运算效能,而且有必要为本钱进行最佳化。

  本钱比运用速度更为重要的事真实一般代码景象下将为8051中心带来些微优势。此外,8051中心在操控代码中有中心等级的优势。ARM中心在32位元核算方面占上风,可是这并非是许多运用所注重的。考量到一切这些要素,这个特别的运用挑选8051中心愈加适宜。

  假如做一个纤细的改动,假定该运用更关怀履行速度而非本钱,那么通用代码不会倾向于哪种架构,而且ARM中心在核算代码中全面占有优势。在这种状况下,尽管有比核算更多的操控代码,可是终究成果将适当均衡。明显,在这个进程中有许多的评价,可是分化运用,然后评价每一元件的技能将能保证运用者了解,在哪种状况下哪种架构有更明显的优势。

  功耗影响须多方考量

  当查阅材料手册时,很简略依据功耗材料得到哪个MCU更佳的定论。尽管睡觉形式和作业形式电流功用在某些类型MCU上的确更佳,可是这一评价或许会十分简略发生误导。

  作业周期(在每个电源形式上别离占用多少时刻)一直占有能耗的主导地位。除非两个晶片的作业周期相同,不然材料手册中的电流标准简直是没有含义的。最适宜运用需求的中心架构,一般具有更低的能耗。

  假定有一个系统,在设备被唤醒后增加一个16位元ADC样本到滚动均匀,然后回来到休眠状况,直到获取下一个样本时才又被唤醒。该使命涉及到许多16位元和32位元核算。ARM设备将能够进行核算,并比8051设备更快回来到休眠状况,这会让系统功耗更低,即便8051具有更好的睡觉和作业形式电流。当然,假如进行的使命更适宜8051设备,那么MCU能耗因为相同的原因而对系统有利。

  周边特性也能够以相似的方法影响功耗。例如,大多数Silicon Labs的EFM32 32位元MCU具有低功耗的UART(LEUART),能够在低功耗形式下接纳材料,而却只要两个EFM8 MCU具有此功用。此周边影响电源的作业周期,且在任何需求等候UART通讯的运用中,具有LEUART的EFM32 MCU都比缺少LEUART的EFM8有利。惋惜的是,除了让MCU供货商的现场运用工程师运用EFM8来处理问题,没有简略的攻略来评价这些周边要素。一起,系统规划人员还应了解各种MCU能耗形式下可完结的处理使命。

  ARM/8051各有优缺挑选适宜东西为开发关键

  假如考量到一切这些变数后,依然不清楚哪些MCU架构是最好的挑选,那会怎么?这表明,不管是8位元或是32位元都是很好的挑选,运用者运用哪种系统架构都不要紧。假如没有清晰的技能优势,那么曩昔的经历和个人喜好在MCU架构决议中也发挥很大的效果。此外,运用者也能够运用这个机会去评价或许的未来专案。假如大多数未来专案更适宜ARM设备,那么挑选ARM,假如未来项目更侧重于下降本钱和尺度,那么就挑选8051。

  8位元MCU依然能够为嵌入式开发人员供给许多功用,而且越来越注重物联网。当开发人员开端规划时,重要的是保证从东西箱中取得适宜的东西。实践上的难题是,不能只是依赖于PowerPoint材猜中的一两个关键就概括出挑选MCU架构的定论。可是,一旦运用者有正确的资讯,并乐意花一点时刻来实践试用产品,就不难作出最佳挑选。

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部