1-4各种实现间的差异
与为通用计算机设计的软件不同,嵌人式软件通常无法在不做显著修改的情
况下在其他嵌入式系统中运行。这主要是由底层硬件之间的明显不同所致。每
个嵌人式系统的硬件都是为特定的应用专门调整过的,这样才能使系统的成本
保持很低。所以,不必要的电路就被省去了,硬件资源也尽可能地共享使用。
在这一节里你会学到哪些硬件特性是所有嵌人式系统共有的以及其他方面为什
么又会有如此多的不同之处。
通过定义我们知道所有的嵌入式系统都包含处理器和软件,那么还有哪些特
性是它们共有的呢?当然,要想执行软件,就一定要有存储执行代码的地方和
管理运行时数据的临时存储区,这就分别要用到ROM 和RAM;任何嵌入式系
统都会有一些存储区。如果只要求很少的存储量,也许就使用与处理器在同一
芯片里的存储器,否则就需要使用外部存储芯片来实现。
所有嵌人式系统都包含其种输入和输出。例如,一个微波炉的输人就是前面
板上的按钮和温度探测器,输出就是人可阅读的显示信息和微波射线。嵌入式
系统的输出几乎总是它的输入和其他一些因素的函数、包括花费的时间、当前
的温度等等。输入常见的形式有传感器和探测器。通信信号或物理世界的某些
变化。图1-1 给出了嵌入式系统的一个常见的例子。
除了上述几个共同点,嵌入式系统的其他部分通常是互不相同的。实现之间
的差异是由不同的设计侧重导致的。每个系统都是面向完全不同的一整套需求,
这些需求的折中考虑直接影响了产品的开发过程。例如,如果一个系统要求成
本低于10 美元,那么就有可能要牺牲一些处理性能或可靠性才能达到要求。
当然,生产成本只是嵌入式硬件开发人员需要考虑的一个可能的限制而已。
其他要考虑的设计需要还包括:
处理能力
要完成目标所需的运算能力。一个常用来衡量运算能力的指标是MIPS(以
百万计算的每秒可执行的指令数量)。如果两个处理器的指标分别是25MIPS 和
40MIPS,那么就说后者的运算能力更强一些。但是,还需要考虑处理器的其他
一些重要特性。其中之一是寄存器字长,一般会是8 到64 位。现在的通用计算
机一般使用32 位或64 位的处理器,但是嵌入式系统通常仍使用更老、更便宜
的8 位和16 位处理器。
存储器
用来保存执行代码和操作数据的存储器的容量。硬件设计人员必须事先做出
估计并且在软件开发完成之后增加或减少实际的容量。存储容量也会影响处理
器的选择,通常寄存器的字长构成了处理器可存取的存储容量的限制,例如,
一个8 位的寻址寄存器可以确定256 个存储位置之一(注1)。
开发费用
硬件软件开发过程所需的费用。这是一个确定的、一次性的花费,所以这也
许无关紧要(通常对于大批量产品),也许需要仔细衡量(在只生产少量产品的
情况下)。
批量
生产费用和开发费用的折中考虑主要由期望的生产批量和销量所决定。例
如,通常不会选择为一个小批量产品开发自己的专用硬件模块。
预计的生命周期
系统必须延续多久(平均估算)?一个月、一年、或者十年?这影响到从硬
件的选择到开发和生产费用方面的各种设计决策。
可靠性
最终产品应具有什么程度的可靠性?如果只是一个儿童玩具,那么不需要总
是工作正常,但是如果是航天飞机或小轿车的一部分,那就最好在任何时间都
要工作正常。
除了这些常见的要求之外,系统还有自己详细的功能要求。正是这些要求赋
予了嵌人式系统不同的特性,比如微波炉、起搏器或寻呼机。
——————————————————————————————————
注 1:当然,寄存器的字长越小,处理器就更可能需要采取一些策略,如多个地
址空间,以支持更大的内存。几百字节是不足以做太多事情的。即使对8 位处
理器而言,几千个字节也可能只是最低要求。
表1-1 说明了前面谈到的设计要求的可能的取值范围。这些只是估计数字,
并不需要严格采用。在某些情况下,几个标准是联系在一起的。比如,处理能
力的增加也会导致产品成本的增加。同时,我们也可以设想同样是增加处理能
力也会通过减少硬件和软件设计的复杂性来降低开发成本。所以每一列的数值
并不是一定要同时满足。
表 1-1 嵌入式系统常见的设计需求
为了同时说明两个嵌人式系统之间的差异,以及这些设计需求对开发过程的
影响,我会比较详细地介绍三个嵌入式系统。我的想法是在具体讨论嵌人式软
件开发之前,先从系统设计人员的角度考虑一下问题。
况下在其他嵌入式系统中运行。这主要是由底层硬件之间的明显不同所致。每
个嵌人式系统的硬件都是为特定的应用专门调整过的,这样才能使系统的成本
保持很低。所以,不必要的电路就被省去了,硬件资源也尽可能地共享使用。
在这一节里你会学到哪些硬件特性是所有嵌人式系统共有的以及其他方面为什
么又会有如此多的不同之处。
通过定义我们知道所有的嵌入式系统都包含处理器和软件,那么还有哪些特
性是它们共有的呢?当然,要想执行软件,就一定要有存储执行代码的地方和
管理运行时数据的临时存储区,这就分别要用到ROM 和RAM;任何嵌入式系
统都会有一些存储区。如果只要求很少的存储量,也许就使用与处理器在同一
芯片里的存储器,否则就需要使用外部存储芯片来实现。
所有嵌人式系统都包含其种输入和输出。例如,一个微波炉的输人就是前面
板上的按钮和温度探测器,输出就是人可阅读的显示信息和微波射线。嵌入式
系统的输出几乎总是它的输入和其他一些因素的函数、包括花费的时间、当前
的温度等等。输入常见的形式有传感器和探测器。通信信号或物理世界的某些
变化。图1-1 给出了嵌入式系统的一个常见的例子。
除了上述几个共同点,嵌入式系统的其他部分通常是互不相同的。实现之间
的差异是由不同的设计侧重导致的。每个系统都是面向完全不同的一整套需求,
这些需求的折中考虑直接影响了产品的开发过程。例如,如果一个系统要求成
本低于10 美元,那么就有可能要牺牲一些处理性能或可靠性才能达到要求。
当然,生产成本只是嵌入式硬件开发人员需要考虑的一个可能的限制而已。
其他要考虑的设计需要还包括:
处理能力
要完成目标所需的运算能力。一个常用来衡量运算能力的指标是MIPS(以
百万计算的每秒可执行的指令数量)。如果两个处理器的指标分别是25MIPS 和
40MIPS,那么就说后者的运算能力更强一些。但是,还需要考虑处理器的其他
一些重要特性。其中之一是寄存器字长,一般会是8 到64 位。现在的通用计算
机一般使用32 位或64 位的处理器,但是嵌入式系统通常仍使用更老、更便宜
的8 位和16 位处理器。
存储器
用来保存执行代码和操作数据的存储器的容量。硬件设计人员必须事先做出
估计并且在软件开发完成之后增加或减少实际的容量。存储容量也会影响处理
器的选择,通常寄存器的字长构成了处理器可存取的存储容量的限制,例如,
一个8 位的寻址寄存器可以确定256 个存储位置之一(注1)。
开发费用
硬件软件开发过程所需的费用。这是一个确定的、一次性的花费,所以这也
许无关紧要(通常对于大批量产品),也许需要仔细衡量(在只生产少量产品的
情况下)。
批量
生产费用和开发费用的折中考虑主要由期望的生产批量和销量所决定。例
如,通常不会选择为一个小批量产品开发自己的专用硬件模块。
预计的生命周期
系统必须延续多久(平均估算)?一个月、一年、或者十年?这影响到从硬
件的选择到开发和生产费用方面的各种设计决策。
可靠性
最终产品应具有什么程度的可靠性?如果只是一个儿童玩具,那么不需要总
是工作正常,但是如果是航天飞机或小轿车的一部分,那就最好在任何时间都
要工作正常。
除了这些常见的要求之外,系统还有自己详细的功能要求。正是这些要求赋
予了嵌人式系统不同的特性,比如微波炉、起搏器或寻呼机。
——————————————————————————————————
注 1:当然,寄存器的字长越小,处理器就更可能需要采取一些策略,如多个地
址空间,以支持更大的内存。几百字节是不足以做太多事情的。即使对8 位处
理器而言,几千个字节也可能只是最低要求。
表1-1 说明了前面谈到的设计要求的可能的取值范围。这些只是估计数字,
并不需要严格采用。在某些情况下,几个标准是联系在一起的。比如,处理能
力的增加也会导致产品成本的增加。同时,我们也可以设想同样是增加处理能
力也会通过减少硬件和软件设计的复杂性来降低开发成本。所以每一列的数值
并不是一定要同时满足。
表 1-1 嵌入式系统常见的设计需求
为了同时说明两个嵌人式系统之间的差异,以及这些设计需求对开发过程的
影响,我会比较详细地介绍三个嵌入式系统。我的想法是在具体讨论嵌人式软
件开发之前,先从系统设计人员的角度考虑一下问题。