作者:e络盟 Ankur Tomar,飞思卡尔 Anthony Huereca
e络盟社区致力于服务设计工程师已有8年时间。在这段时间内,技术不断发展,32位架构上市,使得工程师能够前所未有地推进其设计,我们也得以亲眼见证了微控制器市场的发展变化。
在全世界每天使用的数十亿件嵌入式设备中,许多仍然采用传统的8位和16位微控制器。很多嵌入工程师是跟着这些较老的架构一起成长起来的,这些架构成本低、功耗低而且十分简单,即使32位设备发展迅猛也没有妨碍它们的受欢迎程度。但是,32位设备声望渐隆,我们有必要对这个新架构的差异、优势和机遇进行详细说明。
现在,每个新项目都需要先回答下列问题:继续采用8位架构会错过什么?32位架构能够提供什么?32位设备目前占据着嵌入式MCU销售的领先地位,我们是否应该立即采取行动以避免落后?
幸运的是,我们的行业创新永无止境。有了Freescale®(飞思卡尔)、 Atmel®、NXP®及其它设备所采用的ARM® Cortex®- M0+等内核,32位处理器就能够媲美传统8/16位MCU的实力,同时还能够提供众多的优势,让升级变得极具吸引力。Cortex-M0+内核为转换而生,它的32位功能可将项目提升到一个全新的高度。
为什么要向32位转换?
如果你问学工程的新生为什么要从8位向32位转换,那么你可能会得到这么一个明确的答案:32位是8位的4倍,位越高当然越好!实际上事情并非那么简单,不过32位MCU十分重要自有其很多令人信服的理由,即使对于“传统的”8位和16位项目来说也是如此。
提高性能:向32位内核转换之后,相对于目前使用的8位和16位架构来说,每MHz性能可以提高2-40倍。你可以获得更快的32位数学运算处理速度,以及单周期32位乘法运算。而且,你还可以获得单周期IO,用于位拆裂和软件协议仿真。
所有这些功能开启了全新的可能性,涉及软件堆栈(USB、蓝牙等)、RTOS、高级UI等等,而且还剩余充足的处理能力用于应用软件的自定义功能。
提高能源效率:Cortex-M0+内核效率极高,其Coremark/mA较8位或16位竞争性产品高达2倍。嵌入式系统结合这种强大的Cortex-M0+内核,可以更快地完成任务并返回睡眠模式,从而节省能源。
即使睡眠模式也能够很好地节省功耗:在飞思卡尔Kinetis® L 系列产品上进入9种模式中的最深度睡眠模式时,其功耗低至《1uA。而且,由于Kinetis系列产品上的外围模块采用智能设计,因此你可以在不唤醒内核的情况下做更多的事情,从而进一步节省功耗。
提高代码密度:似乎违反直觉的是,使用32位处理器将导致代码长度减小。不过,Cortex-M0+内核使用Thumb-2指令,其中许多指令仅占用16位闪存。而且请记住,8位处理器上的许多指令实际长于8位。此外,视具体应用而定,8位指令的多个字节可以用32位MCU的一个指令取代,就像下面的16位乘法运算一样。
结果显示,向使用Thumb-2指令的32位架构转换,可以极大地提高代码密度。
可扩展:当项目和性能需要提升时,捆绑于某个制造商提供的某个8位架构的装置不再是妨碍。32位设备注重C码而非装置,因此减少了开发和调试的时间,并且可以更加简便地将代码移植至新的设备。随着32位 ARM MCU在全世界广泛普及,软件生态系统将变得十分庞大,并且还将不断扩展。
但是……
你觉得这一切听起来真不错,但我仍然需要8/16位MCU为我的应用提供较小的尺寸、较低的成本和易于使用的特点。幸运的是,32位MCU也能够做到这些:
尺寸:正如飞思卡尔Kinetis KL03系列产品上所见,32位MCU的尺寸小至1.6x2.0毫米,是世界上最小的ARM MCU,所以非常小的尺寸也能够提供卓越的32位性能。
成本:设备起步价低至0.49美分,所以32位MCU甚至可以用于此前望成本兴叹的各种应用。而且因为代码密度提高,所以需要的闪存也比较少。
复杂性:令人称奇的是,32位架构在某些方面实际上更为简单。有了32位地址空间,便无需对内存地址进行分页,所以可以直接访问。Cortex-M0+内核架构拥有一个全功能干扰控制器,可简化干扰处理。此外,32位架构还附带一个追踪缓存,可以方便调试,并给希望继续使用装置的用户仅提供56条指令,这样一来,向32位“跨跃”的一大步从复杂性的角度来说更像是一小步。
利用32位开展开发工作:
使用32位ARM内核的主要优势之一,在于海量的可用软件和硬件,其中包括大量兼容的编译器和调试器。当项目在Cortex-M0+和更为强大的Cortex-M4等内核之间进行调整时,我们可以十分简便地重复使用各种硬件和软件。此外,因为飞思卡尔Kinetis MCU引脚和模块具备兼容性,并且该系列的设备数以百计,所以沿着性能/闪存曲线上下移动非常简便。
飞思卡尔进一步促进了32位的开发工作,推出了Processor Expert®软件建模工具和MQX™-Lite实时操作系统(RTOS),有助于迅速启动和推进全新的32位项目。Processor Expert软件建模工具是一种GUI补充工具,用于代码生成,可创建客户化的驱动程序,从而极大地缩短开发时间。
MQX-Lite RTOS是MQX RTOS的简化版,专门针对内存低于4KB的微控制器设计。RTOS驱动程序来自于Processor Expert软件建模工具,MQX-Lite RTOS是MQX RTOS的子集,因此未来可轻松升级至更为强大的设备。它很好地补充了Processor Expert软件建模工具,而且对于带有USB功能的设备,它还提供一个USB补充堆栈。
下一步
现在你想尝试一下32位架构,但是应该从哪里着手呢?
幸好,有许多主板提供很好的32位评估平台,你花不到一个匹萨的钱就能够买到。FRDM-KL05Z非常适合你初涉32位领域,它引脚兼容飞思卡尔的8位S08设备。FRDM-KL26Z增加了USB和更多先进的外围模块,而FRDM-KL46Z还进一步支持USB和segment LCD。或者,如果5V IO和电气可靠性对于你的应用至关重要,那么FRDM-KE02就是你要找的主板。
所有这4个薄荷锡盒大小的主板均为Cortex-M0+内核,并采用了 Processor Expert软件建模工具、MQX-Lite RTOS、USB补充堆栈等。此外,这些主板还内置了一个称为OpenSDA的调试电路,所以一条简单的USB电缆便可提供你所需要的全部调试、串行通信和闪存编程功能。
而且,这些主板以及整个飞思卡尔Freedom开发平台系列均兼容Arduino™扩展板,并可提供数字与模拟IO引脚。MEMS传感器评估套件很好地说明了其中的各种可能性,它将FRDM-KL25Z飞思卡尔Freedom开发平台和MEMS传感器评估扩展板相结合,使Kinetis L MCU能够获得各种先进的传感器,以便探索周围的世界。
在整个学习过程中,务必和其他工程师保持密切联系,e络盟社区可以提供这方面的支持。通常,你所面临的问题,其他工程师已经有了解决方案,从这一点上来讲,网络社区是一个不错的资源。
32位的未来
科技从未停止进步,越来越多的嵌入式应用将采用32位MCU,这种趋势只会加速。从开发套件到原型机和制造的每个设计流程阶段,e络盟均为工程师提供支持,确保他们在选择迁移至32位架构时胸有成竹。较高的性能、卓越的功率效率以及更好的代码密度,现在就迈开脚步,走向更加美好的32位未来吧。