工作这些年,一种从事嵌入式相关的工作,大部分接触的是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内核因为采用了一个时钟周期等同于一个指令周期的设计,瞬间将同频率的8051性能提高了12倍。

国内的一些半导体厂商也有基于8051或其他8位内核的创新。

8位处理器难以使用C/C++语言编程?

如果你了解Arduino的设计原理,这个误解就不攻自破。

当然坦白讲,8位的MCU使用高级语言编程确实比32位的MCU要困难些,主要障碍就是内存地址的不统一。比如8051内核的内存地址就分为CODE、data、sfr、idata和xdata。如果涉及到banking就更复杂了。

8位的PIC还有硬件Stack这样更加“非主流”的设计,但是这些障碍都可以通过工具的优化来缓解。

8位处理器专为简单应用而生?

这个观点倒是有几分真实,但是嵌入式应用本身就是简单应用居多。

嵌入式系统应用的本身特点决定了8位依然有很多用武之地。外设和编译器的进化将慢慢拓展8位处理器的应用范畴。

8位处理器不能胜任IoT应用需求?

IoT应用不是一个单独的应用,而是一个复合应用。

智能手表、智能音箱、主控制器、网关这种当然需要复杂的处理器来实现。但是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位的产品的厂家,你会发现很多外设都很相似。

考虑到现在图形化配置外设的趋势,升级路径逐渐变得不那么重要,反正都是图形化或者脚本化来生成基础驱动代码。

来源公众号:STM32嵌入式开发

你们还在用8位单片机吗?相关推荐

  1. 为啥现在4位单片机依然没有被淘汰?4位单片机还有用的吗?

    在刚开始学习单片机的时候,我一直以为用越高端的芯片就越牛逼. 而现实,公司做产品和我们单片机学习者,甚至开发者思维都有很大的差异. 我们学习总是想着往高端的学,做开发的时候总是想着往简单的做,最好用自 ...

  2. 分享一款电机控制国产32位单片机MM32SPIN360C

    国产32位单片机MM32SPIN360C拥有M0内核的高性能32位微控制器,5V输出的LDO稳压器.三组具备有自举二极管的N通道半桥栅极驱动器.MCU最高工作频率可达96MHz,并内置SRAM高速存储 ...

  3. 智能体脂秤方案——基于4位单片机体脂秤方案设计_西城微科

    智能体脂秤又称健康秤,能测出不同时间人体的脂肪和水分等所占比例,从而反映出人体在不同时间的健康状况.由于测试人体电阻时,需要人体和测试电极直接接触,所以脂肪秤产品要有很强的抗ESD静电干扰性能,本文介 ...

  4. PIC 8位单片机的分类和特点

    ywangjianwei@126 的 PIC 8位单片机的分类和特点 PIC 8位单片机具有指令少.执行速度快等优点,其主要原因是PIC系列单片机在结构上与其它单片机不同.该系列单片机引入了原用于小型 ...

  5. 灵动微32位单片机LQFP64引脚MM32F3273G7P

    灵动微MM32F3273G7P采用ARM®Cortex®-M3内核的高性能32位单片机,工作频率高达120兆赫兹,内置512KB Flash和128KB RAM的高速存储器,具有丰富的I/O端口和外设 ...

  6. 应用最广泛的8位单片机当然也是初学者们最容易上手学习的单片机

    怎样自学51单片机求实用回答,最好具体一些? 1.找一本51单片机的书,先大概看一遍书. 2.然后买一块开发板,从点灯程序开始一个一个例程跑. 3.修改例程,比如把电灯程序改成流水灯. 4.在仔细看一 ...

  7. Easy EDA #学习笔记01# | STC89C51单片机最小系统(8位单片机)

    世界上第一台电子计算机诞生于1946年,是一种电子管计算机,时钟频率只有100kHz,在1s内能完成5000次加法运算,它的出现标志着计算机时代的到来.在第一台计算机的研制过程中,匈牙利籍数学家冯诺依 ...

  8. 适用于温控器应用的灵动微32位单片机MM32L0130

    温控器的工作原理是通过温度传感器对环境温度自动进行采样.即时监控,当环境温度高于控制设定值时控制电路启动,可以设置控制回差.如温度还在升,当升到设定的超限报警温度点时,启动超限报警功能.当被控制的温度 ...

  9. efm8系列单片机c语言编程,【经验】对EFM8系列8位单片机可编程逻辑单元CLU的作用及应用的理解...

    Silicon Labs是世界著名的精密混合信号器件方案提供商,其推出的EFM8系列8位单片机,具有模拟性能好.集成度高.体积小.性价比高等优点,被广泛应用在光通信.新能源.电机控制等领域,深受工程师 ...

最新文章

  1. 剑指offer 算法 (递归与循环)
  2. html 倒计时 插件,JavaScript使用小插件实现倒计时的方法讲解
  3. 后端技术:SpringBoot 中实现跨域的5种方式
  4. php实现服务器文件同步,PHPstorm配置同步服务器文件
  5. raspberry pi_我如何使用Raspberry Pi与孙辈联系
  6. 下一站,人到三十而立之年有感!
  7. 剑指Offer-46:把数字翻译成字符串
  8. 【Mysql系列】游标/光标简介
  9. DP专题考试总结(4)
  10. 学习lumberjack framework(中文版)
  11. php自动填表单,vb实现网页自动填表
  12. 台式计算机电源怎么看,如何查看台式机电源功率
  13. 2023软件测试面试全方位话术,你想要的全都有
  14. 北京葡萄藤2019年上半年简报
  15. 今天睡眠质量记录74分
  16. Python+我的世界=Mcpipy
  17. 数据库的语言分类--联通研究院面经
  18. 实战 | 文件下载、及浏览器加速导致不能下载的问题
  19. 视频格式: QSV转MP4
  20. 初识QT(十二)——VS中使用Qt方法详解

热门文章

  1. 模拟产品展示 Flash无法展示的追踪过程
  2. C# where用法解析
  3. 靠能力赚大钱,是最最可笑的谎言
  4. 【HNOI】 lct tree-dp
  5. 增量导出_[华为]一种实用的增量式深度CTR模型训练方法
  6. 用计算机三级处理文件,【题目】计算机三级题目,献给为计算机三级挣扎的同学们...
  7. Python内存管理以及垃圾回收机制
  8. Flask 第三方组件之 SQLAlchemy
  9. mysql 集群架构_mysql企业常用集群架构
  10. java 数据结构_Java版-数据结构-队列(数组队列)