嵌入式系统导论:CPS方法(业界第一本CPS专著)
基本信息
- 作者: (美)Edward Ashford Lee Sanjit Arunkumar Seshia [作译者介绍]
- 译者: 李实英 贺蓉 李仁发
- 丛书名: 计算机科学丛书
- 出版社:机械工业出版社
- ISBN:9787111360216
- 上架时间:2011-12-15
- 出版日期:2012 年1月
- 开本:16开
- 页码:256
- 版次:1-1
- 所属分类:
计算机 > 计算机组织与体系结构 > 嵌入式计算机
内容简介回到顶部↑
书籍
计算机书籍
《嵌入式系统导论:cps方法》是一本关于cps (cyber-physical system,信息物理系统)的著作。不同于大多数嵌入式系统的书籍着重于计算机技术在嵌入式系统中的应用,本书的重点是论述系统模型与系统实现的关系,以及软件和硬件与物理环境的相互作用。
《嵌入式系统导论:cps方法》从cps的视角,围绕系统的建模、设计和分析三方面,深入浅出地介绍了设计和实现cps的整体过程及各个阶段的细节。建模部分介绍如何模拟物理系统,主要关注动态行为模型,包括动态建模、离散建模和混合建模,以及状态机的并发组合与并行计算模型。设计部分强调嵌入式系统中处理器、存储器架构、输入和输出、多任务处理和实时调度的算法与设计,以及这些设计在cps中的主要作用。分析部分重点介绍一些系统特性的精确规格、规格之间的比较方法、规格与产品设计的分析方法以及嵌入式软件特性的定量分析方法。此外,两个附录提供了一些数学和计算机科学的背景知识,有助于加深读者对文中所给知识的理解。
计算机书籍
《嵌入式系统导论:cps方法》是一本关于cps (cyber-physical system,信息物理系统)的著作。不同于大多数嵌入式系统的书籍着重于计算机技术在嵌入式系统中的应用,本书的重点是论述系统模型与系统实现的关系,以及软件和硬件与物理环境的相互作用。
《嵌入式系统导论:cps方法》从cps的视角,围绕系统的建模、设计和分析三方面,深入浅出地介绍了设计和实现cps的整体过程及各个阶段的细节。建模部分介绍如何模拟物理系统,主要关注动态行为模型,包括动态建模、离散建模和混合建模,以及状态机的并发组合与并行计算模型。设计部分强调嵌入式系统中处理器、存储器架构、输入和输出、多任务处理和实时调度的算法与设计,以及这些设计在cps中的主要作用。分析部分重点介绍一些系统特性的精确规格、规格之间的比较方法、规格与产品设计的分析方法以及嵌入式软件特性的定量分析方法。此外,两个附录提供了一些数学和计算机科学的背景知识,有助于加深读者对文中所给知识的理解。
作译者回到顶部↑
本书提供作译者介绍
Edward Ashford Lee 拥有加州大学伯克利分校博士学位,曾为加州大学伯克利分校电子工程与计算机科学系主任,现为该系Robert S. Pepper特聘教授。他的主要研究方向是嵌入式与实时计算系统的设计、建模和模拟。Lee教授是IEEE会员,于1997年获得工程教育领域的Frederick Emmons Terman奖。
Sanjit Arunkumar Seshia 拥有卡内基-梅隆大学计算机科学专业博士学位,现为美国加州大学伯克利分校电子工程与计算机科学系副教授。他的主要研究方向是可信计算和计算逻辑。他获得了科学和工程领域的总统.. << 查看详细
Sanjit Arunkumar Seshia 拥有卡内基-梅隆大学计算机科学专业博士学位,现为美国加州大学伯克利分校电子工程与计算机科学系副教授。他的主要研究方向是可信计算和计算逻辑。他获得了科学和工程领域的总统.. << 查看详细
目录回到顶部↑
《嵌入式系统导论:cps方法》
出版者的话
译者序
前言
符号
第1章绪论
1.1应用
1.2一个实例
1.3设计过程
1.3.1建模
1.3.2设计
1.3.3分析
1.4小结
第一部分动态行为建模
第2章连续动态
2.1牛顿力学
2.2参量模型
2.3系统的特性
2.3.1因果关系系统
2.3.2无记忆系统
出版者的话
译者序
前言
符号
第1章绪论
1.1应用
1.2一个实例
1.3设计过程
1.3.1建模
1.3.2设计
1.3.3分析
1.4小结
第一部分动态行为建模
第2章连续动态
2.1牛顿力学
2.2参量模型
2.3系统的特性
2.3.1因果关系系统
2.3.2无记忆系统
译者序回到顶部↑
不同于大多数嵌入式系统的书籍着重于计算机技术在嵌入式系统中的应用,本书的重点是论述系统模型与系统实现的关系,以及软件和硬件与物理环境的相互作用。本书是业界第一本关于CPS(CyberPhysical System,信息物理系统)的专著。
原书作者美国加州大学伯克利分校Edward Ashford Lee教授是世界上嵌入式系统领域的著名学者,也是CPS研究的倡导者和引领者之一。Lee教授领导的团队还开发了一个叫做Ptolemy Ⅱ的系统,这是一个非常优秀的开源嵌入式系统研究与开发平台,可惜国内了解的人不多。
CPS将计算、网络和物理过程集成在一起,CPS的建模、设计和分析成为本书的重点。
从CPS的视角,围绕系统的建模、设计和分析这三个方面,本书分成四大部分。第一部分包括第2~6章,分别讲述动态建模、离散建模和混合建模,以及状态机的并发组合与并发计算模型。第二部分包括第7~11章,强调嵌入式系统中处理器、存储器架构、输入和输出、多任务处理和实时调度的算法与设计,以及这些设计在CPS中的主要作用。第三部分包括第12~15章,重点介绍一些系统特性的精确规格、规格之间的比较方法、规格与产品设计的分析方法以及嵌入式软件特性的定量分析方法。第四部分包括两个附录,提供了一些数学和计算机科学的背景知识,有助于加深对文中所介绍知识的理解(可以登录网站http://LeeSeshia.org获取本书的英文版和更多信息)。
李仁发教授负责本书的整体翻译工作。李实英博士主译了前言、第1章以及第一部分和第二部分,贺蓉博士主译了第三部分和第四部分。此外,参与本书翻译工作的还有谢勇、黄鑫、杜家宜、王震、高楠、宋倩、刘琳、周权、吴武飞、谷连军、何翔、许文龙、吴文康、黄晶、李志灿和胡环。
把一种语言表达转换成另一种是一件困难的事情。看似很直白的一个词,虽然理解其词义,但要换一种语言表达时往往煞费苦心,况且CPS的研究在国内尚处于起步阶段,许多名词还很难给出确切的中文译名。译者力求忠实地表达书中所介绍的技术,保持原作者的行文风格。此外,本书的翻译以Leesheshia_DigitalV1_03为基础,并根据作者更新的版本(Leesheshia_DigitalV1_05)进行了校对,修正了原稿中的一些改动。限于时间(急于想把此书介绍给国内读者)以及译者水平和经验的不足,译文中难免存在许多不当之处,恳请读者提出宝贵的意见。
本书在翻译过程中得到了Edward Ashford Lee教授本人的直接帮助,同时还得到湖南大学嵌入式系统与网络实验室同仁及机械工业出版社许多人士的帮助。对此,译者深表感谢。
原书作者美国加州大学伯克利分校Edward Ashford Lee教授是世界上嵌入式系统领域的著名学者,也是CPS研究的倡导者和引领者之一。Lee教授领导的团队还开发了一个叫做Ptolemy Ⅱ的系统,这是一个非常优秀的开源嵌入式系统研究与开发平台,可惜国内了解的人不多。
CPS将计算、网络和物理过程集成在一起,CPS的建模、设计和分析成为本书的重点。
从CPS的视角,围绕系统的建模、设计和分析这三个方面,本书分成四大部分。第一部分包括第2~6章,分别讲述动态建模、离散建模和混合建模,以及状态机的并发组合与并发计算模型。第二部分包括第7~11章,强调嵌入式系统中处理器、存储器架构、输入和输出、多任务处理和实时调度的算法与设计,以及这些设计在CPS中的主要作用。第三部分包括第12~15章,重点介绍一些系统特性的精确规格、规格之间的比较方法、规格与产品设计的分析方法以及嵌入式软件特性的定量分析方法。第四部分包括两个附录,提供了一些数学和计算机科学的背景知识,有助于加深对文中所介绍知识的理解(可以登录网站http://LeeSeshia.org获取本书的英文版和更多信息)。
李仁发教授负责本书的整体翻译工作。李实英博士主译了前言、第1章以及第一部分和第二部分,贺蓉博士主译了第三部分和第四部分。此外,参与本书翻译工作的还有谢勇、黄鑫、杜家宜、王震、高楠、宋倩、刘琳、周权、吴武飞、谷连军、何翔、许文龙、吴文康、黄晶、李志灿和胡环。
把一种语言表达转换成另一种是一件困难的事情。看似很直白的一个词,虽然理解其词义,但要换一种语言表达时往往煞费苦心,况且CPS的研究在国内尚处于起步阶段,许多名词还很难给出确切的中文译名。译者力求忠实地表达书中所介绍的技术,保持原作者的行文风格。此外,本书的翻译以Leesheshia_DigitalV1_03为基础,并根据作者更新的版本(Leesheshia_DigitalV1_05)进行了校对,修正了原稿中的一些改动。限于时间(急于想把此书介绍给国内读者)以及译者水平和经验的不足,译文中难免存在许多不当之处,恳请读者提出宝贵的意见。
本书在翻译过程中得到了Edward Ashford Lee教授本人的直接帮助,同时还得到湖南大学嵌入式系统与网络实验室同仁及机械工业出版社许多人士的帮助。对此,译者深表感谢。
前言回到顶部↑
关于此书
计算机和软件最显著的用途是处理人们所使用的信息。我们用计算机和软件写教材(如本书)、在网上搜索信息、通过电子邮件进行通信以及跟踪财务数据。然而,绝大多数应用中的计算机并非如此显而易见。这些计算机运行于汽车上的引擎、刹车、安全带、安全气囊和音响系统中。它们将声音进行数字编码并转换成无线电信号,然后从手机发送到基站。它们控制微波炉、冰箱和洗碗机。它们运行各种打印机,从台式喷墨打印机到大型工业用的高容量打印机。它们指挥车间里的机器人、发电厂的电力生产、化工厂的各种工序,以及城市的交通灯。它们在生物样本中搜寻细菌,构建人体内部图像,以及测量生命体征。它们处理来自太空的无线电信号,寻找超新星和外星智慧生物。它们给人类生活带来各种玩具,而且让这些玩具能对人的触摸和声音有所反应。它们控制飞机和火车。这些不显眼的计算机称为嵌入式系统(embedded system),而在嵌入式系统上运行的软件称为嵌入式软件(embedded software)。
尽管嵌入式系统得到如此广泛的应用,但是从计算机科学相对短暂的发展历史来看,它主要致力于信息处理。直到最近,嵌入式系统才受到研究人员的更多关注。研究界认识到,设计和分析嵌入式系统所需的工程技术是与通用计算机系统不同的。尽管嵌入式系统从20世纪70年代就开始应用,但是长期以来,这些系统被简单地视做小型计算机。最主要的工程问题被理解为如何运用有限资源(有限的处理能力、有限的电源、小型存储器等)的问题。这样一来,工程挑战成为优化设计。由于所有设计都得益于优化,所以该学科与计算机科学的其他方面相比并没有什么独特的地方。它只在应用同样的优化方法方面必须更加积极投入。
目前,研究界已经认识到,嵌入式系统中最主要的挑战来自于它们与物理过程的相互作用,而不是它们的有限资源。“CyberPhysical System”(CPS)这个术语由美国国家科学基金会的Helen Gill提出,用于描述计算与物理过程的整合。在CPS中,嵌入式的计算机和网络通常采用反馈回路来监视和控制物理过程,在反馈回路中物理过程和计算相互影响。因而,这种系统设计需要理解计算机、软件、网络和物理过程的动态融合。正是对于动态融合(joint dynamics)的研究将这个学科与其他学科分离开来。
在研究CPS的过程中,会遇到一些在通用计算中很少出现的关键问题。例如,在通用软件中,执行一个任务的时间与性能相关,但不与正确性相关。执行一个任务耗费更长时间并不是不正确的,只是不太方便,因而不那么有价值。但是在CPS中,执行一个任务所需的时间可能对系统的正确功能实现至关重要。与信息世界相反,在物理世界中时间的流逝是必然的。
而且,在CPS中许多事情会同时发生。物理过程是许多同时发生事情的组合,这与深深植根于顺序步骤中的软件进程不同。Abelson and Sussman(1996)将计算机科学描述为“程序化认识论”(procedural epistemology),即知识贯穿于整个程序。相对而言,在物理世界中,过程很少是程序化的。物理过程是许多并行过程的组合。通过调和影响这些过程的行为来对这些过程的动态状况进行测量和控制是嵌入式系统的主要任务。因此,并发性是CPS固有的。在设计和分析嵌入式软件时,许多技术挑战源于必须建立原本顺序的语义与本质上并发的物理世界之间的桥梁。
写作目的
当今,使计算机与物理过程协作需要复杂的技术和底层的设计。因此嵌入式软件设计人员不得不与中断控制器、存储器架构、汇编级编程(以开发专用指令或进行精确的时间控制)、设备驱动程序设计、网络接口和调度策略打交道,而不是只关注所要实现的行为。这些技术的高质量和复杂性需要我们重点掌握一些入门知识。这些知识着重于如何对软件、网络和物理过程的动态融合进行建模和设计,介绍实现这些动态融合的最新(而不是过去的)方法。本书正是力求成为这样一本教材。
大多数关于嵌入式系统的书籍侧重于使计算机与物理系统交互所需的技术(Barr and Massa, 2006; Berger, 2002; Burns and Wellings, 2001; Kamal, 2008; Noergaard, 2005; Parab et al., 2007; Simon, 2006; Valvano, 2007;Wolf, 2000)。其他书籍则着重于将计算机技术(如编程语言、操作系统、网络等)应用于嵌入式系统中的技术问题(Buttazzo, 2005a; Edwards, 2000; Pottie and Kaiser, 2005)。虽然这些实现技术可以满足设计人员使嵌入式系统正常工作的需求,但并不是构成该学科的智能核心。其智能核心是将计算与物理动态结合在一起的模型和抽象化。
有些教科书在该方向上付出了很多努力。 Jantsch (2003)着重于并发计算模型,Marwedel(2003)侧重于软件和硬件的行为模式,Sriram and Bhattacharyya (2009)关注信号处理行为的数据流模型及其在可编程DSP上的映射。以上都是非常良好的开端。并发模型(如数据流)以及软件的抽象模型(如状态图)可以作为比命令式编程语言(如C)、中断和线程以及设计人员必须解决的架构问题(比如缓存)更好的开端。然而,这些教材并不适合入门课程。它们要么太专业要么太高级,或者两者兼而有之。本书力求成为一本入门式的教材,侧重于介绍系统模型及其与系统实现之间的关系。
本书的主题是关于系统模型以及它们与系统实现的关系。这些模型主要是动态的,即系统状态随时间演化。我们不介绍关于组成系统静态信息的结构模型,尽管这些模型对于嵌入式系统设计也非常重要。
应用模型有一个很大的优势。模型具有形式上的特性。可以利用模型定义事件。例如,可以断言一个模型是确定性的(deterministic),也就是说,给定相同的输入,它总是产生相同的输出。系统的任何物理实现都不能进行这样绝对的断言。如果模型是对一个物理系统的良好抽象(在此,“良好抽象”是指它只忽略了一些无关紧要的细节),那么模型的决定性断言可以增加系统物理实现的可靠性。这种可靠性是极具价值的,尤其对于嵌入式系统而言,其出现的故障可能危及人的生命。通过学习系统模型可以了解这些系统在物理世界中是如何运行的。
我们的重点是软件和硬件与所处物理环境的相互作用。这就要求对软件和网络的时序动态进行明确建模并精确描述应用中固有的并发特性。事实上,实现技术还不能满足这一要求,这当然不能成为我们传授错误的工程方法的理由,而应该按照设计和建模应该有的形式进行教学,并以如何通过最新技术(部分)实现这些目标的关键表述来丰富其内容。因此,当今的嵌入式系统技术,不应该如上述许多教材那样,被描述成一大堆事实和技巧,而应该脚踏实地逐步实现合理的设计实践,重点应该放在什么是合理的设计实践,以及如今的技术如何阻碍和实现它。
Stankovic et al.(2005)支持这一观点,指出“现有的RTES(实时嵌入式系统)设计技术并不能有效地支持可靠而鲁棒的嵌入式系统开发”。他们提出需要“提高编程抽象化的水平”。我们认为,只提高抽象化水平是不够的,应该从根本上改变所使用的抽象。例如,如果没有建立于其上的底层抽象,软件的时间特性则不能有效地利用更高层次的抽象。
我们需要采用鲁棒性好、可预见且具有可重复时序动态的设计(Lee,2009a),这必须通过建立能适当反映信息物理系统实际情况的抽象来实现。其结果将使CPS的设计更加复杂,包括更多的自适应控制逻辑、时间演化,以及安全性和可靠性的提高,而避免当今设计的不稳定,很小的改变都成为大问题。
除了处理时序动态,CPS设计总是面临并发问题的挑战。由于软件是植根于顺序抽象,并发机制(如中断和多任务处理,利用信号和互斥锁)变得非常重要。因此,我们在本书中特别强调对线程、消息传递、死锁避免、竞争条件和数据决策等关键内容的理解。
本书未尽事宜
本书的版本并不完整。实际上,要完全涵盖CPS意义上的嵌入式系统是不可能的。其中涵盖了Berkeley(伯克利)本科嵌入式系统课程(http://LeeSeshia.org)的具体内容,并希望在将来的版本中包括:传感器和制动器、网络、容错、安全性、仿真技术、控制系统以及硬件/软件协同设计。
如何使用本书
本书分为三个主要部分,分别关注建模、设计和分析,如图1所示。这三个部分彼此相对独立,在很大程度上是为了能同时学习。利用虚线框出的七个分区可以实现系统性的学习。每个分区包括两章,假设每个分区需要花两周时间,并且绪论和结束部分各花一周时间,则本书可以在15周内学完。
计算机和软件最显著的用途是处理人们所使用的信息。我们用计算机和软件写教材(如本书)、在网上搜索信息、通过电子邮件进行通信以及跟踪财务数据。然而,绝大多数应用中的计算机并非如此显而易见。这些计算机运行于汽车上的引擎、刹车、安全带、安全气囊和音响系统中。它们将声音进行数字编码并转换成无线电信号,然后从手机发送到基站。它们控制微波炉、冰箱和洗碗机。它们运行各种打印机,从台式喷墨打印机到大型工业用的高容量打印机。它们指挥车间里的机器人、发电厂的电力生产、化工厂的各种工序,以及城市的交通灯。它们在生物样本中搜寻细菌,构建人体内部图像,以及测量生命体征。它们处理来自太空的无线电信号,寻找超新星和外星智慧生物。它们给人类生活带来各种玩具,而且让这些玩具能对人的触摸和声音有所反应。它们控制飞机和火车。这些不显眼的计算机称为嵌入式系统(embedded system),而在嵌入式系统上运行的软件称为嵌入式软件(embedded software)。
尽管嵌入式系统得到如此广泛的应用,但是从计算机科学相对短暂的发展历史来看,它主要致力于信息处理。直到最近,嵌入式系统才受到研究人员的更多关注。研究界认识到,设计和分析嵌入式系统所需的工程技术是与通用计算机系统不同的。尽管嵌入式系统从20世纪70年代就开始应用,但是长期以来,这些系统被简单地视做小型计算机。最主要的工程问题被理解为如何运用有限资源(有限的处理能力、有限的电源、小型存储器等)的问题。这样一来,工程挑战成为优化设计。由于所有设计都得益于优化,所以该学科与计算机科学的其他方面相比并没有什么独特的地方。它只在应用同样的优化方法方面必须更加积极投入。
目前,研究界已经认识到,嵌入式系统中最主要的挑战来自于它们与物理过程的相互作用,而不是它们的有限资源。“CyberPhysical System”(CPS)这个术语由美国国家科学基金会的Helen Gill提出,用于描述计算与物理过程的整合。在CPS中,嵌入式的计算机和网络通常采用反馈回路来监视和控制物理过程,在反馈回路中物理过程和计算相互影响。因而,这种系统设计需要理解计算机、软件、网络和物理过程的动态融合。正是对于动态融合(joint dynamics)的研究将这个学科与其他学科分离开来。
在研究CPS的过程中,会遇到一些在通用计算中很少出现的关键问题。例如,在通用软件中,执行一个任务的时间与性能相关,但不与正确性相关。执行一个任务耗费更长时间并不是不正确的,只是不太方便,因而不那么有价值。但是在CPS中,执行一个任务所需的时间可能对系统的正确功能实现至关重要。与信息世界相反,在物理世界中时间的流逝是必然的。
而且,在CPS中许多事情会同时发生。物理过程是许多同时发生事情的组合,这与深深植根于顺序步骤中的软件进程不同。Abelson and Sussman(1996)将计算机科学描述为“程序化认识论”(procedural epistemology),即知识贯穿于整个程序。相对而言,在物理世界中,过程很少是程序化的。物理过程是许多并行过程的组合。通过调和影响这些过程的行为来对这些过程的动态状况进行测量和控制是嵌入式系统的主要任务。因此,并发性是CPS固有的。在设计和分析嵌入式软件时,许多技术挑战源于必须建立原本顺序的语义与本质上并发的物理世界之间的桥梁。
写作目的
当今,使计算机与物理过程协作需要复杂的技术和底层的设计。因此嵌入式软件设计人员不得不与中断控制器、存储器架构、汇编级编程(以开发专用指令或进行精确的时间控制)、设备驱动程序设计、网络接口和调度策略打交道,而不是只关注所要实现的行为。这些技术的高质量和复杂性需要我们重点掌握一些入门知识。这些知识着重于如何对软件、网络和物理过程的动态融合进行建模和设计,介绍实现这些动态融合的最新(而不是过去的)方法。本书正是力求成为这样一本教材。
大多数关于嵌入式系统的书籍侧重于使计算机与物理系统交互所需的技术(Barr and Massa, 2006; Berger, 2002; Burns and Wellings, 2001; Kamal, 2008; Noergaard, 2005; Parab et al., 2007; Simon, 2006; Valvano, 2007;Wolf, 2000)。其他书籍则着重于将计算机技术(如编程语言、操作系统、网络等)应用于嵌入式系统中的技术问题(Buttazzo, 2005a; Edwards, 2000; Pottie and Kaiser, 2005)。虽然这些实现技术可以满足设计人员使嵌入式系统正常工作的需求,但并不是构成该学科的智能核心。其智能核心是将计算与物理动态结合在一起的模型和抽象化。
有些教科书在该方向上付出了很多努力。 Jantsch (2003)着重于并发计算模型,Marwedel(2003)侧重于软件和硬件的行为模式,Sriram and Bhattacharyya (2009)关注信号处理行为的数据流模型及其在可编程DSP上的映射。以上都是非常良好的开端。并发模型(如数据流)以及软件的抽象模型(如状态图)可以作为比命令式编程语言(如C)、中断和线程以及设计人员必须解决的架构问题(比如缓存)更好的开端。然而,这些教材并不适合入门课程。它们要么太专业要么太高级,或者两者兼而有之。本书力求成为一本入门式的教材,侧重于介绍系统模型及其与系统实现之间的关系。
本书的主题是关于系统模型以及它们与系统实现的关系。这些模型主要是动态的,即系统状态随时间演化。我们不介绍关于组成系统静态信息的结构模型,尽管这些模型对于嵌入式系统设计也非常重要。
应用模型有一个很大的优势。模型具有形式上的特性。可以利用模型定义事件。例如,可以断言一个模型是确定性的(deterministic),也就是说,给定相同的输入,它总是产生相同的输出。系统的任何物理实现都不能进行这样绝对的断言。如果模型是对一个物理系统的良好抽象(在此,“良好抽象”是指它只忽略了一些无关紧要的细节),那么模型的决定性断言可以增加系统物理实现的可靠性。这种可靠性是极具价值的,尤其对于嵌入式系统而言,其出现的故障可能危及人的生命。通过学习系统模型可以了解这些系统在物理世界中是如何运行的。
我们的重点是软件和硬件与所处物理环境的相互作用。这就要求对软件和网络的时序动态进行明确建模并精确描述应用中固有的并发特性。事实上,实现技术还不能满足这一要求,这当然不能成为我们传授错误的工程方法的理由,而应该按照设计和建模应该有的形式进行教学,并以如何通过最新技术(部分)实现这些目标的关键表述来丰富其内容。因此,当今的嵌入式系统技术,不应该如上述许多教材那样,被描述成一大堆事实和技巧,而应该脚踏实地逐步实现合理的设计实践,重点应该放在什么是合理的设计实践,以及如今的技术如何阻碍和实现它。
Stankovic et al.(2005)支持这一观点,指出“现有的RTES(实时嵌入式系统)设计技术并不能有效地支持可靠而鲁棒的嵌入式系统开发”。他们提出需要“提高编程抽象化的水平”。我们认为,只提高抽象化水平是不够的,应该从根本上改变所使用的抽象。例如,如果没有建立于其上的底层抽象,软件的时间特性则不能有效地利用更高层次的抽象。
我们需要采用鲁棒性好、可预见且具有可重复时序动态的设计(Lee,2009a),这必须通过建立能适当反映信息物理系统实际情况的抽象来实现。其结果将使CPS的设计更加复杂,包括更多的自适应控制逻辑、时间演化,以及安全性和可靠性的提高,而避免当今设计的不稳定,很小的改变都成为大问题。
除了处理时序动态,CPS设计总是面临并发问题的挑战。由于软件是植根于顺序抽象,并发机制(如中断和多任务处理,利用信号和互斥锁)变得非常重要。因此,我们在本书中特别强调对线程、消息传递、死锁避免、竞争条件和数据决策等关键内容的理解。
本书未尽事宜
本书的版本并不完整。实际上,要完全涵盖CPS意义上的嵌入式系统是不可能的。其中涵盖了Berkeley(伯克利)本科嵌入式系统课程(http://LeeSeshia.org)的具体内容,并希望在将来的版本中包括:传感器和制动器、网络、容错、安全性、仿真技术、控制系统以及硬件/软件协同设计。
如何使用本书
本书分为三个主要部分,分别关注建模、设计和分析,如图1所示。这三个部分彼此相对独立,在很大程度上是为了能同时学习。利用虚线框出的七个分区可以实现系统性的学习。每个分区包括两章,假设每个分区需要花两周时间,并且绪论和结束部分各花一周时间,则本书可以在15周内学完。







点击看大图


加载中...

