多年来从事嵌入式相关工作,大部分接触过ARM芯片,但也有机会接触8位单片机。 在一些控制领域,8位微控制器仍然占有一席之地。 大家也来说说,你接触过8位单片机吗?
近年来,STM32等32位MCU已经变得无可比拟。 苹果电脑CPU中ARM内核的使用更是火上浇油。 现在说到嵌入式MCU,它们通常是32位的。
那么,像51单片机这样的8位MCU的情况又如何呢? 本文简单分析了很多嵌入式工程师的一些误区。
8 位 MCU 是否正在被淘汰?
这是最常见的误解。
我们先来说说事实。 根据Gartner最新的市场报告,8位数公司的市场收入和增长率仅落后32位数公司几个百分点。 考虑到单个8位芯片比32位芯片便宜得多,8位的出货量实际上比32位的出货量要高得多。
打个直观的比喻,现在有了高铁,是不是所有传统的快车、快车都会立刻被淘汰呢? 显然事实并非如此,原因实在太多了。
现实情况是,以前8位MCU的应用领域并不能立即被32位MCU直接取代。
8位处理器缺乏创新?
很多人会认为,既然市场的宠儿是32位MCU,厂商就没有在8位产品上投入研发资源。
对于有这种想法的人来说,当他们想到8位MCU时,可能会想到40DIP“经典8051”的形象。 事实上,芯片厂商并没有停止创新。 例如CIP-51内核采用1个时钟周期相当于1个指令周期的设计,瞬间将同频8051的性能提升了12倍。
国内一些半导体厂商也有基于8051或其他8位内核的创新。
8位处理器用C/C++语言编程难吗?
如果你了解了Arduino的设计原理,这个误区就会迎刃而解。
当然,坦白讲,使用高级语言对8位MCU进行编程确实比32位MCU更加困难。 主要障碍是内存地址的不一致。 例如8051内核的内存地址分为CODE、data、sfr、idata和xdata。 如果涉及银行业务,那就更复杂了。
8位PIC还有更多硬件Stack等“非主流”设计,但这些障碍可以通过工具优化来缓解。
8 位处理器是为简单应用而设计的吗?
这种观点有些正确,但嵌入式应用程序本身大多是简单的应用程序。
嵌入式系统应用的固有特点决定了8位仍然有很多用途。 外设和编译器的演进将慢慢扩大8位处理器的应用范围。
8位处理器难道不能满足物联网应用的需求吗?
3年嵌入式物联网学习资源整理分享:C语言、Linux开发、数据结构; 软件开发、STM32单片机、ARM硬件开发、物联网通讯开发、综合项目开发教程资料; 笔试和面试问题。 点击下方插件即可免费获取↓↓↓
点击领取
IoT 应用程序不是一个单独的应用程序,而是一个复合应用程序。
智能手表、智能音箱、主控制器和网关当然需要复杂的处理器来实现。 但物联网应用还包含大量的传感器节点、执行节点和转换节点。 这种节点更适合用低功耗的8位处理器来实现。
8位处理器反应慢?
这完全是一个误解。
在典型的嵌入式应用中,响应速度主要与中断响应和唤醒延迟有关。 8位处理器有天然的优势(地址转换工作量小、IP单元实现门数少),至少不逊色于32位处理器。
8 位处理器的能效是否比 32 位处理器低?
我曾经看过一本ARM权威工程师写的书。 书中的观点是,32位处理器的能效比高于8位MCU。 原因是32位处理器可以快速完成任务并且有更大比例的睡眠时间。 ,但这个结论包含一个假设,即任务具有一定的复杂性。
如果任务本身很简单,唤醒过程的功耗也很大,那么这个假设就不成立。 针对不同的应用场景,我们不能简单地说8位和32位哪个能效更高。 至少在非常简单的应用中,8 位更加节能。 如果再加上独立响应和一些不需要CPU干预的任务,8位能效比甚至可以高很多。
同样价位的32位处理器比8位处理器强大很多吗?
这也有一定的可信度,但不要忘记,有相当数量的应用程序使用8位MCU。
在这种情况下,如果必须购买均价较高的32位MCU,成本就会增加。 对于很多基本标准化的嵌入式产品来说,8位MCU还是具有一定的成本优势。
8位处理器设计的应用难道不能适应未来的变化吗?
这是一个思维角度的问题。 作为一名嵌入式程序员,您应该考虑当前的任务。 无论是什么类型的MCU,如果产品形态发生变化或者需求本身发生变化,就必须重新设计。 没有人能看清未来,何必考虑那么多毫无意义的预见呢?
8位处理器开发工作更加繁重且没有升级路径?
32位处理器的处理更加以软件为中心,可以做到更多的代码复用。 8位处理器更多地利用硬件外设来完成任务。
总体来说,没有绝对的区别。
只要是嵌入式处理器,升级路径就不清楚。 如果你使用同时拥有8位和32位产品的厂家,你会发现很多外设都非常相似。
考虑到当前外设图形化配置的趋势,升级路径逐渐变得不那么重要。 无论如何,基本的驱动程序代码都是以图形方式或脚本方式生成的。