对比了8位MCU和32位MCU的使用案例来作为选择指南.doc
《对比了8位MCU和32位MCU的使用案例来作为选择指南.doc》由会员分享,可在线阅读,更多相关《对比了8位MCU和32位MCU的使用案例来作为选择指南.doc(7页珍藏版)》请在三一文库上搜索。
1、对比了8位MCU和32位MCU的使用案例来作为选择指南该如何对8位以及32位的MCU进行选择?8位和32位MCU在功能上仍是互为辅助、各有千秋,这其中的诀窍就在于,需先了解什么样的应用适合什么样的MCU架构。本文对比了8位MCU和32位MCU的使用案例,也可作为如何选择这两种MCU架构的指南使用。本文中大部分32位MCU的范例将关注ARM Cortex-M,Cortex-M在不同MCU供应商产品组合中表现得非常相似。鉴于8位MCU有很多种架构,所以很难对8位供应商产品进行类似的比较。为了便于进行比较,我们将使用广泛应用、易于理解的8051 架构,该架构深受嵌入式开发人员的青睐。8位和32位MC
2、U该如何选择?有时,当我对比人们所熟知的事物(例如ARM和8051)时,感觉就像在物联网论坛上发出星际争霸战比星际大战好看的帖子一样,很快就能火起来。事实上,ARM Cortex和8051哪个更好并不是个逻辑问题,就像是在问:吉他和钢琴哪个更好?真正要解决的问题应是哪种MCU能帮我更好地解决当下面临的问题。不同的任务需要使用不同的工具,我们的目的是要了解如何才能更好地运用我们所拥有的工具,包括8位和32位MCU。几乎可以肯定地说,那些简单回答ARM更好或8051更好的人各有其目的,他们也许正在试图销售某种产品。对不同的设备进行比较,需要对其进行测量。有很多构建工具可供选择,我们尽量选择一些场景
3、,我认为其能够进行最公平的比较,且最能代表开发人员的真实体验。并非所有的MCU都是一样的在开始对架构进行比较之前,要注意到并非所有生产的MCU都是一样的,这一点非常重要。如果将基于ARM CortexM0+处理器的现代MCU与30年前的8051 MCU进行对比,8051 MCU在性能对比上不会胜出。幸运的是,依然有许多供应商一直在对8位处理器持续投资。在许多应用中,8位内核能依然能够弥补M0+或M3内核不利的地方,甚至在一些方面性能更佳。开发工具也很重要。现代嵌入式固件开发需要全功能IDE、现成的固件库、丰富的范例、完整的评估和入门套件以及助手应用以简化硬体设定、库管理和量产程式设计之类的工作
4、。当MCU有了现代化的8位内核和开发环境后,在很多情况下,这样的MCU将超越基于ARM Cortex的类似MCU。系统规模一般性原则是,ARM CortexM内核更适用于较大的系统规模,而8051设备适用于较小的系统规模。中等规模的系统可以选择两种方式,这取决于系统要执行的任务。有必要注意一点,在大多数情况下,外设组合将会发挥重要的作用。如果需要3个UART、1个LCD控制器、4个时钟和2个ADC,你可能并不会在8位MCU上找到所有这些外设。易用性vs.成本和尺寸对于中等规模的系统来说,使用任何一种架构都可以完成工作,需要权衡的是选择ARM内核带来的易用性,还是8051设备带来的成本和物理尺寸
5、优势。ARM Cortex-M架构具有统一的存储映射模式,并且在所有常见编译器中支持完整的C99,这使得这种架构非常易于写固件。此外,还可得到一系列库和协力厂商代码。当然,这种易用性的代价就是成本。对于高复杂性、上市时间较短的应用或缺乏经验的固件开发人员来说,易用性是个重要因素。尽管8位与32位组件相比有些成本上的优势,但真正的区别就在于成本级别。大家经常会发现具有2 KB/512 B(Flash/RAM)的小容量8位器件,而却很少见低于8 KB/2 KB的32位器件。在不需要很多资源的系统中,该范围的存储容量能够让系统开发人员获得显著降低成本的解决方案。因此,对成本极为敏感或仅需较小存储容量
6、的应用会更倾向于选择8051解决方案。通常,8位器件也具有物理尺寸上的优势。例如,某些MCU的32位QFN封装为4 mm4 mm,而基于8051的8位器件的QFN封装可小至2 mm2 mm。芯片级封装(CSP)的8位和32位架构之间的差异较小,但却使成本增加,且组装较难。对于空间严格受限的应用来说,通常需要选择8051 MCU来满足限制要求。通用代码和RAM效率8051 MCU成本较低的主要原因之一是,它通常比ARM Cortex-M内核更高效地使用Flash和RAM,这允许系统采用更少资源实现。系统越大,这种影响就越小。但这种8位存储资源的优势并不总是如此,在某些情况下,ARM内核会像805
7、1内核一样高效或比其更高效。例如:32位运算仅需要一条ARM设备指令,而在8051 MCU上则需要多条8位指令。显然,这种代码在ARM架构上有更高的执行效率。ARM架构在Flash/RAM尺寸较小时的两个主要缺点是:代码空间效率和RAM使用的可预测性。首要也是最明显的问题是通用代码空间效率。8051内核使用1位组、2位组或3位组指令,而ARM内核使用2位组或4位组指令。通常情况下,8051指令更小,但这一优势因实际上花费许多时间而受到削弱,ARM内核比8051在一条指令下能做更多工作,32位运算就是这样一个范例。实践起来,指令宽度是能在8051上产生适度的更密集代码。代码空间效率在含有分散式访
8、问变数的系统中,ARM架构的载入/存储架构通常比指令宽度更为重要。试想讯号量的实现,一个变数需要在代码周围的多个不同位置进行减量(分配)或者增量(释放)。ARM内核必须将变数载入到寄存器,对其进行操作并重新存储,这需要3条指令。另一方面,8051内核可以直接在记忆体位置上进行操作,且仅需1条指令。随着每次对变数完成工作量的增大,由于载入/存储而产生的消耗就变得微不足道。但对于每次仅完成一点工作的情况来说,载入/存储能产生重要影响,让8051获得明显的效率优势。尽管讯号量在嵌入式软体中并非常见,但简单的计数器和标志讯号量却广泛应用于控制导向的应用中并起着相同的作用。许多常见的MCU代码都属于这一
9、类型。另一个原因是,ARM处理器比8051内核拥有更多的自由使用栈空间。通常情况下,8051设备针对每次函式呼叫仅在栈上存储返回位址(2位组),通常通过分配给栈的静态变数处理大量的任务。在某些情况下,这会产生问题,因为这会造成函数预设不可重入。然而,这也意味着必须保留的栈空间很小,且完全可预测,这在RAM容量有限的MCU中至关重要。图一: 不同的任务需要使用不同的工具,我们的目的是要了解如何才能更好地运用我们所拥有的工具,包括8位和32位MCU。(Source:Yola)架构细节现在,我们来说基本情景。假设有基于ARM和基于8051的MCU各一个,配有所需的外设,那么对于较大的系统或需要重点考
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 对比 MCU 32 使用 案例 作为 选择 指南
链接地址:https://www.31doc.com/p-3433020.html