前 言
20世纪90年代,单片机在我国得到迅速普及,电子产品已经逐步走向了智能化。那时的微控制器以8位机为主,由于受到本身的硬件资源限制,所处理的问题也不是很复杂,程序设计方法绝大多数还是“基于裸机”的“顺序执行法”编程,既不使用操作系统也不用考虑其他应用程序架构。进入21世纪后,电子技术进入了“信息时代”,其特点是各种电子产品都具有大量的信息通信,系统功能复杂,人机界面丰富,有网络接口等。这类产品的硬件系统集成度非常高,大多采用32位CPU,存储器资源充足,具备了操作系统或其他程序架构需要的运行条件。
在众多的32位微控制器中,ARM公司推出的各种ARM内核芯片异军突起,在市场上占据了不少席位,经过多年的技术发展和市场推广,ARM内核芯片几乎成为32位微控制器的代名词。相对8位机来说,ARM芯片的功能复杂、寄存器繁多,为了把编程人员从繁琐的底层驱动中解放出来,各芯片厂家在推出自己的芯片的同时,都提供了底层驱动库,让编程人员不再去理会那些容易出错,技术价值不高的底层驱动,有更多的时间去实现产品的软件功能和程序架构。
搞电子产品设计的技术人员几乎都是“电子类”专业出身的,其硬件功底不容置疑,但所学软件课程非常有限,大多只学习过汇编语言、C语言和单片机技术等几门入门课程,基本没有学习过数据结构、算法分析、程序架构、操作系统等软件课程,大多数工程技术人员都是靠一边工作一边自学来提高自己。笔者也是电子类专业毕业,多年从事电子产品的软、硬件开发,对从事此类工作的技术人员的处境深有体会,萌生了把自己多年摸索出来的编程经验和对程序架构的认识写成一本书的想法,所以,经过近一年的努力,此书应运而生。
本书是一本以NXP LPC1700系列ARM Cortex-M3微控制器为基础,讲述嵌入式应用程序架构的综合应用开发书籍。全书分为7个章节。
第1章介绍LPC1700系列微控制器的基础知识,包括微控制器的架构和特性、系统控制模块、中断控制器、引脚配置和编程调试接口等。为后面的应用起到基石的作用。
第2章讲述怎样打造一个属于自己的硬件系统,涉及常用的多种技术,如红外遥控、串口和USB通讯、E2PROM/Flash/SD卡存储器、数字温度传感器和各种显示模块(LCD、LCM和TFT)等。
第3章介绍嵌入式程序设计基础知识,包括C程序设计基础知识、编程风格、编程约束和工程文件管理等。
第4章介绍基础应用实验,包括串行通讯、实时时钟、红外遥控应用、E2PROM存储器应用、Flash存储器应、SD卡和文件系统的应用、数字温度计以及各种显示模块(LCD、LCM和TFT等)应用。为每一个应用提供实验例程,并进行了详细的注释。通过这些例程读者可以初步掌握LPC1700处理器的片上资源的应用,为下一步综合应用开发提供必备的基础知识。
第5章介绍嵌入式应用程序架构,分别讲述了“顺序执行法”、“时间片轮询法”和“嵌入式实时操作系统”的基础知识和各自的特点。带领读者构建自己的工程模板,从应用程序架构中解放出来,不再为各种架构的设计而烦恼。可以根据实际应用的需要选择不同的架构工程模板来开发各种嵌入式产品。
第6章介绍三架构应用实例,本章以“多功能数字时钟”为实例,分别采用第5章介绍的应用程序架构实现同样的数字时钟功能,让读者从之前的感性认识变为理性认识,从实例中去体会各种架构的特点以及优缺点。
第7章介绍在线升级的应用,在线升级作为电子技术的新兴产物,已经成为各种电子产品必备的功能之一。没有在线升级功能的产品就没有生命气息,不能自我完善与修复。为此,本章介绍了各种在线升级的模式,并提供源代码和实例,为第6章设计的“多功能数字时钟”提供了二次生命技术。
本书虽然是以NXP LPC1700系列微控制器为例来讲解的,实际上本书讲述的应用程序架构思想可以适应于任何微控制器。如果要应用在其他微控制器上,读者只需用更改底层驱动库就可以了,上层代码完全不需要修改。需要特别说明的是,本书并没有采用NXP提供的LPC1700驱动库,而是笔者自己根据需要编写的一套底层驱动库,通过这套驱动库,读者可以学习一些关于底层驱动程序的编程方法,提高编程技术。当然,读者也可以使用LP1700的驱动库来实现。
本书主要面向的读者是有过嵌入式应用程序编程经验的电子设计人员,需要有一定的电子技术基础、C语言基础、原理图和PCB设计基础和一些计算机基础知识。对于熟悉LPC1700系列微控制器的读者,可能更容易学习。但是就是没有应该过LPC1700系列微控制器也不要紧,只要用过任何一款微控制器,编写过程序的技术人员,都很容易理解其中的编程思想。
由于书中涉及的知识领域广泛,而电子技术日新月异,加之笔者知识局限和时间仓促,错误和遗漏在所难免。敬请各位读者和同行批评指正!如您有任何问题,请到“电子工程世界”的NXP LPC1000专区发帖或给笔者“zhaojun_xf”留言,笔者将在最短的时间给您答复。
在此感谢北京航空航天大学出版社对出版本书的关心与支持;感谢“电子工程世界”论坛的管理员汤宏琳和网友们的大力支持和宝贵建议;感谢齐岳、唐虎、李四强、胡运芳、曾军、刘鹏、林薇薇、代堂艳、王峰、赵建兵、石梅、施元元、杨春华为本书提出了不少宝贵的修改建议;感谢妻子邹玲玲和女儿赵雨桐,写书的过程中少了许多陪伴她们的时间,谢谢她们的鼓励、支持、理解和爱。最后要感谢购买本书的读者——您。
由于书中涉及的知识领域广泛,而电子技术日新月异,加之笔者知识局限和时间仓促,错误和遗漏在所难免。敬请各位读者和同行批评指正!如您有任何问题,也可以及时和笔者沟通。
[ 本帖最后由 zhaojun_xf 于 2013-8-5 11:05 编辑 ] |