|
序
前言
1. ARM嵌入式系统的发展趋势
由于网络与通信技术的发展,嵌入式系统在经历了近20年的发展历程后,又进入了一个新的历史发展阶段,即从普遍的低端应用进入到一个高、低端并行发展,并且不断提升低端应用技术水平的时代,其标志是近年来32位MCU的发展。
32位MCU的应用不会走8位机百花齐放、百余种型号系列齐上阵的道路,这是因为在8位机的低端应用中,嵌入对象与对象专业领域十分广泛而复杂;而当前32位MCU的高端应用则多集中在网络、通信和多媒体技术领域,32位MCU将会集中在少数厂家发展的少数型号系列上。
在嵌入式系统高端应用的发展中,曾经有众多的厂家参与,很早就有许多8位嵌入式MCU厂家实施了8位、16位和32位机的发展计划。后来,8位和32位机的技术扩展侵占了16位机的发展空间。传统电子系统智能化对8位机的需求使这些厂家将主要精力放在8位机的发展上,形成了32位机发展迟迟不前的局面。当网络、通信和多媒体信息家电业兴起后,出现了嵌入式系统高端应用的市场;而在嵌入式系统的高端应用中,进行多年技术准备的ARM公司适时地推出了32位ARM系列嵌入式微处理器,以其明显的性能优势和知识产权平台扇出的运行方式,迅速形成32位机高端应用的主流地位,以至于使不少传统嵌入式系统厂家放弃了自己的32位发展计划,转而使用ARM内核来发展自己的32位MCU。甚至在嵌入式系统发展史上做出卓越贡献的Intel公司以及将单片微型计算机发展到微控制器的PHILIPS公司,在发展32位嵌入式系统时都不另起炉灶,而是转而使用ARM公司的嵌入式系统内核来发展自己的32位MCU。
网络、通信、多媒体和信息家电时代的到来,无疑为32位嵌入式系统高端应用提供了空前巨大的发展空间;同时,也为力不从心的8位机向高端发展起到了接力作用。一般来说,嵌入式系统的高、低端应用模糊地界定为: 高端用于具有海量数据处理的网络、通信和多媒体领域,低端则用于对象系统的控制领域。然而,控制系统的网络化、智能化的发展趋势要求在这些8位机的应用中提升海量数据处理能力。当8位机无法满足这些提升要求时,便会转而求助32位机的解决办法。因此,32位机的市场需求发展由两方面所致: 一方面是高端新兴领域(网络、通信、多媒体和信息家电)的拓展;另一方面是低端控制领域应用在数据处理能力的提升要求。
后PC时代的到来以及32位嵌入式系统的高端应用吸引了大量计算机专业人士的介入,加之嵌入式系统软/硬件技术的发展,导致了嵌入式系统应用模式的巨大变化,即使嵌入式系统应用进入到一个基于软/硬件平台、集成开发环境的应用系统开发时代,并带动了SoC技术的发展。
在众多嵌入式系统厂家参与下,基于ARM系列处理器的应用技术会在众多领域取得突破性进展。Intel公司将ARM系列向更高端的嵌入式系统发展;而PHILIPS公司则在向高端嵌入式系统发展的同时,向低端的8位和16位机的高端应用延伸。Intel公司和PHILIPS公司的发展都体现了各自的特点,并充分发挥了各自的优势。因此,在32位嵌入式系统的应用中,ARM系列会形成ARM公司领军,众多厂家参与,计算机专业、电子技术专业以及对象专业人士共同推动的局面,形成未来32位嵌入式系统应用的主流趋势。这种集中分工的技术发展模式有利于嵌入式系统的快速发展。
面对这种形势,近年来,嵌入式系统业界人士掀起了广泛学习嵌入式系统理论及应用开发的热潮,相关的出版物和培训班如雨后春笋不断出现。无论是原有的嵌入式系统业界人士,还是刚进入嵌入式系统的人们,都渴望了解嵌入式系统理论,掌握嵌入式系统的应用技术。高等院校面对这种形式,也迫切需要开设相应的课程。因此,为了满足高等院校嵌入式系统教学以及社会上各种培训的需要,作者结合几年来在嵌入式系统领域教学与开发的经验和特点,编写了本套《ARM嵌入式系统系列教程》。 |
2. 本套教程的组成
本套教程由理论教材、实验教材和学习指导3部分(共5册)组成,且配套的所有教学实验平台都是基于PHILIPS公司的LPC2000系列ARM微控制器(基于ARM7TDMIS核心)而设计。
理论教材
《ARM嵌入式系统基础教程》
——含开放式多媒体教学课件,可自行添加或删减内容
实验教材
《ARM嵌入式系统实验教程(一)》
——含开放式多媒体实验教学课件,可自行添加或删减内容
——配套EasyARM2200教学实验平台
《ARM嵌入式系统实验教程(二)》
——含开放式多媒体实验教学课件,可自行添加或删减内容
——配套SmartARM2200教学实验平台
《ARM嵌入式系统实验教程(三)》
——含开放式多媒体实验教学课件,可自行添加或删减内容
——配套MagicARM2200教学实验平台
辅导资料
《ARM嵌入式系统学习指导》
上述5本图书构成了一个完整的,可根据不同教学特点及时进行裁剪、配套的教材体系。
除此之外,还将我们近年来在ARM嵌入式系统领域的应用开发成果编辑成两册在北京航空航天大学出版社出版。选用本套教程作为教学或培训教材的师生以及工程技术开发人员,可选用下面两本图书作为参考资料。这两本参考资料可对ARM嵌入式系统的应用开发人员提供进一步的帮助。
参考资料
《ARM嵌入式系统软件开发实例 (一) 》
《ARM嵌入式系统软件开发实例 (二) 》
3. 本套教程的特点
本套教程可面对不同教学或培训需要,并配备有相对应的教学实验平台,配有开放式多媒体教学课件,具有完整性、实践性强及便于教学等特点。
完整性——体现在理论教材、实验教材、辅导资料及参考资料的完全配套性;
实践性强——体现在所提供的教学实验系统是成熟且易于上手的软/硬件应用平台;
便于教学——体现在针对不同教学要求,能方便地选择教学与实验教材的最佳组合,无论是理论教材,还是实验教材都配有多媒体教学课件。
4. 本套教程各册内容简介
《ARM嵌入式系统基础教程》本套教程中的理论课教材。以PHILIPS公司LPC2000系列ARM微控制器为例,深入浅出地介绍嵌入式系统开发的各个方面。共分3部分: ① 理论部分: 主要介绍嵌入式系统相关的概念及开发方法; ② 基础部分: 主要介绍ARM7体系结构、指令系统及LPC2000系列ARM微控制器的结构原理; ③ 应用部分: 主要介绍如何设计嵌入式系统,包括硬件的设计、μC/OSII的移植、建立软件开发平台的方法及嵌入式系统开发平台的应用。
《ARM嵌入式系统实验教程(一)》本套教程中的实验课教材之一。以具有丰富硬件资源的EasyARM2200教学实验平台为基础,以ADS 1.2集成开发环境、μC/OSII操作系统以及各种中间件为软件平台,搭建经济实用的ARM嵌入式系统教学实验体系。共分5章,共有47个实验例子。第1章全面介绍EasyARM2200教学实验平台的设计原理以及各种跳线、接口的使用说明。第2章重点介绍ADS 1.2集成开发环境的使用,包括建立工程、添加源文件、编译链接设置以及AXD调试操作等,并介绍LPC2200专用工程模板及EasyJTAG仿真器的安装与使用。第3章为基础实验,包含32个实验。第4章为基于μC/OSII操作系统的实验,包含6个实验。第5章为综合实验,包含9个实验。
《ARM嵌入式系统实验教程(二)》本套教程中的实验课教材之二。以具有丰富硬件资源的SmartARM2200教学实验平台为硬件基础,使用2.2英寸TFT LCD显示屏作为人机界面,使用μC/OSII和μCLinux双操作系统、开源的MiniGUI图形用户界面等各种中间件为软件平台,搭建高性价比的ARM嵌入式系统教学实验体系,同时还非常适合构建手持便携式产品教学与开发示范平台,如掌上游戏机、PDA、POS机、手持式电度表抄表器、智能卡系列产品手持式数据录入器、酒店点菜器以及手持式测量仪器仪表等。
《ARM嵌入式系统实验教程(三)》本套教程中的实验课教材之三。以具有丰富硬件资源的MagicARM2200为教学实验平台,使用5.2英寸STN LCD触摸显示屏作为人机界面,使用μC/OSII和μCLinux双操作系统、开源的MiniGUI图形用户界面等各种中间件为软件平台,搭建ARM嵌入式系统教学实验体系,完全覆盖了EasyARM2200 与SmartARM2200教学实验平台几乎所有的软/硬件功能模块。
《ARM嵌入式系统学习指导》为读者提供学习指导和课外补充,答疑解惑。对本套教程中的理论教材和3本实验教材中的习题进行解答,并对理论教材中的重点和难点进行剖析,还补充了许多相关资料作为课外补充读物。两本参考资料的内容简介如下:
《ARM嵌入式系统软件开发实例(一)》详细介绍当前几大热点ARM嵌入式系统软件模块的原理及其在ARM7上的实现。分为5章,每一章介绍一种模块。第1章介绍FAT文件系统的基础知识,以及兼容FAT12、FAT16和FAT32的文件系统模块ZLG/FS的源码分析。第2章介绍USB从模块驱动程序的设计思想及实现过程。第3章详细介绍CF卡和IDE硬盘相应的软件模块ZLG/CF的设计思想及实现过程。第4章详细介绍TCP/IP及相应的软件模块ZLG/IP的设计思想及实现过程。第5章介绍GUI的基础知识及GUI模块ZLG/GUI的设计思想及实现过程。
《ARM嵌入式系统软件开发实例(二)》详细介绍当前几大热点ARM嵌入式系统软件模块的原理及其在ARM7上的实现。如USB1.1(ISP1181B)/HOST(ISP1160/1161)、1英寸微型1/1.5/2 GB硬盘、SD卡等软件的开发思想与源码分析。
5. 本套教程的读者对象以及如何配套选用
本套教程适用于高等院校测控技术与仪器设计、智能化控制、电子工程、机电一体化、自动化以及计算机等专业开设嵌入式系统课程的教材,也可用作各种嵌入式系统应用开发工程技术人员的培训教材。
各高等学校及嵌入式系统应用开发工程技术人员,可以根据自己的需求及实验室的状况配套选用本套教程。作者给出了3种基本方案供参考,学校在建立实验室时也可以组合使用。
(1) 经济型方案
 教材: 《ARM嵌入式系统基础教程》、《ARM嵌入式系统实验教程(一)》。
 实验器材: 计算机、EasyJTAG仿真器、EasyARM2200教学实验平台(包含主芯片为PDIUSBD12的USB1.1 PACK)、CF卡(选件)、硬盘(选件)、SMG240128A液晶模块(选件)、WH153PA12微型热敏打印机(选件)以及其他电子实验常用设备(如万用表、面包板等)。
 参考资料: 《ARM嵌入式系统学习指导》、《ARM嵌入式系统软件开发实例(一)》。
 软件: ADS1.2、μC/OSII V2.52和ZLGGUI。
(2) 高性价比方案
 教材: 《ARM嵌入式系统基础教程》、《ARM嵌入式系统实验教程(二)》。
 实验器材: 计算机、EasyJTAG仿真器、SmartARM2200教学实验平台(包含主芯片为PDIUSBD12的USB1.1 PACK、2.2英寸TFT LCD高清晰度彩色显示屏)、ISP1181B的USB1.1 PACK(选件)、ISP1160或ISP1161的USB HOST PACK(选件)、CF卡(选件)、SD卡(选件)、普通硬盘或1英寸微型硬盘(选件)、WH153PA12微型热敏打印机(选件)以及其他电子实验常用设备(如万用表、面包板等)。
 参考资料: 《ARM嵌入式系统学习指导》、《ARM嵌入式系统软件开发实例(一)》和《ARM嵌入式系统软件开发实例(二)》。
 软件: ADS1.2、GCC、μC/OSII V2.52、μClinux 2.4和MiniGUI。
(3) 全功能型方案
 教材: 《ARM嵌入式系统基础教程》、《ARM嵌入式系统实验教程(三)》。
 实验器材: 计算机、EasyJTAG仿真器、MagicARM2200教学实验平台(包含主芯片为PDIUSBD12 的USB1.1 PACK、ISP1160 或ISP1161的USB HOST PACK、双路CANbus接口、5.2英寸STN LCD触摸显示屏)、ISP1181B的USB1.1 PACK(选件)、CF卡(选件)、SD卡(选件)、GPS/GPRS模块(选件)、MODEM(选件)、普通硬盘或1英寸微型硬盘(选件)、WH153PA12微型热敏打印机(选件)以及其他电子实验常用设备(如万用表、面包板等)。
 参考资料: 《ARM嵌入式系统学习指导》、《ARM嵌入式系统软件开发实例(一)》、《ARM嵌入式系统软件开发实例(二)》。
 软件: ADS1.2、GCC、μC/OSII V2.52、μClinux 2.4和MiniGUI。
6. 本套教程的网络辅助
作者在其网站(www.zlgmcu.com)上将开辟“跟我学ARM”和“应用设计”等辅导专栏,帮助读者深入浅出地学习ARM嵌入式系统;并结合大学生的课程设计与毕业设计做好ARM嵌入式系统的软/硬件开发,有针对性地不断更新各种资料。读者也可在该栏目上发表应用文章,交流学习心得。我们相信,本套《ARM嵌入式系统系列教程》的出版一定会对国内32位嵌入式系统的教学与实践起到推动作用;通过这些努力,一定会使我国嵌入式系统应用提升到一个更高的水平,并推动32位嵌入式系统的普及。
我们也真诚地欢迎广大读者给我们来信(zlg3@zlgmcu.com),将您对本套图书的意见及修改建议及时提供给我们,以便在本套图书再版时修订。我们真诚希望能够得到广大读者持续不断的支持。
作者
2004年10月
前 言
本书介绍的几个软件包模块都是用于嵌入式系统之间、嵌入式系统与其他系统之间、嵌入式系统与人之间的互相沟通和数据交换。鉴于ARM核在嵌入式系统中的地位,这些模块首选在PHILIPS公司的通用ARM7微控制器LPC2200系列上调试通过,并可以很容易移植到基于其他处理器核的嵌入式系统上。
本书各个章节的内容均由各个嵌入式软件模块的编写者完成,详细地介绍了相应嵌入式软件模块的实现思想和方法。
各个章节内容安排如下:
第1章——ZLG/Host Stack主机栈设计思想。首先简单介绍USB体系的工作模式,然后详细介绍ISP1160A1芯片的特性及其应用,最后详细讲述ZLG/Host Stack主机协议栈的设计思想。
随着大量支持USB的个人电脑的普及,USB逐步成为PC机的标准接口已经是大势所趋。在嵌入式系统中,USB主机接口也成了嵌入式产品中的常用接口部件。由于USB主机协议比较复杂,因此短时间内很难在嵌入式产品中成熟地使用USB主机接口。通过ZLG/Host Stack软件包,可使您的嵌入式系统迅速支持USB主控制器接口。
第2章——大容量设备类驱动设计实例。详细介绍大容量存储类的BulkOnly和CBIOnly传输协议,并介绍UFI命令集与SCSI命令集在大容量存储类应用中兼容的几个常用命令,同时提出基于ZLG/Host Stack主机栈上大容量存储类主机端程序设计的思想及软件实现。
U盘、USB移动硬盘、MP3播放器和数码相机等设备都使用USB大容量存储类协议,通过该驱动就可以实现对以上设备进行读/写操作。U盘作为数据的载体,目前已广泛应用于嵌入式行业,而某些电子产品读/写U盘的要求在国家标准中已成了强制性的要求。在嵌入式的电子产品中,实现对U盘文件的读/写,成了许多厂家技术攻关的难题。
第3章——ZLG/SD软件包原理分析。详细介绍SD/MMC卡的外部物理接口、内部结构和卡内部寄存器,并在此基础上,深入分析SD/MMC卡SPI协议以及读/写SD/MMC卡的具体实现方法,形成ZLG/SD软件包。本软件包既可以运行于前/后台系统,也可以运行于嵌入式实时操作系统μC/OSII。
SD/MMC卡是一种容量大(最大可达4 GB)、性价比高、体积小、访问接口简单的存储卡。SD/MMC卡现在大量应用于数码相机、MP3和手机等设备,在现实生活中随处可见。在本软件包的基础上,再加上文件管理系统,便可以将SD/MMC卡当作一个“小硬盘”来使用。
第4章——ZLG/Modbus协议栈设计思想。剖析Modbus RTU/ASCII协议,并详细介绍ZLG/Modbus协议栈的原理及应用。
Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其他设备之间可以通信。它已经成为一种通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
第5章——ZLG/BOOT原理及应用。详细介绍基于ARM7的简单的BootLoader核心代码——ZLG/BOOT的原理及应用。
BootLoader程序是引导嵌入式操作系统的程序,是重要的嵌入式软件,比较难以编写。本章以ZLG/BOOT为例,介绍ARM7上BootLoader程序的核心部分,让读者了解BootLoader的思想机制。读者可以通过ZLG/BOOT构建独具特色的BootLoader程序。
第6章——K9F2808U0C驱动程序。本章以K9F2808U0C为例,介绍NAND Flash的硬件设计和驱动程序的编写。
通过分析K9F2808U0C驱动程序,详细说明硬件驱动程序与硬件配置分离的编程思想,介绍一个硬件驱动程序同时支持多个相同(或相似)器件的方法。
第7章——ZLG/FFS原理与应用。介绍基于NAND Flash文件系统的一种实现方法。
ZLG/FFS是ZLG/FS的一个驱动程序,与ZLG/FS一起可以实现基于NAND Flash的文件系统。通过分析ZLG/FFS原理,详细说明“写平衡”和“坏块管理”的一种实现方法,以解决在不可靠的存储介质上可靠存储数据的问题。
本书介绍的嵌入式软件模块均由广州致远电子有限公司资深工程师设计,并会不断地升级软件,力求软件越来越完善。
参与本书编写和工作的主要人员有陈明计、周立山、郑明远、黄绍斌、陈锡炳、甘达、叶皓贲、严寒亮、戚军、岳宪臣和朱旻等。全书由周立功负责规划、内容安排、定稿与修改。
感谢北京航空航天大学出版社的大力支持,使本书得以快速出版;感谢广大读者对《ARM嵌入式系统系列教程》的支持。
由于作者水平有限,书中难免有疏忽、不恰当,甚至错误的地方,恳请各位老师及同行指正。
作者
2006年1月
|