首页>参考读物>电子电工>电子工程

基于ARM的嵌入式系统和物联网开发
作者 : [英] 佩里·肖(Perry Xiao) 著
译者 : 陈文智 乔丽清 译
出版日期 : 2019-12-31
ISBN : 978-7-111-64323-4
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 277
开本 : 16
原书名 : Designing Embedded Systems and the Internet of Things (IoT) with the ARM Mbed
原出版社: John Wiley & Sons(SIN)
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书重点介绍利用ARM?MPEA-平台开发嵌入式系统和物联网,其中NXP LPC1768和K64 F具有快速微控制器、各种数字和模拟I/O、各种串行通信接口和易于使用的基于网络的编译器等强大特性,是嵌入开发工程师最受欢迎的工具之一。包含大量的原创开发技术和案例,是开发项目的实用指南。

图书特色

WU

图书前言

很多年前第一次从同事那里拿到Arm? Mbed? LiB工具的时候,我的激动之情难以掩饰。它是一个由ARM大学计划捐赠的NXP LPC1768开发板。Arm? Mbed?的主要特征是可通过一个网页浏览器在线编写和编译代码,这让我耳目一新。我毕生都在用各种微控制器。在20世纪80年代,我做本科毕业设计时,我研究的课题是使用Intel 8051单芯片微控制器进行激光能量控制。这其中的概念非常简单:从激光能量监测器上读取电压值,并与期望值进行对比,计算所需调整值后反馈给激光器,从而增加或减少激光输出。但是我们必须设计和制作自己的印制电路板,编写代码,并在8051微控制器上运行。那时,单片机编程不是一项简单的任务,需要用汇编语言编写程序。那时我们经常在实验室通宵调试代码。因此我曾使用过许多基于微控制器的嵌入式系统,可以说经历很丰富。有些嵌入式系统使用非常不方便,必须下载软件、下载工具链等。用我学生的话来说,得要一名博士生才能使编译器软件得以运行。代码也很复杂,需要配置寄存器和配置端口。即使生成无数行代码都不够!
令我印象最深刻的两个嵌入式系统是树莓派和Arduino。树莓派价格优惠,规格紧凑,只有信用卡那么大。这是一个很好的用于学习计算和编码的工具包,它采用的是基于Debian的、完整的Linux操作系统和图形用户界面。但是对于很多学生项目来说,并不需要一个完整的操作系统,而且缺少模数转换器和数模转换器也是很大的缺点。Arduino的价格和规格也很有优势,但令我印象最深刻的是它在硬件和软件上的简易性。我曾经读过很多所谓的“24小时”书,而Arduino是真正的你能够在24小时内就学会的东西。它就是那么简单。但是,它只有有限的存储容量,也就意味着你不能写太长的程序,10位模数转换器在诸多应用中常被证明是不够用的。
因此,当我向学生们介绍Arm? Mbed? NXP LPC1768开发板时,他们很快就喜欢上了它。他们喜欢基于网页的编译器。正是因为不需要在电脑上下载和安装任何软件就可以运行,它让生活变得简单了许多,代码也更简单和易于理解,真是太棒了。正如Arm? Mbed? 网站上所述,只需30秒即可从盒子里获取开发板,并运行一个应用,无须安装任何软件!
Arm? Mbed? NXP LPC1768是最常用的单片机开发板之一,被学生和电子爱好者广泛应用。它基于32位ARM? Cortex? -M3微控制器,拥有96 MHz主频速度,512 KB闪存,32 KB内存,而且最重要的是,它有12位数模转换器。相比于Arduino,它的功能更强大,运行速度更快。它还有很多类型的接口,包括以太网、USB、CAN、SPI、I2C、DAC、PWM,以及其他I/O接口。
但是,32位ARM? Cortex? -M3微控制器已经逐渐走向了被淘汰的边缘,它将被32位ARM? Cortex? -M4微控制器取代。因此本书将重点关注新型的、令人期待的Arm? Mbed?以太物联网入门工具包,包括Arm? Mbed? NXP FRDM-K64F开发板和一个应用板。Arm? Mbed? NXP FRDM-K64F是新一代旗舰开发板,基于ARM? Cortex? -M4微控制器,CPU频率高达120 MHz,1024 KB闪存,256 KB内存,并惊人地拥有2个16位模数转换器。它比NXP LPC1768速度更快,功能更强大。它还有数模转换器和计时器,以及其他接口如以太网、非透明USB设备和串行接口。Arm? Mbed?以太物联网入门工具包是一个基于云的开发工具包,由ARM公司和IBM公司联合开发。它可为用户提供灵活的体验,用户可以顺畅地从开发板的传感器上发送数据到IBM云。它可以让用户通过IBM BlueMix平台进入IBM云应用。它尤其适合没有特定嵌入式或网页开发经验的用户,因为它提供了一种学习新理念和创建工作原型的平台。用户还可以对入门工具包硬件进行修改,以便满足个性需求。
由于拥有后向兼容性,许多示例代码也适用于NXP LPC1768开发板及其Mbed应用板。
在编写本书的时候,Arm? Mbed?刚发行了最新版本Arm? Mbed?操作系统5.7,这个版本与之前的Mbed 操作系统3.0和2.0相比,有很多变化。本书主要基于Arm? Mbed?操作系统5.7,关于该新操作系统的更多详情可参考Arm? Mbed?文档网站(https://os.mbed.com/docs)。
我非常喜欢运用Arm? Mbed?开发板,希望你们也能喜欢。
本书结构
本书旨在教授学生如何运用Arm? Mbed?开发板设计和开发嵌入式系统以及物联网应用。本书分为四个部分。
第一部分:Arm? Mbed?和物联网(第1~3章),介绍嵌入式系统、微控制器和微处理器、Arm?架构和Arm? Mbed?系统。同时对物联网进行了介绍,包括物联网应用和物联网驱动技术。
第二部分:Arm? Mbed?开发(第4~10章),介绍如何入门Arm? Mbed?开发,以及如何进行模拟输入/输出、数字输入/输出、通信接口、调试、在线库和项目管理。
第三部分:物联网入门工具包和物联网应用(第11~12章),介绍Arm? Mbed?以太物联网入门工具包和物联网应用实例。
第四部分:附录,包括附录A(示例代码)、附录B(HiveMQ MQTT代理)、附录C(树莓派Node-RED)、附录D(字符串和数组运算)和附录E(常用在线资源)。
读者对象
本书适合嵌入式系统开发工程师、电子工程专业本科生或研究生,以及电子爱好者阅读。读者需知晓一些基本的计算机运行原理,并能够很好地使用计算机,如打开电脑、登录、运行一些程序和从USB存储器与计算机上双向拷贝文件。
读者需曾接触过一些电子器械,如电路试验板、电线、电阻器、电源和LED。读者还需有一些编程经验(最好是C/C++,不过其他语言也可以),了解基本的语法、不同类型的变量、条件选择、循环和子程序。若还拥有一些关于微控制器的知识和经验更好,不过这不是必需的。
最后,读者需了解一些关于计算机网络和互联网的基本概念,如理解IP地址和端口号码的概念,知道如何找到一台计算机的IP地址,能够使用一些常用的互联网服务,如万维网、邮箱、下载/上传文件、在线音频、在线视频,甚至一些云服务。
本书既可用作核心教材,也可用作背景阅读材料。
建议先读材料
电子学
Electronics All-in-One for Dummies, 2nd edition, Doug Lowe, ISBN: 978-1-119-32079-1, March 2017.
C/C++编程:
Beginning Programming with C for Dummies, Dan Gookin, ISBN: 978-1-118-73763-7, November 2013.
C++ Primer, 5th edition, Stanley B. Lippman, Josée Lajoie, Barbara E. Moo, Addison Wesley, ISBN: 978-0-321-71411-4, August 2012.
计算机网络和互联网:
Computing Fundamentals: Digital Literacy Edition, Faithe Wempen with Rosemary Hattersley, Richard Millett, Kate Shoup, ISBN: 978-1-118-97474-2, August 2014.
Understanding Data Communications: From Fundamentals to Networking, 3rd edition, Gilbert Held, ISBN: 978-0-471-62745-6, October 2000.
关于所需设备
学习本书,你需要准备:
Arm? Mbed?以太物联网入门工具包
NXP FRDM-K64F开发板
Mbed应用板
带跨接线的电路试验板
各种传感器
数字或模拟示波器(可选)
NXP LPC1768开发板及其应用板(可选)
树莓派(http://www.raspberrypi.org/)(可选)
Java JDK软件(http://www.oracle.com/technetwork/java/javase/downloads/index.html)
Python软件(http://www.python.org/downloads/)(可选)
致谢
诚挚地感谢Wiley出版社给我这次机会,也感谢Ella Mitchell的坚持和耐心,使得本书得以面世。
配套示例
本书示例代码见华章图书官网http://www.hzbook.com。

上架指导

嵌入式系统及物联网开发

封底文字

本书是一本全面的、通俗易懂的、基于Arm? Mbed?的嵌入式系统开发与物联网入门指南。通过网页浏览器在线编写和编译代码,不需要在电脑上下载和安装任何软件就可运用Arm? Mbed?开发板设计和开发嵌入式系统及物联网应用。
  本书分为三个部分。第一部分介绍嵌入式系统、微控制器和微处理器、Arm?架构和Arm? Mbed?系统,同时对物联网进行了概述,包括物联网应用和物联网驱动技术。第二部分介绍Arm? Mbed?开发,以及如何进行模拟输入/输出、数字输入/输出、通信接口、调试、在线库和项目管理。第三部分介绍Arm? Mbed?物联网入门工具包和物联网应用实例。
本书特色:
本书重点介绍Arm? Mbed? NXP LPC1768和FRDM-K64F评估板。NXP LPC1768有强大的特性,如快速微控制器、多种数字和模拟输入/输出,多个串行通信接口和一个方便易用的网页编译器,它是学习和创建项目最常用的工具包之一。FRDM-K64F相对来说比较新,基本与NXP LPC1768兼容,但拥有更强大的特性。
清晰的主题介绍。
丰富的原始案例研究。
实践性强的Arm? Mbed?平台项目开发指南。
最前沿的物联网应用开发指南。

作者简介

[英] 佩里·肖(Perry Xiao) 著:佩里·肖(Perry Xiao)博士,英国伦敦南岸大学工程学院副教授,英国Biox Systems有限公司的董事和联合创始人。他是特许工程师、技术学会会士和高等教育学会资深会士。近20年来他一直开设电子学、软件、计算机网络、无线通信对象等本科和研究生课程。他获得2项英国专利应用,发表了100余篇学术论文,担任9个期刊的编审,获得了近100万英镑的研究基金。

译者序

20世纪90年代初,大家主要在小型机或工作站上编程和工作。X终端由于成本低性能好曾风靡一时。我的科研团队也自主研制了X 终端,并因此在四个重要方向上有了较好的技术积累,这四个方向分别是:图形专用处理器及其外围电路的设计和实现,全栈式网络协议族的设计和实现,类Unix操作系统内核的底层改造和移植,X Windows窗口系统的分析和移植。基于这几项关键技术的经验优势,我们在之后兴起和迅速发展的嵌入式系统、物联网、云计算等相关领域不断进行科研和教学探索,先后组织、承担和参与了不少国家级科研项目和重大企业科研项目,撰写了《嵌入式系统原理与设计》等国家级规划教材,把研究经验和成果带到了学校课堂上,开设了全国较早的嵌入式系统课程。
在嵌入式领域深耕二十余年,我对嵌入式的感情尤为深厚,当看到Perry Xiao博士撰写的这本书时,如遇挚友,希望能把该书的精彩跟大家一起分享。作者从嵌入式系统的基本概念入手,层层推进,到物联网应用以及在物联网推动下各软硬件技术的发展。书中首先介绍了嵌入式系统、微控制器和微处理器、Arm?架构和Arm? Mbed?系统,同时对物联网进行了概述,包括物联网应用和物联网驱动技术,以通俗易懂的语言引导读者初步了解嵌入式系统和物联网。然后介绍了基于Arm? Mbed?的嵌入式系统设计,以及如何进行模拟输入/输出、数字输入/输出、通信接口、调试、在线库和项目管理。Arm? Mbed?是一个可以在线编译代码的工具平台,无须下载和安装任何软件,而且代码也更简单和易于理解,使初学者更容易入门。最后,本书还紧扣物联网发展热潮,介绍了如何使用Arm? Mbed?开发物联网应用以及物联网应用实例。最值得一提的是,在本书中作者把读者视为自己初入门的新生,耐心细致地教授如何从零开始实现嵌入式系统设计和开发,书中有大量示例帮助读者更好地理解和掌握。
本书适合大学生和电子业余爱好者阅读,也可作为电子和计算机相关专业的核心教材或教学参考书。本书的学习基础是对计算机工作原理、计算机网络和互联网等基础知识有所理解。
很高兴邀请到乔丽清女士共同翻译本书,在这个艰难又有益的过程中,我们还得到了很多同事的帮助和业内专家的指导,以及出版社的耐心修订。我们力求做到技术术语准确,但限于水平,如有错误或疏漏,恳请广大读者朋友批评指正。最后感谢本书原作者的支持、感谢大家的关心和帮助。

陈文智
2019年于浙大求是园

图书目录

译者序
前言
第一部分 Arm? Mbed?和物联网
第1章 Arm? Mbed? 2
1.1 什么是嵌入式系统 2
1.2 微控制器和微处理器 3
1.3 ARM?处理器架构 6
1.4 Arm? Mbed?系统 8
1.4.1 NXP LPC1768 10
1.4.2 NXP LPC11U24 13
1.4.3 BBC Micro:bit 14
1.4.4 Arm? Mbed?以太物联网入门工具包 16
1.5 小结 20
1.6 问题 20
第2章 物联网 21
2.1 什么是物联网 21
2.2 物联网如何运行 22
2.3 物联网如何改变我们的生活 22
2.4 物联网应用前景 24
2.4.1 家居 24
2.4.2 医疗 25
2.4.3 交通 25
2.4.4 能源 25
2.4.5 制造 25
2.4.6 环境 26
2.5 小结 26
2.6 问题 26
第3章 物联网驱动技术 27
3.1 传感器和致动器 27
3.2 通信 27
3.2.1 无线射频识别(RFID)和近场通信(NFC) 27
3.2.2 蓝牙低功耗(BLE) 28
3.2.3 可见光通信(LiFi) 28
3.2.4 6LowPAN 29
3.2.5 ZigBee 29
3.2.6 Z-Wave 29
3.2.7 LoRa 30
3.3 协议 30
3.3.1 超文本传输协议 30
3.3.2 WebSocket 31
3.3.3 消息队列遥测传输 32
3.3.4 受限应用层协议 33
3.3.5 可扩展消息处理现场协议 33
3.4 Node-RED 33
3.5 平台 35
3.5.1 IBM Watson物联网——Bluemix 35
3.5.2 Eclipse物联网 36
3.5.3 AWS物联网 37
3.5.4 微软Azure物联网套件 37
3.5.5 谷歌云物联网 38
3.5.6 ThingWorx 38
3.5.7 GE Predix 39
3.5.8 Xively 39
3.5.9 macchina.io 39
3.5.10 Carriots 39
3.6 小结 40
3.7 问题 40
第二部分 Arm? Mbed?开发
第4章 Arm? Mbed?入门 42
4.1 简介 42
4.2 所需硬件和软件 43
4.2.1 硬件 43
4.2.2 软件 43
4.3 你的第一个程序:Blinky LED 46
4.3.1 将Mbed连接到一台计算机 46
4.3.2 单击“mbed.htm”登录 46
4.3.3 添加FRDM-K64F平台到编译器 46
4.3.4 导入一个已有程序 48
4.3.5 编译、下载并运行程序 49
4.3.6 下载并运行其他已有程序 49
4.4 创建你自己的程序 50
4.5 C/C++编程语言 50
4.6 函数与模块化编程 50
4.7 管理平台 53
4.8 复制你的程序 55
4.9 搜索和替换 56
4.10 编译可在多平台运行的程序 57
4.11 删除你的程序 58
4.12 灾备流程 58
4.13 更新固件 58
4.14 帮助 60
4.15 小结 61
第5章 输入和输出 62
5.1 数字输入和输出 62
5.1.1 数字输入 62
5.1.2 数字输出 64
5.1.3 总线输入(BusIn)、总线输出(BusOut)、总线输入和输出(BusInOut) 69
5.2 模拟输入和输出 70
5.2.1 模拟输入 70
5.2.2 模拟输出 71
5.3 脉宽调制 74
5.4 加速计和磁力计 76
5.5 SD卡 82
5.6 本地文件系统(LPC1768) 84
5.7 中断 85
5.8 小结 86
第6章 数字接口 87
6.1 串行接口 87
6.2 串行外围接口 90
6.3 内部集成电路 91
6.4 控制器局域网 93
6.5 小结 95
第7章 网络与通信 96
7.1 以太网 96
7.2 以太网网页客户端和网页
服务器 100
7.3 TCP接口和UDP接口 103
7.4 WebSocket 106
7.5 WiFi 109
7.6 小结 112
第8章 数字信号处理和控制 113
8.1 低通滤波器 113
8.2 高通滤波器 116
8.3 带通滤波器 118
8.4 带阻滤波器和陷波滤波器 120
8.5 快速傅里叶变换 123
8.6 比例积分微分控制器 133
8.7 小结 136
第9章 调试、计时器、多线程和实时编程 137
9.1 调试 137
9.2 计时器、超时、断续器、时间 138
9.3 网络时间协议 142
9.4 多线程和实时编程 143
9.5 小结 148
第10章 库与程序 149
10.1 导入库和程序 149
10.2 导出你的程序 150
10.3 编写你自己的库 152
10.4 发布你的库 156
10.5 发布你的程序 157
10.6 版本控制 160
10.7 协作 166
10.8 更新你的库和程序 171
10.9 小结 172
第三部分 物联网入门工具包和物联网应用
第11章 Arm? Mbed?以太物联网入门工具包 174
11.1 128×32 LCD 174
11.2 控制杆 175
11.3 两个电位计 176
11.4 扬声器 177
11.5 三轴加速计 178
11.6 LM75B温度传感器 179
11.7 RGB LED 179
11.8 小结 180
第12章 Arm? Mbed? 物联网应用 181
12.1 基于互联网的温度监测 181
12.2 智能照明 189
12.3 声控门禁 194
12.4 RFID读写器 200
12.5 基于IBM Watson Bluemix的云示例 204
12.5.1 IBM快速入门服务 205
12.5.2 IBM注册服务(Bluemix) 206
12.5.3 将IBM Watson物联网服务添加到应用中 213
12.5.4 将Mbed设备添加到Watson物联网架构 216
12.5.5 将证书添加到Mbed设备 218
12.5.6 将IBM物联网Watson应用连接到Mbed设备 220
12.5.7 从IBM物联网Watson应用发送命令到Mbed板 222
12.5.8 更多关于Node-RED 225
12.6 实时信号处理 230
12.7 小结 235
第四部分 附录
附录A 示例代码 238
附录B HiveMQ MQTT代理 241
附录C 树莓派Node-RED 250
附录D 字符串和数组运算 258
附录E 常用在线资源 264

教学资源推荐
作者: 李华 吴建华 王安娜 等编著
作者: [美] 皮特·巴锡(Peter Basis) 著
作者: 【美】戴夫德斯·谢蒂(Devdas Shetty)理查德 A. 科尔克(Richard A. Kolk)著
作者: Devdas Shetty, Richard A.Kolk
参考读物推荐
作者: [美]托马斯·L.弗洛伊德(Thomas L. Floyd),[美]大卫·M.布奇拉(David M. Buchla),[美]加里·D.斯奈德(Gary D.Snyder) 著
作者: (美)James Floyd Kelly  Harold Timmis 著
作者: [比]保罗·G.A.杰斯珀斯(Paul G. A. Jespers) [美]鲍里斯·默尔曼(Boris Murmann)著