正如轿车替代了马车,电子邮件替代了一般邮件相同,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代码都归于这一类型。