嵌入式系统开发与应用教程
基本信息
- 作者: 田泽
- 丛书名: 嵌入式系统开发与应用系列教程
- 出版社:北京航空航天大学出版社
- ISBN:7810776487
- 上架时间:2005-10-25
- 出版日期:2005 年3月
- 开本:16开
- 页码:427
- 版次:1-1
- 所属分类:
计算机 > 计算机组织与体系结构 > 嵌入式计算机
教材 > 研究生/本科/专科教材 > 工学 > 计算机
教材 > 计算机教材 > 本科/研究生 > 计算机专业教材 > 计算机专业课程 > 单片机及嵌入式计算机
编辑推荐
本书在内容设计上,密切结合嵌入式系统教学实际和嵌入式技术的最新发展,融入了大量的实际工程例程,全面讲述了嵌入式系统开发与应用技术,形成了从易到难、相对完整、贴近实际工程应用的嵌入式理论教学体系。结合本系列教程中的实验教程,可使读者快速、全面地掌握嵌入式开发与应用技术及开发技能。
内容简介回到顶部↑
本书是《嵌入式系统开发与应用系列教程》中的理论教程。在本教程内容设计上,首先完整讲述了嵌入式系统开发技术的基础知识和arm技术,然后结合基于arm处理器的嵌入式实际工程例程,系统讲述了嵌入式应用开发技术,形成了从易到难、相对完整、贴近实际工程应用的嵌入式理论教学体系。结合本系列教程的实验教程,可使读者快速、全面地掌握嵌入式系统开发与应用技术和开发技能。本书是基于32位arm处理器的嵌入式系统开发与应用教学体系的重要组成部分,并配套多媒体教学课件。
本书可作为高等院校计算机、电类专业本科生、研究生以及相关工程技术人员进行嵌入式系统教学及培训的教材,也可作为基于arm核嵌入式系统开发的工程技术人员的参考资料。
本书可作为高等院校计算机、电类专业本科生、研究生以及相关工程技术人员进行嵌入式系统教学及培训的教材,也可作为基于arm核嵌入式系统开发的工程技术人员的参考资料。
目录回到顶部↑
第1章 嵌入式系统开发基础
1.1 嵌入式系统的基本概念1
1.1.1 嵌入式计算机1
1.1.2 嵌入式系统的概念5
1.1.3 嵌入式系统的特点6
1.1.4 嵌入式系统的分类9
1.1.5 嵌入式系统的应用范围9
1.1.6 嵌入式技术是中国it发展的难得机遇9
1.2 嵌入式系统的组成结构10
1.2.1 嵌入式系统硬件基本结构介绍11
1.2.2 嵌入式系统软件的层次结构12
1.2.3 启动程序bootloader介绍14
1.3 嵌入式系统的硬件组成15
1.3.1 嵌入式处理器15
1.3.2 典型嵌入式处理器介绍16
1.3.3 嵌入式soc21
1.3.4 可编程片上系统sopc22
1.3.5 嵌入式外围接口电路和设备接口24
1.4 嵌入式操作系统25
1.4.1 嵌入式操作系统介绍26
1.1 嵌入式系统的基本概念1
1.1.1 嵌入式计算机1
1.1.2 嵌入式系统的概念5
1.1.3 嵌入式系统的特点6
1.1.4 嵌入式系统的分类9
1.1.5 嵌入式系统的应用范围9
1.1.6 嵌入式技术是中国it发展的难得机遇9
1.2 嵌入式系统的组成结构10
1.2.1 嵌入式系统硬件基本结构介绍11
1.2.2 嵌入式系统软件的层次结构12
1.2.3 启动程序bootloader介绍14
1.3 嵌入式系统的硬件组成15
1.3.1 嵌入式处理器15
1.3.2 典型嵌入式处理器介绍16
1.3.3 嵌入式soc21
1.3.4 可编程片上系统sopc22
1.3.5 嵌入式外围接口电路和设备接口24
1.4 嵌入式操作系统25
1.4.1 嵌入式操作系统介绍26
前言回到顶部↑
本书属于《嵌入式系统开发与应用系列教程》的理论教程,是基于32位ARM的嵌入式系统教学体系建设的重要组成部分。本书以嵌入式系统的基本开发技术为主线,以ARM处理器核及国内应用广泛的SAMSUNG公司S3C44B0X(基于ARM7TDMI)为硬件平台,系统讲述了嵌入式系统开发的基本知识、基本流程和基本方法及以ARM微处理器为核心的嵌入式系统开发过程。为了提升目前我国嵌入式系统的教学水平而又不脱离目前的教学实际,在本系列教程中的理论课程内容的设置和实验教学内容的开发过程中,我们既强调嵌入式基础教育,打好嵌入式系统开发与应用的基础,又面向实际工程应用,提升嵌入式系统教学的实用性和工程性。
本书按技术内容分为7章,共5大部分,各部分具体内容及包含的章节如下。
第1部分: 为书的第1章,主要介绍了嵌入式系统开发的基础知识。内容包括嵌入式系统基本概念、组成结构、硬件组成、操作系统、应用软件开发、开发流程和发展趋势。通过本章的学习,可使读者系统地建立起嵌入式系统开发的整体概念和知识体系。
第2部分:为书的第2章,主要对ARM技术进行全面论述。通过本章的学习,可使读者对ARM技术有个全面的了解,并建立起以ARM技术为基础的嵌入式系统应用和以ARM核为基础的嵌入式SoC芯片设计的技术框架。在学习本部分时,读者可根据不同情况有所取舍。
第3部分: 为书的第3、4、5章。主要介绍了嵌入式系统的应用程序设计。第3章主要介绍ARM指令集。第4章主要介绍Thumb指令集。ARM和Thumb两种指令集只是基于ARM的嵌入式编程的基础。第5章主要讲述如何运用前面学过的汇编指令并结合C语言来进行嵌入式程序设计。首先介绍了伪操作、宏指令和伪指令等嵌入式汇编语言程序设计基础知识,然后讲述了ARM汇编语言程序设计。本章以实际例程中用到的C语言讲述了嵌入式C语言程序设计基础,并在此基础上列举了一个嵌入式C程序设计实例;对于嵌入式编程技巧和C语言与汇编语言混合编程也进行了简述;最后通过一个基于Embest IDE for ARM开发环境下的嵌入式软件开发与调试实例讲述了嵌入式软件开发流程和开发工具的使用。在本章讲述中,密切结合嵌入式系统开发的实际例程,通过学习,可使读者掌握嵌入式程序设计的基本知识、基本方法和基本流程。
本部分一些程序代码和内容可见《嵌入式系统开发与应用实验教程(第2版)》所附光盘。
第4部分:为书的第6章。主要讲述的是基于S3C44B0X的嵌入式系统开发。SAMSUNG公司的S3C44B0X片上功能很强大,是国内应用广泛的基于ARM7TDMI内核的SoC。本部分以S3C44B0X为例,对嵌入式系统开发进行全面介绍,涉及片上基本功能模块及这些模块的应用开发;在此基础上还介绍了基于S3C44B0X的S3CEV40开发板设计,并对基于S3CEV40的启动程序开发进行了讲述。基于S3C44B0X的应用功能开发详见《嵌入式系统开发与应用实验教程》。通过这些嵌入式外围主要模块应用功能开发的学习,可使读者对于嵌入式系统开发有一个全面了解。本部分一些程序代码和内容可见《嵌入式系统开发与应用实验教程(第2版)》所附光盘。
第5部分: 为书的第7章,主要对于嵌入式操作系统μC/OSⅡ和μCLinux的基本知识进行讲述,在此基础上分别对基于S3C44B0X的移植及应用开发进行介绍。
通过本书的学习,可使学生用最短的时间掌握32位嵌入式系统应用开发的基础理论知识,培养学生良好的实际操作能力和高端嵌入式产品研发设计能力,尽而满足社会对高素质、开拓型嵌入式系统开发人才的需求。本书包含大量软件和硬件设计资源,可作为基于ARM核嵌入式系统开发的技术参考手册;也可作为计算机、电类专业本科生和研究生以及相关工程技术人员进行嵌入式系统教学及培训的实验和参考教材。
基于ARM的嵌入式系统教学体系建设刚刚开始,而嵌入式应用开发又涉及软、硬件及操作系统等复杂的知识,因此它的教学体系,尤其是面向实际开发应用的教学体系的建立,是一项非常复杂的系统工程。本书力求为该系统工程的建设做一些基础性工作,并真诚地欢迎读者就此提出宝贵的意见和建议。
田泽
2005年1月
本书按技术内容分为7章,共5大部分,各部分具体内容及包含的章节如下。
第1部分: 为书的第1章,主要介绍了嵌入式系统开发的基础知识。内容包括嵌入式系统基本概念、组成结构、硬件组成、操作系统、应用软件开发、开发流程和发展趋势。通过本章的学习,可使读者系统地建立起嵌入式系统开发的整体概念和知识体系。
第2部分:为书的第2章,主要对ARM技术进行全面论述。通过本章的学习,可使读者对ARM技术有个全面的了解,并建立起以ARM技术为基础的嵌入式系统应用和以ARM核为基础的嵌入式SoC芯片设计的技术框架。在学习本部分时,读者可根据不同情况有所取舍。
第3部分: 为书的第3、4、5章。主要介绍了嵌入式系统的应用程序设计。第3章主要介绍ARM指令集。第4章主要介绍Thumb指令集。ARM和Thumb两种指令集只是基于ARM的嵌入式编程的基础。第5章主要讲述如何运用前面学过的汇编指令并结合C语言来进行嵌入式程序设计。首先介绍了伪操作、宏指令和伪指令等嵌入式汇编语言程序设计基础知识,然后讲述了ARM汇编语言程序设计。本章以实际例程中用到的C语言讲述了嵌入式C语言程序设计基础,并在此基础上列举了一个嵌入式C程序设计实例;对于嵌入式编程技巧和C语言与汇编语言混合编程也进行了简述;最后通过一个基于Embest IDE for ARM开发环境下的嵌入式软件开发与调试实例讲述了嵌入式软件开发流程和开发工具的使用。在本章讲述中,密切结合嵌入式系统开发的实际例程,通过学习,可使读者掌握嵌入式程序设计的基本知识、基本方法和基本流程。
本部分一些程序代码和内容可见《嵌入式系统开发与应用实验教程(第2版)》所附光盘。
第4部分:为书的第6章。主要讲述的是基于S3C44B0X的嵌入式系统开发。SAMSUNG公司的S3C44B0X片上功能很强大,是国内应用广泛的基于ARM7TDMI内核的SoC。本部分以S3C44B0X为例,对嵌入式系统开发进行全面介绍,涉及片上基本功能模块及这些模块的应用开发;在此基础上还介绍了基于S3C44B0X的S3CEV40开发板设计,并对基于S3CEV40的启动程序开发进行了讲述。基于S3C44B0X的应用功能开发详见《嵌入式系统开发与应用实验教程》。通过这些嵌入式外围主要模块应用功能开发的学习,可使读者对于嵌入式系统开发有一个全面了解。本部分一些程序代码和内容可见《嵌入式系统开发与应用实验教程(第2版)》所附光盘。
第5部分: 为书的第7章,主要对于嵌入式操作系统μC/OSⅡ和μCLinux的基本知识进行讲述,在此基础上分别对基于S3C44B0X的移植及应用开发进行介绍。
通过本书的学习,可使学生用最短的时间掌握32位嵌入式系统应用开发的基础理论知识,培养学生良好的实际操作能力和高端嵌入式产品研发设计能力,尽而满足社会对高素质、开拓型嵌入式系统开发人才的需求。本书包含大量软件和硬件设计资源,可作为基于ARM核嵌入式系统开发的技术参考手册;也可作为计算机、电类专业本科生和研究生以及相关工程技术人员进行嵌入式系统教学及培训的实验和参考教材。
基于ARM的嵌入式系统教学体系建设刚刚开始,而嵌入式应用开发又涉及软、硬件及操作系统等复杂的知识,因此它的教学体系,尤其是面向实际开发应用的教学体系的建立,是一项非常复杂的系统工程。本书力求为该系统工程的建设做一些基础性工作,并真诚地欢迎读者就此提出宝贵的意见和建议。
田泽
2005年1月
序言回到顶部↑
嵌入式技术的发展
以8位单片机(或微控制器,MCU)为核心的嵌入式系统早已广泛应用于各个领域,这些应用大多数还处于单机使用的嵌入式低层次阶段。其特点是以MCU为核心,与一些简单的传感器、监测设备、伺服控制、指示、显示设备等配合,实现一定的测量、显示、信息处理及控制等功能。即使在一些工业控制、汽车电子和智能家居等多机应用中,为了实现多个MCU构成的系统间的信息交流,通常是利用CAN、RS - 232、RS - 485等总线将MCU组网。但这种网络的应用空间有限,相关的通信协议也比较单一,并且一般孤立于广泛应用的Internet以外。目前,Internet已成为社会重要的基础信息设施,是信息流通的重要渠道。嵌入式系统必将与Internet完美融合,方便、低廉地将信息传送到世界任何一个地方。
随着嵌人式设备与Internet的广泛结合,手机、PDA、路由器、调制解调器等复杂的高端应用对嵌入式处理器的性能提出了更高的要求。虽然以8位单片机为核心的嵌入式技术不断发展,性能也不断提高,但由于其性能的局限性,已无法满足未来高性能嵌入式技术的发展需求。激烈的市场、技术竞争要求不断提高嵌入式系统的性价比,同时,也要求缩短嵌入式系统的开发周期。自从20世纪70年代初出现嵌入式系统的概念以来,嵌入式系统以其高性能、低功耗等特点高速发展。当时的嵌入式系统很多都不采用操作系统,它们只是为了实现某个控制功能,使用简单的循环控制来对外界的控制请求进行处理。随着嵌入式系统的快速发展,当应用系统越来越复杂、使用范围越来越广泛时,每增加一项新的应用功能,都可能需要从头开始设计系统软件,没有操作系统已成为其最大缺陷。但目前在8位单片机上运行嵌入式操作系统尚有一定困难,因此,以32位微处理器作为高性能嵌入式系统开发的核心已是嵌入式技术发展的必然趋势。
20世纪90年代后,嵌入式系统设计从以嵌入式微处理器/DSP为核心的“集成电路”级设计,逐渐转向“集成系统”级设计,提出了系统芯片SoC(Sytem on a Chip)的基本概念。目前,嵌入式系统已进入以SoC为核心的设计阶段,并开始逐步实用化、规范化。SoC为高性能嵌入式系统开发提供了功能丰富的硬件平台,也为实时嵌入式操作系统的广泛使用提供了硬件基础。从20世纪80年代开始,陆续出现了一些嵌入式操作系统,比较著名的有VxWorks、Windows CE、Palm、μCLinux、pSOS和μC/OS - Ⅱ等,但真正广泛使用只是近几年的事情。一方面是因为嵌入式系统软件开发复杂度增加的需求,另一方面是大量高性能、面向实际应用、集成多种系统功能的SoC芯片成为高端嵌入式应用的硬件核心,为可靠、高效、低成本地运行嵌入式操作系统提供了硬件平台。大部分嵌入式操作系统价格昂贵,而源代码开放的μC/OS - Ⅱ、μCLinux是大家比较看好的,也比较适用于教学。有关嵌入式操作系统的知识体系相对复杂,一些出版社已经出版了多种相关书籍,如果在教学、科研中比较感兴趣,请参阅相关资料。
嵌入式微处理器具有体积小、重量轻、成本低、可靠性高等优点,是嵌入式系统的核心。目前比较有影响的32位嵌入式微处理器有ARM公司的ARM、Compaq公司的Alpha、HP公司的PA - RISC、IBM公司的PowerPC、MIPS公司的MIPS和Sun公司的Sparc等。而ARM处理器具有高性能、低功耗、低成本等显著优点,已成为高性能、低功耗嵌入式微处理器的代名词,是目前32位、64位嵌入式微处理器中应用最为广泛的一个系列。
20世纪90年代初,半导体行业产业链形成设计业、制造业、封装测试业三业分离的产业分工。台积电、联电等半导体工厂崛起,一些fabless、chipless公司如雨后春笋般涌现出来。而英国先进RISC机器公司(Advanced RISC Machines,简称ARM公司)作为fabless、chipless这一生产模式最为成功的典范,既不生产芯片,也不销售芯片,而是设计出高效的IP内核,授权给各半导体公司使用;半导体公司在ARM技术的基础上,根据自己公司的产品定位,添加自己的设计并推出芯片产品,最后由OEM客户采用这些芯片来构建基于ARM技术的最终应用系统产品。经过10多年的发展,ARM公司已成为业界领先的IP供应商。
回顾ARM技术的发展历程,在ARM7体系结构(体系结构版本v3)刚被广泛接受和使用时,嵌入式微处理器的市场仍然大都由8位、16位处理器占领。然而,这些产品却不能满足当时移动电话、调制解调器等高端应用对处理器性能的要求。这些高端产品需要32位RISC处理器的性能和更优于16位CISC处理器的代码密度,这就要求以更低的成本取得更好的性能和更优的代码密度。为了满足这种发展需求,ARM体系结构增加了T变种,开发了一种新的指令体系,即16位Thumb指令集。Thumb技术是ARM技术的一大特色。ARM公司发布的ARM7TDMIT(体系结构版本v4T)是第一个支持Thumb指令集的微处理eS,其工作模式可以方便地切换到Thumb状态。在该状态下运行的指令集是16位Thumb指令集,这在当时的16位系统与现在需要的32位系统之间搭起了一座桥梁。性能更优而不需要付出额外代价的ARM,为在当时使用8位或16位处理器,却一直在寻找更优性能处理器的用户,提供了解决方案,也极大地推动了ARM技术的发展。16位处理器一直没有像人们预期的那样发展起来的原因很复杂,由于32位ARM微处理器提供了低于一般16位微处理器的价格而高于一般16位微处理器的性能,使得高端嵌入式应用可以完全跨越16位而直接进入32位应用领域,这也许是原因之一。
ARM微处理器得到了众多半导体厂家和整机厂商的大力支持,全球已有100多家IT公司在采用ARM技术,20家最大的半导体厂商中有19家是ARM的用户,包括TI、Philips和Intel等公司。优良的性能和准确的市场定位极大地丰富了ARM资源,加速了基于ARM核的、面向各种应用系统芯片的开发应用,使ARM技术获得了更广泛的应用,确立了ARM技术的市场领先地位。ARM在高性能嵌入式应用领域获得了巨大的成功,已在32位嵌入式应用中稳居世界第一。在2002年,基于ARM核的芯片占据了整个32位、64位嵌入式微处理器市场的79.5%,全世界已使用了20多亿个ARM核。如今,ARM公司已经成为业界的龙头老大,“每个人的口袋中都装着ARM”是毫不夸张的,因为几乎所有的手机、移动设备、PDA都是用基于ARM核的系统芯片开发的。为了顺应当今世界技术革新的潮流,了解、学习和掌握高性能嵌入式技术,就必然要学习以32位ARM微处理器为核心的嵌入式开发技术及其应用开发环境和平台。
对IT产业发展规律进行总结发现:如果说过去20年PC机的广泛应用是集成电路和IT相关技术发展的驱动器并且极大地促进了IT相关技术发展,那么未来几十年除了PC技术要继续高速发展之外,主要驱动器应该是与Internet相结合的、可移动的(mobile)、便携的(portable)、实时嵌入式Internet的信息处理设备,即进入了后PC(Post - PC)时代。目前嵌入式Internet还仅局限于移动商务、智能家居(家电上网)、工业控制和智能设备的应用等方面,随着相关应用技术的发展,嵌入式技术必将与许多实际应用领域相结合,以难以想像的速度发展。这必然会极大地拓展嵌入式应用的广度和深度,体现嵌入式系统与实际应用密切结合的价值。
当代通用计算机工业是Wintel(Microsoft和Intel公司20世纪90年代初建立的联盟)垄断的工业。随着信息技术和网络技术的高速发展,嵌入式技术的广泛应用,使得这种垄断在后PC时代不再存在。嵌人式系统正是非PC设备的主体。互联网技术在世界范围的扩展以及中国通信事业的高速发展,为我国开发嵌入式产品造就了巨大的市场。与实际应用密切结合且技术高度分散的嵌入式技术,为我国IT技术的发展提供了难得的机遇。加快嵌入式技术的开发应用,掌握嵌入式开发核心技术,对于IT技术并不发达的中国是非常重要的。
嵌入式系统教学现状和32位嵌入式系统教学体系的建设
发展嵌入式技术,人才是关键。培养和培训相关人才,一方面,要在高校中加强嵌入式系统教学,这是人才的源头;另一方面,有一定实际项目开发经验的工程技术人员也需要加强嵌入式开发技术的培训。目前大学生就业难,而许多单位又招聘不到合适的开发人员,国内教育与人才需求之间存在不相适应的严重矛盾。虽然产生这一矛盾的原因很多,但就目前工科教育而言,存在重知识传授而轻能力与素质培养,重理论讲述而轻实践环节训练,重共性教育而轻个性发展,重对传统的继承而轻对现状的突破和创新等众多问题。这些问题反映在高校相关课程的教学体系设置中,就是可以提高自主开发能力的训练条件不具备,没有规范性的工程实际训练课程,已开设的相关课程教学内容陈旧,无法满足日新月异的新技术变革的需要,而且广度有限,深度不够,反映在实践教学过程中,就是没有一流的、与实际工程应用密切结合的实验教学设施以及相关实践性课程内容设计,使得高校培养的人才创新意识薄弱,实践能力不强,与实际工程应用需求严重脱节,学生发展后劲不足。这些原因可能是当前工科人才培养不能满足实际工程需求的一个重要因素。因此,用人单位不得不承担繁重的工程应用再教育的任务,这严重制约了我国相关技术的发展。
就我国大部分高校目前的嵌入式系统教学而言,整体仍然停留在20世纪80年代初发展起来的以8位51单片机为核心的教学水平上。总结近20多年来我国以单片机为核心的嵌入式系统教学情况,虽然它极大地促进了中国IT技术的发展,但是由于受传统教学体系的影响以及我国高等教育条件的限制,目前教学内容设置、教学方法、教学手段、教材编写体系与这门课程以实际应用为主的基本特征严重脱节。学生学完这门课程后,只能进行一般的、基于指令基础上的简单编程,而不能进行基本的应用系统设计。在此基础上要想完成具有较大规模的应用程序设计是有一定难度的,要独立进行一般的开发工作就更加有难度。学生进入技术开发岗位后,基本上要进行相当长一段时间的实际培训,才能基本进入开发流程;要独立承担项目,还需要更长一段时间。
以32位ARM为核心的嵌入式技术日益成为高性能嵌入式技术应用的基础,面向实际工程应用、以ARM为核心的嵌入式技术培训课程也日益受到工程技术人员的欢迎,正说明了在高校建立一个新的、基于ARM技术的嵌入式系统教学课程体系的必要性和迫切性,这可以从源头上解决嵌入式技术发展对人才的需求问题。
当然,与传统的以8位51单片机为核心的开发应用相比,ARM微处理器的性能和处理能力遥遥领先,应用也日益广泛,但与之相应地,基于ARM的嵌入式系统软、硬件开发的复杂度和难度也急剧加大。要建立一个新的、以ARM技术为核心的嵌入式系统开发与应用的教学课程体系,就需要总结以往以51单片机为核心的嵌入式系统教学经验,同时也要与ARM技术的自身特点以及国内实际的教育基础和产业发展的具体情况密切结合:既要考虑大大提高目前我国嵌入式系统教学的水平,又不能脱离现在的教学实际,既要加强嵌入式系统基础教育,又要面向实际工程应用,提升嵌入式系统教学的实用性和工程性,将比较复杂的嵌入式模块综合开发的例程、嵌入式操作系统移植等内容写入教材中。
本系列教程和相关教学实验平台
要建立基于32位ARM技术的嵌入式系统教学体系,迫切需要相应的配套教材,这是教学体系建设的基础。目前,国内尚缺少适用的教材。
作者是国内最早翻译ARMbible级的《ARMSoC体系结构》一书的译者之一,并从事基于ARM技术的相关教学及科研工作多年,与ARM公司、基于ARM核的芯片厂商以及对ARM感兴趣的读者建立了广泛的联系,他们给我提供了大量的技术信息。许多读者建议将基于ARM的嵌入式技术写进教科书中,使得基于ARM的嵌入式技术走进教室,走进实验室,以提升我国嵌入式技术开发的整体水平。这些建议使我萌发了编写本套《嵌入式系统开发与应用系列教程》的念头并付诸于实践。我们按照当前高校理论教学与实验教学的分类方法,编写了本套教程,希望以此为基础形成一个系统的、基于32位ARM的理论教学与实验教学体系。
嵌入式系统开发与应用涉及软、硬件及操作系统等复杂的知识,基于ARM的嵌入式系统教学,尤其是面向实际开发应用的教学工作是一项非常复杂的系统工程。本套教程尝试性地将大量的基本嵌入式系统开发与应用的复杂例程从教学和实验角度出发写入教材中,希望基于ARM的基础嵌入式系统教学能更好地融合实际应用。本书是作者在研究生、本科生嵌入式系统教学及相关技术培训讲义的基础上完成的。
本系列教程的基本组成和内容如下:
以8位单片机(或微控制器,MCU)为核心的嵌入式系统早已广泛应用于各个领域,这些应用大多数还处于单机使用的嵌入式低层次阶段。其特点是以MCU为核心,与一些简单的传感器、监测设备、伺服控制、指示、显示设备等配合,实现一定的测量、显示、信息处理及控制等功能。即使在一些工业控制、汽车电子和智能家居等多机应用中,为了实现多个MCU构成的系统间的信息交流,通常是利用CAN、RS - 232、RS - 485等总线将MCU组网。但这种网络的应用空间有限,相关的通信协议也比较单一,并且一般孤立于广泛应用的Internet以外。目前,Internet已成为社会重要的基础信息设施,是信息流通的重要渠道。嵌入式系统必将与Internet完美融合,方便、低廉地将信息传送到世界任何一个地方。
随着嵌人式设备与Internet的广泛结合,手机、PDA、路由器、调制解调器等复杂的高端应用对嵌入式处理器的性能提出了更高的要求。虽然以8位单片机为核心的嵌入式技术不断发展,性能也不断提高,但由于其性能的局限性,已无法满足未来高性能嵌入式技术的发展需求。激烈的市场、技术竞争要求不断提高嵌入式系统的性价比,同时,也要求缩短嵌入式系统的开发周期。自从20世纪70年代初出现嵌入式系统的概念以来,嵌入式系统以其高性能、低功耗等特点高速发展。当时的嵌入式系统很多都不采用操作系统,它们只是为了实现某个控制功能,使用简单的循环控制来对外界的控制请求进行处理。随着嵌入式系统的快速发展,当应用系统越来越复杂、使用范围越来越广泛时,每增加一项新的应用功能,都可能需要从头开始设计系统软件,没有操作系统已成为其最大缺陷。但目前在8位单片机上运行嵌入式操作系统尚有一定困难,因此,以32位微处理器作为高性能嵌入式系统开发的核心已是嵌入式技术发展的必然趋势。
20世纪90年代后,嵌入式系统设计从以嵌入式微处理器/DSP为核心的“集成电路”级设计,逐渐转向“集成系统”级设计,提出了系统芯片SoC(Sytem on a Chip)的基本概念。目前,嵌入式系统已进入以SoC为核心的设计阶段,并开始逐步实用化、规范化。SoC为高性能嵌入式系统开发提供了功能丰富的硬件平台,也为实时嵌入式操作系统的广泛使用提供了硬件基础。从20世纪80年代开始,陆续出现了一些嵌入式操作系统,比较著名的有VxWorks、Windows CE、Palm、μCLinux、pSOS和μC/OS - Ⅱ等,但真正广泛使用只是近几年的事情。一方面是因为嵌入式系统软件开发复杂度增加的需求,另一方面是大量高性能、面向实际应用、集成多种系统功能的SoC芯片成为高端嵌入式应用的硬件核心,为可靠、高效、低成本地运行嵌入式操作系统提供了硬件平台。大部分嵌入式操作系统价格昂贵,而源代码开放的μC/OS - Ⅱ、μCLinux是大家比较看好的,也比较适用于教学。有关嵌入式操作系统的知识体系相对复杂,一些出版社已经出版了多种相关书籍,如果在教学、科研中比较感兴趣,请参阅相关资料。
嵌入式微处理器具有体积小、重量轻、成本低、可靠性高等优点,是嵌入式系统的核心。目前比较有影响的32位嵌入式微处理器有ARM公司的ARM、Compaq公司的Alpha、HP公司的PA - RISC、IBM公司的PowerPC、MIPS公司的MIPS和Sun公司的Sparc等。而ARM处理器具有高性能、低功耗、低成本等显著优点,已成为高性能、低功耗嵌入式微处理器的代名词,是目前32位、64位嵌入式微处理器中应用最为广泛的一个系列。
20世纪90年代初,半导体行业产业链形成设计业、制造业、封装测试业三业分离的产业分工。台积电、联电等半导体工厂崛起,一些fabless、chipless公司如雨后春笋般涌现出来。而英国先进RISC机器公司(Advanced RISC Machines,简称ARM公司)作为fabless、chipless这一生产模式最为成功的典范,既不生产芯片,也不销售芯片,而是设计出高效的IP内核,授权给各半导体公司使用;半导体公司在ARM技术的基础上,根据自己公司的产品定位,添加自己的设计并推出芯片产品,最后由OEM客户采用这些芯片来构建基于ARM技术的最终应用系统产品。经过10多年的发展,ARM公司已成为业界领先的IP供应商。
回顾ARM技术的发展历程,在ARM7体系结构(体系结构版本v3)刚被广泛接受和使用时,嵌入式微处理器的市场仍然大都由8位、16位处理器占领。然而,这些产品却不能满足当时移动电话、调制解调器等高端应用对处理器性能的要求。这些高端产品需要32位RISC处理器的性能和更优于16位CISC处理器的代码密度,这就要求以更低的成本取得更好的性能和更优的代码密度。为了满足这种发展需求,ARM体系结构增加了T变种,开发了一种新的指令体系,即16位Thumb指令集。Thumb技术是ARM技术的一大特色。ARM公司发布的ARM7TDMIT(体系结构版本v4T)是第一个支持Thumb指令集的微处理eS,其工作模式可以方便地切换到Thumb状态。在该状态下运行的指令集是16位Thumb指令集,这在当时的16位系统与现在需要的32位系统之间搭起了一座桥梁。性能更优而不需要付出额外代价的ARM,为在当时使用8位或16位处理器,却一直在寻找更优性能处理器的用户,提供了解决方案,也极大地推动了ARM技术的发展。16位处理器一直没有像人们预期的那样发展起来的原因很复杂,由于32位ARM微处理器提供了低于一般16位微处理器的价格而高于一般16位微处理器的性能,使得高端嵌入式应用可以完全跨越16位而直接进入32位应用领域,这也许是原因之一。
ARM微处理器得到了众多半导体厂家和整机厂商的大力支持,全球已有100多家IT公司在采用ARM技术,20家最大的半导体厂商中有19家是ARM的用户,包括TI、Philips和Intel等公司。优良的性能和准确的市场定位极大地丰富了ARM资源,加速了基于ARM核的、面向各种应用系统芯片的开发应用,使ARM技术获得了更广泛的应用,确立了ARM技术的市场领先地位。ARM在高性能嵌入式应用领域获得了巨大的成功,已在32位嵌入式应用中稳居世界第一。在2002年,基于ARM核的芯片占据了整个32位、64位嵌入式微处理器市场的79.5%,全世界已使用了20多亿个ARM核。如今,ARM公司已经成为业界的龙头老大,“每个人的口袋中都装着ARM”是毫不夸张的,因为几乎所有的手机、移动设备、PDA都是用基于ARM核的系统芯片开发的。为了顺应当今世界技术革新的潮流,了解、学习和掌握高性能嵌入式技术,就必然要学习以32位ARM微处理器为核心的嵌入式开发技术及其应用开发环境和平台。
对IT产业发展规律进行总结发现:如果说过去20年PC机的广泛应用是集成电路和IT相关技术发展的驱动器并且极大地促进了IT相关技术发展,那么未来几十年除了PC技术要继续高速发展之外,主要驱动器应该是与Internet相结合的、可移动的(mobile)、便携的(portable)、实时嵌入式Internet的信息处理设备,即进入了后PC(Post - PC)时代。目前嵌入式Internet还仅局限于移动商务、智能家居(家电上网)、工业控制和智能设备的应用等方面,随着相关应用技术的发展,嵌入式技术必将与许多实际应用领域相结合,以难以想像的速度发展。这必然会极大地拓展嵌入式应用的广度和深度,体现嵌入式系统与实际应用密切结合的价值。
当代通用计算机工业是Wintel(Microsoft和Intel公司20世纪90年代初建立的联盟)垄断的工业。随着信息技术和网络技术的高速发展,嵌入式技术的广泛应用,使得这种垄断在后PC时代不再存在。嵌人式系统正是非PC设备的主体。互联网技术在世界范围的扩展以及中国通信事业的高速发展,为我国开发嵌入式产品造就了巨大的市场。与实际应用密切结合且技术高度分散的嵌入式技术,为我国IT技术的发展提供了难得的机遇。加快嵌入式技术的开发应用,掌握嵌入式开发核心技术,对于IT技术并不发达的中国是非常重要的。
嵌入式系统教学现状和32位嵌入式系统教学体系的建设
发展嵌入式技术,人才是关键。培养和培训相关人才,一方面,要在高校中加强嵌入式系统教学,这是人才的源头;另一方面,有一定实际项目开发经验的工程技术人员也需要加强嵌入式开发技术的培训。目前大学生就业难,而许多单位又招聘不到合适的开发人员,国内教育与人才需求之间存在不相适应的严重矛盾。虽然产生这一矛盾的原因很多,但就目前工科教育而言,存在重知识传授而轻能力与素质培养,重理论讲述而轻实践环节训练,重共性教育而轻个性发展,重对传统的继承而轻对现状的突破和创新等众多问题。这些问题反映在高校相关课程的教学体系设置中,就是可以提高自主开发能力的训练条件不具备,没有规范性的工程实际训练课程,已开设的相关课程教学内容陈旧,无法满足日新月异的新技术变革的需要,而且广度有限,深度不够,反映在实践教学过程中,就是没有一流的、与实际工程应用密切结合的实验教学设施以及相关实践性课程内容设计,使得高校培养的人才创新意识薄弱,实践能力不强,与实际工程应用需求严重脱节,学生发展后劲不足。这些原因可能是当前工科人才培养不能满足实际工程需求的一个重要因素。因此,用人单位不得不承担繁重的工程应用再教育的任务,这严重制约了我国相关技术的发展。
就我国大部分高校目前的嵌入式系统教学而言,整体仍然停留在20世纪80年代初发展起来的以8位51单片机为核心的教学水平上。总结近20多年来我国以单片机为核心的嵌入式系统教学情况,虽然它极大地促进了中国IT技术的发展,但是由于受传统教学体系的影响以及我国高等教育条件的限制,目前教学内容设置、教学方法、教学手段、教材编写体系与这门课程以实际应用为主的基本特征严重脱节。学生学完这门课程后,只能进行一般的、基于指令基础上的简单编程,而不能进行基本的应用系统设计。在此基础上要想完成具有较大规模的应用程序设计是有一定难度的,要独立进行一般的开发工作就更加有难度。学生进入技术开发岗位后,基本上要进行相当长一段时间的实际培训,才能基本进入开发流程;要独立承担项目,还需要更长一段时间。
以32位ARM为核心的嵌入式技术日益成为高性能嵌入式技术应用的基础,面向实际工程应用、以ARM为核心的嵌入式技术培训课程也日益受到工程技术人员的欢迎,正说明了在高校建立一个新的、基于ARM技术的嵌入式系统教学课程体系的必要性和迫切性,这可以从源头上解决嵌入式技术发展对人才的需求问题。
当然,与传统的以8位51单片机为核心的开发应用相比,ARM微处理器的性能和处理能力遥遥领先,应用也日益广泛,但与之相应地,基于ARM的嵌入式系统软、硬件开发的复杂度和难度也急剧加大。要建立一个新的、以ARM技术为核心的嵌入式系统开发与应用的教学课程体系,就需要总结以往以51单片机为核心的嵌入式系统教学经验,同时也要与ARM技术的自身特点以及国内实际的教育基础和产业发展的具体情况密切结合:既要考虑大大提高目前我国嵌入式系统教学的水平,又不能脱离现在的教学实际,既要加强嵌入式系统基础教育,又要面向实际工程应用,提升嵌入式系统教学的实用性和工程性,将比较复杂的嵌入式模块综合开发的例程、嵌入式操作系统移植等内容写入教材中。
本系列教程和相关教学实验平台
要建立基于32位ARM技术的嵌入式系统教学体系,迫切需要相应的配套教材,这是教学体系建设的基础。目前,国内尚缺少适用的教材。
作者是国内最早翻译ARMbible级的《ARMSoC体系结构》一书的译者之一,并从事基于ARM技术的相关教学及科研工作多年,与ARM公司、基于ARM核的芯片厂商以及对ARM感兴趣的读者建立了广泛的联系,他们给我提供了大量的技术信息。许多读者建议将基于ARM的嵌入式技术写进教科书中,使得基于ARM的嵌入式技术走进教室,走进实验室,以提升我国嵌入式技术开发的整体水平。这些建议使我萌发了编写本套《嵌入式系统开发与应用系列教程》的念头并付诸于实践。我们按照当前高校理论教学与实验教学的分类方法,编写了本套教程,希望以此为基础形成一个系统的、基于32位ARM的理论教学与实验教学体系。
嵌入式系统开发与应用涉及软、硬件及操作系统等复杂的知识,基于ARM的嵌入式系统教学,尤其是面向实际开发应用的教学工作是一项非常复杂的系统工程。本套教程尝试性地将大量的基本嵌入式系统开发与应用的复杂例程从教学和实验角度出发写入教材中,希望基于ARM的基础嵌入式系统教学能更好地融合实际应用。本书是作者在研究生、本科生嵌入式系统教学及相关技术培训讲义的基础上完成的。
本系列教程的基本组成和内容如下:







点击看大图


加载中...

