在某些场合下你需要定义并解释嵌入式系统,下面是其中最常见的场合:
你雇佣了一名很少或者没有嵌入式系统经验的新手。
你正在向管理层解释为什么你需要购买一个新的昂贵的嵌入式工具。
你正在写一个描述新产品的执行概要。
你向你的朋友或者家人介绍你的职业。
嵌入式系统是什么?
一般来说,嵌入式系统是“执行专用功能并被内部计算机控制的设备或者系统。嵌入式系统不能使用通用型计算机,而且运行的是固化的软件,用术语表示就是固件(firmware),终端用户很难或者不可能改变固件。”
有技术概念的人么理解上面的定义应该没有问题,但是对非技术领域的人们来说可能存在一些障碍。一个更简单的定义是:“嵌入式系统就是包含了用户所不知晓的计算机的设备。”
但是,甚至这个定义也需要某些解释。首先,大多数非IT人士对计算机的概念就是一个米色的贴着“Intel-Inside”标签的盒子。嵌入式计算机的发行量远远高于基于Intel-x86/Pentium的台式PC的发行量。Intel或许“inside”,但是嵌入式系统却是无处不在。
人们很少会意识到他们往往随身携带了好几个嵌入式系统——手机、手表或者智能卡都嵌有它们,而且他们在与汽车、电梯、厨房设备、电视、录像机以及娱乐系统的嵌入式系统交互时也往往对此毫无觉察。嵌入式系统在工业机器人、医药设备、电话系统、卫星、飞行系统等领域扮演了一个更为重要的角色。正是“看不见”这一个特性嵌入式计算机与通用PC计算机相区分。
嵌入式体系结构
作为一名技术人员,你可能想从体系的角度来定义嵌入式系统。尽管绝大多数嵌入式系统是用户针对特定任务而定制的,但它们一般都是由下面几个模块组成的:
一台计算机或者微控制器,字长可能是可怜的4位或者8位、16位、32位甚至是64位。
用以保存固件的ROM(非挥发性只读存储器)。
用以存程序数据的RAM(挥发性的随机访问存储器)。
连接微控制器和开关、按钮、传感器、模数转化器、控制器、LED(发光二极管)和显示器的I/O端口。
一个轻量级的嵌入式操作系统,一般是自行编写的。
专门的单片微控制器是大多数嵌入式系统的核心。通过把若干个关键的系统组成部分集成到单个芯片上,系统设计者就可以得到小而便宜、可以操作较少外围电子设备的计算机。
嵌入式系统的一般模型并不足以定义嵌入式系统本身。例如,某些嵌入式系统常常比标准PC机箱小不了多少。这类设备有:
信息查询以及销售点终端。
某些工业控制系统。
游戏控制台(例如基于x86和Windows的Xbox)。
数字录像机(例如基于Linux的TiVo)。
这些设备可能使用硬盘驱动器来保存固件,并运行各种桌面操作系统如Windows、Linux或者DOS。这并不是典型的嵌入式系统的体系结构,但是按照我的较早前的定义,它们仍可以称为嵌入式系统。
本文作者David Brenan是一名具有15年以上工作经验的独立嵌入式系统开发人员。他的作品包括设计过获奖的专业数字音频产品。