嵌入式系统工程案例教程
作者 : 赖晓晨 江贺 韩瑜 编著
出版日期 : 2012-10-17
ISBN : 978-7-111-39876-9
定价 : 35.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 279
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

本书首先介绍几种嵌入式处理器,包括8051单片机、AVR单片机、ARM处理器LPC2136等,同时对各种处理器的结构、引脚描述、功能模块做了较为详细的描述,然后介绍嵌入式系统的开发工具与开发环境,以及嵌入式Linux开发的基础知识,接着以部分典型硬件模块为例,介绍电路仿真工具Proteus的使用方法,然后介绍一个多核心单片机实验平台的设计实现过程,接着以嵌入式操作系统FreeRTOS和基于ARM7内核的嵌入式处理器LPC2136为例,介绍操作系统移植过程,最后介绍一个嵌入式图形系统的设计实现过程。

图书特色

本书通过实际案例,介绍了典型嵌入式系统设计的各个方面,内容涉及嵌入式系统仿真设计、基于单片机的硬件电路设计及编程方法、基于ARM处理器的嵌入式系统移植方法,以及嵌入式图形系统架构设计及实现方法,旨在使读者了解嵌入式系统设计面临的主要问题及解决方法,掌握基本设计思路和设计流程。
本书每个案例都经过精心设计和筛选,具有一定代表性。在硬件方面,介绍应用最为广泛的8位8051系列单片机和功能强大的32位ARM处理器;在软件方面,介绍嵌入式系统中较为核心的操作系统移植、图形系统架构设计;在系统仿真方面,介绍基于Proteus的仿真方法。书中涉及案例均已通过调试,部分内容在国内图书中首次出现,读者可以根据需要直接将这些模块集成到自己的应用系统中。

图书前言

嵌入式系统是嵌入式计算机系统的简称,近十几年来,它逐渐为人所知,但这一概念很早就出现了。20世纪70年代以来,以单片机等微控制器为基础的各类设备已经广泛应用于生产当中。随着应用问题的复杂程度不断增加和处理器功能的不断提升,嵌入式系统程序员逐渐在嵌入式硬件平台上引入嵌入式操作系统,使得嵌入式系统逐渐步入成熟期,真正成为一个软硬件结合的“系统”。20世纪90年代以后,系统实时性越来越重要,并且软件规模不断扩大,实时内核逐渐发展为实时多任务操作系统,成为嵌入式软件平台的主流。进入21世纪后,嵌入式处理器的性能不断提升,价格不断下降,各种具有图形用户界面的嵌入式操作系统不断涌现,使嵌入式系统迅速扩展到消费类数码产品领域,走进了千家万户。
  嵌入式系统种类很多,存在形态各不相同,其概念经过长期演变,已经趋近于统一。IEEE对嵌入式系统的定义为:“用于控制、监视或者辅助操作机器和设备的装置。”国内普遍接受的嵌入式系统定义为:“以应用为中心、以计算机技术为基础、软件/硬件可裁剪,以及适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。”在我们身边存在各种嵌入式系统。在消费类数码产品、交通工具、工业测控仪表等领域中,嵌入式系统都处于核心位置,与此形成反差的是,我国每年的嵌入式人才需求缺口均以百万计。因此,加速嵌入式人才培养,提高嵌入式课程体系教学质量,是高校嵌入式专业教师面临的一项重要课题。
  在嵌入式系统学习中,需要掌握3个方面的基本内容。首先,应对常用的嵌入式处理器有所了解,熟悉一种或几种典型处理器的使用方法,包括使用该处理器完成基本电路设计以及程序编写等内容。其次,应了解嵌入式操作系统的工作原理,掌握典型嵌入式操作系统的移植过程和驱动程序设计方法。最后,应熟悉一种编程语言,能熟练运用该语言设计嵌入式程序,控制硬件模块运行。需要指出的是,对于实际嵌入式系统来说,嵌入式技术仅是一种实现工具,嵌入式系统的核心问题是特定应用的背景行业相关问题,例如核心算法设计,而非嵌入式计算机技术。但是,即使作为“常规”设计部分,嵌入式技术仍涵盖很多内容,并有大量异于桌面或网络编程的独特之处,需要认真学习,并在实践中不断总结经验。
  笔者在多年实践过程中,设计了多个实用嵌入式系统,并已作为案例充实到嵌入式课程教学中。考虑到学习对象应具有典型性,因此,精心选择了4个嵌入式系统作为案例在本书中介绍。在处理器方面,详细介绍应用最广泛的8051单片机和ARM处理器的使用方法;在硬件电路设计方面,阐述了十余种典型电路和接口的工作原理与设计方法;在嵌入式操作系统方面,以FreeRTOS为例,描述了完整的移植过程和驱动设计框架;在硬件仿真方面,介绍了最流行的仿真工具Proteus的使用流程。最后,由于嵌入式图形系统已成为智能手机等消费类数码设备的典型配置,所以介绍了拥有完全自主知识产权的嵌入式图形系统EGUI的架构及设计方案。以上案例的软件部分均由C语言实现,这是目前嵌入式领域的主流编程语言,也是嵌入式程序员必须掌握的基本工具。
  本书第1章介绍后续章节涉及的几种嵌入式处理器,包括第4章用到的8051单片机和AVR单片机,第3章和第5章用到的ARM处理器LPC2136等。本章对各种处理器的结构、引脚描述、功能模块做了较为详细的介绍。
  第2章介绍嵌入式系统的开发工具与开发环境,以及嵌入式Linux开发的基础知识。在嵌入式系统硬件设计过程中,需要使用原理图和PCB的绘制工具,本章将介绍Altium Designer的使用方法,第4章的硬件电路设计部分即由此工具实现;在嵌入式软件开发时,需用到集成开发环境,本章将介绍Keil的用法,第3章、第4章和第5章的代码开发即由此工具实现;Proteus是著名的电路仿真工具,本章将介绍其用法,在第3章中会使用Proteus设计多种电路,并完成仿真;本章的后续内容为Linux开发工具链的使用,以及Linux的典型编程方法,这部分内容是第6章的基础。
  第3章以部分典型硬件模块为例,介绍电路仿真工具Proteus的使用方法。在嵌入式系统的设计过程中,由于受设计人员的经验限制,硬件模块制作完成后往往并不完全符合需求,此时需要重新设计硬件电路,造成时间、材料方面的浪费,并会影响嵌入式软件开发者的工作进度。采用电路仿真软件,可以在PC上模拟电路的运行,提早发现硬件电路设计隐患,有效降低开发成本。本章介绍了LED点阵、键盘、LCD、脉宽调制电动机控制等多种典型模块的Proteus仿真方法。
  第4章介绍一个多核心单片机实验平台的设计实现过程。该平台可以支持8051和AVR两种单片机,包含了十几种典型的硬件模块和接口。本章详细介绍了该平台的需求分析、系统设计、硬件模块详细设计、编码实现等内容,所有电路和代码均经过实际调试,运行稳定、可靠,读者可将这些模块的软硬件设计方案直接应用在自己的系统中。
  第5章以嵌入式操作系统FreeRTOS和基于ARM7内核的嵌入式处理器LPC2136为例,介绍操作系统移植过程。本章首先分析了FreeRTOS的结构,然后实现了该系统的全部模块在LPC2136处理器上的移植过程。由于不同的设备有不同的硬件模块,这些模块都需要驱动程序来管理和控制,本章设计了一个符合FreeRTOS的驱动模块框架,并介绍了典型设备的驱动程序设计过程。由于FreeRTOS并不包括文件系统模块,所以本章还介绍了FatFS文件系统的移植过程。本章的最后部分测试了FreeRTOS内核、驱动和文件系统的工作状况。
  第6章介绍一个嵌入式图形系统的设计实现过程。随着处理器运算速度的不断提高和功能的不断增强,嵌入式设备已经可以支持大屏幕液晶显示器,由此带来的问题是需要一个统一、易用、高效的图形界面系统。本章介绍嵌入式图形系统EGUI的设计实现过程,该系统采用C/S架构模式,包括客户端模块、服务器模块、绘图模块、控件库模块、交互模块等几个部分,为嵌入式应用程序员提供了一套结构简单、使用方便的轻量级嵌入式图形API,实现了在字符界面Linux操作系统之上显示窗口、按钮、图标等图形功能,可用于图形模式的嵌入式系统设计。
  韩瑜编写了第1章和第2章,赖晓晨编写了第4章和第6章,江贺编写了第3章和第5章。此外,罗龙、李瑾、张家宁、刘德超、张树威、朱飞虹等绘制了本书所有图形;谷丹阳、陈向东、丁兰、高畅、陈飞、闫顺、刘鹏、柳继委、孙达等参与了本书实例的硬件设计、代码编写和测试工作;陈扬、祝洪宾、王昭淼、余亮、李丽坤、杜春明等参与了书稿的校对工作。感谢以上人员付出的辛勤劳动,是大家的共同努力,才使本书得以面世。
  本书实例设计及编写历时将近4年,在这个过程中,得到了很多人的帮助,在此向大家致以衷心的感谢!首先感谢我的家人,是你们教导我做一个正直的人,并引导我走上今天的人生道路;其次感谢大连理工大学软件学院的领导和同事们,是你们为我提供了一个宽松的工作环境,并在书稿撰写过程中提出了很多建设性意见;特别感谢机械工业出版社王春华编辑在本书构思、立项、审校、出版过程中给予的无私帮助;最后也是最重要的,感谢我的学生(不管是曾经的、现在的,还是将来的),是你们带给了我工作的乐趣和动力!
  由于作者经验不足,加之时间仓促,书中不可避免会有谬误之处,恳请读者批评指正。所有关于本书的意见和建议,请发送电子邮件到far.away@tom.com,希望在和读者交流的过程中能有所裨益。

赖晓晨

上架指导

计算机\嵌入式编程

封底文字

本书通过实际案例,介绍了典型嵌入式系统设计的各个方面,内容涉及嵌入式系统仿真设计、基于单片机的硬件电路设计及编程方法、基于ARM处理器的嵌入式系统移植方法,以及嵌入式图形系统架构设计及实现方法,旨在使读者了解嵌入式系统设计面临的主要问题及解决方法,掌握基本设计思路和设计流程。
本书每个案例都经过精心设计和筛选,具有一定代表性。在硬件方面,介绍应用最为广泛的8位8051系列单片机和功能强大的32位ARM处理器;在软件方面,介绍嵌入式系统中较为核心的操作系统移植、图形系统架构设计;在系统仿真方面,介绍基于Proteus的仿真方法。书中涉及案例均已通过调试,部分内容在国内图书中首次出现,读者可以根据需要直接将这些模块集成到自己的应用系统中。

图书目录

前言
教学建议
第1章 嵌入式系统硬件基础1
 1.1 嵌入式系统组成1
 1.2 8051系列单片机3
  1.2.1 8051系列单片机简介3
  1.2.2 AT89C51的引脚3
  1.2.3 AT89C51的CPU结构4
  1.2.4 AT89C51的存储器6
  1.2.5 AT89C51的I/O端口7
  1.2.6 AT89C51的中断系统8
  1.2.7 AT89C51的定时器/计数器10
  1.2.8 AT89C51的串行接口11
 1.3 AVR系列单片机12
  1.3.1 AVR系列单片机简介12
  1.3.2 ATmega32的引脚12
  1.3.3 ATmega32的CPU结构13
  1.3.4 ATmega32的存储器14
  1.3.5 ATmega32的中断14
  1.3.6 ATmega32的定时器/计数器17
  1.3.7 ATmega32的I/O端口17
  1.3.8 ATmega32的串行接口18
 1.4 LPC2136嵌入式处理器20
  1.4.1 LPC2136处理器简介20
  1.4.2 LPC2136的引脚21
  1.4.3 LPC2136的结构22
 1.5 习题27
第2章 工具软件与开发环境28
 2.1 Altium Designer28
  2.1.1 Altium Designer简介28
  2.1.2 原理图设计29
  2.1.3 PCB设计32
 2.2 Keil开发环境37
  2.2.1 Keil简介37
  2.2.2 Keil工程38
 2.3 Proteus43
  2.3.1 Proteus开发环境简介43
  2.3.2 基于Proteus的电路仿真45
  2.3.3 Proteus电路仿真设计实例48
 2.4 Linux工具链50
  2.4.1 vim51
  2.4.2 gcc53
  2.4.3 创建和使用库54
  2.4.4 gdb58
  2.4.5 Makefile59
 2.5 Linux编程方法62
  2.5.1 文件和目录63
  2.5.2 I/O操作66
  2.5.3 进程69
  2.5.4 线程72
  2.5.5 套接字75
 2.6 习题78
第3章 嵌入式系统仿真设计79
 3.1 LED点阵电路仿真79
  3.1.1 LED点阵工作原理79
  3.1.2 LED点阵仿真电路介绍80
  3.1.3 LED点阵电路仿真程序设计81
  3.1.4 LED点阵电路仿真结果82
 3.2 键盘电路仿真83
  3.2.1 键盘工作原理84
  3.2.2 键盘电路介绍85
  3.2.3 键盘电路仿真程序设计86
  3.2.4 键盘电路仿真结果87
 3.3 点阵型LCD电路仿真88
  3.3.1 PG12864F模块工作原理88
  3.3.2 LCD显示电路介绍93
  3.3.3 点阵型LCD电路仿真程序设计94
  3.3.4 点阵型LCD电路仿真结果98
 3.4 脉宽调制器控制直流电动机仿真99
  3.4.1 脉宽调制器工作原理99
  3.4.2 脉宽调制器控制直流电动机电路介绍104
  3.4.3 脉宽调制器控制直流电动机仿真程序设计105
  3.4.4 脉宽调制器控制直流电动机仿真结果106
 3.5 习题107
第4章 多核心单片机实验平台108
 4.1 多核心单片机实验平台需求分析108
  4.1.1 硬件需求分析108
  4.1.2 软件需求分析109
 4.2 多核心单片机实验平台系统设计110
  4.2.1 系统结构110
  4.2.2 处理器资源分配110
  4.2.3 AVR转接板设计111
 4.3 多核心单片机实验平台系统实现112
  4.3.1 基础电路112
  4.3.2 流水灯模块114
  4.3.3 键盘模块和数码管模块115
  4.3.4 点阵LCD模块118
  4.3.5 LED点阵模块123
  4.3.6 温度采集模块126
  4.3.7 语音模块129
  4.3.8 继电器模块136
  4.3.9 串口模块137
  4.3.10 蜂鸣器模块140
  4.3.11 红外模块142
  4.3.12 步进电动机模块146
 4.4 综合实例149
  4.4.1 功能描述149
  4.4.2 软件流程149
  4.4.3 典型代码分析150
  4.4.4 操作流程154
 4.5 习题155
第5章 嵌入式操作系统移植156
 5.1 FreeRTOS结构156
  5.1.1 FreeRTOS简介156
  5.1.2 FreeRTOS组织结构157
  5.1.3 FreeRTOS内核158
 5.2 FreeRTOS移植165
  5.2.1 FreeRTOS移植简介165
  5.2.2 启动代码165
  5.2.3 开关中断169
  5.2.4 临界区的进入与退出169
  5.2.5 任务栈初始化170
  5.2.6 上下文切换170
  5.2.7 时钟中断171
 5.3 FreeRTOS设备驱动程序设计172
  5.3.1 FreeRTOS设备驱动程序设计简介172
  5.3.2 设备驱动框架模型172
  5.3.3 设备驱动框架设计174
  5.3.4 设备驱动框架驱动模块实例178
 5.4 FreeRTOS文件系统186
  5.4.1 FAT文件系统原理187
  5.4.2 FatFs应用程序调用接口189
  5.4.3 SPI驱动模块190
  5.4.4 SD卡驱动模块192
  5.4.5 FatFs接口模块实现200
 5.5 系统测试201
  5.5.1 测试环境201
  5.5.2 内核及驱动框架API测试201
  5.5.3 FatFs测试203
 5.6 习题207
第6章 嵌入式图形系统208
 6.1 EGUI简介208
 6.2 EGUI需求分析208
  6.2.1 运行环境需求208
  6.2.2 核心模块需求208
  6.2.3 外部接口需求209
 6.3 EGUI系统设计与实现211
  6.3.1 总体架构211
  6.3.2 文件组织结构213
  6.3.3 基础数据结构模块216
  6.3.4 绘图模块224
  6.3.5 服务器模块230
  6.3.6 客户端模块241
  6.3.7 控件库模块248
  6.3.8 交互模块257
 6.4 EGUI客户端编程框架260
 6.5 系统测试262
  6.5.1 系统测试之功能需求262
  6.5.2 系统测试之系统设计263
  6.5.3 系统测试之系统实现263
  6.5.4 系统测试之功能测试266
 6.6 习题268
参考文献269

教学资源推荐
作者: (美)Yue-Ling Wong 著
作者: [加]斯蒂芬·布朗(Stephen Brown) 斯万克·瓦拉纳西(Zvonko Vranesic) 著
作者: 朱鸣华 等编著
参考读物推荐
作者: Thomas Tullis; William Albert
作者: 新华三大学 编著