《ARM与FPGA综合设计及应用》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:廖义奎编著
  • 出 版 社:北京:中国电力出版社
  • 出版年份:2008
  • ISBN:7508361431
  • 页数:380 页
图书介绍:本书分为ARM嵌入式系统设计、FPGA嵌入式设计以及ARM与FPGA综合设计在工业控制中的应用三个部分。其中,第一部分主要讲解AT91SAM7S系列ARM处理器的硬件设计与软件编程方法,第二部分主要讲解Cyclone系列FPGA可编程逻辑器件的硬件设计与软件编程方法,第三部分主要介绍ARM与上位机的连接、ARM与短信模块的接口与应用、ARM在变频器控制中的应用、ARM与FPGA综合设计在自动供水系统中的应用以及ARM与FPGA综合设计在真空干燥系统中的应用。此外,本书还配有一张光盘,内含部分章节的源程序以及视频教程。

第一部分 ARM嵌入式系统设计 2

第1章 嵌入式系统概要 2

1.1 嵌入式系统概要 2

1.1.1 嵌入式系统简介 2

1.1.2 嵌入式系统微处理器 2

1.1.3 嵌入式操作系统 5

1.1.4 嵌入式系统的应用模式 9

1.1.5 嵌入式系统选型 9

1.2 ARM处理器 9

1.2.1 ARM处理器简介 9

1.2.2 ARM处理器类型 10

1.2.2 几种典型的ARM处理器 16

第2章 ARM7嵌入式系统硬件基础 22

2.1 AT91SAM7S64微处理器介绍 22

2.1.1 AT91SAM7S64的特点 22

2.1.2 AT91SAM7S64内部结构 23

2.1.3 AT91SAM7S64存储器映射 27

2.1.4 系统控制器映射 28

2.1.5 外设映射 29

2.2 AT91SAM7S64嵌入式系统硬件设计 29

2.2.1 硬件结构 29

2.2.2 基本电路 30

2.3 AT91SAM7S64嵌入式系统外围硬件设计 31

2.3.1 I/O接口电路 31

2.3.2 Key接口电路 32

2.3.3 LED接口电路 32

2.3.4 USB接口电路 33

2.3.5 稳压电源电路 33

2.3.6 模拟信号调理电路 34

2.3.7 JTAG接口电路 35

2.3.8 串行EEPROM接口电路 36

2.3.9 复位与看门狗电路 36

2.3.10 DEBUG接口/通用串口电路 37

2.3.11 RS-232转RS-485接口电路 39

第3章 简单的Key_LED程序设计 41

3.1 AT91SAM7S系列ARM处理器通用I/O口的特点与连接 41

3.2 HelloWorld程序 42

3.2.1 建立一个简单的HelloWord程序 42

3.2.2 HelloWorld源程序 43

3.2.3 程序编译 44

3.2.4 通过JTAG口烧写Flash 45

3.2.5 通过USB接口及SAM-BA烧写Flash 45

3.3 Key_LED程序 47

3.4 深入分析Key_LED程序 48

3.4.1 I/O口常用配置与操作函数 48

3.4.2 常规系统参数设置 55

3.4.3 系统启动初始化程序 56

3.4.4 AT91SAM7S64的系统参数及系统函数 56

3.5 GCC项目编译 57

3.5.1 make常用命令 57

3.5.2 makefile文件 58

3.5.3 Key_LED项目中的makefile文件 62

3.6 WinARM介绍 65

3.6.1 WinARM介绍 65

3.6.2 WinARM提供的常用工具 66

第4章 Debug接口及USART通用串口通信 67

4.1 Debug口概述 67

4.2 Debug口编程 68

4.2.1 Debug口初始化 68

4.2.2 Debug口发送数据 71

4.2.3 Debug口中断响应 73

4.2.4 软件复位的实现 75

4.2.5 Debug口程序代码 76

4.3 通用串口基础 79

4.4 通用串口编程 81

4.4.1 通用串口初始化 81

4.4.2 通用串口发送数据 82

4.4.3 通用串口中断响应 83

4.4.4 通用串口读取接收数据 84

第5章 中断处理及ADC数模转换 85

5.1 AT91SAM7S中断基础 85

5.1.1 AT91SAM7S中断处理内部结构 85

5.1.2 AT91SAM7S中断处理过程 86

5.2 外部中断 86

5.2.1 中断初始化 86

5.2.2 中断处理 92

5.3 AT91SAM7S ADC概要 94

5.4 ADC初始化 95

5.5 ADC数据读取 102

5.6 ADC应用实例 104

第6章 USB及TWI两线接口 108

6.1 AT91SAM7S USB接口概要 108

6.1.1 USB接口标准 108

6.1.2 AT91SAM7S USB接口 111

6.2 USB接口初始化 112

6.2.1 打开USB驱动 112

6.2.2 CDC结构的成员函数 113

6.3 USB数据收发 115

6.3.1 USB数据的接收示例 115

6.3.2 USB数据的发送示例 115

6.4 PC端USB接口程序 117

6.4.1 关于INF文件 117

6.4.2 USB转串口驱动安装文件 118

6.5 TWI两线接口介绍 119

6.6 TWI初始化 120

6.6.1 TWI初始化函数 120

6.6.2 TWI读数据函数 123

6.6.3 TWI写数据函数 124

6.7 TWI应用示例 125

第7章 定时器及PWM脉宽调制 127

7.1 AT91SAM7S定时器概要 127

7.1.1 实时定时器 127

7.1.2 定时器/计数器 128

7.2 定时器初始化 128

7.2.1 定时器初始化 128

7.2.2 定时器的打开 132

7.3 定时器中断响应 132

7.4 频率测量 133

7.5 看门狗定时器 134

7.5.1 看门狗定时器介绍 134

7.5.2 看门狗定时器初始化 134

7.5.3 看门狗定时器的喂狗 136

7.5.4 看门狗定时器库函数 137

7.6 PWM脉宽调制介绍 138

7.6.1 AT91SAM7S脉宽调制介绍 138

7.6.2 外设A与外设B的设置及PWM输出 138

7.6.3 PWM初始化 140

7.6.4 PWM输出 141

第8章 WinARM C++程序设计 142

8.1 C++的特点 142

8.1.1 C++介绍 142

8.1.2 兼容C语言 142

8.1.3 面向对象语言 144

8.1.4 泛型编程语言 145

8.1.5 STL编程 145

8.2 WinARM中对C++的支持 147

8.2.1 WinARM中的C++编译器 147

8.2.2 在C++程序中调用C函数 147

8.3 WinARM C++程序实例 148

第二部分 FPGA嵌入式设计 152

第9章 FPGA硬件设计 152

9.1 Cyclone系列FPGA器件的特点 152

9.1.1 Cyclone系列FPGA器件简介 152

9.1.2 Cyclone器件的特点 153

9.1.3 Cyclone Ⅱ器件介绍 154

9.1.4 Cyclone Ⅲ器件介绍 156

9.1.5 Altera串行配置器件简介 157

9.2 EP1C3 FPGA硬件设计 157

9.2.1 EP1C3引脚图 158

9.2.2 稳压电源设计 159

9.2.3 JTAG接口 160

9.2.4 Byteblaster Ⅱ下载线 161

9.2.5 复位电路 163

9.3 Quartus II开发平台应用 165

9.3.1 安装Quartus II 166

9.3.2 Quartus II的基本应用 167

9.4 简单的LED测试程序 170

第10章 FPGA Verilog HDL编程基础 172

10.1 Verilog HDL简介 172

10.1.1 Verilog HDL历史 172

10.1.2 Verilog HDL的特点 172

10.2 Verilog HDL模块 173

10.2.1 模块 173

10.2.2 区块 174

10.2.3 空白与注解 175

10.3 Verilog HDL输入/输出端口 175

10.4 Verilog HDL变量 176

10.4.1 变量的声明 176

10.4.2 数字格式 177

10.5 Verilog HDL数据类型 177

10.5.1 线网类型 178

10.5.2 寄存器类型 178

10.5.3 整数与实数类型 179

10.5.4 标量和向量类型 179

10.5.5 时间类型 180

10.5.6 参数类型 180

10.5.7 数组的表示方法 180

10.5.8 存储器的表示方法 181

10.5.9 字符串的表示方法 181

10.6 运算符 181

10.6.1 逻辑运算符 181

10.6.2 算术运算符 182

10.6.3 关系运算符 182

10.6.4 相等运算符 182

10.6.5 按位运算符 183

10.6.6 缩减运算符 183

10.6.7 移位运算符 184

10.6.8 拼接运算符 184

10.6.9 条件运算 184

10.7 always过程 184

10.7.1 always过程 185

10.7.2 触发方式 185

10.7.3 事件及敏感信号列表 186

10.8 赋值 187

10.8.1 持续赋值 187

10.8.2 阻塞式赋值 188

10.8.3 非阻塞式语句 188

10.9 行为描述 190

10.9.1 if条件语句 190

10.9.2 case多路选择语句 190

10.9.3 if语句与case语句的比较 190

10.9.4 循环语句 190

10.10 Verilog HDL任务及函数定义 191

10.10.1 函数 191

10.10.2 任务 192

10.10.3 函数与任务间的比较 193

10.11 编译预处理 193

10.11.1 文件包含命令 193

10.11.2 条件编译 193

10.11.3 文件输出/输入 194

10.11.4 时延精度预处理 194

10.12 设计风格 195

10.12.1 锁存器的使用 195

10.12.2 避免产生锁存器 195

10.12.3 设计时注意事项 195

第11章 FPGA Verilog HDL编程实例 197

11.1 3-8译码器 197

11.2 十字路口红绿灯控制电路设计 200

11.3 LED数码显示 201

11.4 扫频电路设计 203

11.5 频率测量电路设计 204

11.6 简易软件CPU的实现 205

第12章 FPGA SOPC嵌入式系统开发基础 214

12.1 SOP嵌入式系统 214

12.1.1 SOPC嵌入式系统简介 214

12.1.2 SOPC嵌入式系统类型 214

12.2 Nios II软CPU核 215

12.2.1 Nios II软CPU核简介 215

12.2.2 Nios II软CPU核的结构 215

12.2.3 三种类型的Nios II内核 216

12.3 SOPC开发流程 218

12.4 Nios II开发实例 218

12.4.1 安装开发软件 219

12.4.2 建立新项目 219

12.4.3 Nios II CPU配置 220

12.4.4 存储器与端口配置 224

12.4.5 Nios II内核配置 226

12.4.6 在QuartusII中使用Nios II处理器 228

12.4.7 在Nios II IDE中编写应用程序 230

12.4.8 返回QuartusII中重新编译 234

第三部分 ARM与FPGA综合设计在工业控制中的应用第13章 ARM与FPGA综合设计 236

13.1 ARM与FPGA综合设计思路 236

13.2 ARM与FPGA的比较 237

13.3 ARM与FPGA综合设计实例 238

13.3.1 ARM与FPGA综合设计的优点 238

13.3.2 常用的ARM与FPGA综合设计的功能划分 238

13.3.3 ARM与FPGA通信方式 239

13.4 Verilog HDL通用串口程序 240

13.4.1 UART数据发送程序 240

13.4.2 UART数据接收程序 242

13.5 ARM与FPGA综合设计简单实例 244

第14章 ARM与上位机的通信 249

14.1 ARM与上位机的连接方式 249

14.2 简单通信协议的设计 249

14.3 基于GCC的上位机串口通信程序设计 250

14.3.1 SmartWin++介绍 250

14.3.2 在Obtain_Studio平台上建立SmartWin++项目 251

14.3.3 GCC下的串口通信类 251

14.3.4 打开串口通信 252

14.3.5 修改或获取串口参数 252

14.3.6 串口的读/写 254

14.3.7 CSerial类代码 254

14.3.8 SmartWin++串口通信程序 258

14.3.9 编译与运行SmartWin++串口通信程序 262

14.4 基于VC++的上位机串口通信程序设计 263

14.5 Obtain_AutoControl测控组态软件应用 270

14.5.1 Obtain_AutoControl软件简介 270

14.5.2 Obtain_AutoControl用法 271

14.5.3 Obtain_AutoControl应用实例 273

第15章 ARM与短信模块的接口与应用 277

15.1 短信模块介绍 277

15.2 与短信收发相关的AT命令 277

15.3 短信模块的初始化 281

15.3.1 一个短信数据收发桥的设计 281

15.3.2 短信模块的初始化 281

15.4 短信的发送 283

15.5 短信的接收与处理 285

15.5.1 短信数据接收 286

15.5.2 短信数据处理 287

15.6 GPRS模块介绍 293

15.7 ARM与GPRS模块的连接 295

15.8 GPRS通信的服务软件设计 297

15.8.1 建立CFormView视图类单文档项目 297

15.8.2 编写服务器Socket类和客户Socket类 298

第16章 ARM在变频器控制中的应用 315

16.1 变频器原理 315

16.1.1 变频器介绍 315

16.1.2 变频调速原理 315

16.1.3 变频器系统结构 316

16.2 富士PllS系列变频器远程控制的数据格式 317

16.3 变频器指令的发送 321

16.3.1 固定参数的变频器指令的发送 321

16.3.2 需要传递参数的变频器指令的发送 322

16.4 变频器返回数据的接收 326

16.4.1 接收数据 326

16.4.2 变频器返回数据的处理 327

第17章 ARM与FPGA综合设计在自动供水系统中的应用 331

17.1 基于嵌入式的水处理自动监控系统方案设计 331

17.1.1 系统结构图 332

17.1.2 PC主控制软件 334

17.1.3 微处理器模块 334

17.1.4 测量模块 334

17.1.5 控制模块 336

17.1.6 中央模拟屏 338

17.1.7 通信模块 339

17.2 简易通信协议的设计与实现 340

17.2.1 简易通信协议的设计 340

17.2.2 简易通信协议的实现 343

第18章 ARM与FPGA综合设计在真空干燥系统中的应用 350

18.1 真空干燥系统的结构 350

18.2 温度与真空度控制模型 351

18.2.1 恒温或按某预定温度曲线的控制模型 351

18.2.2 恒真空度或按某预定真空度曲线的控制模型 352

18.2.3 人工神经网络的选择 352

18.2.4 由ARM与FPGA构成的嵌入式微处理器模块 353

18.2.5 测控软件设计 354

18.3 温度与真空度变化曲线的测量 355

18.3.1 量程控制的设计 355

18.3.2 利用FPGA内存模块存储数据 364

18.3.3 数据的实时采集 368

参考文献 380