嵌入式计算机系统简称为嵌入式系统,其概念最初源于传统测控系统对计算机的需求。随着以微处理器(MPU)为内核的微控制器(MCU)制造技术的不断进步,计算机领域在通用计算机系统与嵌入式计算机系统这两大分支分别得以发展。通用计算机已经在科学计算、通信、日常生活等各个领域产生了重要影响。在后PC时代,嵌入式系统的广阔应用是计算机发展的重要特征。一般来说,嵌入式系统的应用范围可以粗略分为两大类:一类是电子系统的智能化(如工业控制、汽车电子、数据采集、测控系统、家用电器、现代农业、传感网应用等),这类应用也被称为微控制器领域。另一类是计算机应用的延伸(如平板电脑、手机、电子图书等),这类应用也被称为应用处理器领域。在ARM产品系列中,ARM CortexM系列与ARM CortexR系列适用于电子系统的智能化类应用,即微控制器领域;ARM CortexA系列适用于计算机应用的延伸,即应用处理器领域。不论如何分类,嵌入式系统的技术基础是不变的,即要完成一个嵌入式系统产品的设计,需要有硬件、软件及行业领域相关知识。但是,随着嵌入式系统中软件规模日益增大,对嵌入式底层驱动软件的封装提出了更高的要求,可复用性与可移植性受到特别的关注,嵌入式软硬件构件化开发方法逐步被业界所重视。
本书第一版的芯片是飞思卡尔HC08系列MCU,第二版的芯片是飞思卡尔S08系列MCU。本版以飞思卡尔于2012年推出的32位ARM CortexM0+Kinetis L系列MCU为蓝本阐述嵌入式应用。随着多年教学与开发的经验积累,本书以嵌入式硬件构件及底层软件构件设计为主线,基于嵌入式软件工程的思想,按照“通用知识芯片编程结构基本编程方法构件封装及实现测试实例”的线条,逐步阐述电子系统智能化嵌入式应用的软件与硬件设计。
1. 关于飞思卡尔微控制器
飞思卡尔是全球最大半导体公司之一,在微控制器领域长期居全球市场领先地位,以高可靠性获得业界的一致赞誉。该公司的微控制器产品系列齐全,由不同位数(如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或应用处理器,广泛地应用于汽车电子、消费电子、工业控制、网络、无线市场及视频等嵌入式系统各个领域。系列齐全的微控制器产品,为嵌入式系统的各种应用提供了选择与解决方案,使得用户可以各取所需。不论是电子系统智能化还是计算机应用延伸的嵌入式应用设计,无论需要怎样的系统功能和集成度,总能从飞思卡尔庞大产品系列中选取一款合适的芯片进行应用开发。这正是嵌入式系统产品设计者所期望的,也节省了嵌入式学习者的时间,可以加快开发进度,提高开发质量。
2. 本书特点
(1) 把握通用知识与芯片相关知识之间的平衡。书中对于嵌入式“通用知识”的基本原理,以应用为立足点,进行语言简洁、逻辑清晰的阐述,同时注意与芯片相关知识之间的衔接,使读者在更好地理解基本原理的基础上,理解芯片应用的设计,同时反过来,加深对通用知识的理解。
(2) 把握硬件与软件的关系。嵌入式系统是软件与硬件的综合体,嵌入式系统设计是一个软件、硬件协同设计的工程,不能像通用计算机那样,软件、硬件完全分开来看。特别是对电子系统智能化嵌入式应用来说,没有对硬件的理解就不可能写好嵌入式软件,同样没有对软件的理解也不可能设计好嵌入式硬件。因此,本书注重把握硬件知识与软件知识之间的关系。
(3) 对底层驱动进行构件化封装。书中对每个模块均给出根据嵌入式软件工程基本原则并按照构件化封装要求编制底层驱动程序,同时给出详细、规范的注释及对外接口,为实际应用提供底层构件,方便移植与复用,可以为读者进行实际项目开发节省大量时间。
(4) 设计合理的测试用例。书中所有源程序均经测试通过,并保留测试用例在本书的网上光盘中,避免了因例程的书写或固有错误给读者带来的烦恼。这些测试用例,也为读者验证与理解带来方便。
(5) 网上光盘提供了所有模块完整的底层驱动构件化封装程序与测试用例。需要使用PC的程序的测试用例,还提供了PC的C#源程序。网上光盘中还提供了阅读资料、CW10.3简明使用方法、写入器驱动与使用方法、部分工具软件、有关硬件原理图等。网上光盘的版本将会适时更新。
(6) 提供硬件核心板、写入调试器,方便读者进行实践与应用。同时提供了核心板与苏州大学飞思卡尔嵌入式中心设计制作的SDExtBoardD型扩展板的对接,以满足教学实验需要。
3. 作者分工与致谢
本书由王宜怀负责编制提纲和统稿工作,并撰写第1~6章、第14章。朱仕浪撰写第7~10章、郭芸撰写第11~13章。研究生沈忱、马旭波、蒋婷、胡宗棠、李涛、柏祥、朱锦明、姚凤、陈洪新、陈亚轩、史新峰、顾会光、钱林翰等协助书稿整理及程序调试工作,他们卓有成效的工作,使本书更加实用。飞思卡尔半导体有限公司的Andy Mastronardi先生、殷刚先生、马莉女士一直关心支持苏州大学飞思卡尔嵌入式中心的建设,为本书的撰写提供了硬件及软件资料,并提出了许多宝贵建议。飞思卡尔半导体有限公司的许多技术人员提供了技术支持。苏州华祥信息科技有限公司的蒋建辉、刘辉工程师,福建英迈软件有限公司的伊伟华工程师提出了有益的建议。清华大学出版社的魏江江先生为本书的出版付出了大量细致的工作。在此一并表示诚挚的谢意。
鉴于作者水平有限,书中难免存在不足和错误之处,恳望读者提出宝贵意见和建议,以便再版时改进。
王宜怀
2013年6月