《ARM嵌入式常用模块与综合系统设计实例精讲》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:张绮文,谢建雄,谢劲心编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2007
  • ISBN:7121031876
  • 页数:436 页
图书介绍:本书针对目前通用流行的ARM嵌入式处理器,通过实例精讲的形式,详细介绍了ARM嵌入式常用模块与综合应用系统设计的方法与技巧。全书共分3篇26章,第一篇为基础知识篇,简要介绍了ARM 处理器及系统结构、ARM编程基础、ARM开发环境与调试系统;第二篇为ARM嵌入式常用模块设计实例篇,通过19个典型模块设计实例,详细介绍了ARM嵌入式的各种开发技术和使用技巧。这些模块实例基础、实用,易学易懂,全部调试通过,几乎涵盖了所有的ARM开发技术,为读者提供了一个难得的学习途径;第三篇为综合应用系统设计实例篇,通过4个综合系统实例,对前面的ARM常用模块进行了综合应用设计。经过此篇学习,读者将快速提高ARM综合系统设计的能力,步入高级工程师的行列。 本书盘书结合,光盘中附有所有实例的硬件原理图和程序代码,读者稍加修改,便可应用于自己的工作或者自己设计的课题中,物超所值。本书适合计算机、自动化、电子及硬件等相关专业的大学生,以及从事ARM开发的科研人员使用。

第一篇 基础知识篇 2

第1章 ARM处理器及系统结构 2

1.1 ARM处理器概述 2

1.1.1 ARM公司简介 2

1.1.2 ARM特点 3

1.1.3 ARM应用领域 3

1.2 ARM处理器系列 5

1.3 ARM内核基本结构 9

1.3.1 ARM内核 9

1.3.2 ARM扩展功能块 10

1.3.3 ARM启动方式 13

1.4 ARM处理器运行模式 14

1.5 ARM寄存器 14

1.5.1 通用寄存器 14

1.5.2 程序状态寄存器 16

1.5.3 ARM状态下的寄存器 18

1.5.4 Thumb状态下的寄存器 19

1.6 ARM存储系统 20

1.6.1 ARM存储方法 20

1.6.2 存储空间管理单元(MMU) 21

1.7.2 ARM时序 23

1.7 ARM流水线与时序 23

1.7.1 ARM流水线 23

1.8 ARM中断与异常 24

1.8.1 ARM异常类型 25

1.8.2 异常的响应及返回 25

1.8.3 异常的描述 26

1.8.4 异常的处理 28

第2章 ARM编程基础 29

2.1 ARM指令系统 29

2.1.1 ARM指令介绍 29

2.1.2 ARM指令寻址方式 31

2.1.3 ARM指令集 34

2.2 ARM汇编语言设计 46

2.2.1 ARM汇编器所支持的伪指令 46

2.2.2 汇编语言的语句格式 53

2.2.3 汇编语言的程序结构 57

2.3 ARM C语言设计 58

2.3.1 优化C语言编程 58

2.3.2 C语言与汇编混合编程 64

2.3.3 ARM C/C++编译器 69

3.1.1 CodeWarrior的使用 76

第3章 ARM开发环境与调试系统 76

3.1 ADS开发环境 76

3.1.2 AXD的使用 83

3.2 SDT开发环境 86

3.2.1 SDT开发环境及特点 86

3.2.2 SDT调试环境 86

3.2.3 利用SDT软件编程实例 87

3.3 ARM体系中调试系统概述 90

3.4.1 初始化存储器 92

3.4.2 在线仿真 92

3.4 用仿真器调试系统 92

3.4.3 常见问题 94

3.5 基于Angel的调试系统 95

3.5.1 基于Angel的调试系统概述 95

3.5.2 使用Angel开发应用程序 98

3.5.3 Angel执行的操作 103

3.5.4 将Angel移植到特定的目标系统 105

3.6 基于JTAG的调试系统 122

3.6.1 调试接口JTAG介绍 122

3.6.2 基于JTAG的调试系统的特点 125

3.6.3 基于JTAG的调试系统结构 126

3.6.4 目标系统中的调试功能扩展部件 127

3.6.5 基于JTAG的调试过程 128

第二篇 ARM嵌入式常用模块设计实例篇第4章 ARM嵌入式开发平台的构建 130

4.1 实例说明 130

4.2 ARM系统体系结构 130

4.2.1 硬件体系结构 131

4.2.2 软件体系结构 133

4.3 硬件平台实现方法 134

4.3.1 硬件电路板设计 134

4.3.2 ARM硬件设计原则 136

4.4.1 软件开发流程 137

4.4 软件开发方法 137

4.4.2 软件开发环境构建 138

4.5 实例总结 139

第5章 电源模块设计 140

5.1 实例说明 140

5.2 电源工作原理 140

5.2.1 系统工作状态 140

5.2.2 外设耗电考虑 141

5.3 电源线与地线设计 143

5.4.2 电源模块电路原理图 145

5.4 硬件电路设计 145

5.4.1 直流电压产生方法 145

5.5 电源的软件管理 147

5.6 实例总结 148

第6章 SDRAM模块设计 149

6.1 实例说明 149

6.2 SDRAM特点 149

6.2.1 SDRAM状态 149

6.2.2 SDRAM控制 150

6.2.3 SDRAM时序特点 151

6.2.4 地址空间分配 152

6.3 硬件电路设计 153

6.3.1 SDRAM芯片 153

6.3.2 SDRAM模块原理图 154

6.4 软件设计 155

6.4.1 SDRAM读写 155

6.4.2 SDRAM软件测试 156

6.5 实例总结 163

第7章 Nand-Flash/Nor-Flash存储模块设计 164

7.1 实例说明 164

7.2.1 Nand-Flash与Nor-Flash区别 165

7.2 Flash原理 165

7.2.2 Flash驱动 167

7.3 硬件电路设计 167

7.3.1 Nor-Flash的设计 167

7.3.2 Nand-Flash的设计 169

7.3.3 Nor-Flash/Nand-Flash跳线选择 170

7.4 软件设计………………………17l7.4.1 Flash数据存储操作流程 171

7.4.2 程序代码说明 171

7.5 实例总结 175

8.2 GPIO原理 176

8.2.1 GPIO设备驱动原理 176

8.1 实例说明 176

第8章 通用I/O模块设计 176

8.2.2 如何驱动GPIO及对应设备 178

8.3 GPIO应用举例 178

8.4 GPIO设备程序开发 179

8.4.1 开发步骤 179

8.4.2 GPIO端口编程 180

8.5 实例总结 181

第9章 中断处理模块设计 182

9.1 实例说明 182

9.2.1 ARM中断处理类型 183

9.2 中断处理与寄存器设置 183

9.2.2 ARM中断及相关寄存器 184

9.3 中断硬件模块图 185

9.4 软件程序设计 186

9.4.1 中断处理流程 186

9.4.2 中断程序设计 186

9.4.3 中断处理程序优化 187

9.5 实例总结 188

10.2.1 ARM复位源类型 189

10.2 ARM复位原理 189

10.1 实例说明 189

第10章 复位模块设计 189

10.2.2 复位工作原理 190

10.3 硬件电路设计 191

10.3.1 复位电路原理图 191

10.3.2 复位电路的调试 192

10.4 看门狗软件复位 193

10.5 实例总结 195

第11章 A/D变换模块设计 196

11.1 实例说明 196

11.2.1 A/D变换类型 197

11.2 A/D变换原理 197

11.2.2 A/D转换过程 199

11.3 硬件电路设计 200

11.3.1 A/D模块 200

11.3.2 D/A模块 201

11.4 A/D采样软件设计 202

11.5 实例总结 204

第12章 LCD模块设计 205

12.1 实例说明 205

12.2.1 LCD显示模式 206

12.2 LCD工作原理 206

12.2.2 LCD显示地址 207

12.2.3 LCD读写时序 207

12.3 硬件电路设计 209

12.3.1 LCD显示电路 209

12.3.2 电路原理图 210

12.4 软件设计 211

12.4.1 LCD显示定位、结构与驱动 211

12.4.2 LCD显示流程 213

12.4.3 LCD显示与测试 213

12.4.4 LCD字模显示程序 217

12.5 实例总结 219

第13章 键盘模块设计 220

13.1 实例说明 220

13.2 键盘工作原理 220

13.2.1 常用键盘接口 220

13.2.2 行列式键盘工作原理 221

13.3.1 ARM键盘接口 222

13.3.2 键盘电路原理图 222

13.3 硬件电路设计 222

13.2.3 键盘扫描流程 222

13.4 软件设计 223

13.4.1 键盘扫描程序 223

13.4.2 键盘测试程序 227

13.4.3 键盘驱动 228

13.5 实例总结 229

第14章 UART异步串行接口模块设计 230

14.1 实例说明 230

14.2 串行通信原理 230

14.2.1 异步串行通信 230

14.2.3 RS-232-C接口 231

14.2.2 同步串行通信 231

14.3 硬件电路设计 233

14.4 软件设计 234

14.4.1 串口中断程序 234

14.4.2 串口调试程序代码 235

14.5 实例总结 237

第15章 I2C总线串行接口应用设计 238

15.1 实例说明 238

15.2 I2C设计原理 238

15.2.1 I2C主从模式 238

15.2.2 I2C工作原理 239

15.3 I2C硬件电路设计 240

15.3.1 I2C串口存储器 240

15.3.2 电路原理图 241

15.4 软件设计 241

15.4.1 I2C读写过程设计 241

15.4.2 程序代码说明 243

15.5 实例总结 251

第16章 以太网控制器模块设计 252

16.1 实例说明 252

16.2 以太网口工作原理 253

16.3.1 电路原理图 254

16.3 硬件电路设计 254

16.3.2 网卡芯片调试 255

16.4 软件设计 256

16.4.1 以太网口存储及初始化 256

16.4.2 发送数据包 257

16.4.3 接收数据包 258

16.4.4 程序代码 259

16.5 实例总结 266

17.2.1 USB工作原理 267

17.2 设计思路分析 267

17.1 实例说明 267

第17章 USB设备模块设计 267

17.2.2 USB特点 269

17.2.3 USB传输方式 270

17.3 硬件电路设计 270

17.3.1 USB接口内部结构 270

17.3.2 端口描述 272

17.3.3 USB硬件原理图 273

17.4 软件设计 274

17.4.1 固件程序的设计 275

17.4.2 驱动程序设计 275

17.5 实例总结 278

第18章 ARP网络寻址模块设计 279

18.1 实例说明 279

18.2 ARP设计 280

18.2.1 ARP协议工作原理 280

18.2.2 硬件ARP实现 281

18.3 软件设计 281

18.3.1 ARP实现流程 281

18.3.2 ARP程序设计 283

18.4 实例总结 287

19.1 实例说明 288

第19章 Boot-loader模块设计 288

19.2 设计思路分析 289

19.2.1 Boot-loader原理 290

19.2.2 Boot-loader的stage 1 292

19.2.3 Boot-loader的stage 2 293

19.3 实现方法 296

19.3.1 Boot-loader的设置 296

19.3.2 Boot-loader程序设计 297

19.3.3 Boot-loader程序烧写 300

19.4 实例总结 301

20.1 实例说明 302

第20章 ARM Linux的移植与应用设计 302

20.2.1 系统移植类型 303

20.2.2 系统移植的启动阶段 303

20.2 Linux系统移植原理 303

20.3 ARM Linux的移植过程 304

20.3.1 建立Linux交叉编译环境 304

20.3.2 剪裁和配置ARM Linux内核 306

20.3.3 引导内核启动流程 311

20.3.4 编写嵌入式Linux的设备驱动程序 313

20.4 实例总结 316

21.2 根文件系统原理 317

21.2.1 Linux源文件的组织结构 317

第21章 基于Nand-Flash的文件系统设计 317

21.1 实例说明 317

21.2.2 文件系统指标 319

21.2.3 文件系统分类 319

21.3 根文件创建过程 321

21.3.1 配置NFS 321

21.3.2 创建根文件系统 321

21.3.3 文件系统的页面管理 325

21.4 实例总结 327

22.1 实例说明 328

22.2 GUI系统原理 328

22.2.1 常用的GUI系统 328

第22章 GUI系统的移植与应用设计 328

22.2.2 GUI设计要求 331

22.3 不同GUI平台的移植配置 332

22.3.1 MicroWindows的移植配置 332

22.3.2 MiniGUI的移植配置 333

22.3.3 Qt/Embedded的移植配置 333

22.4.1 GUI系统的移植过程 334

22.4 GUI图形显示的实现 334

22.4.2 基于Frame-buffer的GUI图形显示 335

22.5 实例总结 337

第三篇 综合应用系统设计实例篇 340

第23章 UDP数据报与TCP传输应用系统设计 340

23.1 实例说明 340

23.2 UDP与TCP数据传输原理 340

23.2.1 UDP工作原理 340

23.2.2 TCP工作原理 341

23.3 层间接口设计 342

23.4.1 UDP数据报传输 345

23.4 软件设计 345

23.4.2 TCP数据传输的实现 350

23.5 实例总结 358

第24章 音频编解码应用系统设计 359

24.1 实例说明 359

24.2 音频编解码原理 360

24.2.1 音频编解码框图 360

24.2.2 音频编码过程 361

24.2.3 IIS音频总线 363

24.2.4 IIS音频时钟与传输方式 364

24.3.1 音频A/D单元 365

24.3 硬件电路设计 365

24.3.2 与ARM音频接口 366

24.4 软件设计 366

24.5 实例总结 370

第25章 数字视频监控应用系统设计 371

25.1 实例说明 371

25.2 设计思路分析 371

25.2.1 监控系统实现方案 371

25.2.2 监控系统应用举例 373

25.3.1 ARM视频监控平台 374

25.3 硬件电路设计 374

25.3.2 VGA接口与权电阻网络 375

25.3.3 CMOS图像采集模块 376

25.4 软件设计 378

25.4.1 监控主程序流程 378

25.4.2 程序代码说明 379

25.5 实例总结 396

第26章 指纹识别应用系统设计 397

26.1 实例说明 397

26.2 指纹识别 397

26.2.2 指纹识别的基本原理 398

26.2.1 基本概念 398

26.2.3 指纹识别的方法 399

26.3 硬件电路设计 403

26.3.1 指纹硬件电路 403

26.3.2 电路原理图 404

26.4 软件设计 405

26.4.1 指纹识别驱动 405

26.4.2 指纹处理程序设计 405

26.5 实例总结 413

附录A ARM主流微处理器芯片介绍 415