《ARM快速嵌入式系统原型设计 基于开源硬件mbed》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:(英)RobToulson,(英)TimWilmshurst著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2014
  • ISBN:9787111460190
  • 页数:294 页
图书介绍:本书旨在通过mbed介绍嵌入式系统设计的所有主要议题,便于读者快速掌握嵌入式系统的设计方法。本书共15章。第1~10章从基本的原理和简单的工程入手,使用mbed工程示例提供一套完整的嵌入式系统设计入门课程,旨在揭示如何使用mbed快速地设计嵌入式系统。第11~15章逐渐深入到许多更专业的领域,阐述嵌入式系统的设计精髓,为读者进一步阅读或学习更高级的课程打基础。

第一部分 嵌入式系统概述与玩转mbed 2

第1章 嵌入式系统、微控制器与ARM 2

1.1嵌入式系统简介 2

1.1.1什么是嵌入式系统 2

1.1.2嵌入式系统示例 3

1.2微处理器与微控制器 4

1.2.1计算机主要组件 5

1.2.2微控制器 6

1.3嵌入式系统的开发流程 7

1.3.1程序语言:C/C++有什么特别之处 7

1.3.2开发周期 7

1.4进入ARM世界 8

1.4.1关于ARM的历史 8

1.4.2技术细节:RISC的意义 9

1.4.3 Cortex内核 10

本章回顾 11

习题 11

参考文献 11

第2章 mbed开发板 12

2.1 mbed简介 12

2.1.1 mbed体系结构 14

2.1.2 LPC 1768微控制器 15

2.2 mbed入门教程 16

2.2.1步骤1:连接mbed到PC 17

2.2.2步骤2:创建mbed账户 17

2.2.3步骤3:运行程序 17

2.2.4步骤4:编译程序 18

2.2.5步骤5:下载程序二进制代码 19

2.2.6步骤6:修改程序代码 19

2.3开发环境 19

2.3.1 mbed编译器和API 19

2.3.2 C/C++的使用 20

本章回顾 20

习题 20

参考文献 21

第3章 数字输入和输出 22

3.1开始编写程序 22

3.1.1思考第一个程序 22

3.1.2了解mbed的API函数 25

3.1.3分析while循环 25

3.2用电压表示逻辑值 27

3.3 mbed数字输出 27

3.3.1发光二极管的使用 28

3.3.2 mbed外部引脚的使用 29

3.4 mbed数字输入 30

3.4.1开关与数字系统的连接 30

3.4.2 DigitalIn API 31

3.4.3用if语句响应开关输入 31

3.5简单的光电设备接口 33

3.5.1光敏反射和透射传感器 33

3.5.2光敏传感器与mbed开发板的连接 34

3.5.3七段数码管显示 35

3.5.4七段数码管与mbed开发板的连接 36

3.6驱动大型直流负载 39

3.6.1使用晶体管驱动 39

3.6.2用mbed进行电机驱动控制 40

3.6.3驱动多个七段数码管 41

3.7小项目:字母计数器 42

本章回顾 42

习题 43

参考文献 44

第4章 模拟输出 45

4.1数据转换简介 45

4.2 mbed开发板上的模拟输出 46

4.2.1产生恒定的输出电压 47

4.2.2锯齿波 47

4.2.3测试DAC分辨率 50

4.2.4产生正弦波 50

4.3另一种形式的模拟量输出:脉冲宽度调制 51

4.4 mbed开发板上的脉冲宽度调制 52

4.4.1使用mbed的PWM信号源 52

4.4.2一些PWM输出实验 53

4.4.3控制小电机的速度 55

4.4.4用软件方式产生PWM 55

4.4.5伺服控制 56

4.4.6输出到一个压电转换器 57

本章回顾 59

习题 60

参考文献 60

第5章 模拟输入 61

5.1数模转换 61

5.1.1模-数转换器 61

5.1.2范围、分辨率和量化 62

5.1.3采样频率 64

5.1.4 mbed开发板上的模拟输入 64

5.2模拟输入和输出混合应用 65

5.2.1用可变电压控制LED亮度 65

5.2.2用PWM控制LED亮度 66

5.2.3 PWM频率控制 67

5.3模拟输入数据的处理 68

5.3.1在计算机屏幕上显示数值 68

5.3.2将ADC输出调整到识别范围内 69

5.3.3采用平均值降低噪声 69

5.4一些简单的模拟传感器 70

5.4.1光敏电阻 70

5.4.2集成电路温度传感器 71

5.5分析数据转换时间 71

5.6小项目:二维光跟踪 73

本章回顾 73

习题 74

参考文献 74

第6章 高级编程技术 75

6.1思考程序设计和程序结构带来的好处 75

6.2函数 75

6.3程序设计 76

6.3.1使用流程图定义代码结构 76

6.3.2伪代码 77

6.4在mbed开发板上使用函数 78

6.4.1实现七段数码管计数器 79

6.4.2函数重用 80

6.4.3一个使用函数且更复杂的程序 81

6.5在C/C++中使用多个文件 83

6.5.1 C/C++程序编译过程概述 83

6.5.2 C/C++预处理器和预处理器指令 84

6.5.3 #ifndef伪指令 85

6.5.4全局地使用mbed对象 86

6.6模块化程序示例 86

本章回顾 89

习题 90

第7章 串行通信 91

7.1同步串行通信简介 91

7.2串行外围接口 92

7.2.1 SPI简介 93

7.2.2 mbed开发板上的SPI 94

7.2.3设置mbed SPI主设备 94

7.2.4创建SPI数据链路 95

7.3智能仪表和SPI加速器 99

7.3.1 ADXL345加速器简介 99

7.3.2简单ADXL345程序开发 100

7.4 SPI评估 102

7.5 I2C总线 103

7.5.1 I2C总线简介 103

7.5.2 mbed开发板上的I2C总线 105

7.5.3设置I2C数据链路 105

7.6用I2C总线标准的温度传感器通信 108

7.7 SRF08超声波测距仪的使用 110

7.8 I2C总线评估 112

7.9异步串行数据通信 112

7.9.1异步串行通信简介 113

7.9.2 mbed开发板上的异步串行通信应用 113

7.9.3同宿主计算机的同步串行通信应用 116

7.10小项目:多节点I2C总线 116

本章回顾 116

习题 116

参考文献 117

第8章 液晶显示器 118

8.1显示技术 118

8.1.1液晶技术简介 118

8.1.2液晶字符显示 119

8.2使用PC 1602F LCD 120

8.2.1 PC 1602F显示器简介 121

8.2.2连接PC 1602F到mbed开发板 121

8.2.3 LCD接口的模块化编程 122

8.2.4初始化显示 123

8.2.5向LCD发送显示数据 124

8.2.6完整的LCP.cpp定义 125

8.2.7使用LCD函数 126

8.2.8向指定位置添加数据 127

8.3使用mbed开发板的TextLCD库 128

8.4在LCD上显示模拟输入数据 130

8.5更先进的LCD 131

8.5.1彩色LCD 131

8.5.2控制SPI标准的LCD手机显示屏 132

8.6小项目:数字水平仪 134

本章回顾 134

习题 135

参考文献 135

第9章 中断、定时器和任务 136

9.1嵌入式系统中的定时和任务 136

9.1.1定时器和中断 136

9.1.2任务 136

9.1.3事件触发任务和时间触发任务 137

9.2响应事件触发的事件 137

9.2.1轮询 137

9.2.2中断简介 138

9.3简单的mbed中断 139

9.4深入理解中断 140

9.4.1 LPC 1768中断 142

9.4.2测试中断延迟 142

9.4.3禁用中断 143

9.4.4模拟输入中断 144

9.4.5中断总结 145

9.5定时器 145

9.5.1数字计数器 145

9.5.2使用计数器作为定时器 146

9.5.3 mbed上的定时器 146

9.6使用mbed定时器 146

9.6.1使用多个mbed定时器 147

9.6.2测试定时器延迟 148

9.7使用mbed超时 150

9.7.1超时应用简单示例 150

9.7.2超时进阶应用 151

9.7.3用超时测试反应时间 152

9.8使用mbed断续装置 153

9.8.1节拍器中使用断续装置 154

9.8.2思考多任务节拍器程序 156

9.9实时时钟 157

9.10开关去除抖动 157

9.11小项目 159

9.11.1独立节拍器 159

9.11.2加速度计阈值中断 159

本章回顾 160

习题 160

第10章 存储器与数据管理 161

10.1存储器综述 161

10.1.1存储器功能类型 161

10.1.2基本电子存储器类型 161

10.2使用mbed的数据文件 163

10.2.1回顾部分所需的C/C++库函数 164

10.2.2定义mbed的本地文件系统 164

10.2.3打开和关闭文件 164

10.2.4写入和读取文件数据 165

10.3 mbed数据文件存取示例 165

10.3.1文件存取 165

10.3.2字符串文件存取 166

10.3.3使用格式化数据 167

10.4使用mbed的外部存储器 168

10.5指针简介 170

10.6小项目:加速度计阈值的记录 172

本章回顾 173

习题 173

参考文献 173

第二部分 高级和专家级应用 176

第11章 数字信号处理 176

11.1数字信号处理器简介 176

11.2数字滤波示例 176

11.3 mbed DSP示例 178

11.3.1数字数据的输入和输出 178

11.3.2信号重构 180

11.3.3添加一个数字低通滤波器 182

11.3.4添加一个激活按钮 183

11.3.5数字高通滤波器 184

11.4延迟/回声效果 184

11.5使用wave音频文件 187

11.5.1波形信息的头部 187

11.5.2用mbed读取wave文件的头部 189

11.5.3读取、输出单声道wave数据 191

11.6 DSP小结 194

11.7小项目:立体声播放器 194

11.7.1基本功能的立体声播放器 194

11.7.2拥有PC接口的立体声播放器 194

11.7.3拥有手机显示接口的便携式立体声播放器 194

本章回顾 194

习题 195

参考文献 195

第12章 高级串行通信 196

12.1高级串行通信协议简介 196

12.2蓝牙串行通信 196

12.2.1蓝牙简介 196

12.2.2蓝牙模块RN-41和RN-42的接口 197

12.2.3通过蓝牙发送mbed数据 197

12.2.4从主机终端应用程序接收的蓝牙数据 199

12.2.5两个mbed之间通过蓝牙通信 199

12.3 USB简介 202

12.3.1使用mbed模拟USB鼠标 203

12.3.2从mbed端发送USBMIDI数据 203

12.4以太网简介 206

12.4.1以太网概述 206

12.4.2实现简单的mbed以太网通信 207

12.4.3 mbed之间的以太网通信 209

12.5用mbed进行本地网络和Internet通信 211

12.5.1用mbed作为HTTP客户端 211

12.5.2用mbed作为HTTP文件服务器 213

12.5.3用远程过程调用修改mbed输出 214

12.5.4用远程JavaScript接口控制mbed 216

本章回顾 218

习题 219

参考文献 219

第13章 控制系统 220

13.1控制系统简介 220

13.1.1闭环和开环控制系统 220

13.1.2闭环巡航控制示例 221

13.1.3比例控制 223

13.1.4 PID控制 224

13.2闭环数字罗盘示例 225

13.2.1 HMC6352数字罗盘的使用 225

13.2.2 360°旋转伺服系统的实现 227

13.2.3闭环控制算法的实现 229

13.3基于控制器局域网控制数据通信 231

13.3.1控制器局域网 231

13.3.2 mbed上的CAN总线 232

本章回顾 237

习题 237

参考文献 237

第14章 mbed库函数入门 238

14.1简介 238

14.2控制寄存器概念 238

14.3数字输入/输出 240

14.3.1 mbed数字输入/输出控制寄存器 240

14.3.2数字输出的应用 241

14.3.3添加第二个数字输出 242

14.3.4数字输入 243

14.4深入了解控制寄存器 244

14.4.1引脚功能选择寄存器和引脚模式寄存器 245

14.4.2功率控制寄存器和时钟选择寄存器 246

14.5使用DAC 248

14.5.1 mbed DAC控制寄存器 248

14.5.2 DAC的应用 249

14.6使用ADC 250

14.6.1 mbed ADC控制寄存器 250

14.6.2 ADC应用 251

14.6.3改变ADC转换速度 253

14.7控制寄存器使用小结 255

本章回顾 255

习题 256

参考文献 256

第15章 项目扩展 257

15.1去往何方 257

15.2 mbed Pololu机器人 257

15.3高级音频项目 258

15.4物联网 258

15.5 mbed LPC 11 U24简介 259

15.6从mbed到实际生产 260

15.7结束语 262

参考文献 263

附录A 数制系统 264

附录B C语言基础 269

附录C mbed技术资料 286

附录D 配件清单 290

附录E Tera Term终端模拟器 292