嵌入式技术基础与实践
这是一本嵌入式系统软件与硬件设计的入门书。主要面向中小型嵌入式应用系统,定位为嵌入式应用技术基础,目的是引导读者如何进入嵌入式软件与硬件设计的大门。本书是在清华大学出版社2005年7月版《嵌入式应用技术基础教程》的基础上,根据读者反馈建议,结合近年来的开发实践与教学体会,经过进一步充实提高写成。
嵌入式系统的入门方法:
嵌入式系统概念已经比较普及,其应用前景也得到普遍认可,许多人希望学习嵌入式系统却不知道从哪里入门。有些人参加过几次嵌入式系统类培训班,或者看了几本嵌入式系统方面的书籍,也还是不会开发一个甚至是很小的嵌入式产品。于是提出这样的问题:嵌入式系统涵盖哪些内容?如何能够在短时间内且规范地进行嵌入式系统的入门?
先不急于回答这个问题,我先讲一个小故事。一个浙江小伙子于1996年到迪拜做生意,迪拜的官方语言是阿拉伯语,但英语与乌尔都语等也被广泛使用。这个浙江小伙子不懂这几门语言,但三年时间过后,他就可以熟练地使用阿拉伯语、英语与乌尔都语进行贸易。到2007年他已经在迪拜开了20多家酒店。就语言现象,他是实际环境中根据需要在实践中学习与应用。我想再说一下我学习嵌入式系统的经历,希望对读者有所启发。1990年我开始接触单片机,那时一种叫Z-80的单片机在我国比较流行,几乎所有的单片机资料就是Z-80。但我没有选择Z-80,而是选择了MCS-51单片机,在接下来的十多年时间里,MCS-51单片机在我国的单片机教学中几乎是一统天下。我是边学,边进行应用实践,1991年至1999年,我们用MCS-51完成了近十个应用项目。2000年,我开始使用Motorola的HC08系列单片机进行教学与开发,近年来又使用Freescale公司的HCS08及HCS12系列单片机,也是边学边进行应用实践,2000年至今,我们的团队已经使用HC08、HCS08及HCS12完成了十多个应用项目。通过这个过程,我们体会到,与语言现象类似,嵌入式系统是一个应用实践性极强的研究方向,边学边进行应用实践是极其重要的。不进行应用实践,不可能学好单片机与嵌入式系统。
2001年开始,嵌入式系统一词在我国开始流行,前期的单片机应用系统就是嵌入式系统的一种主要形式。根据时间与理解的不同,嵌入式系统的定义也不同。但从词汇含义上理解,嵌入式系统概念比单片机概念面广,含义也更深刻,但主要基础是单片机。许多高校逐渐把单片机原理课程"发展成"嵌入式系统应用技术课程,有的已经形成系列课程,扩大其涵盖面。与此同时,随着单片机设计与制造技术的发展,Flash存储器技术的引入给实验与调试手段带来了根本的变化,存储空间增大为实时操作系统RTOS提供了机会,C/C++编译对软件工程实践提出了要求,8位、16位、32位单片机形成系列丰富了嵌入式系统应用内容。嵌入式系统的教学内容、手段与方法发生了根本改变。
现在来回答开场白中提出的问题:
第一,嵌入式系统涵盖哪些内容?首先是嵌入式系统的软件和硬件基础,这是本书的目标。嵌入式系统与硬件紧密相关,没有对硬件的理解就不可能写好嵌入式软件,同样没有对软件的理解也不可能设计好嵌入式硬件。因此嵌入式系统基础应该包含软件与硬件两个方面。其次是理解与应用实时操作系统并在实时操作系统进行嵌入式软件的开发。再次是嵌入式测试与嵌入式系统软件工程等知识。另外,部分工程师从SOC角度学习嵌入式系统。
第二,如何能够在短时间内且规范地进行嵌入式系统的入门?嵌入式系统源于计算机在测量与控制系统(简称测控系统)中的应用,因此现代测控系统是典型嵌入式系统。几乎所有嵌入式系统都可以简化成一个测控系统模型。进行嵌入式系统的入门以测控系统模型为目标对象是合适的,其主要内容有通用输入/输出、键盘、液晶显示(LCD)、数码管(LED)、数/模与模/数转换(A/D与D/A)、串行通信接口(SCI)、串行外设接口(SPI)、集成电路互联总线(IIC或I2C)、定时器、PWM等。还可以包括USB、CAN、嵌入式以太网及各种具体应用等。这是嵌入式系统的软件和硬件基础中的主要内容。至于实时操作系统、嵌入式测试与嵌入式系统软件工程等知识必须在此基础上进行。因此,选择合适的入门书、购买必要的硬件材料,进行各个模块或基本要素的规范编程实践,是进行嵌入式系统入门的重要途径。
Freesacle HC08/S08/RS08单片机的主要特点:
学习嵌入式应用一般需要选择一个合适的单片机型号作为入门机型。这是由嵌入式系统本身软件与硬件相结合的特点决定的。Freescale半导体公司是Motorola公司半导体部于2004年独立上市的公司。多年来Motorola的单片机在国际市场上的占有率位居第一,该公司的单片机,种类齐全,应用广泛,具有较大的适应性。该公司从2000年前后开始推出新一代HC08/S08单片机,目前已经发行100多个品种。正是由于这个原因,选择Freescale 的HC08/S08单片机作为学习嵌入式应用的入门机型,为今后实际应用的扩展留有更大的空间。利用单片机开发嵌入式产品是从众多的单片机型号中选择一种适合某一项目的具体单片机型号,而不是所有的项目都使用一个单片机型号进行存储器及外围I/O的扩充,那样会降低系统的可靠性。
目前,Freescale的08系列单片机主要有HC08、HCS08和RS08三种类型。HC08是08系列中最早推出的产品,种类也比较多,针对不同的场合的应用都可以选到合适的型号。HCS08是2004年左右推出的8位MCU,资源丰富,功耗低,性价比很高,是08系列单片机的发展趋势。HC08与HCS08的最大区别是调试方法不同与最高频率的变化。RS08是HCS08架构的简化版本,于2006年左右推出,其内核体积比传统的内核小30%,带有精简指令集,满足用户对体积更小、更加经济高效的解决方案的需求。RAM及Flash空间大小差异、封装形式不同、温度范围不同、频率不同、I/O资源差异等形成了不同型号,为嵌入式应用产品的开发提供了丰富的选型。同时Freescale出品的16位、32位单片机,也形成比较完备的应用系列,以Freescale的08系列MCU作为嵌入式入门,对后续学习与开发具有良好的连贯性。
本书特点:
(1)让读者容易看懂、快速上手实践,符合循序渐进、由浅入深的教学原则。在内容的先后次序与组织形式、知识点安排等方面进行了细致的设计,将实例设计成最能体现基本知识点的形式,使读者尽快入门。在内容安排上,把容易掌握的内容提前,部分较难理解的内容先用后学。如果作为教学,课时较少的情况可以把书中带星号(*)部分内容作为讲座。
(2)书中及配套的教学资料提供了大量按软件工程规范编写的实例。提供的所有源程序,不仅给出了详细规范的中文注释,而且汇编子程序与C语言子函数的设计尽可能满足"面向硬件对象封装"的要求,按照嵌入式软件工程面向"硬件对象"的规范进行定义。这些都为实际应用提供了良好的基础。同时,也可以使读者一开始就得到规范的编程指导。
(3)体现理论与实践的平衡、通用与具体对象的平衡。在原理阐述方面,主要为应用作基础,立足点在应用。为了体现"通用",书中把一些基本原理,按照"芯片无关"的方式进行阐述或编程,然后再结合具体芯片进行分析,使读者更好地理解基本原理。
(4)以应用为主线,按照教学特点展开。在内容阐述上,突出如何应用、如何设计与编程,从应用角度理解基本原理。对于一时难于理解的细节,可以从整体上把握,直接使用书中给出的子程序,通过一些应用后逐步理解,主要目的是掌握嵌入式应用的设计方法。
(5)所有源程序经过初步调试验证。为了使读者能在较短的时间内掌握嵌入式编程基本方法,对于每个基本模块都提供了编程实例,所有实例均为调试通过后移入书中或教学资料中,避免了因例程的书写或固有错误给初学者带来烦恼。作者在多年的教学与科研实践中深深体会到,一款新的MCU,也许由于作者给出的编程实例未经验证而写入书本,其中的每一点错误都可能会给初学者带来很大的学习障碍。
(6)结合实际科研开发,增强实用性。书中除了结合基本内容给出实例程序外,还结合实际科研开发,给出了一些实际应用实例,希望给进一步提高的读者获得借鉴。
(7)将技术难点通过直观的方式体现。所有的实例均设计成可观察运行结果的方式,在未介绍串行通信编程之前的章节,运行结果采用指示灯方式;介绍串行通信编程之后,将运行结果通过串行口发向PC机,在PC机相应的程序界面上显示。
如何寻找本书的软件与硬件:
本书配套的开发软件、硬件资料、实例源程序、教学课件、实验指导、芯片资料等可从http://www.sumcu.cn、http://sumcu.suda.edu.cn或http://www.tup. tsinghua.edu.cn下载,相关的硬件环境信息及咨询方式也可从该网站获得。与本书配套的实验指导书所附光盘也含有上述资料。
作者分工与致谢:
本书由王宜怀负责编制提纲和统稿工作,并撰写第1、7~13章,刘晓升撰写第2~6章。曹金华撰写第14~15章及附录,第16章由刘雪兰、曹金华,第17章由汤龙梅、曹金华提供初稿。
Freescale半导体公司一直关心支持苏州大学Freescale嵌入式系统实验室的建设,为本书的撰写提出了硬件及软件资料,在此表示诚挚的谢意。苏州大学计算机学院嵌入式应用方向研究生张琴、荐红梅、曹振华、葛强、祝叶、姚建东、屯娜等协助书稿整理及程序调试工作,在此一并致谢。
鉴于作者水平有限,书中难免存在不足和错误之处,恳望读者提出宝贵意见和建议,以便再版时改进。
- IC设计Q2不同调 一线落难小厂出头(04-22)
- SMSC推出业界首款可编程USB电源控制器(08-12)
- USB3.0商机 明年爆发(09-26)
- 赛普拉斯无线USB方案可使无线鼠标电池寿命长达3年(07-30)
- 车载抬头显示技术引发争议 你怎么说?(06-02)
- 这根神奇的数据线能让手机电脑充电时间减半(07-06)