打印

8位单片机现在情况如何?

[复制链接]
412|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
近年来基于ARM内核的32位MCU风光无两,苹果电脑CPU用了ARM核,更是添了一把火。

现在说嵌入式MCU,通常是32位MCU。那么,像51单片机这种8位的MCU情形又如何,本文简单分析下很多嵌入式工程师的一些误解。

使用特权

评论回复
沙发
我喜欢打游戏|  楼主 | 2022-4-24 17:17 | 只看该作者
8位MCU正在被淘汰?这是最常见的误解。
先说事实,根据最新的Gartner的市场报告,8位的市场营收额和增长额跟32位的相比都仅仅差几个百分点。考虑到8位的单个芯片比32位芯片要便宜很多的事实,8位的出货量其实远高于32位的。


使用特权

评论回复
板凳
我喜欢打游戏|  楼主 | 2022-4-24 17:19 | 只看该作者
打个直观的比方,现在我们有了高铁,是不是所有传统的普快、特快火车都要立即淘汰呢?显然事实并非如此,至于原因就太多了。
现实情况就是8位MCU曾经的很多应用领域并不能立即用32位的MCU直接替代。


使用特权

评论回复
地板
我喜欢打游戏|  楼主 | 2022-4-24 17:20 | 只看该作者
8位处理器缺乏创新?不少人会认为既然现在市场的宠儿是32位的MCU,厂商们是不是都没有投入研发资源在8位产品上了。
这么想的人可能一想到8位的MCU,脑海中会浮现40DIP的“经典8051”的形象。
事实上芯片厂商们并没有停止创新,比如CIP-51内核因为采用了一个时钟周期等同于一个指令周期的设计,瞬间将同频率的8051性能提高了12倍。国内的一些半导体厂商也有基于8051或其他8位内核的创新。

使用特权

评论回复
5
我喜欢打游戏|  楼主 | 2022-4-24 17:21 | 只看该作者
8位处理器难以使用C/C++语言编程?如果你了解Arduino的设计原理,这个误解就不攻自破。
当然坦白讲,8位的MCU使用高级语言编程确实比32位的MCU要困难些,主要障碍就是内存地址的不统一。比如8051内核的内存地址就分为CODE、data、sfr、idata和xdata。如果涉及到banking就更复杂了。
8位的PIC还有硬件Stack这样更加“非主流”的设计,但是这些障碍都可以通过工具的优化来缓解。

使用特权

评论回复
6
我喜欢打游戏|  楼主 | 2022-4-24 17:22 | 只看该作者
8位处理器专为简单应用而生?这个观点倒是有几分真实,但是嵌入式应用本身就是简单应用居多。
嵌入式系统应用的本身特点决定了8位依然有很多用武之地。外设和编译器的进化将慢慢拓展8位处理器的应用范畴。


使用特权

评论回复
7
我喜欢打游戏|  楼主 | 2022-4-24 17:24 | 只看该作者
8位处理器不能胜任IoT应用需求?IoT应用不是一个单独的应用,而是一个复合应用。
智能手表、智能音箱、主控制器、网关这种当然需要复杂的处理器来实现。但是IoT应用还包含大量的传感器节点、执行节点和转换节点。这种节点用低功耗的8位处理器来实现更加适合。

使用特权

评论回复
8
我喜欢打游戏|  楼主 | 2022-4-24 17:25 | 只看该作者
8位处理器响应慢?这个就是完全的误解了。
典型的嵌入式应用中,响应速度主要跟中断响应和唤醒延迟相关。
8位处理器有天然的优势(地址转换工作量小、IP单元实现门数少),至少不输于32位的处理器。


使用特权

评论回复
9
我喜欢打游戏|  楼主 | 2022-4-24 17:26 | 只看该作者
8位处理器的能效低于32位处理器?曾经看过ARM公司的权威工程师写的一本书,书中观点是32位处理器的能效比高于8位的MCU,理由是32位处理器能快速处理完任务,休眠时间的比例更大,但是这个结论包含一个假设,就是任务有一定复杂度。

如果任务本身非常简单,唤醒过程的功耗也很大,那么这个假设不成立。针对不同应用场景,不能简单说8位、32位哪个能效比更高。至少在非常简单的应用中,8位的能效比要高。如果再加上单独响应,无需CPU干预的一些任务,8位的能效比甚至能高出很多。

使用特权

评论回复
10
我喜欢打游戏|  楼主 | 2022-4-24 17:28 | 只看该作者
相同价格的32位处理器功能远强于8位处理器?这个也有一定程度的可信度,但是不要忘记有相当大的一部分应用使用8位的MCU就已足够。
在这种情况下,非要购买平均价格高一点的32位 MCU,成本就会上升。对于很多基本上标准化了的嵌入式产品来说,8位MCU还是具有一定的成本优势的。

使用特权

评论回复
11
我喜欢打游戏|  楼主 | 2022-4-24 17:29 | 只看该作者
8位处理器设计的应用不能适应未来变化?这是个思维角度问题,作为嵌入式程序员,更应该考虑当前的任务。不管是什么类型的MCU,如果产品形态变化了或者需求本身变化了,就要重新设计。未来谁都看不清,何必考虑那么多没有实际意义的前瞻。

使用特权

评论回复
12
我喜欢打游戏|  楼主 | 2022-4-24 17:30 | 只看该作者
8位处理器开发工作更繁重且没有升级路径?32位处理器的处理更加以软件为中心,可以做更多的代码复用。而8位处理器更多地利用硬件外设来完成任务。
综合而言,没有绝对的差别。

使用特权

评论回复
13
xdqfc| | 2022-4-25 09:51 | 只看该作者
不考虑成本的话,肯定先选择32位的,都是,大部分项目首先考虑的就是成本,就实际的项目来说,假如对速度要求不高的,8位机足够了,C语音开发,跟32位没有多大的区别。而价格就相差很多了。但是有些8位机价格其实也不便宜,像STC之类的,跟32位差不多,这种情况下肯定选32位。

使用特权

评论回复
14
xdqfc| | 2022-4-25 10:10 | 只看该作者
建议,假如选择32位的话,国内的工程师应首选RISC_V版国产IP内核的,譬如GD32VF103,或者CH32V103,性价比最高的CH573,MRS的IDE现在是越来越好用了,MDK有的功能,MRS都有,而且对中文支持非常香,不像MDK,用中文就经常死机,甚至文件存放目录都必须是英文,MRS就没有这方面的限制(至少我是用中文的),CH是沁恒的产品,32位的RISC_V的,跟STM32F103开发流程一样,而且库函数都差不多(不敢说一样,大家懂的),会用STM32的,直接上手吧。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

75

主题

611

帖子

0

粉丝