原创 单片机意指何物?

2014-5-17 21:16 3443 19 39 分类: 消费电子

单片机意指何物?

 

因为实际进入 embedded world 还是大致在 2004年左右的事儿, 所以我可能对 computer system 与 controller system 的名称演化历史缺乏了解.

者带来的最大困惑, 莫过于所谓"单片机"称谓了. 因为我们学习的惯例一般是阅读母语的基础教材与基本案例开始, 研习某个开发板, 点亮并闪烁第一个 LED... 啊, 这个过程充满着神奇与喜悦...

因为我们知道, 从点亮并任意模式闪烁LED开始, 我们就进入了当今信息化革命新浪潮的殿堂, 从手机到引擎, 从医疗手术到弹道制导, 从所谓通用compter 到我们设计的各款 uController... 我们从此进入了一个崭新的世界.

 

问题很快接踵而至, 今天的 uController 技术, 具体而言似乎都是在所谓"通用" computer 上的 embedded 的演化. 历史的观点来看, 它都起源于50年前的第一颗 Royce 发明的集成电路(我希望没记错), 并具体来自80年代初的第一台个人 computer (我记不住是 8080还是后续系列...毕竟我们那个时候还刚刚结束人斗人与白卷英雄时代), 这份震撼并最终改写人类历史的发明没有落在大陆...这注定我们对电子科技史的疏远, 而不像类似毕升发明这种亲切而又耳熟人详的回忆...

 

因为, 先进的 computer/processor/controller 的技术起源西方, 对基础概念的学习中, 我们很快不得不面临大量阅读 E 文资料的过程. 很快问题就来了, 您是否与我一样, 读过各种资料或者 datasheet 超过至少几十份了吧? 您见过单片机的E文对应词汇没?

 

人家问我干嘛的, 多年前我一般开口回答, 我是研习开发"单片机"的, 人家"喔喔....."

现在, 我从来不这么作答, 因为我没有见过任何与我们的学习或者实践开发, 有关联的任何"单片机"词汇. 为此, 我特别百度了一下"单片机", 似乎一个词组是 single chip computer... 这是个什么东东, 是挑战我们的技术新知吗?

 

我们生活的电子世界中, 似乎存在着 通用/common computer 与 embedded/ uController 两大类别. 发展到今天, 我们观察到 ARM 正在向我们展示, 其实或许不该存在这种区分, 所谓通用的桌上电脑, 也应该术语 uP 或者 uC 大类中的一份子.  将 uProcessor(微处理器) 与 main memory(内存) 的分开, 似乎并不是永远不变的布局, 也不能说明这就是高性能/高主频的必然代表.

 

这可能说明, 从 computer 发展的历史来看, 为了追求摩尔定律, 为了实现处理能力的急剧升级. 将 uProcessor 独立为一颗单芯片似乎是唯一的选择, main memory(一般是 DRAM)或者 IO controller 与之分离的布局, 就是我们所谓的 common computer.

 

ARM 向我们展示了这一点, 因为 ARM 运行模式的缘故, 我们大众工程师(我指应用级别)似乎第一次, 大量接收到原本应该在 uProcess/uController 设计中, 被类似 Intel/Microchip 标注为 confident 的资料.

阅读 ARM 的各种文档, 我们首次知道了 ARM 将主要围绕指令集实现的 IP, 也就是提供给各个厂家(无论是nxp, freescale, ti 还是华为), 称为 uProcessor.

更进步的, uProcessor(微处理器)被简称为 Processor(处理器).

单独的 Processor 似乎意指由 ALU, logic controller, instruction encode/execute 与其他 controller(我不理解是什么), 包括为数不多的 core register, 构成的一个 microcell.

现在的事情, 就开始拟合与我们的计算机系统的基础理念, 不错, 由 uProcessor(微处理器), 或者说 processor(处理器), 或者说由 arm 授权的这颗 microcell, 加上 memory, 以及各种 pripherals, 就构成完备的 comptering system.

当然的, 我们所谓的这样的 comptering system 似乎拟合了 computer 概念. 这就潜意识提醒我们:

所谓通用计算机, 是 uprocessor core 与 memory/外围 分离模式的构成, 我猜测这可能源于制造与技术能力在过去年代的限制. 在追求卓越表现时受限工艺, 而分离 main memory 与 cache.

无论从成本还是体积方面的考虑, 这种通用计算机(这个概念在过去, 又往往等同桌面, 服务器, 以及 comptering/计算), 无法用于工业控制或者说消费品应用(我指侧重于便携应用). 解决的方式很简单, 就是构建尽可能小而高效的 core, 也就是在 ARM 文档中说的 uP, processor, 或者 uCell, 将其与 memory 和外围在 bus 的作用下, 构建在一起.

我这里所谓的构建, 就是 on-chip, 似乎中文世界一般说成"片内".

也同样就是 embedded. 这个我非常熟悉, 有专业词汇对应为"嵌入式".

 

之所以我们作这样的等同, 也因为受到 ARM 资料的启发. ARM 资料, 在开篇讲述如何实现架构(v4T啦, v6M 啦, v7A啦, R啦)的 uCell 的移植或者实现时, 非常喜欢自我标榜说, 某类某类 uCell(uProcessor) 非常适用于 deeply embedded application.

什么叫作"深深的嵌入"?

我们作为嵌入式工程师, 难道工作的对象还有"浅浅的嵌入"芯片?

或许真的有, 如果从 uProcessor, 与 memory/pripherals 的分离与整合的程度上来看, 我个人感觉, 在E文的 embedded 的词汇含义下, 它揭示了一颗 on-chip 上整合 component 的多寡与最终IC 实现(RTL)/整合后的形态.

这或者是说, 我们今天的工作对象, 无论是 nxp, ti, microchip, freescale 提供的 mcu(也就是 uController, 微控制器, 其实又和所谓微计算器的区别仅仅是使用范围略有不同?), 所有这些 mcu/uController 都算是 deeply embedded 的. 因为, 它们往往封装好了 uCell 与 main memory(可地址访问的 flash/ram), 以及各种 io, timer, uart, usb 的外围.

 

当 arm 在 on-chip 上继续提供着深深的嵌入时, 我们似乎感觉到, 原来的 common computer 的概念正在淡化中, 一条由 on-chip 的 cache/main memory 的"深深的"嵌入的鸿沟变得没有那么的清晰.

 

今天朋友们问我"干嘛的"? 我一般回答"嵌入式".

"不是说单片机吗"? 意外

 

"不, 我主要工作在嵌入式 embedded 系统上.

它主要由片内也就 on-chip 的微处理器(一般由arm提供), 以及memory 构成(一般由可寻址的flash与sram提供).

除此之外还有构建在 bus 上的外围. 比方说 io 与 uart 控制器之类, 其实memory 也算外围中的一种, 但是引起特殊性...它特别重要并带有 cache/buffer 的属性而被单独称谓.

不像 intel 的 cisc(主要是所谓 common processor)那样, 这种bus 是公开的, 比方说 axi 与 ahb 协议必须遵守... 当然有的外围太慢, 可以用 arm 提供的 apb bus 协议, apb 就只能通过 bridge 的方式挂在 ahb 和 axi 上. 它们同属于 amba bus 协议.

不过你知道, uController 必须具有可以 debug 的特性, ... 你知道什么是 debug 吧. 所以往往 uCell 中包含有可选的 debug 逻辑电路, ARM  文档说, 它们既在 core 中, 又分布在 NVIC 中, 什么意思具体你问我我也不知道, 因为中国大陆的IC制造与设计行业似乎还不发达, 类似的技术属于与 arm 合作的大公司的研发才知道, 而且说不定他们还各种授权协议.

所以, uController, 也就是 mcu, 或者说嵌入式, 也可以称微控制器, 将 uProcessor 作为 uCell 而视为一个 component, 配合其他的 component(它们往往是可选的), 比如 wic, 或者atb bus 上的 coresight(用于 debug) 的其他 component, 构成了提供(出)的整体.

因为向外曝露了 axi bus, 或者 ahb bus, 往往也有 single-cycle io bus, 可以挂上各种外围, io啦, uart啦, usb啦...

唔,,, 你看这颗黑黑的微控制器, 或者说 uController, 或者说 embedded ic, 或者说 mcu, 我刚才讲的种种都在里面啦!

不过说来说去, 我们做 mcu 应用工作的, 其实也可以不管这么多,,,

因为我们只要拿到这颗 uController, 按推荐电路, 唔, 一般是所谓开发板, layout 好就可以了. 通过debugger与programmer, 我们在 ide 中用代码生成的 firmware debug 完成后 program 进去就好了..." 笑脸

"......"意外

"你明白吗?" 生气

"手机就是这样做的吗?" 意外

"唔...这么说呢,,,也没错..."  彷徨

 

"......" 意外

"......" 皱眉

"你不是做单片机的吗?" 意外

 

"......我k...... !#!$!#%$#%^%&" 心碎

 

 

 

Allen 作于 2014.5.17 周六傍晚

发表于 EETC

 

 

 

 

文章评论20条评论)

登录后参与讨论

allen_zhan_752827529 2014-7-18 13:28

"所以往往 uCell 中包含有可选的 debug 逻辑电路, ARM 文档说, 它们既在 core 中, 又分布在 NVIC 中, 什么意思具体你问我我也不知道, 因为中国大陆的IC制造与设计行业似乎还不发达, 类似的技术属于与 arm 合作的大公司的研发才知道, 而且说不定他们还各种授权协议." -- 尽管对 ic designer 的相关内容, 我们仍然是一无所知, 也不了解 uController provider 的 implement 细节. 但是如果一定要假设的话, 我个人作这样的猜测: debug 无疑是 uController handware 设计中的一部分, 并且有相当的门数支持. 无论是对 data access 的 watchpoint, 还是对 instructin access 的 breakpoint. 设计在 core 中的门数是可以理解的. 而位于 NVIC 的电路中?... 一个合理的解释, 似乎是在 monitor debug-mode 下, 如果我们通过 debug exception 的方式而不是通常的 data abort exception 与 prefect abort exception 进入 monitor debug-mode. 那么, debug 的handware 设计的硬件门数, 部分位于 NVIC 中就好理解了. 这个假设正确吗? 从使用者的功能角度, 反推回 uController 的设计初衷, 我作此推论? 此外或许也与 vector catch 的 debug event 或有关?

allen_zhan_752827529 2014-6-17 10:35

请于 arm infocentor 网页中, 对大量资料进行阅读, 围绕该讨论相关的资料, 主要大致应阅读 architecture, 与 technology guide 相关文档.

allen_zhan_752827529 2014-6-17 10:28

见博客内容与之后的讨论,已经说的很详尽了.从你的评论也可知道, 这至少是一个"dead(已死)"词汇.以该词汇充当"embedded"等效术语, 参加行业讨论,确实连国门都走不出去.遑论与世界范围内同行讨论. 另外, uController 确实分辨不出今天的不同种类的处理器的区别, 你提的这个确实是重要关键点. 但是, 可能要请你阅读 ARM 的相应文档, 继续跟进行业进步, 或者参与 AAE 应试. 就可以了解到: ARM 通过 A, R, M 的三个系列的区分, 把具有 MMU 可以应用虚拟地址(它们往往有大量的 cache), 称为 application. 把具有 MPU, 而没有 MMU, 但是具有确定的 interrupt 响应速度, 比较丰富资源的 uController 称为 realtime. 请特别注意, ARM 并且将 uController 在这个分类中, 狭义指定为, 资源缺少的, 性价比要求高的, 16bit instruction (除了几个 Thumb2指令)的 M系列, 专指为"微控制器 uController". 尽管这个uController 词汇在不断进步, 也不能说我们就应该立刻以 ARM 的标准为事实行业标准. 但是 ARM 的这个 cortex 命名体系, 已经暗示了你的担心问题的解决之道, 就是将 uController 定义的狭义化, 进行特指. 我猜您如果多阅读, 并综合现有进展, 就明白这个词汇的进步轨迹(事实上还在进化ING 状态中), 而不是简单照搬这个"单板机单片机"的若干网络定义与评论(这个论述我也事实上见到过呢), 这样说不定会可能更好点?

xuruianhome_350923431 2014-6-17 09:16

随着技术的进步,大家都集成到一个芯片了。单片机不能体现区别了,好了,区别出现在软件上了。嵌入式这个名词应运而生。

xuruianhome_350923431 2014-6-17 09:13

这个适合历史来源有关的,早期的微控制器就是一个处理单元,像Z80,RAM、ROM等全部都是外挂的,这个时候我们做出的控制器是在一块大的电路板上,很形象的成为“单板机”。随着技术的进步,集成度的提升,出现了8051,他将一块大的电路板集成到一个chip里面,我们很形象的称之为“单片机”。他们都是微处理器,不这样称呼如何才能体现出他们的区别呢?

用户1012893 2014-6-17 08:05

何立民老师是北京航空航天大学的,以前叫北京航空学院。估计是何立民老师已经退休了。

用户1012893 2014-6-17 08:04

何立民老师是北京航空航天大学的,以前叫北京航空学院。估计是何立民老师已经退休了。

allen_zhan_752827529 2014-5-23 12:01

"跨界跨领域"能多谈点吗? 我有一个很不好的猜测, 您是说因为学科体系融合, 所以个别领域内的基础专业名称, 都显得不那么重要. 可以自我创造, 可以默认转义, 用其他学科的名称代用借用... 如果我的猜测接近与您的思路, 这个假设简直让我浑身冰凉...(抖抖抖...)

用户1277994 2014-5-21 17:07

谢谢提供的信息,已经截屏给IS同事们看了,希望能够尽快解决。

allen_zhan_752827529 2014-5-21 14:18

啊...您的回复正是我所担心的...如果这引用的"单片机"定义确为"单片微型计算机"的简称, 并且使用 CPU 而不是 uProcess, 并且如果这里 CPU 确指计算机主板上的核心元件(举例说比如奔腾)... 那么这就暗示: 大陆业界十数年对"单片机"的用法都是误用. 比方说所谓 "8051单片机" 就存在基本定义错误, 林林种种各种出版书籍连"单片机"有关书名都似乎也有误用... 这种猜测, 我很难赞同...我个人看法还是坚持: 无论"单片机"这个词汇是生造, 还是误用, 还是转义, 都将在工程师持续下一个台阶进步是造成误解与困惑, 基本术语应该回到世界范围内电子工程界本来的名称, 或者 "uController", 或者 "embedded". 我不晓得还有多少个这种专业术语的大陆特色的例子, 会继续留意.
相关推荐阅读
allen_zhan 2023-02-27 19:08
对"三极管"译名由来的探讨
想讨论一个有意思的话题:今天中国大陆的电子业界, 为何将 BJT 称呼为 "三极管"? 或因其象形, 前辈自行进行随意的不严谨定义么? 带着疑问我们做了一下延伸查阅, 或得出这样的结论, 即中译名"三...
allen_zhan 2023-02-19 18:15
对知乎提问"为何三极管的一个PN结工作在反偏"的回复
将这个回复, 也发表在博文中, 作为自己的一个学习笔记叭.知乎问题: "三极管里面的PN结相当于二极管,为什么里面PN结加反向电压也能导通?"我的回复:首先, 二极管的"反向"概念, 容易给初学者某种...
allen_zhan 2023-02-18 10:17
从肖特基二极管到PN结与三极管
最近数个工作日的兴趣是回顾电子基础器件的发明/发展历史, 期待夯实技术基础的底蕴. 在学习与搜索资料的过程中, 顺便对知乎的一个同学的基础问题, 进行了回复. 不小心回复一下就成了千字文, 觉得挺有趣...
allen_zhan 2023-01-28 11:53
微功率 ISM 频率探讨相关文档组总结
不知不觉, 自开启关于微功率频率的话题起, 即从第一份文章写就到今天总结之日, 已经接近 10 个工作日左右. 早先的想法是对工程界未来的微功率设备相关项目, 从项目规划开始, 对选择系统, 频率, ...
allen_zhan 2023-01-27 22:50
关于 LoRa 应用场景的讨论
说明: 本文中斜体部分表示来自公告文件的部分内容剪贴或合并整理.1. "第52号文" 对 470MHz 的约束引自 如下:(四)民用计量仪表限在建筑楼宇、住宅小区及村庄等小范围内组网应用,任意时刻限...
allen_zhan 2023-01-25 13:24
ISM 频段中 2.4G 与 5.8GHz 设备的使用与限制
说明: 本文中斜体部分表示来自公告文件的部分内容剪贴或合并整理.1. ISM 频段定义中的 2.4G 与 5.8GHz正如同 文中确定的, 2.4G, 5.8GHz 属于中国大陆 ISM 频段的定义...
我要评论
20
19
关闭 站长推荐上一条 /2 下一条