注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络硬件、外部设备与维护ARM微控制器基础与实战(第2版)

ARM微控制器基础与实战(第2版)

ARM微控制器基础与实战(第2版)

定 价:¥45.00

作 者: 周立功等编著
出版社: 北京航空航天大学出版社
丛编项: 周立功单片机公司策划系列丛书
标 签: 嵌入式计算机

ISBN: 9787810777100 出版时间: 2005-08-01 包装: 平装
开本: 26cm 页数: 450 字数:  

内容简介

  以目前流行的、单片化的LPC2100系列ARM7微控制器为核心,由浅入深地介绍ARM微控制器的体系结构及应用编程,逐步引导读者掌握使用ARM的知识。分3部分:第1部分为基础篇,包括1、2章,主要从使用ARM芯片的开发者角度,论述ARM7TDMI的体系结构和指令系统。第2部分为实验篇,包括第3~6章,详细介绍LPC2100系列ARM7微控制器LPC2104、LPC2114和LPC2119(带CAN控制器)的内部结构;然后分别给出LPC2100系列ARM7微控制器的各个功能部件的编程方法,包括汇编代码和C语言代码。第3部分为提高篇,包括第7~9章,介绍嵌入式实时操作系统μC/OSII在LPC2100系列ARM7微控制器上的移植方法,嵌入式系统开发平台的概念、建立方法,以及一些组成软件开发平台的软件模块的使用方法。本书可作为高等院校嵌入式系统课程的参考用书,也可作为ARM应用技术开发人员的参考资料。本书从2003年11月出版以来,得到了广大读者的好评和支持,先后印刷了3次,总共印数达12000册。PHLIIPS公司推出了几款新的LPC2100系列ARM7微控制器,其功能特点比LPC2106/2105/2104更强,应用更为广泛,为了使读者可结合实际应用来学习ARM,特修订本书。修订版全书共有9章,删除了第1版中第4章“EasyARM2104开发实验板”的全部内容,因为修订版介绍的实验程序与开发板无关。由于可使用专用的工程模板来建立工程,第1版中的第7章“移植代码的使用”已没有多大意义,所以修订时删除了这一章的内容。删除了第1版中第8章“移植代码新增的函数手册和配置手册”的全部内容,因为新的μC/OSII移植不再使用操作系统与应用代码分别编译的方法,相关的接口函数不需要介绍。修订版将第1版的第9~12章进行压缩,仅保留与用户应用相关的中间件接口函数和应用范围,在修订版的第8章“嵌入式系统开发平台”中介绍。第4章的内容改为可加密的、带A/D转换器的LPC2114/2124芯片硬件结构。由于LPC2114/2124具有LPC2106/2105/2104的所有片内外设,而且控制寄存器基本相同,所以本章着重介绍的是LPC2114/2124新增的功能。第5章的内容改为可加密的、内置CAN控制器的LPC2119/2129芯片硬件结构。本章主要介绍的是CAN控制器功能部件及其应用电路设计、编程实例。第6章介绍LPC2100系列ARM7微控制器各个功能部件的编程方法,与第1版的第5章相比,这些程序不针对某一个开发板,而是直接给出了相关部分的实验电路,另外还增加了A/D实验程序。第7章介绍如何把μC/OSII移植到ARM7体系结构上以及如何在LPC2000系列ARM7微控制器上使用移植代码,修正了第1版第6章介绍的移植不合理的地方。第8章为新增的“嵌入式系统开发平台”,介绍嵌入式开发平台的概念,然后从开发平台的角度介绍用于LPC2000系列ARM7微控制器的软件模块(中间件)接口函数和使用方法。

作者简介

  作者:周立功周立功,男,1964年3月出生,毕业于东华大学自动化及计算机系,高级工程师,中国单片机学会理事,中国海洋大学讲座教授,硕士生导师,主要研究方向为嵌入式系统与现场总线,目前正在从事80C51、ARM与NiosII等软核SoC的研究与开发。1981年6月参加工作,先后在大型国有企业担任过工段长、车间主任、团委书记、厂长、党委书记,先后被评为省及国家级劳动模范与新长征突击手,长期从事微机、单片机与嵌入式系统应用推广、开发工作。早期主要从事6502、Z80、8080及其5G14500(一位机)微机应用开发及工业低温辐射远红外节电技术应用与研究等工作,在1987年就出版过《工业低温辐射远红外节电技术》专著。从1994年11月开始创办了广州周立功单片机发展有限公司、广州致远电子有限公司除担任董事长与总经理之外,还继续从事实际的技术开发工作并任首席系统设计师和软件架构师,致力于单片机与嵌入式系统技术的推广及其产业化工作。深入浅出ARM7:LPC213x/214x(下册)>>更多作品

图书目录

第1章 从程序员角度看ARM7TDMI(S)
1.1 简介1
1.1.1 ARM1
1.1.2 ARM的体系结构1
1.1.3 ARM7TDMI(S)2
1.2 ARM7TDMI(S)的模块和内核框图3
1.3 体系结构直接支持的数据类型3
1.4 处理器状态5
1.5 处理器模式5
1.6 内部寄存器6
1.6.1 简介6
1.6.2 ARM状态寄存器集6
1.6.3 Thumb状态寄存器集9
1.7 程序状态寄存器11
1.7.1 简介11
1.7.2 条件代码标志12
1.7.3 控制位12
1.7.4 保留位13
1.8 异常13
1.8.1 简介13
1.8.2 异常入口/出口汇总14
1.8.3 进入异常14
1.8.4 退出异常15
1.8.5 快速中断请求15
1.8.6 中断请求15
1.8.7 中止16
1.8.8 软件中断指令16
1.8.9 未定义的指令17
1.8.10 异常向量17
1.8.11 异常优先级17
1.9 中断延迟18
1.9.1 最大中断延迟18
1.9.2 最小中断延迟18
1.10 复位18
1.11 存储器及存储器映射I/O19
1.11.1 简介19
1.11.2 地址空间19
1.11.3 存储器格式20
1.11.4 未对齐的存储器访问21
1.11.5 指令的预取和自修改代码22
1.11.6 存储器映射的I/O25
1.12 寻址方式简介27
1.13 ARM7TDMI(S)指令集27
1.13.1 简介27
1.13.2 ARM指令集28
1.13.3 Thumb指令集31
1.14 协处理器接口32
1.14.1 简介32
1.14.2 可用的协处理器33
1.15 调试接口简介33

第2章 ARM7TDMI(S)指令集及汇编
2.1 ARM处理器寻址方式35
2.2 指令集介绍38
2.2.1 ARM指令集38
2.2.2 Thumb指令集62

第3章 LPC2106/2105/2104硬件结构与功能
3.1 简介79
3.1.1 特性80
3.1.2 引脚信息81
3.2 LPC2106/2105/2104存储器寻址85
3.2.1 片内存储器85
3.2.2 存储器映射86
3.2.3 LPC2106/2105/2104存储器重新映射和Boot Block88
3.2.4 预取指中止和数据中止异常91
3.3 系统控制模块91
3.3.1 系统控制模块功能汇总91
3.3.2 引脚描述91
3.3.3 晶体振荡器92
3.3.4 寄存器描述92
3.3.5 外部中断输入93
3.3.6 存储器映射控制96
3.3.7 PLL(锁相环)97
3.3.8 功率控制102
3.3.9 复位104
3.3.10 VPB分频器104
3.3.11 唤醒定时器105
3.4 存储器加速模块106
3.4.1 简介106
3.4.2 存储器加速器模块的操作模式108
3.4.3 MAM配置109
3.4.4 寄存器描述109
3.5 向量中断控制器111
3.5.1 特性111
3.5.2 描述111
3.5.3 寄存器描述111
3.5.4 VIC寄存器113
3.5.5 中断源116
3.5.6 VIC使用注意事项118
3.6 GPIO121
3.6.1 特性121
3.6.2 应用121
3.6.3 引脚描述121
3.6.4 寄存器描述122
3.6.5 GPIO使用注意事项123
3.7 引脚连接模块124
3.7.1 简介124
3.7.2 应用124
3.7.3 寄存器描述124
3.8 UART0129
3.8.1 特性129
3.8.2 引脚描述129
3.8.3 寄存器描述130
3.8.4 结构136
3.9 UART1138
3.9.1 特性138
3.9.2 引脚描述139
3.9.3 寄存器描述139
3.9.4 结构147
3.10 I2C接口150
3.10.1 特性150
3.10.2 应用150
3.10.3 描述150
3.10.4 引脚描述153
3.10.5 寄存器描述153
3.10.6 结构158
3.11 SPI接口161
3.11.1 特性161
3.11.2 描述161
3.11.3 引脚描述164
3.11.4 寄存器描述164
3.11.5 结构166
3.12 定时器0和定时器1168
3.12.1 特性168
3.12.2 应用169
3.12.3 引脚描述169
3.12.4 寄存器描述169
3.12.5 定时器举例操作174
3.12.6 结构175
3.13 脉宽调制器PWM177
3.13.1 特性177
3.13.2 描述178
3.13.3 引脚描述181
3.13.4 寄存器描述181
3.14 实时时钟188
3.14.1 特性188
3.14.2 描述188
3.14.3 结构188
3.14.4 寄存器描述189
3.14.5 RTC中断190
3.14.6 混合寄存器组190
3.14.7 完整时间寄存器192
3.14.8 时间计数器组193
3.14.9 报警寄存器组194
3.14.10 基准时钟分频器(预分频器)194
3.15 看门狗198
3.15.1 特性198
3.15.2 应用199
3.15.3 描述199
3.15.4 寄存器描述199
3.15.5 方框图201
第4章 LPC2114/2124硬件结构
4.1 概述203
4.2 特性203
4.3 应用204
4.4 LPC2114/2124功能与引脚配置205
4.5 LPC2114/2124最小系统原理图209
4.6 引脚连接模块211
4.6.1 简介211
4.6.2 寄存器描述211
4.7 GPIO213
4.8 外部中断213
4.9 SPI接口217
4.10 A/D转换器217
4.10.1 特性217
4.10.2 描述217
4.10.3 引脚描述218
4.10.4 寄存器描述218
4.10.5 操作220
4.10.6 使用示例220
4.11 芯片加密221

第5章 LPC2119/2129/2194内置CAN功能的ARM
5.1 概述223
5.2 特性223
5.3 功能与引脚配置223
5.4 带CAN收发器最小系统原理图226
5.5 引脚连接模块226
5.6 CAN模块介绍226
5.6.1 CAN模块存储器映射226
5.6.2 CAN控制器寄存器一览表228
5.6.3 各控制寄存器介绍229
5.6.4 组合CAN寄存器239
5.6.5 全局验收过滤器240
5.6.6 FullCAN模式245
5.7 CAN网络的硬件连接247
5.7.1 CAN接口板247
5.7.2 CAN通信电缆247
5.7.3 CAN接口卡和调试软件248
5.8 CAN的基础实验249
5.8.1 CAN控制器的初始化249
5.8.2 CAN控制器初始化示例程序250
5.8.3 CAN控制器发送示例程序253
5.8.4 CAN中断接收示例程序254
5.9 CANstarterII快速开发套件255
5.9.1 简介255
5.9.2 特点257
5.9.3 实例简介257

第6章 LPC2100系列ARM7微控制器基础实验
6.1 LPC2100系列ARM7微控制器系统基础259
6.1.1 系统时钟介绍259
6.1.2 REMAP操作及调试261
6.1.3 启动代码说明263
6.2 LPC2100系列ARM7微控制器功能部件实战269
6.2.1 GPIO270
6.2.2 中断282
6.2.3 定时器290
6.2.4 UART295
6.2.5 I2C接口307
6.2.6 SPI接口322
6.2.7 PWM328
6.2.8 实时时钟335
6.2.9 模/数转换器342
6.2.10 WDT347
6.2.11 低功耗350
6.2.12 IAP应用357
6.2.13 除法运算361
6.3 PC机人机界面367
6.3.1 EasyARM软件窗口介绍367
6.3.2 EasyARM软件通信协议369
6.3.3 EasyARM应用例程370

第7章 移植μC/OSII到ARM7
7.1 μC/OSII简介380
7.1.1 概述380
7.1.2 μC/OSII的特点380
7.2 移植规划381
7.2.1 编译器的选择381
7.2.2 任务模式的取舍381
7.2.3 支持的指令集381
7.3 移植μC/OSII381
7.3.1 概述381
7.3.2 关于头文件includes.h和config.h383
7.3.3 编写OS_CPU.H383
7.3.4 编写OS_CPU_C.C文件384
7.3.5 编写OS_CPU_A.S389
7.3.6 关于中断及时钟节拍中断392
7.4 移植代码应用到LPC2000394
7.4.1 编写或获取启动代码395
7.4.2 挂接SWI软件中断395
7.4.3 中断及时钟节拍中断395
7.4.4 编写应用程序396

第8章 嵌入式系统开发平台
8.1 如何建立嵌入式系统开发平台398
8.1.1 使用平台开发是大势所趋398
8.1.2 建立开发平台的方法401
8.1.3 编写自己的软件模块401
8.2 数据队列402
8.2.1 简介402
8.2.2 API函数集403
8.2.3 使用范例406
8.3 串口驱动408
8.3.1 简介408
8.3.2 API函数集408
8.3.3 使用范例409
8.4 Modem接口模块412
8.4.1 简介412
8.4.2 Modem的状态412
8.4.3 API函数集413
8.4.4 使用范例414
8.5 I2C总线模块415
8.5.1 简介415
8.5.2 API函数集416
8.5.3 使用范例417
8.6 SPI总线模块420
8.6.1 简介420
8.6.2 API函数集420
8.6.3 使用范例422

第9章 在μC/OSII中使用其它片内外设
9.1 通用I/O口的使用425
9.2 定时器的使用427
9.3 PWM的使用428
9.4 实时时钟的使用429

附录AJTAG接口设计指南
附录BARM指令集相关列表汇总
B.1 ARM指令列表435
B.2 Thumb指令列表437
B.3 汇编预定义变量及伪指令439
B.4 其它443
附录CPHILIPS LPC系列32位ARM微控制器
C.1 LPC2100系列32位ARM微控制器445
C.2 LPC2200系列32位ARM微控制器446
附录DEasyARM2100开发套件
D.1 简介447
D.2 功能特点447
附录EEasyARM2200开发套件
E.1 简介449
E.2 功能特点449
E.3 结构框图450
参考文献

本目录推荐