本书用作计算机科学、信息技术、电子通信工程专业的大学生和研究生的教材、软件培训研究所的学生课本,也可用作嵌入式系统设计人员的入门书籍。本书采用易于理解、对学生友好的方式编写,包括一些示意图、示例、样例代码和系统设计案例。
嵌入式系统设计需要硬件和软件人员组成的团队。本书阐释了硬件和软件概念,同时把多学科的大学生和研究生作为主要读者。前两个版本成功满足了电子、计算机科学和工程领域的大学生和研究生的要求,还考虑到了培训嵌入式系统的软硬件人员和设计人员。VLSI和片上系统、汽车和车辆、医用电子和机器人等领域的人士和学术界人士也发现,设计和研究领域的创业者应学习本书。
本书前2版在印度和海外热烈反响。大致估计,最近10年,仅印度就有160 000位工程和专业培训的学生,以及软硬件专业人员阅读了本书。本书最初在印度出版,现在出版了中文和韩文版,新加坡和纽约出版了国际学生版和McGraw-Hill USA版。
读者应具备的基本学术背景
作者假定读者学习过基本课程,具有微处理器、微控制器、计算机体系结构和组织、操作系统、C/C++编程技巧等方面的学术背景。
学习新版本的要求
新版本添加了嵌入式系统设计和开发过程的重点内容。这一版考虑了大学生和研究生级别的基本要求,以及近年来电子通信工程、电子工程、设备控制工程、计算机科学和工程、信息技术和计算机应用等领域的嵌入式系统论文提及的变化。
特定的改进和新内容
新版本在第2版的基础上又增加了几个新主题。比较重要的主题有4个:(1)嵌入式系统设计和开发过程;(2)8051、AVR和AMR微控制器,实际接口,使用总线输入输出;(3)介绍高级体系结构和处理器存储组织;(4)输入输出设备,通信总线和分布式联网嵌入式体系结构。
另外,自从上一版以来,作者与一些年轻教师交流,定期收到教师和学生的反馈。新版本的章节也由一些年轻、直率、敬业的工程学院教师审核。希望这一版考虑了大多数有价值的建议和批评。
对学者和研究人员有价值的新内容
片上系统设计、计算机系统的高级体系结构、分布式联网嵌入式体系结构和车辆技术是嵌入式系统的学者和研究人员感兴趣的新领域。新版本把这些包含进来,作为有价值的新内容。
本书的主要特点
本书独有的特色是解释了软硬件概念,没有过分强调把微控制器、DSP集成电路或VLSI电路作为嵌入式系统,也没有过分强调编程语言和操作系统。
读者会发现如下主题的呈现和描述比较独特:总线判优、I/O设备、接口、通信总线、分布式联网嵌入式体系结构、中断、异常和信号、上下文切换、程序模型、进程、线程和任务、进程间同步、实时操作系统功能。书中的案例研究遵循成熟的软件工程实践。教师会发现,为学生制作演示文稿非常有趣,因为在各个章节中使用了一个通用示例——“巧克力自动售卖机”的软硬件构建和设计。
读者指南
各专业的大学生、研究生、专业培训生的学习路径建议参见附录A。
希望本书的新版本比第2版更具备国际性,用作如下读者的教材和入门书籍:
(1) 计算机科学、信息技术、电子通信、仪器和控制工程专业的大学生和研究生。
(2) 软件和嵌入式系统的专业培训课程。
(3) 专业设计人员、片上系统设计、计算系统的高级构建、分布式联网嵌入式体系结构、车辆技术领域的学者和研究人员,对嵌入式系统的新领域感兴趣的学者和研究人员。
各类课程的学习路径
资深教授和重要设计人员是最好的法官。根据作者的经验,各专业的大学生、研究生和专业培训生可以采用附录A中所示的学习路径。
突出特点
● 全面解释了嵌入式硬件体系结构、设计工程和方法、接口技术、总线和协议、软硬件中断、嵌入式软件编程、程序建模、进程间同步、实时操作系统。
● 用示例详尽说明如何学习广泛使用的RTOS:μCOS-II、VxWorks、Windows CE、OSEK和实时Linux。
● 重点介绍构成嵌入式系统的软硬件设计的基础知识。
● 呈现巧克力自动售卖机、数码相机、TCP/IP栈的创建、机器人管弦乐队、汽车巡逻控制、手机中的智能卡和SMS输入等系统的案例研究。
● 解释了程序的建模,系统设计的软件工程实践。
● 每章开头都列出了重要主题,给出了学习目标。
● 样例代码。
● 书末列出了参考书目、期刊引用和重要的Web链接,为嵌入式系统的参考和进一步学习提供了一个初步的图书馆。
● 具备便于教学的一些特性,例如包含大量示例、示例代码和案例研究,用UML模型设计和图形演示软件工程实践,说明如何设计和编写系统,章末包括重要术语表、复习题和实践练习题。
● 250幅图片。
● 215个示例。
● 265道复习题。
● 200道实践练习题。
章节的组织
新版的各章内容如下:
第1章
该章将详细介绍嵌入式系统的基础内容,包括硬件单元、系统和应用软件的嵌入式ROM映像,还介绍开发嵌入式软件、嵌入式系统设计、体系结构和模型的语言。并对系统和系统开发技能要求进行了大致的分类,同时提供了一些应用。
第2章
该章介绍SoC(System on Chip,片上系统)中嵌入式系统的设计,以及复杂系统中VLSI电路设计技术、AISC、IP核、微处理器、ASIP、微控制器、DSP和微处理器的使用。该章将讲述设计过程、设计度量、抽象的概念、嵌入式系统设计中的挑战和问题,介绍系统设计技术和形式。最后给出嵌入式软硬件的3个设计示例。
第3章
该章说明8051体系结构的特性,介绍处理指令、存储器、端口、计数器/计时器,串行输入输出(IO)和中断处理单元,还论述ATMEL AVR和ARM微处理器。该章描述系统存储器和计算系统中的IO总线之间的交互,阐释了总线如何与存储设备、实时设备和组件交互,演示了总线体系结构、总线性能、输入输出性能、多级总线体系结构以及计算机系统中的总线判优方法。该章探讨在分布式设备和控制器的网络中面向网络的总线判优。
第4章
该章将讨论处理器中的高级结构化单元,改进嵌入式系统中的处理能力。读者将学习指令级别的并行、管线、超标量处理和缓存单元、x86、ARM和SHARC体系结构。该章还会讨论存储设备,解释度量处理器性能的性能指标,列出给定嵌入式系统的处理器和存储器选择方法。
第5章
该章将描述各种设备(并口和串口设备、时钟设备、异步设备)以及连接这些设备的重要总线,还将描述分布式网络体系结构和嵌入式系统的网络,这些系统使用了I2C、CAN、USB、高级串行高速总线、ISA、PCI、PCI-X、高级并行高速总线。该章还将描述支持互联网的嵌入式设备及其网络协议,并讨论用于嵌入式设备的移动和无线网络的无线协议。
第6章
该章会介绍硬件和软件中断的概念,使用中断服务和处理机制从端口和设备中传输数据,对中断服务和处理机制的理解是嵌入式系统设计者应该掌握的基本知识。该章会解释上下文的概念、上下文切换的阶段、中断延迟和最后期限。该章还会说明数据传输的DMA方法,通过示例介绍设备驱动程序。
第7章
该章将描述用嵌入式C/C++/Java语言进行嵌入式系统编程的编程概念,还会讨论C++/Java中面向对象的编程概念。
第8章
该章将阐述事件轮询、顺序、状态机和并行处理编程模型,还将说明数据流和控制数据流图的使用,以及实时编程过程中的程序模型和FSM的使用。该章还将回答一些重要问题:如何对微处理器建模,以及如何调度和同步指令的处理。该章还会使用图片给出UML建模的基础知识。
第9章
该章将介绍实时编程最重要的内容:进程、任务和线程的概念,以及进程间通信。该章将描述信号量的使用,详细介绍信号、互斥、消息队列、邮箱、管道、虚拟(逻辑)插槽和远程过程调用等概念。
第10章
该章将阐述RTOS的概念和核心函数,介绍进程、存储器、设备、文件和IP子系统管理功能。OS控制着中断处理机制,因此执行中断服务例程(Interrupt Service Routines,ISR)和IST(Interrupt Service Threads,中断服务线程)。RTOS同步了ISR、IST以及进程、任务线程。RTOS允许实时的软硬件操作,还提供了异步IO。该章描述了RTOS环境中多个任务的调度。
第11章
该章介绍了基于UNIX的实时操作系统:PSoS、VRTX、QNX和VxWorks。该章会讨论两个最重要的RTOS工具:C/OS-II和VxWorks,详细呈现在这些RTOS中使用OS函数的编码示例。
第12章
该章介绍POSIX兼容系统和基于RTOS的Linux:实时Linux、嵌入式Linux和RT Linux,它把Windows描述为实时操作系统、手持和汽车实时系统、Windows CE和Windows 8 Embedded,还介绍了OSEK——汽车应用的操作系统。
第13章
该章将描述关于RTOS编程的7个案例研究,分别是巧克力自动售卖机系统、数码相机、TCP/IP网络系统、主从机器人之间的通信、汽车中的自适应巡航控制系统、智能卡中的访问控制和卡主机通信任务、为移动设备中SMS文本的密钥使用状态机概念的编码示例。
第14章
该章详细介绍软件工具、源代码工程工具、集成开发环境,还介绍两个开发平台的使用:主机和目标机。该章讨论了嵌入式系统开发中需要由开发团队解决的问题,包括独立的软硬件设计、软硬件协同设计,选择正确的处理器,分配存储器地址、设备和总线,以及OS/RTOS的端口问题。
第15章
该章介绍如何在主机系统中测试系统代码,因为主机系统有应用开发工具、很大的存储器和窗口或强大的GUI。该章解释了主机上的如下模拟:目标处理器或微控制器、外围设备、设备和网络接口。该章介绍了实验室工具、内部电路模拟器和监控器,它们有助于目标系统的硬件开发,也有助于在测试环境下测试和调试目标系统软件。
在线学习中心
Web是教师和学生最好的学习伴侣。我们需要Web,就像我们每天需要食物和水一样。新版在Web上有许多新增内容,作为本书的补充,网址是http://www.mhhe.com/kamal/emb3。嵌入式系统设计的读者可以参考所有的Web补充主题。链接如下,且会定期更新:
适用于教师:
● 复习题和实践练习的答案(已更新)
● 建议的实验室实验
● 适用于整章的PowerPoint幻灯片,带有图片和注释,可以进行有效演示
适用于学生:
● 关于“嵌入式系统过程的软件工程实践”的章节
● 多选题(已更新)
● 书中所有案例研究的附加信息
需要获取这些资料的读者可填写书末的“麦格劳—希尔教育教师服务表”,与销售代表联系。
致谢
非常感谢印度德里技术研究院的老师们(1966~1972)和Uppsala(瑞典)大学的老师们(1978~1979,1984),他们教会我自学的重要性,以及跟上新兴技术的重要性。我还要感谢FNA的M S Sodha教授在我整个学术生涯里对我的支持和祝福。感谢同事M K Sahu博士(他是大学计算机中心主任)和A K Ramani博士(他未能看到这个新版),以及电子学院、计算机科学和信息技术学院、工程技术研究所的同事们和年轻教师门给予的一贯鼓励和支持。
我要感谢下述所有审核人员花时间审稿并给出反馈:
Bhargav Chandra kant Gordiya
Birla Vishwakarma Mahavidyalaya (BVM) 工程学院
Vallabh Vidyanagar Nagar, Gujarat
P B Chopde
Vishwakarma信息技术研究所
Pune, Maharashtra
R K Bayal
Rajasthan技术大学 (RTU)
Kota, Rajasthan
R Ramesh
Anna大学工程学院
Chennai, Tamil Nadu
C R N Sharma
Vignana Bharati技术研究所 (VBIT)
Hyderabad, Andhra Pradesh
J K Mendiratta
Oxford 工程学院
Bangalore, Karnataka
最后,感谢我的妻子Sushil Mittal和家庭成员Shalin Mittal、Needhi Mittal、Arushi、Atharv、Shruti、Ishita、Dr Atul Kondaskar、Dr Shilpi Kondaskar在编写这个新版时付出的关爱、理解和支持。
反馈
作者希望学生和教授能喜欢这个新版本,本书将帮助学生解决问题,使用建模实践锻炼其系统设计技能,学习嵌入式硬件体系结构、接口、总线、软件编程设计和RTOS中的更多重要概念。
本书尽可能地给出正确信息。然而,错误在所难免。敬请广大读者批评指正。读者们(尤其是学生、教师、学者和教授)请将对书中的内容、在线PPT、McGraw Hill站点中Web附加材料的反馈意见通过网站http://www.mhhe.com/kamal/emb3的Query或Contact me链接发送给作者。
出版社的通知
Mcgraw Hill Education(印度)恭候读者的建议和意见,请将建议和问题发到info.india@ mheducation.com(请在主题行中提及书名和作者)。
与盗版相关的问题也可以报告。