欢迎光临
免费的PDF电子书下载网站

物联网之魂:物联网协议与物联网操作系统 PDF下载

编辑推荐

《物联网之魂:物联网协议与物联网操作系统》特色:

  1. 物联网领域的多位专家力荐;
  2. 国内物联网工程学科的奠基性作品;
  3. 一线物联网工程师和高校教学人员参与创作,阵容强大;
  4. 系统阐述物联网协议的相关知识与物联网操作系统的设计理念与方法
  5. 实用性强,注重教学的同时,非常注重物联网工程实践;

“物联网工程实战丛书”是由山东大学信息科学与工程学院高级工程师曾凡太教授组织国内物联网领域的一线研发工程师和高校教研人员编写的系列作品。丛书系统地介绍了物联网的各种开发工具、设计语言、研发平台和工程案例等内容,勾勒出了物联网工程的学科结构及其专业必修课的范畴,充分体现了工程专业“理论扎实,操作见长”的学科特色,可为相关院校的物联网工程课程设置提供参考,并对工业、农业、商贸、物流、交通和医疗等行业的物联网工程应用指明方向。

丛书全面、系统地阐述了物联网理论基础、电路设计、专用芯片设计、物联网协议、物联网操作系统、云服务平台构建、智能硬件设计、物联网工程实践和智慧城市建设等内容,勾勒出了物联网工程的学科结构及其专业必修课的范畴,可以为相关院校的物联网工程课程设置提供参考。

丛书从硬件电路、芯片设计、软件开发、协议转换,到智能硬件研发(小项目)和智慧城市建设(大工程)等内容,都用了大量篇幅进行阐述。丛书系统地介绍了各种开发工具、设计语言、研发平台和工程案列等内容。充分体现了工程专业“理论扎实,操作见长”的学科特色,并对工业、农业、商贸、物流、交通和医疗等行业的物联网工程应用指明了方向。

丛书推出以下6卷:

《物联网之源:信息物理与信息感知基础》

《物联网之芯:传感器件与通信芯片设计》

《物联网之魂:物联网协议与物联网操作系统》

《物联网之云:云平台搭建与大数据处理》

《物联网之雾:基于雾计算的智能硬件快速反应与安全控制》

《物联网之智:智能硬件开发与智慧城市建设》

 ;

内容简介

《物联网之魂:物联网协议与物联网操作系统》为“物联网工程实战丛书”的第3卷。书中从物联网工程的实际需求出发,阐述了物联网协议的相关知识及物联网操作系统的设计和开发理念,从源头告诉读者需要开发什么样的物联网操作系统。

《物联网之魂:物联网协议与物联网操作系统》共10章。第1章阐述了与物联网联系比较紧密的几种网络通信协议;第2章阐述了路由器交换机原理及其设计与开发的要点;第3章对移动互联网Wi-Fi做了详细解析;第4章给出了操作系统的一般概念;第5章介绍了几种应用于资源受限设备的物联网操作系统;第6章介绍了几种嵌入式实时操作系统;第7章剖析了一种轻量级实时物联网操作系统Zephyr,给出了较为详细的应用开发指导;第8章阐述了比较流行的Ubunto操作系统;第9章详尽地讲解了路由器操作系统的开发流程,为物联网网关、智能路由器、边缘计算服务器的研发打下基础;第10章给出了嵌入式系统的底层驱动软件开发指导。

《物联网之魂:物联网协议与物联网操作系统》适合作为高等院校物联网工程、通信工程、网络工程、电子信息工程、微电子和集成电路等相关专业的教材,也适合物联网协议的研究者和物联网操作系统的研发人员阅读。另外,《物联网之魂:物联网协议与物联网操作系统》还适合作为智慧城市建设等政府管理部门相关人员的参考读物。

作者简介

孙昊,毕业于山东大学控制工程学院,获工学硕士学位。网络设备资深研发工程师。曾就职于华为技术公司,负责操作系统软件的架构设计,并担任C语言和Lua语言讲师。申请多项ISSU技术专利。现就职于浪潮电子信息产业股份有限公司,负责软件架构设计工作。

 ;

王洋,毕业于辽宁工程技术大学,获硕士学位。现就职于浪潮集团,任软件工程师。曾经发表多篇智能控制和设备驱动方面的论文。 ;

赵帅,毕业于沈阳航空航天大学。资深网络设备研发工程师,从事Android平板电脑系统嵌入式驱动层和应用层的开发工作。曾经在语音网关研发中改进了DSP中的语音编解码及回声抵消算法。现就职于浪潮电子信息产业股份有限公司。 ;

杜秀芳,毕业于山东大学控制科学与工程学院,获工学硕士学位。曾就职于群硕软件开发(北京)有限公司,任高级软件工程师,从事资源配置、软件测试和QA等工作。现为山东劳动职业技术学院机械工程系教师。 ;

曾凡太,山东大学信息科学与工程学院高级工程师。已经出版“EDA工程丛书”(共5卷,清华大学出版社出版)、《现代电子设计教程》(高等教育出版社出版)、《PCI总线与多媒体计算机》(电子工业出版社出版)等书,发表论文数十篇,申请发明专利4项。

物联网之魂:物联网协议与物联网操作系统 PDF下载

目录


 
丛书序
序言
第1章  ;网络通信技术 1
1.1  ;数字通信概述 1
1.2  ;数字通信关键技术 2
1.3  ;数字通信OSI模型 3
1.4  ;TCP/IP网络通信协议 7
1.4.1  ;TCP/IP协议 7
1.4.2  ;CoAP协议 10
1.4.3  ;MQTT协议(低带宽) 11
1.4.4  ;AMQP协议(互操作性) 11
1.4.5  ;XMPP协议(即时通信) 12
1.4.6  ;JMS协议 13
1.5  ;UDP协议 14
1.6  ;HTTP协议 16
1.6.1  ;工作原理 16
1.6.2  ;消息结构 17
1.6.3  ;请求方法 18
1.6.4  ;响应头信息 19
1.6.5  ;状态码 20
1.6.6  ;内容类型 20
1.7  ;FTP协议 21
1.8  ;Bluetooth协议 23
1.8.1  ;Bluetooth发展史及优势 23
1.8.2  ;Bluetooth技术 25
1.9  ;ZigBee协议 26
1.9.1  ;ZigBee发展历史 27
1.9.2  ;ZigBee的特点及优势 30
1.9.3  ;ZigBee基本概念 30
1.9.4  ;ZigBee协议栈 32
1.10  ;6LoWPAN低速无线个域网协议 33
1.11  ;LoRa WAN低功耗广域网协议 35
1.12  ;NB-IoT窄带物联网协议 41
1.12.1  ;物联网应用场景和技术特点 41
1.12.2  ;无线通信技术发展过程 48
1.12.3  ;NB-IoT窄带物联网节能原理 52
1.12.4  ;NB-IoT通信系统拓扑结构 56
1.12.5  ;NB-IoT窄带物联网信号收发技术 59
1.12.6  ;NB-IoT窄带物联网小区接入 64
1.12.7  ;NB-IoT连接管理 67
1.12.8  ;NB-IoT数据传输 68
1.13  ;MQTT网络协议 71
1.13.1  ;网络协议比较 71
1.13.2  ;发布和订阅模型 72
1.13.3  ;MQTT协议命令 73
1.13.4  ;MQTT协议参数 74
1.14  ;协议转换 77
1.14.1  ;RS-232/485/CAN转换器 77
1.14.2  ;基于现场总线的协议转换器 78
1.14.3  ;物联网协议转换器——网关 79
1.14.4  ;物联网网关 82
1.14.5  ;物联网网关应用 84
1.15  ;小结 85
1.16  ;习题 86
第2章  ;信息交换技术 87
2.1  ;交换技术概述 88
2.2  ;数字程控交换 91
2.3  ;ATM交换 92
2.4  ;以太网交换 92
2.5  ;光交换 94
2.6  ;二层交换——交换机原理 94
2.7  ;三层转发——路由器原理 95
2.8  ;三层交换——三层交换机 98
2.9  ;交换机设计开发 103
2.9.1  ;交换机的层次定位 103
2.9.2  ;交换机的硬件设计 104
2.9.3  ;交换机的软件设计 107
2.9.4  ;测试环节 110
2.10  ;小结 110
2.11  ;习题 111
第3章  ;无线Wi-Fi技术 112
3.1  ;Wi-Fi概述 112
3.1.1  ;WLAN无线局域网络概述 112
3.1.2  ;Wi-Fi无线网络起源 113
3.2  ;Wi-Fi基础 116
3.2.1  ;Wi-Fi物理组件 117
3.2.2  ;Wi-Fi服务功能 117
3.2.3  ;Wi-Fi认证和加密 120
3.2.4  ;Wi-Fi基础参数 121
3.3  ;Wi-Fi接入 123
3.3.1  ;Wi-Fi的STA与AP的接入 123
3.3.2  ;Wi-Fi的多AP认证和关联过程 125
3.3.3  ;Wi-Fi漫游过程 126
3.4  ;Wi-Fi管理 127
3.4.1  ;wpa_supplicant程序 127
3.4.2  ;wpa_cli调试工具 129
3.5  ;Wi-Fi模块解析 130
3.5.1  ;Wi-Fi框架分析 130
3.5.2  ;Wi-Fi启动流程 133
3.6  ;Wi-Fi驱动结构 142
3.6.1  ;SDIO驱动 142
3.6.2  ;无线通信芯片 142
3.6.3  ;设备驱动注册 144
3.6.4  ;加载驱动模块 154
3.6.5  ;SDIO设备中断 155
3.6.6  ;Wi-Fi驱动流程 156
3.6.7  ;网络设备注册 159
3.7  小结 162
3.8  习题 163
第4章  操作系统概述 164
4.1  通用计算机操作系统 164
4.2  嵌入式实时操作系统 166
4.2.1  嵌入式操作系统的主要特点 167
4.2.2  嵌入式操作系统和通用计算机操作系统的区别 167
4.2.3  流行嵌入式实时操作系统 168
4.3  手机操作系统 171
4.3.1  Android 操作系统 171
4.3.2  Android App研发基础 172
4.3.3  Android App开发文献 174
4.3.4  iOS操作系统 176
4.4  物联网操作系统 178
4.4.1  概述 178
4.4.2  特点 180
4.4.3  架构 182
4.4.4  实例分析 192
4.4.5  发展趋势 194
4.5  小结 195
4.6  习题 196
第5章  物联网操作系统 197
5.1  微软物联网操作系统 197
5.2  谷歌物联网操作系统 197
5.2.1  谷歌Brillo 198
5.2.2  谷歌Android Things 199
5.3  ARM物联网操作系统 203
5.4  华为物联网操作系统Huawei LiteOS 204
5.5  中兴物联网操作系统 207
5.6  庆科物联网操作系统MICO 211
5.7  小结 220
5.8  习题 220
第6章  嵌入式Linux操作系统 221
6.1  uClinux简介 221
6.2  RTLinux简介 230
6.3  Ostro Linux简介 234
6.4  HelloX物联网操作系统 237
6.4.1  HelloX物联网操作系统框架分析 238
6.4.2  HelloX主要功能 239
6.4.3  HelloX的开发方向 241
6.4.4  HelloX用于智慧家庭 243
6.5  FreeRTOS操作系统简介 246
6.6  Tiny OS操作系统简介 249
6.6.1  Tiny OS特点 249
6.6.2  Tiny OS组成 251
6.6.3  Tiny OS运行机理 252
6.6.4  Tiny OS开发环境 252
6.6.5  Tiny OS开发过程 253
6.6.6  Tiny OS开发平台 254
6.6.7  Tiny OS的研究项目 254
6.7  RIOT OS操作系统简介 254
6.8  小结 258
6.9  习题 259
第7章  物联网Zephyr操作系统 260
7.1  Zephyr操作系统概述 261
7.1.1  Zephyr特色 261
7.1.2  支持的微处理器类型 262
7.1.3  支持的通信标准和网络协议 262
7.1.4  内核版本迭代历程 263
7.2  Zephyr系统内核 266
7.2.1  多线程功能 267
7.2.2  中断服务功能 268
7.2.3  时钟和定时器功能 268
7.2.4  同步功能 268
7.2.5  数据传输功能 269
7.2.6  内存动态分配功能 269
7.2.7  公共和私有内核对象 269
7.2.8  微内核服务器功能 270
7.2.9  C 支持的应用 270
7.2.10  Zephyr源代码结构 271
7.3  在Linux上搭建Zephyr开发环境 271
7.3.1  下载源代码 272
7.3.2  安装需要的包和依赖文件 272
7.3.3  安装Zephyr SDK 272
7.3.4  编译、运行应用程序 273
7.3.5  应用程序仿真测试与运行 274
7.4  在Windows上搭建Zephyr开发环境 274
7.5  用MSYS2搭建Zephyr 开发环境 277
7.6  应用程序开发 279
7.6.1  概述 279
7.6.2  创建应用程序目录app 280
7.6.3  创建应用程序子目录build 281
7.6.4  重构应用程序 282
7.6.5  运行应用程序 282
7.6.6  开发板定制 283
7.6.7  用QEMU调试程序 284
7.6.8  用Eclipse调试程序 286
7.6.9  CMake工具 287
7.6.10  CMakeLists.txt文件 288
7.6.11  CMakeCache.txt文件 289
7.6.12  编辑配置文件 290
7.6.13  更新设备树序列 293
7.6.14  支持第三方库代码 294
7.7  小结 294
7.8  习题 295
第8章  嵌入式Ubuntu操作系统 296
8.1  准备Ubuntu文件 297
8.2  安装Ubuntu系统 299
8.3  连网资源 304
8.4  更新系统 307
8.5  目录结构 309
8.6  启动流程 310
8.7  编程环境 311
8.7.1  安装编辑器 311
8.7.2  下载并安装JDK 311
8.7.3  Ubuntu开发环境的配置 314
8.7.4  Ubuntu添加或删除源 315
8.7.5  安装Eclipse 316
8.7.6  安装MySQL 317
8.7.7  安装build-essential 318
8.7.8  安装Tomcat 319
8.7.9  安装Android Studio(32Bit) 321
8.8  小结 322
8.9  习题 322
第9章  路由器OpenWrt操作系统 323
9.1  OpenWrt开发环境基础 324
9.1.1  OpenWrt硬件需求 324
9.1.2  OpenWrt文件结构和网络结构 326
9.2  OpenWrt常用命令 326
9.2.1  编辑命令vi 327
9.2.2  查找命令grep 328
9.2.3  查找命令find 328
9.2.4  在线手册查看命令man 329
9.2.5  其他命令 330
9.3  OpenWrt常用工具 331
9.3.1  Feeds简介 332
9.3.2  Buildroot简介 333
9.3.3  代码阅读与编辑工具Source Insight 334
9.3.4  文件传输工具FileZilla 339
9.3.5  远程登录工具SecureCRT 343
9.3.6  TFTP服务器软件Tftpd32 345
9.3.7  代码阅读和编辑工具KScope 346
9.3.8  远程登录工具C-Kermit 350
9.4  在Windows上安装VMware 351
9.5  在VMware上安装Ubuntu 357
9.5.1  Ubuntu安装步骤 357
9.5.2  Ubuntu上安装、配置、启动FTP和SSH服务 360
9.6  在Ubuntu上安装OpenWrt 362
9.6.1  安装open-vm-tools 363
9.6.2  安装所需的依赖环境 363
9.6.3  OpenWrt下载安装 364
9.6.4  OpenWrt的编译 364
9.6.5  OpenWrt的固件烧写 366
9.7  OpenWrt配置 368
9.7.1  初始配置 368
9.7.2  配置DNS 369
9.7.3  配置PPTP 370
9.7.4  配置chnroutes 373
9.7.5  配置VPN 374
9.7.6  安装LuCI 376
9.8  OpenWrt路由器应用开发 377
9.8.1  OpenWrt系统的编译 377
9.8.2  OpenWrt在线固件更新 380
9.8.3  OpenWrt刷机 390
9.8.4  路由器设置 392
9.8.5  文件服务 397
9.8.6  DDNS服务 403
9.9  OpenWrt应用程序编程实例 404
9.10  小结 412
9.11  习题 413
第10章  设备底层驱动编程 414
10.1  设备驱动简介 414
10.1.1  引言 414
10.1.2  设备驱动分类 415
10.1.3  驱动模块程序结构 416
10.2  Linux文件系统 420
10.3  文件系统与设备驱动 421
10.4  驱动编译及加载实例 423
10.5  字符设备驱动 427
10.5.1  字符设备驱动初识 428
10.5.2  字符设备驱动构成 431
10.6  小结 434
10.7  习题 434
参考文献 435
序言

媒体评论

“物联网工程实战丛书”给出了物联网工程的学科架构和理论体系。这对于开设物联网专业的高校来说,无论是进行学科建设,还是做课程设置,都具有很高的参考价值。丛书适合作为各院校物联网专业相关课程的教材,也适合作为物联网研发工程师的项目研发读物。

——山东力明科技职业学院信息工程与管理学院院长  陶翠霞

“物联网工程实战丛书”系统地阐述了物联网的理论基础、工程实践和行业应用。丛书是多位一线物联网研发人员和教学人员的经验总结,是一套优秀的物联网专业教材,也是物联网研发工程师产品研发和项目规划的实践指南。丛书对于普及物联网知识和推动物联网技术进步有很大价值,对于青年学生和工程技术人员的物联网技术学习大有助益。

——山东大学教授  赵世民 

物联网是一个未来大有可为的领域。目前各院校出来的学生虽然能了解物联网的一些技术点,但是他们对物联网缺少系统性的认识和端到端的业务解决能力。这《物联网之魂:物联网协议与物联网操作系统》填补了物联网图书领域的一个空白,从开发者的角度讲述了如何设计物联网的传输环节,内容很接地气,属于比较务实的著作,对于相关从业人员有很大的帮助。

——华为技术有限公司软件行业部经理  刘冬冬

《物联网之魂:物联网协议与物联网操作系统》作者之一孙昊是我的前同事。他是一个低调、谦和的人,写代码的时候一丝不苟,周围的人有问题时总是乐于求助于他。他对技术总是能保持一颗好奇心,总是想把问题弄明白。他参与这《物联网之魂:物联网协议与物联网操作系统》的写作再合适不过,因为物联网通信技术的相关知识正是我们以前的工作内容。从整个行业来说,国内没有多少公司比华为公司做得更突出。我现在的工作依然跟物联网和通信有很大的关系,有这样一本系统讲解物联网操作系统和通信协议的书,正好可以满足工作的需要,也希望更多的人能看到这《物联网之魂:物联网协议与物联网操作系统》。

——长沙万为机器人技术有限公司CTO  明振

前沿

沉舟侧畔千帆过,病树前头万木春

继计算机操作系统、嵌入式操作系统、手机操作系统之后,物联网操作系统进入了起步发展阶段。就目前的现状,物联网操作可以描述为:厂商山头林立、市场虚假繁荣、技术概念老旧、产品良莠不齐。

物联网操作系统产生的背景

应用需求催生了物联网操作系统的诞生。边缘计算的兴起,不仅解决了海量数据上云引起的网络阻塞、存储冗余、响应迟缓等问题,也为物联网操作系统的发展提供了机遇。边缘计算(将在丛书的第6卷中展开讲解)是物联网操作系统的重要应用领域之一。

高档微处理器奠定了物联网操作系统的硬件搭载基础。微处理器技术发展快速,32位MCU技术已经成熟,既可以在嵌入式设备终端和网关设备上使用,又可以在传感单元和执行单元上普遍使用。32位微处理器的硬件资源丰富,为物联网操作系统载体奠定了良好的硬件基础。例如,在MCU市场里,ARM完善的生态环境大大推动了物联网操作系统在内的嵌入式软件的发展。其他内嵌网络接口、A/D 转换、通信模块的微处理器芯片也不断出现,物联网操作系统的搭载基础越来越好。

此外,设备端的小型化、低功耗、安全性的趋势,以及通信协议之间的灵活转换、应用层对边缘计算能力的要求、复杂的设备测控软件,这些市场需求成了物联网操作系统产生的必要条件。

物联网操作系统的组成框架

物联网操作系统沿用了嵌入式操作系统中的技术,可以将该技术分为两种,一种是实时的,另一种是通用型的。物联网操作系统由内核、通信支持(Wi-Fi/蓝牙、2G、3G、4G、5G、NFC、RS232、PLC等)、外围组件(文件系统、GUI、Java虚拟机、XML文件解析器等),以及集成开发环境等组成。

物联网操作系统的必备能力

设备管理能力:内核应该有一个基于总线或树结构的设备管理机制,可以动态加载存储在外部介质上的设备驱动程序或其他核心模块。只需要开发新的应用程序,就可以满足设备管理需求。

可扩展、可裁剪、可伸缩的架构:因为物联网应用环境具备广谱特性,要求操作系统必须能够扩展,以适应新的应用环境。将物联网操作系统的内核设计成框架结构,定义接口和规范就可以在操作系统内核上增加新的功能和硬件支持。对于资源(内存和CPU)受限的设备,内核软件的大小必须维持在10KB以内,具备基本的任务调度和通信功能即可。高配置的设备(具有边缘计算能力的服务器、具有路由功能的网关),其内核必须具备完善的线程调度、内存管理、本地存储、复杂的网络协议、图形用户界面等功能。这时内核软件的大小可以达到几百KB,甚至MB。内核软件大小的伸缩性通过两个措施来实现,即重新编译和二进制模块选择加载。重新编译需要根据不同的应用目标,选择所需要的功能模块,然后对内核进行重新编译;二进制模块选择加载,需要操作系统配置文件,在内核初始化完成后,会根据配置文件,选择加载所需要的二进制模块。

文件系统、外部存储能力:支持常用的文件系统和外部存储,支持FAT32、NTFS、DCFS等文件系统,支持硬盘、USB Stick、Flash和ROM等常用存储设备。

应用程序动态加载能力:物联网操作系统应提供一组API,供不同应用程序调用,而且这一组API应该根据操作系统所加载的外围模块实时变化。操作系统能够动态地从外部存储介质上按需加载应用程序,其内核和外围模块(GUI、网络等)提供基础支持,而各种各样的行业应用则通过应用程序来实现。

兼容的通信接入能力:支持物联网常用的无线和有线通信功能。比如,支持GPRS、3G、HSPA、4G等公共网络的无线通信功能,同时要支持 ZigBee、NFC、RFID、Wi-Fi、Bluetooth 等近场通信功能,还要支持 Ethernet、CAN、USB 有线网络功能,以及窄带通信技术NB-IoT 和LoRa。

完善的网络协议兼容和转换能力:物联网操作系统必须支持完善的TCP/IP协议栈,包括对IPv4和IPv6的同时支持。同时也支持丰富的IP协议族,比如Telnet、FTP、IPSec、SCTP等协议,以适用智能终端和高安全、高可靠的应用场合;不同的物理和链路层接口之上的协议之间要能够相互转换,把从一种协议获取到的数据报文转换成另一种协议报文发送出去。

设备的安全保护能力:支持内存保护(VMM等机制)和异常管理等机制,在必要时隔离错误代码。另外一个安全策略就是不开放源代码,或者不开放关键部分的内核源代码。物联网设备中很大一部分小型设备使用 MCU 和资源有限的微处理器,不开放它们的源代码能保护这些小型设备使其不受网络攻击和非法控制,以确保设备安全。

边缘计算能力:物联网设备连续不断地产生海量数据,如何管理和处理这些数据是摆在物联网企业面前的一个难题。边缘计算无疑是解决这个难题的有效技术手段之一。边缘计算是提高响应速度,改善网络阻塞的关键技术。

物联网操作系统的实时性:物联网设备的测量控制,很多关键性动作必须在有限的时间内完成,否则将失去意义。首先是中断响应的实时性,一旦外部中断发生,操作系统必须在足够短的时间内响应中断并做出处理;其次是线程或任务调度的实时性,一旦任务或线程所需的资源或进一步运行的条件准备就绪,必须马上得到调度执行。

物联网操作系统的可靠性:物联网应用环境具备自动化程度高、人为干预少的特点,这要求物联网操作系统必须足够可靠,以支撑长时间地独立运行和无故障运行。

功耗控制能力:操作系统内核应该在CPU空闲的时候降低CPU的运行频率,或干脆关闭CPU。对于周边设备,也应该实时判断其运行状态,一旦进入空闲状态,则切换到省电模式。例如,网络上发送和接收信息的一个个嵌入式计算小型设备(比如智能传感器),它们的测控方法和管理模式是快速执行、立即睡眠模式。

远程诊断、维护、升级能力:可大大降低运营成本。远程升级完成后,原有的设备配置和数据能够得以继续使用。在升级失败的情况下,操作系统也应该能够恢复原有的运行状态。远程升级和维护是物联网操作系统大规模部署、低成本运营的主要措施之一。

远程配置、管理能力:常见的远程操作项目有远程修改设备参数、远程查看运行信息、远程查看操作系统内核状态、远程调试线程或任务、远程转储(dump)内核状态等功能。

……

关于《物联网之魂:物联网协议与物联网操作系统》

《物联网之魂:物联网协议与物联网操作系统》是“物联网工程实战丛书”的第3卷——《物联网之魂:物联网协议与物联网操作系统》。《物联网之魂:物联网协议与物联网操作系统》第1~2章由孙昊编写;第3章由杜秀芳编写,第4~7章由曾凡太编写;第8~9章由赵帅编写;第10章由王洋编写。曾凡太统筹全稿。《物联网之魂:物联网协议与物联网操作系统》的出版首先感谢各位青年作者按时完成了写作计划!感谢欧振旭编辑的鼎力支持和出版社其他编辑的辛苦工作!《物联网之魂:物联网协议与物联网操作系统》编写过程中参考了海量的技术文献,限于篇幅不能一一列出,深表歉意,在此对参考文献的原作者表示衷心的感谢!

免费在线读

第1章  网络通信技术
1.1  数字通信概述
数字通信是指用数字信号作为载体来传输信息,或者用数字信号对载波进行数字调制后再传输的通信方式。它的主要技术设备包括发射器、接收器及传输介质。数字通信系统的通信模式主要包括数字频带传输通信系统、数字基带传输通信系统及模拟信号数字化传输通信系统3种。
数字信号与传统的模拟信号不同。它是一种无论在时间上还是幅度上都属于离散的负载数据信息的信号。与传统的模拟通信相比其具有以下优势:首先是数字信号有极强的抗干扰能力,由于在信号传输的过程中不可避免地会受到系统外部及系统内部的噪声干扰,而且噪声会跟随信号的传输而放大,这无疑会干扰到通信质量。但是数字通信系统传输的是离散性的数字信号,虽然在整个过程中也会受到噪声干扰,但只要噪声绝对值在一定的范围内就可以消除噪声干扰。其次是在进行远距离的信号传输时,通信质量依然能够得到有效保证。因为在数字通信系统当中利用再生中继方式,能够消除长距离传输噪音对数字信号的影响,而且再生的数字信号和原来的数字信号一样,可以继续进行传输,这样数字通信的质量就不会因为距离的增加而产生影响,所以它也比传统的模拟信号更适合进行高质量的远距离通信。此外,数字信号要比模拟信号具有更强的保密性,而且与现代技术相结合的形式非常简便,目前的终端接口都采用数字信号。同时数字通信系统还能够适应各种类型的业务要求,例如电话、电报、图像及数据传输等,它的普及应用也方便实现统一的综合业务数字网,便于采用大规模集成电路,便于实现信息传输的保密处理,便于实现计算机通信网的管理等。
要进行数字通信,就必须进行模数变换。也就是把信号发射器发出的模拟信号转换为数字信号。基本的方法包括:首先把连续性的模拟信号用相等的时间间隔抽取出模拟信号的样值,然后将这些抽取出来的模拟信号样值转变成最接近的数字值。因为这些抽取出的样值虽然在时域进行了离散化处理,但是在幅度上仍然保持着连续性。而量化过程就是将这些样值在幅度上也进行离散化处理,最后把量化过后的模拟信号样值转化为一组二进制数字代码,然后将数字信号送入通信网进行传输。在接收端则是一个还原过程,也就是把收到的数字信号变为模拟信号,通过数模变换重现声音及图像。如果信号发射器发出的信号本来就是数字信号,则不用再进行数模变换的过程,可以直接进入数字网进行传输。
1.2  数字通信关键技术
数字通信的关键性技术包括编码、调制、解调、解码及过滤等,其中,数字信号的调制及解调是整个系统的核心也是最基本、最重要的技术。现代通信的数字化技术主要表现在以下几个方面。
1.信源的编码技术
常用的编码方法有:
? 脉冲编码调制(PCM):在光纤通信系统中,光纤中传输的是二进制光脉冲“0”码和“1”码,它由二进制数字信号对光源进行调制而产生。数字信号是对连续变化的模拟信号进行抽样、量化和编码产生的,称为PCM(Pulse Code Modulation),即脉冲编码调制。
? 增量调制(ΔM):或称增量脉码调制方式(DM),是继PCM后出现的又一种模拟信号数字化的方法,1946年由法国工程师De Loraine提出,目的在于简化模拟信号的数字化方法。增量调制主要在军事通信和卫星通信中广泛使用,有时也作为高速大规模集成电路中的A/D转换器使用。 
增量调制是一种把信号上一采样的样值作为预测值的单纯预测编码方式。增量调制是预测编码中最简单的一种。它将信号瞬时值与前一个抽样时刻的量化值之差进行量化,而且只对这个差值的符号进行编码,而不对差值的大小编码。因此量化只限于正和负两个电平,只用一比特传输一个样值。如果差值是正的,就发“1”码,若差值为负就发“0”码。因此数码“1”和“0”只是表示信号相对于前一时刻的增减,不代表信号的绝对值。同样,在接收端,每收到一个“1”码,译码器的输出相对于前一个时刻的值上升一个量阶。每收到一个“0”码就下降一个量阶。当收到连“1”码时,表示信号连续增长,当收到连“0”码时,表示信号连续下降。译码器的输出再经过低通滤波器滤去高频量化噪声,从而恢复原信号,只要抽样频率足够高,量化阶距大小适当,收端恢复的信号与原信号非常接近,量化噪声可以很小。
2.信道编码技术
从信道传输质量来看,希望在噪声干扰的情况下,编码的信息在传输过程中差错愈小愈好。为此,就要求传输码有检错和纠错的能力,欲使检错(纠错)能力愈强,就要求信道的冗余度愈大,从而使信道的利用率降低。同时,信道传输的速率与信息码速率一般是不等的,有时相差很大,这是在设计通信系统时必须注意的问题。
3.现代调制解调技术
有效利用频谱是无线通信发展到一定阶段时所必须解决的问题,况且随着大容量和远距离数字通信的发展,尤其是卫星通信和数字微波中继通信,其信道是带宽有限的和非线性的,这使传统的数字调制解调技术面临着新的挑战,这就需要进一步研究一种或多种新的调制解调方式,充分节省频谱并高效率地利用有限的频带,如现代的恒包络数字调制解调技术、扩展频谱调制解调技术。
4.信道复用技术
欲在同一信道内传输千百条话路,就需要利用信道复用技术。所谓信道复用,就是将输入的众多不同信息来源的信号,在发信端进行合并后在信道上传输,当到达收信端后又将它们分开,恢复为原多路信号的过程,也称为复接和分接,简称复用。理论上只要使多路信号分量之间相互正交,就能实现信道复用。常用的复用方式主要有频分复用(FDM)、时分复用(TDM)、码分复用(CDM)和空分复用(SDM)4种。数字通信中实现复用的关键是需要解决多种多样的同步问题。
5.多址技术
目前,现代通信是多点间的通信,即多用户之间的相互通信方式除了传统的交换方式外,人们需要在任何地点、任何时间,能够与任意对象交换信息,往往采用多址方式来予以实现。例如,卫星通信就是通过通信卫星与地球上任一个或多个地球站进行通信,而不需要专门的交换机的多址方式。多址方式有:频分多址(FDMA)、时分多址(TDMA)、码分多址(CDMA)空分多址(SDMA)等。
6.通信协议
在当今的信息社会里,现代通信不仅仅是国内范围内的通信,而且是超越国界的。因此,在国内通信中需要规定统一的多种标准,以避免在通信过程中造成相互间的干扰或因通信线路(系统)的接口不同,而无法进行通信。在国际上成立了一个专门的机构——国际电报电话咨询委员会(CCITT),现为国际电信联盟(ITU)和国际无线电咨询委员会(CCIR),这两个机构在开展工作的几十年来,分别制定了一系列各国必须遵守的国际通信标准,并制定了为世界各国通信工作者所公认的众多协议和建议。随着通信体制日新月异的发展,仍然还有许多新开发的领域需要制定新的标准,例如ISDN和多种网路的协议等。在设计各种通信系统时,这是必须注意的关键问题。
1.3  数字通信OSI模型
国际标准化组织(ISO)发布了开放系统互联(OSI)参考模型,OSI参考模型是一个7层结构,如图1.1所示。
 
图1.1  开放系统互联(OSI)参考模型
1.物理层
物理层负责实现相邻计算机节点之间比特流的透明传输,尽可能屏蔽掉具体传输介质与物理设备间的差异,使上层的数据链路层不必考虑网络的具体传输介质是什么。
2.数据链路层
数据链路层负责建立和管理节点间的链路。接受来自物理层的位流形式的数据,并封装成帧传送到上一层;同样,也将来自上一层的数据帧,拆装为位流形式的数据转发到物理层;并且还负责处理接收端发回的确认帧的信息,以便提供可靠的数据传输。
3.网络层
网络层负责通过路由算法,为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与物理层之间的信息转发,建立、维持与终止网络的连接。具体说就是,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备上传送到另一个网络设备上。
4.传输层
传输层负责提供会话层和网络层之间的传输服务,这种服务从会话层获得数据,并在必要时对数据进行分割,然后,传输层将数据传送到网络层,并确保数据能准确无误地传送到网络层。因此,传输层负责提供两节点之间数据的可靠传送,当两节点的联系确定之后,传输层负责监督工作。
5.会话层
会话层负责向两个实体的表示层提供建立和使用连接的方法,将不同实体之间的表示层的连接称为会话。因此会话层的任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理。
6.表示层
表示层负责对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。
7.应用层
应用层负责直接向用户提供服务,完成用户希望在网络上完成的各种工作。它在其他6层工作的基础上,负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及应用所需的监督、管理和服务等各种协议。此外,该层还负责协调各个应用程序间的工作。
由于OSI是一个理想的模型,因此一般网络系统只涉及其中的几层,很少有系统能够具有完整的7层,并完全遵循它的规定。在7层模型中,每一层都提供一个特殊的网络功能。从网络功能的角度观察:下面4层(物理层、数据链路层、网络层和传输层)主要提供数据传输和交换功能,即以节点到节点之间的通信为主;第4层作为上下两部分的桥梁,是整个网络体系结构中最关键的部分;而上3层(会话层、表示层和应用层)则以提供用户与应用程序之间的信息和数据处理功能为主。简言之,下4层主要完成通信子网的功能,上3层主要完成资源子网的功能。
有一个很容易理解OSI 七层模型的例子,最初推出这个模型,是为了满足美国科学家需要在两台计算机之间进行通信的需求。
(1)需求1
科学家们要解决的第一个问题是两台计算机之间怎么通信。具体体现就是一台计算机发出比特流,另一台计算机能收到。
于是,科学家们提出了物理层的概念:主要定义物理设备标准,如网线的接口类型、光纤的接口类型,以及各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。
(2)需求2
现在能通过电线发数据流了,但是还希望通过无线电波或其他介质来传输,而且还要保证传输过去的比特流是正确的,要有纠错功能。
于是,科学家们又提出了数据链路层的概念:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
(3)需求3
现在可以在两台计算机之间发送数据了,那么如果要在多台计算机之间发送数据呢?怎么找到原始发出(源)的那台?或者,A要给F发信息,中间要经过B、C、D、E,但是中间还有好多节点如K、J、Z、Y。怎么选择最佳路径?这就是路由要做的事。
于是,科学家们又提出了网络层的概念:通过路由算法,为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与物理层之间的信息转发,建立、维持与终止网络的连接。具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备上。一般,数据链路层是解决同一网络内节点之间的通信,而网络层主要解决不同子网之间的通信,例如路由选择问题。
(4)需求4
现在能正确地发送比特流数据到另一台计算机上了,但是当发送大量数据时候,可能需要很长时间,例如一个视频格式的文件,网络会中断很多次(事实上,即使有了物理层和数据链路层,网络还是会经常中断,只是中断的时间是毫秒级别),因此还需要保证传输大量文件时的准确性。因此,要对发出去的数据进行封装,就像发快递一样,一个一个地发。
于是,科学家们又提出了传输层的概念:向用户提供可靠的、端到端的差错和流量控制,保证报文的正确传输。提供建立、连接和拆除传输连接的功能。传输层在网络层基础上提供“面向连接”和“面向无连接”两种服务。例如TCP,是用于发送大量数据的,我发了1万个包出去,另一台计算机就要告诉我是否接收到了1万个包,如果缺了3个包,就告诉我第1001个包、第234个包和第8888个包丢了,那么我会再发一次,这样就能保证对方把这个视频完整接收了。
例如UDP,是用于发送少量数据的。我发20个包出去,一般不会丢包,所以,我不管你收到多少个。在多人互动游戏中也经常用UDP协议,因为一般都是简单的信息,而且有广播的需求。如果用TCP,效率就会降低,因为它会不停地告诉主机:我收到了20个包,或者我收到了18个包,再发我两个!如果同时有1万台计算机都这样做,那么用TCP反而会降低效率,不如用UDP,主机发出去就算了,如果你丢了几个包至多就卡一下,下次再发包时你再更新即可。
(5)需求5
现在我们已经保证给正确的计算机发送正确的封装过后的信息了。但是用户级别的体验好不好?难道我每次都要调用TCP去打包,然后调用IP协议去找路由,自己去发?当然不行,所以我们要建立一个自动收发包、自动寻址的功能。
于是,科学家们又提出了会话层的概念:建立和管理应用程序之间的通信。允许用户在两个实体设备之间建立、维持和终止会话,并支持它们之间的数据交换。例如提供单方向会话或双向同时会话,并管理会话中的发送顺序,以及会话所占用的时间长短。
(6)需求6
现在我能保证应用程序自动收发包和寻址了。但是要用Linux给Windows发包,两个系统的语法不一致,就像安装包一样,exe是不能在Linux系统上用的,shell在Windows系统上也是不能直接运行的。于是需要表示层,帮助解决不同系统之间通信的语法问题。
(7)需求7
现在所有必要条件都准备好了,我们可以写个Android程序,web程序去实现需求。
因为OSI模型的层数太多,顺序也不好记忆,于是有人就用All People Seem To Need Data Processing来帮助记忆,因为这7个单词的首字母和OSI模型每一层的首字母是一样的。


1.1  数字通信概述

物联网之魂:物联网协议与物联网操作系统 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:物联网之魂:物联网协议与物联网操作系统