|
单片机是中文名,对应的英文名称是“Single Chip Microomputer”,很多人可能奇怪平时不是都说MCU(Micro Control Unit)吗?$ ]; a+ v& m; B* m0 r% F
% j- O+ E9 I) f: B; B# ^( Q" K0 P其实MCU准确翻译过来应该叫微控制器,现在很多中文书籍都用这个词,不用单片机了。因为单片机这个词是很多年前的概念了,在那个年代半导体工艺还在起步阶段,集成能力很差,往往是CPU一个芯片,SRAM一个芯片,Flash一个芯片,需要中断的话又得有个专门处理中断的芯片,所以一个完整可用的计算机系统是很多个芯片(Chip)做在一个PCB板上构成的。
6 H5 N$ E a1 I9 \1 w
# z! ^4 h$ p+ R# W* y3 Q: L单片机呢?就是在一个芯片(Chip)上集成了CPU、SRAM、Flash及其他需要模块,在一个Chip上实现一个微型计算机系统,所以就叫Single Chip Microcomputer,也就是单片机了。" x0 N& k) H3 Q. [
1 z! W/ w4 ? k- V% C( O R其实从这个角度来讲,单片机这个词现在已经没意义了,因为现在的半导体工艺早就很厉害了,现在你买到的所有都是“单片机”,根本不存在分离式的所谓“多片机”。而且现代的单片机不但集成了CPU、SRAM、Flash等微型计算机不可少的部件,而且大多集成了很多内部外设,如Nand控制器、LCD控制器、串口通信、定时器、RTC等等,所以现在的单片机其实应该叫SoC(System on Chip)。0 q# p0 q: B: r1 r T' y
9 U( P) v: F( }% I: m
英文是很准确的。这里有好几个词你可以体会下各自含义:microcomputer、computer、system、microcontroller。不严格区分的话这些词很多时候可以互相替换和通用的,但是严格说其实各自有不同代指的。譬如computer,指的就是电脑,你可以理解为就是电脑,譬如笔记本、台式机这些。当然很多年前的电脑很庞大很笨重,所以computer就是指的这种有机箱外壳,有键盘鼠标,很庞大笨重,通用性强的电脑。而microcomputer指的就是单片机这类东西,它也是一个独立的电脑系统,有CPU和内存和外设这些,能跑计算机程序。但是他相对于computer来说体积很小,而且不是通用的而是专用的,所以叫microcomputer。
$ ?! p4 t3 C8 \0 o8 ?% e1 w+ ^
, R$ P1 R8 v6 Z! ~5 A6 z+ Osystem呢?更倾向于整个系统,也就是说system=microcomputer+各种外设。简单理解就是,当串口、LCD控制器等模块进入了Chip内部时,整个microcomputer就成为system了。所以其实system才是更有意义,更适合现代单片机芯片的一个名字。所以现在我们都把芯片叫SoC,这个名字更有价值。* _ b5 K$ h! O. i$ Y4 F
. p* \& z" I {; v1 H
那microcontroller呢?现在很多单片机厂商都把自己的单片机叫microcontroller(微控制器),其实我个人理解,觉得microcontroller的重点在于controller,也就是说他们想强调这个chip中集成的system是一个controller,擅长控制。而不是一个DSP(擅长运算)。$ N3 `* `0 T: x* n% H$ C- x
* K: p4 `/ j& X' e7 M, m嵌入式
2 H& @/ w' k- J+ N$ w# D$ [( C2 Q6 U$ y0 g' y
嵌入式的全称是嵌入式系统,英文是Embeded system,所以可以看出嵌入式是一个system。
) |/ J, V7 v S" x+ }9 w. Q- ?( P% h" X5 a6 G, T7 \! Q
为什么叫嵌入式呢?这里的嵌入指的是我们把这个system(硬件上表现为一个Chip)嵌入到某个设备中去。譬如冰箱的板卡上的芯片就是一个嵌入到冰箱中的system,负责控制用户按键、冰箱照明灯、制冷系统等。可以看出,嵌入式系统这个名字主要是从芯片在使用时的组织形态来命名的。所以从这个角度讲,只要是被嵌入到设备中的芯片都可以被叫做嵌入式系统。" M$ T2 E& e. c( ~1 v# s4 F9 r
; H. K' z S( Q# X
那这个范围太宽了,说真的你很难找到不属于嵌入式的system······所以我经常觉得嵌入式这个名词根本是废话,根本没意义。好在这个理解只是广义上的嵌入式的定义,但是我们平时讲嵌入式大多时候是从狭义上理解的。
8 ? E+ W) {, ?9 w M0 i6 D. C( @8 e( \! T% v
狭义上讲,嵌入式是为了区别于单片机。我们经常把芯片中不带MMU(memory management unit)从而不支持虚拟地址,只能跑裸机或RTOS(典型如ucos、华为LiteOS、RT-Thread、freertos等)的system叫单片机(典型如STM32、NXP LPC系列、新的NXP imxRT1052系列等),而把芯片自带MMU可以支持虚拟地址,能够跑Linux、Vxworks、WinCE、Android这样的操作系统的system叫嵌入式。所以linux WinCE等也常被叫做嵌入式操作系统,就是这么回事。你仔细回顾下,其实大部分人在讲单片机和嵌入式时都是从狭义角度出发的,并非广义。3 U% P I _( H* o% R& Z
# p5 \& e! n- i; E
单片机的技术和市场状况
* C0 U) b( L4 _" t( _3 U
! [& Y$ O0 ^* X" q; I, t6 T单片机是出货量最大的一类计算机。这个很好理解,因为单片机用途太广泛了,所有家电内置的控制系统几乎都是单片机的,这个数目就很惊人了。还有各种公共设施,工厂自动化设备等几乎也都是单片机控制的。单片机的厂商和品类也是非常多,我下面列举几类常用的。
* w: h" |$ q& a; K8 X) ^6 a2 W( b# z3 y
8位和4位机4 j" i2 H1 E* g) A% ]4 y& u7 F$ S+ [7 Z
5 c2 N* L7 x; v% k9 l+ O
这类单片机性能低配置低,但是优势是价格便宜。所以很多低端家电产品都会用到,小家电是这类单片机最大的市场。为了降低成本,这类单片机很多只能用汇编编程(当然近几年很多也提供了C编译器),很多芯片采用bounding封装(就是芯片内核直接贴在PCB上然后用黑乎乎硬胶黏住,大家玩过LCD1602的看那后面那个圆盘型黑色的就是)。
+ |, S) q. x6 O6 V% M) R3 O1 n1 n) }. y0 \$ ]6 q" J% \/ Z
做这类产品的以前都是台湾一些小芯片厂商。这些年中国大陆也涌现了很多这类芯片厂商,这些单片机行业大多对标某个具体应用领域,对行业需求很熟悉,直接推出适用这个行业的解决方案。外行的人可能根本都没听说过这种单片机的型号和相关信息。! Y# V$ S4 d7 _* M- L/ ~- ?# _
, c: L" d9 {! i
总的来说,这属于比较低端的行业,不太建议大家学习和进入。尤其现在中国在搞产业升级,落后的传统家电产品不断降价还卖不出去,相反各种高端功能和外观的“产业升级”型家电产品利润很高。所以这种适用于传统老旧电子产品的芯片和技术其实并不值得去投入。
1 r* w7 F+ I: s |
|