本文结合笔者在中国单片机和嵌入式系统 20 年发展过程中的经历,回顾了其中的几个重要技术事件,探讨了中国单片机和嵌入式系统发展过程和趋势。
中国单片机走过的 20 年,正是我从一个毕业不久的学生成长和进步的过程。回忆往事,许多的感受和经历都一一浮现出来。业内专家学者对单片机 20 年的发展历程有不同的划分,有认为 80 年代是普及推广的阶段, 90 年代是广泛应用的阶段, 21 世纪是嵌入式系统发展阶段,还有认为 1985 - 2000 是单片机时代, 2000 以后是嵌入式系统时代,这些都是仁者见仁,智者见智都是准确和精辟的,过去的 20 年我们的确是走过了从单片机到嵌入式系统这个漫长和多姿多彩道路。对我而言,过去的 20 年更是伴随我走过学习-成长-创业-发展道路。
Intel 领我步入单片机和嵌入式系统大门
2007 年是 Intel 嵌入式行业创新历程的 30 周年, 1971Intel 发表 4040 -全世界第一微处理器,它虽然只有 2300 个晶体管,但是称的上是第一个可以商用的片上计算机。今天 Intel 已经是全世界最大的半导体公司,依靠 X86芯片主宰者 PC 和服务器市场,我想许多人都不会忘记 Intel 的 8051 和 8086, 前者是 8 位单片机的重要核心芯片,后者是我们 PC 的基础,也是它们把我带入了单片机和嵌入式的世界。我是 84 年大学毕业参加工作分配到一家研究所工作,研究所的专业是计算机测量和控制,开始的时候还主要是基于小型机 PDP11 计算机, 86 年以后在我们所长-信息和计算机专家庄梓新的大力推动下,一个和 Intel 合作的引进微型计算机和单片机项目改变了我们现状,全新的基于 8086 的微型计算机系统和 8051 单片机开发系统让我们这些年轻人开了眼界,改变了我们对计算机认识;神秘和一点畏惧变成喜爱,我们可以自由的打开一台微机,对单片和单板的编程,烧入到 EPROM 里面,看到程序执行的结果,真是非常的兴奋。 87 年我参加了在 Intel 香港公司的培训更让我全面的了解了单片机和嵌入式微处理器的开发过程。课程安排的是非常实际和紧凑,体现了 Intel 一贯务实的作风。
第一周是关于处理器结构,指令集,中断,内存和 I/O 访问,汇编和 8255 、 8251 等接口,试验是安排使用 8086 和 8051 的开发系统汇编和 PL/M 语言编程( PL/M 是一个类似 C 的高级语音)。第二周是讲授 intel 单片机和微型机的实时多任务操作系统 -iRMX ,它有支持 8086 , 286 ,和后来的 386 几个版本, iRMX 虽然有支持 8051 的版本,但是因为当时 8051 资源的限制,实际使用的不多,用户还是以 mcs51 宏汇编和 PL/M 51 作为开发语言, ICE51 在线仿真器作为 IDE 环境。需要强调的是,那个时候因为没有片上仿真技术, ICE51 虽然功能是完善的,但是价格昂贵使得 8051 的开发变得相对困难的多了,许多的早期用户不得不‘摸黑''设计单片机系统(就是直接把程序代码烧入到 EPROM 执行)通过看 LED和示波器确定程序的执行结果。相对起来因为有了 iRMX 和 86/310 系统( Intel 的基于 8086 单板的系统), 8086 开发就变得容易的多, iRMX 是一个可以称为 unix 的实时化的完整操作系统,你在 86/310 系统上开发好的代码可以从硬盘上直接启动,通过使用 printf ()在 CRT 看到代码执行的结果,最后你需要代码在 8086 单板上执行,你可以借助 ICE86 仿真器或者 EPROM 烧入。 iRMX 不能称为是一个嵌入式操作系统,这和 intel 当时的策略有很大的关系,因为 intel 是希望用户更多购买它的系统机和单板,而不是芯片。其实在技术上包括笔者在内的一些技术人员,已经实现了在一定的硬件配置条件下把 iRMX 移植到任何 8086 单板上,这是后话了。说真的,以今天 Intel 和 20 年前比较,那时 Intel 更像一个朝气蓬勃的青年,才华横溢,创造了许多好的产品和技术,比如 Multibus 和 bitbus 这两个总线的技术和标准,一个是为单板机互连系统内部总线标准,主要是应用在以 X86单板计算机系统里。后者是一个分布式的工业总线标准, Intel 还设计了基于 51 的通讯控制器 8044 ( SIU ) , 它可以支持 bitbus 协议传输。应该说当年 Intel 项目对中国工业自动化,嵌入式系统和单片机发展的贡献是巨大的。正是因为对 Intel 的敬仰和对培养自己多年的研究所工作多年的领导和同事的感情,研究生毕业后后还是先选择了一直和我们研究所合作的 Intel 计算机北京公司的工作。
这次香港培训不仅让我学到全套的单片机和微机开发系统开发的知识,实际操作经验。还让我结识了同去参加学习的北航计算机系开发系统实验室主任田子均教授,和田教授相识,促使我在几年后决定重新回到学校开始了计算机专业研究生的新生活。
VRTX 让我真正了解了嵌入式操作系统
学习的生活总是感觉时间很快, 90 年再次走出学校大门后,我才发现外面社会正在发生翻天覆地的变化,那时改革的浪潮正汹涌澎湃,知识分子吩咐走出大门横向合作,下海创业,好是热闹。单片机和微处理器也由当初的 Intel 8051 和 8086 一枝独秀,变成 Z80, 菲利普 XA , 6800/68000 还有 TI 和 ADI 的 DSP百花齐放。除了大名鼎鼎的台湾 MICETEK 的单片机开发系统外,国内的单片机和微处理器开发系统也小有规模,当时小有名气的是北工大 TP801 ,启东电子厂 8051 和北京三环公司的 8086 仿真器。嵌入式软件方面的发展相对慢些,主要还是汇编语言和逐渐为大家接受的 C 语言,那个时候大家多数是在用 franklin C51, 后来逐渐被 keil51 替代,当然今天又开始转到 IAR EW51 。
一次很偶然的机会,我参加一个技术研讨会认识 VRTX 嵌入式操作系统和 Ready System 公司的创始人 Jim Ready 先生和他的销售付总裁 Andre Kobel- 一个和蔼,稳健和执着的瑞士人,这件事情改变我以后的生活。今天的一些资深的工程师可能会认识的嵌入式操作系统有 Vxwork, ,少数人可能听说过有个 psos, VRTX 大家都不了解。其实 VRTX 几乎是比它们更早一代的嵌入式操作系统(也称为 RTOS ),第一商业版本的 VRTX1.0 早在 1981 就发表了,在整个 80 年 VRTX 在全世界战领了多数的市场,有超过一百万用户产品,包括 AT&T , Motorola,Siemens 的通讯和手机产品,波音,麦道和空客的飞机控制装置。 VRTX 是一个真正意义的嵌入式操作系统,也是一个实时操作系统, 91 年的 VRTX 它就可以支持 68K,X86,960,sparc 等 16 、 32 位的单片机和嵌入式微处理器,精细的模块化设计,完整的开发环境 VRTXvelocity 和 rtscope 源代码调试器和高级语言的编译,还有面向对象的设计工具 VRTXdesigner 。我被这个产品吸引了,当时我想这样的软件应该是未来中国单片机和嵌入式软件开发的方向吧。
几年以后,追随时代的浪潮我也下海了,在摸索了一段时间之后很快我把麦克泰公司的方向放在嵌入式软件上,那么自然而然 VRTX 就是我最好的选择。那个时候 Ready system 已经和另外一个美国公司合并产品线更丰富了,覆盖了嵌入式软件从编译-调试-仿真-操作系统一整套工具,那时我们支持最多的单片机是高档的 80186 , 386EX 和 motorola 的 683XX ,但是必须承认当时的市场还是非常的小,最初的阶段从工程师到领导多对 C 语言开发工具和仿真器是认可的,但是到了嵌入式操作系统,大家只是听说国外用的的很多,因为亲眼看到的少,怀疑和担心的观点占了主流,那是的单片机和微处理器的处理能力,网络,存储和外设功能都无法和今天比较,所以嵌入式操作系统应用在那个年代的中国还是凤毛麟角,直到 97 年开始通讯产业蓬勃发展,通讯设备制造商由于对处理能力和网络的要求而大量采用嵌入式操作系统催生了国内嵌入式软件的快速发展。记得我第一次访问华为公司观看演示和讲解的一个项目主管现在已经公司中研的老总了,可见那时通讯厂商对嵌入式操作系统的重视。可以让人值得记忆的典型的国内的 VRTX 应用是 GSM 基站, ISDN 终端, SDH 光传输和数字程控交换机设备,飞行控制装置,计量和测试设备等等有近百种之多。
VRTX 的市场推广过程是艰辛和漫长的教育过程,那时多数用户是第一次使用 RTOS ,任何的概念和经验都没有,我们只好走和学校合作的路线,这也让我认识包括清华大学邵贝贝老师和最初我们的合作伙伴,成都电子科技大学的熊广泽教授和罗蕾老师,熊老师的小组是国内最早研究嵌入式操作系统,他们帮助我们完成了 VRTX 培训教材和十余个试验,组织了 VRTX 培训班,安排专人研究一些技术难题,这些对于今天来看可能是很容易的事情,但是 10 年前,电子科大和麦克泰所作的一切都是开创性,参加我们学习班的某些学员今天已经成为大型企业主要领导了。借助了电子科大的 Intel 实验室 , 我们拿到了一定数量的 386EX 评估板,我通过游说 VRTX 美国总部,让信产部电科院和电子科大成立嵌入式试验室得到了 VRTX 的教育授权。今天满眼看到书店的 ARM/Linux教材,可惜的是,我们那本 VRTX 培训教材没有组织出版,只有手里 1 本留作纪念了。
特别值得一体的是 386EX 这颗芯片,虽然它不是传统意义的单片机,但是它推动 32 位 CPU在嵌入式系统的应用。这颗芯片更像一个通用 ARM7 SoC,非常容易构造一个小的单片系统,只是 DRAM的接口电路略微复杂了一点。 Intel 在 386EX 之后没有新发展,将市场让给了后来者 motorola, TI, 菲利普和再后面的 ARM。虽然 Intel 后来借助 xscale 再次进军嵌入式系统而且取得了更辉煌的成就,但是去年 Intel 还是放弃了 xscale 无线和手持部分业务,再次回归 X86体系。和清华大学邵老师的合作起源于国内单片机新的发展,邵老师的试验室是 motorola 单片机实验室,那时 68XX(8 位 ),683XX(16 位 ) 和 68XXX(32 位 ) 早在北美和欧洲占领了大半市场,中国因为 Intel 先入市场还在起步期,得益清华的名气,合作很顺利得到 VRTX 美国方面的支持,最新的 VRTX 开发系统 -Spetra 和 683XX/86XXX 开发软件 XRAY 很快就在清华的试验室运行起来了,当然这也引来不少国内希望使用 motorola 单片机的用户的关注。这是一个很好的示范项目。和邵老师的认识也让我以后结缘 jean labroose 先生,在加拿大蒙特利尔见面后很快建立了他的 uc/os-II 和麦克泰的业务往来。
ARM和开源软件催生单片机和嵌入式系统标准化
自 91 年第一次参加 VRTX 研讨会到公司销售和服务这个产品结束的整个过程大约是 10 年,这 10 年也正好是中国单片机和嵌入式系统大发展的时代。在 2000 年之后,市场,技术和人们的思维观念都在发生着巨大的变化。我记得最初的由北航何立民教授召集的单片机联谊会是在北航出版社的一个小会议室开的十几个人的小会,大家就单片机领域各自了解的情况和体会沟通和交流,后来参加的人逐渐多了,何老师开始列了些题目让大家准备发言和讨论,到 2 - 3 年后因为参加人太多了,会议不多不以讲座的形式召开了。单片机联谊会的经历过程也是国内单片机向嵌入式系统演变的过程,人们思想和观念的变化催生了单片机向更广泛的领域发展,也影响和带动了更多的人参与和关心。今天的嵌入式软件已经是软件行业的重要部分,今天的单片机和嵌入式系统已经是计算机,电子技术,通讯技术等众多行业的集合体。
ARM和开源嵌入式软件的为单片机和嵌入式系统的发展起到了重要作用。在它们之前,不是没有好的单片机,不是没有好的嵌入式软件和操作系统,但是没有一个平台可以把单片机世界的‘八国联军''统一到一个体系结构里面,美国 8051 和 68XX , TI DSP, MSP430, 欧洲的 XA,AVR ,日本瑞萨和 NEC 的体系结构和开发工具多是各自为政,操作系统有 vrtx,vxwork,psos,nucleus, OSE , cmx 少择要几千美元,多则数万美元。这样的局面直到 ARM 和开源嵌入式软件出现后才有根本的改变。今天虽然上面的单片机还活跃在我们生活中,但是更多的厂家在加快推出基于 ARM 核的单片机,包括了老牌的 Ateml ,NXP( 以前的菲利普 ) , ST, 飞思卡尔(以前的 motorola ), TI ,三星和 Intel 的 Xscale (今天的 matvel ),还有许许多多基于 ARM 的 SoC芯片和基于 ARM的 FPGA,这些 SOC 往往是一些专用的单片机。除了 Intel 外上面的厂家都保持和 ARM 紧密的合作和路线图,即 ARM7-ARM9-Cortex-ARM11, 这样的格局对于单片机的用户是有益的,用户将把他们的专注放在产品层面创新。
Linux 是芬兰的学生 Linus Torvalds 1991 年写的一个操作系统,之后全世界数以万计的人们为之贡献自己的才能和知识, Linux 不仅在服务器上取得了巨大的成功,在桌面系统逐渐成熟,更重要的是 Linux 被证明非常适合嵌入式系统。 Linux 是完全开放的,免费的,要求的只是使用者的贡献( GPL 的协议)。早期的 Linux 还主要是 X86的移植代码, ARM 体系越来越为开源社区更多的人士所接受, ARM 公司和其他众多的 ARM 授权的芯片公司也积极资助开源社区和商业企业相关项目,这些使得 ARM Linux 更加成熟,有了 Linux/GNU 的支持的 ARM 平台,一个相对完整的单片机开发环境就有了,价格是非常的低廉。这个平台解决了传统的单片机开发系统缺少高级语言和操作系统,网络和图形应用开发环境的问题,把单片机的开发引向了一个高起点。包括 ARM 中国,北航出版社,电子产品世界,单片机和嵌入式系统杂志,博创公司,周立公公司,英培特和麦克泰 , 他们通过推广 ARM 授权培训,图书,文章, ARM 教学板和入门级 ARM 开发系统为 ARM 单片机的普及铺路搭桥。今天 ARM单片机的书籍,开发板和 JTAG仿真器可以和当年的 8051 开发系统相比拟和超越, ARM和包括 Linux 在内的开源软件把我们带入了 32 位的单片机和嵌入式系统世界。也是因为 Linux 的缘故,让我和 Jim ready 先生以及他新创立的 montavista 再次携手,把商业的嵌入式实时 Linux 带进中国,开始了麦克泰‘嵌入式Linux中国上路''的新的历程。
Linux是开源软件的一个杰出典范,其他的开源和半开源软件包括 ecos,uc/os-II (针对教育和非商业应用), QT(GPL 和商业授权 ) 和早期的 miniGUI , 他们对单片机和嵌入式系统的普及和推广都也启动了积极的作用。
展望未来
中国走过了单片机从无到有的时代,我们已经迈进一个全新的嵌入式系统世界。单片机和嵌入式系统深深的植入了我们生活和工作当中,展望未来我们将看到的单片机是一个绚丽多姿和五彩斑斓的世界,功能强大,品种繁多,单片机将和各种电子器件,网络,传感器件结合融入到各种产品和装置里面,单片机和嵌入式系统将更加智能,节能,经济,安全和可靠。嵌入式开发系统和软件将更容易使用,组件和平台化。总之一点,单片机和嵌入式系统将迈出神秘,专业走向普及和大众,人们越来越喜爱它,也越来越离不开它。