购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

嵌入式计算机系统简称为嵌入式系统,其概念最初源于传统测控系统对计算机的需求。随着以微处理器(MPU)为内核的微控制器(MCU)制造技术的不断进步,计算机领域在通用计算机系统与嵌入式计算机系统这两大分支分别得以发展。通用计算机已经在科学计算、通信、日常生活等各个领域产生了重要的影响。在后PC时代,嵌入式系统的广阔应用是计算机发展的重要特征。一般来说,嵌入式系统的应用范围可以粗略分为两大类:一类是电子系统的智能化(如工业控制、汽车电子、数据采集、测控系统、家用电器、现代农业、传感网应用等),这类应用也被称为微控制器领域;另一类是计算机应用的延伸(如平板电脑、手机、电子图书等),这类应用也被称为应用处理器领域。在ARM产品系列中,ARM Cortex-M系列与ARM Cortex-R系列适用于电子系统的智能化类应用,即微控制器领域;ARM Cortex-A系列适用于计算机应用的延伸,即应用处理器领域。不论如何分类,嵌入式系统的技术基础是不变的,即要完成一个嵌入式系统产品的设计,需要有硬件、软件及行业领域相关知识。但是,随着嵌入式系统中软件规模日益增大,对嵌入式底层驱动软件的封装提出了更高的要求,可复用性与可移植性受到特别的关注,嵌入式软、硬件构件化开发方法逐步被业界所重视。

本书读者对象

本书以嵌入式硬件构件与底层软件构件设计为主线,按照嵌入式软件工程的要求,以飞思卡尔(Freescale)的Kinetis系列微控制器(ARM Cortex-M4 内核)中的K60 为蓝本阐述嵌入式系统的软件、硬件设计及基本开发方法。包含通用知识、底层驱动构件基本思想、底层驱动构件源程序、底层驱动构件测试与应用实例等。主要面向高年级本科生或研究生的教学。为适合于教学及篇幅所限,注意以下几点:①从应用角度阐述嵌入式系统通用基础知识,并分散到相应章节中;②本书不阐述汇编指令,一开始就使用C语言编程;③不详细介绍芯片内部寄存器,而是从编程方法角度给出编程要点及底层驱动构件封装与应用方法;④为方便教学与实际应用,书中列出所有底层驱动构件对外接口函数原型;⑤给出所有底层驱动构件的测试用例;⑥提供网上光盘,给出丰富的教学与开发资料,也扩展了纸质版的内容。与本书随后出版的还有我们撰写的另外两本书,一本是《Kinetis微控制器体系结构与开发实践——基于ARMCortex-M4 内核》,给出ARM Cortex-M4 的汇编指令分析、Kinetis微控制器的内部寄存器、底层驱动构件封装原理的技术细节及应用注意点等,主要面向工程师,也可供教师及研究生参考,该书不再阐述嵌入式系统的通用基础知识。另一本是《嵌入式实时操作系统——MQX应用开发技术》,阐述飞思卡尔的开源嵌入式实时操作系统MQX的应用方法,该书也以Kinetis微控制器为蓝本进行撰写。这三本书形成一个ARM Cortex-M4、Kinetis微控制器、MQX的体系。教育部支持的高校科技竞赛之一“全国大学生飞思卡尔杯智能汽车竞赛”,从 2012 年开始可以使用Kinetis微控制器,一些学校也以此为蓝本进行嵌入式系统及应用教学,本书的主要目的是配合这两项工作。一些学校举行智能车比赛所使用的是K10 芯片,它是K60 芯片的子集,K10 芯片没有USB、以太网等较为复杂的模块。

本书基本思想

从 1991 年开始进行单片机与嵌入式系统应用开发至今,作者从事该方向研究与教学工作已有 20 多年时间。其中 1991—1999 年期间,使用MCS-51 系列MCU。2000 年以来,陆续以飞思卡尔(2004 年以前是摩托罗拉半导体部)的HC08/S08、S12/S12X、ColdFire等系列MCU为蓝本先后写了一些嵌入式应用技术入门方面的书,得到了许多读者的肯定,深受感动。在写书方面,多年来一直在探索如何能够使读者不误入歧途,如何能够快速入门,如何能够规范编程,如何能够由浅入深、循序渐进,如何能够使读者打好嵌入式硬件与软件基础。为此从以下几点把握写作。

(1)把与芯片无关的通用知识分离出来,从涉及底层编程角度对基本原理进行简明扼要的阐述,分别放入相应章节的前面或网上光盘中。这些知识主要包括通用I/O、串行通信、键盘编码原理、LED扫描原理、SPI、PWM、USB、I2C、CAN、A/D、D/A、嵌入式以太网等,并在各书中基本保持不变。经过多年不断修改完善,可把通用部分斟酌得更好一些。也使得 8 位、16 位、32 位的书风格保持一致。新的芯片出来后,书的修改只要更新与芯片相关的部分即可。

(2)与硬件相关的部分采用了硬件构件思想,制定了一些基本规范,对底层驱动进行构件化封装,既提高了可复用性与可移植性,又使程序结构更加清晰,从而让初学者可以“先使用、后理解”。

(3)不论是 8 位、16 位、32 位,也不论是哪个芯片,从编程角度来看,把与硬件相关的共性和与硬件无关的共性分别抽象出来,力求做到:硬件相关部分风格一致,硬件无关部分程序一致。这样便于融会贯通,不再纠结于芯片位数、操作系统等问题。

从 2010 年 6 月拿到飞思卡尔Kinetis系列参考手册Rev.0 开始,至今已近一年半时间,参考手册也升级到Rev.6。期间,苏州大学飞思卡尔嵌入式与物联网研发团队学习消化了 1 800 多页的参考手册;制作了K60 核心板、Kinetis系列写入器;为了与RTOS无缝衔接而修订原来的底层驱动构件规范;按统一规范逐个模块编写底层驱动构件,并设计测试用例;与SD-ExtBoard-D型扩展板对接并编写实验教学程序;在实时操作系统MQX下编写用例,以检验底层驱动构件的无缝衔接。本书就是在这些工作的基础上,结合多年来撰写嵌入式书籍的经验写成的。

关于飞思卡尔微控制器

飞思卡尔是全球最大的半导体公司之一,在微控制器领域长期居全球市场领先地位,以高可靠性获得业界的一致赞誉。该公司的微控制器产品系列齐全,由不同位数(如 8 位、16 位、32位等)、不同封装形式(如DIP、SOIC、QFP、LQFP、BGA等)、不同温度范围(0~70℃、−40~85℃、−40~105℃、−40~125℃等)、所含模块不同等构成了庞大的产品系列。飞思卡尔的S08(8 位)、S12/S12X(16 位)、ColdFire(32 位)、ARM Cortex(32 位)等系列MCU,广泛地应用于汽车电子、消费电子、工业控制、网络和无线市场等嵌入式系统各个领域。系列齐全的微控制器产品,为嵌入式系统各种应用提供了选择与解决方案,使得用户可以各取所需。不论是电子系统智能化还是计算机应用延伸的嵌入式应用设计,无论需要怎样的系统功能和集成度,总能从飞思卡尔庞大产品系列中选取一款合适的芯片进行应用开发。这正是嵌入式系统产品设计者所期望的,也节省了嵌入式学习者的时间,可以加快开发进度,提高开发质量。

本书特点

2009 年以来,作者撰写的《基于 32 位ColdFire构建嵌入式系统》、《嵌入式技术基础与实践(第 2 版)》与《嵌入式系统设计实战——基于飞思卡尔S12X微控制器》等书,系统阐述和应用了嵌入式构件开发思想,本书秉承这些理念,按照“通用知识—芯片编程结构概要—基本编程方法—底层驱动构件封装—应用方法与举例”的线条,逐步阐述电子系统智能化嵌入式应用的软件与硬件设计。

(1)把握通用知识与芯片相关知识之间的平衡。书中对于嵌入式“通用知识”的基本原理,以应用为立足点,进行语言简洁、逻辑清晰的阐述,同时注意与芯片相关知识之间的衔接,使读者在更好地理解基本原理的基础上,理解芯片应用的设计,反过来又加深对通用知识的理解。

(2)把握硬件与软件的关系。嵌入式系统是软件与硬件的综合体,嵌入式系统设计是一个软件、硬件协同设计的工程,不能像通用计算机那样把软件、硬件完全分开。特别是对电子系统智能化嵌入式应用来说,没有对硬件的理解就不可能写好嵌入式软件,同样没有对软件的理解也不可能设计好嵌入式硬件。因此,本书注重把握硬件知识与软件知识之间的关系。

(3)对底层驱动进行构件化封装。书中对每个模块均给出根据嵌入式软件工程基本原则并按照构件化封装要求编制底层驱动程序,同时给出详细、规范的注释及对外接口,为实际应用提供底层构件,方便移植与复用,可以为读者进行实际项目开发节省大量时间。

(4)设计合理的测试用例。书中所有源程序均经测试通过,并保留测试用例在本书的网上光盘中,避免了因例程的书写或固有错误给读者带来烦恼。这些测试用例,也将为读者验证与理解带来方便。

(5)网上光盘提供了所有模块完整的底层驱动构件化封装程序与测试用例(包括CW-IDE下的程序、IAR-IDE下的程序),还提供了PC的C#源程序。网上光盘中还提供了分章阅读资料(分章英文资料及中文参考翻译)、CW10.1 简明使用方法、IAR简明使用方法、写入器驱动与使用方法、部分工具软件、有关硬件原理图及其他技术资料。网上光盘的版本将会适时更新。

(6)提供硬件核心板、写入调试器,方便读者进行实践与应用。同时提供了核心板与苏州大学飞思卡尔嵌入式中心设计制作的SD-ExtBoard-D型扩展板的对接,以满足教学实验需要。

本书主要内容

本书以飞思卡尔的ARM Cortex-M4 内核的Kinetis系列微控制器为蓝本阐述嵌入式系统的软件与硬件设计。全书共 15 章,其中第1章为概述,简要阐述嵌入式系统的知识体系、学习误区、学习建议和基于硬件构件的嵌入式系统开发方法。第2章给出ARM Cortex-M4 简介及K60 硬件最小系统。第3章给出第一个样例程序及开发环境下的工程组织方法,完成第一个K60 工程的入门任务。第4章阐述串行通信接口UART,并给出第一个带中断的实例。第 1~4 章囊括了学习一个新MCU完整要素的入门环节。第 5~14 章分别给出GPIO的应用实例(键盘、LED与LCD)、定时器、A/D、D/A、比较器、TSI、SPI、I2C、I2S、Flash、CAN、SDHC、USB、以太网及K60其他模块等。第 15 章给出进一步学习指导。

本书提供了网上光盘,内含所有底层驱动构件源程序、测试实例、辅助阅读材料、教学课件、相关芯片资料及常用工具,下载网址为http://sumcu.suda.edu.cn,读者也可以登录华信教育资源网(www.hxedu.com.cn)免费注册后下载。为了更好地服务读者,作者为本书开通了QQ(1601873607,昵称为MQXandKinetis),同时也开通了新浪微博,名称为MQXandKinetis(http://weibo.com/u/2579021437),欢迎广大读者访问交流,并提出宝贵建议。

作者分工与致谢

本书由王宜怀负责编制提纲和统稿工作,并撰写第 1~6 章、第 15 章。吴瑾撰写第 7~10 章、蒋银珍撰写第 11~14 章。苏州大学嵌入式系统与物联网方向研究生朱乐乐、苏勇、石晶、姚丹丹、李翠霞、周杰、秦保波、陈爱兵等协助书稿整理及程序调试工作,他们卓有成效的工作,使本书更加实用。飞思卡尔半导体有限公司的Andy Mastronardi先生、殷刚先生、马莉女士一直关心支持苏州大学飞思卡尔嵌入式中心的建设,为本书的撰写提供了硬件及软件资料,并提出了许多宝贵建议。飞思卡尔半导体有限公司的许多技术人员提供了技术支持。电子工业出版社的田宏峰编辑为本书的出版做了大量细致的工作,在此一并表示诚挚的谢意。

鉴于作者水平有限,书中难免存在不足和错误之处,恳望读者提出宝贵意见和建议,以便再版时改进。

王宜怀
2012 年 2 月于苏州大学 92XmvG2vmllEmNIk9R1sf1HPb7dWEmwOVbTuIVpWQ8Lxjr6sWgnANNAwLZ6z5GAN

点击中间区域
呼出菜单
上一章
目录
下一章
×