遵循嵌入式软件工程的基本原则,本书将从应用架构、硬件体系、终端(UE)、数据库、多种人机交互系统多个方面进行设计介绍,并根据物联网从底层到高层的体系架构进行设计,为用户提供一个“葫芦”,帮助用户快速地理解、完成“照葫芦画瓢”的任务。
1.问题的提出与解决问题的思路(第1章)
第1章作为全书概述,从物联网连接的分类,NB-IoT的起源、技术特点、流行趋势等角度给出NB-IoT简介;分析NB-IoT应用开发所面临的难题,以及解决这个难题的基本思路;给出全书内容简介及阅读导引。
2.从应用开发的角度提出NB-IoT应用架构(第2章)
第 2 章从应用开发的角度提出 NB-IoT 应用架构,该架构由终端(UE)、信息邮局(MPO)、人机交互系统(HCI)三个部分组成。终端(UE)负责数据采集、控制、运算,并包括NB-IoT通信,以便接入互联网。信息邮局(MPO)实现终端(UE)与人机交互系统(HCI)的通信工作,由通信运营商负责,应用开发技术人员只需要理解如何与之连接即可。类似于寄信,只需要知道如何写好信封即可把信寄出。人机交互系统(HCI)基于个人计算机、手机、平板电脑的操作页面。简单地说,NB-IoT 应用架构(Application Architecture)由UE编程框架、HCI的侦听程序框架、Web网页编程框架,以及微信、短信、手机APP编程框架等多个模板(Template) 组成。
3.快速理解通信NB-IoT通信过程及数据入库(第3~4章)
第 3 章将给出一个完整的、可直接运行验证的 NB-IoT 实例,以便读者能快速地掌握基本测试方法;同时本章将详细介绍金葫芦IoT-GEC开发套件的使用方法,并借之帮助读者理解NB-IoT通信过程。第3章给出的测试有两种情况,一种是无须UE硬件情况下测试NB-IoT通信,目的是使读者在不具备硬件条件的情况下测试NB-IoT的通信过程;另一种是在使用金葫芦IoT-GEC开发套件的条件下,学习如何快速测试读者当地的NB-IoT通信情况。针对与一般评估系统的不同之处,本章提出金葫芦IoT-GEC这一概念,并设计出完整的开发套件,只为方便开发者;同时介绍基于金葫芦IoT-GEC开发套件的NB-IoT通信过程,帮助读者更好地体会金葫芦IoT-GEC开发套件的使用方法,为实际开发提供必要的基础。
第4章将介绍系统的详细通信过程,这是本书的难点之一,主要针对希望深入理解整个 NB-IoT 应用架构技术体系基本原理的读者。本章介绍终端用户程序执行流程、终端与MPO的接口UECom构件、HCI与MPO的接口HCICom类、用户服务器侦听程序US-Monitor的执行过程,以及数据入库的详细过程。其中,重点介绍UECom构件及HCICom类。整个通信过程由上行和下行两个过程组成,是一个复杂的过程。为了应用开发的方便,把UE的通信过程封装成UECom构件、把HCI端通过侦听获得数据以及发送数据的过程封装成HCICom类,这样就屏蔽了通信过程的具体细节,UE端应用层开发直接调用UECom构件,HCI端应用程序直接调用HCICom类,提高了应用层程序开发的颗粒度,降低了开发门槛。
4.给出了基于云转发服务的“照葫芦画瓢”的样例(第5章)
为了用户能够深入理解、快速上手,第5章给出了“照葫芦画瓢”的样例,以便读者可以快速构建自己的物联网智能系统。本章从实际需求出发,演示了“照葫芦画瓢”的具体流程,带领读者迅速了解整个项目工程开发的过程。根据本书提供的规范、全面的项目示例,读者可以在实践中深入理解整个应用架构理论模型及相应的通信机制。为了加深读者对“照葫芦画瓢”过程的理解,本章还给出了两个测试题目,希望读者能够独立完成。
5.基于云服务器的NB-IoT的应用开发过程及应用(第6~10章)
数据存储在具有固定 IP 地址的计算机上,可以提供基于 Web 的远程操作、微信小程序和手机 APP 的数据访问,并通过这些人机交互系统(HCI)的具体形式实现与 NB-IoT终端(UE)的数据通信。完成这些软件服务的前提条件是NB-IoT终端(UE)的数据能够传输到具有固定 IP 地址的计算机,这里把具有固定 IP 地址的远程计算机称为云服务器(Cloud Server,CS)。第6章介绍运行在云服务器(CS)上的侦听程序CS-Monitor的编程模板,基于云服务器(CS)上数据库的客户端(Client)程序编程模板,以及开发者如何利用这些模板完成自己项目的侦听程序及客户端程序。第 7~10 章分别给出通过 PC 客户端、Web网页、微信小程序、手机(Android)APP等进行数据访问的编程模板使用方法。Web是运行于服务器端的软件,是通过浏览器的形式与用户进行交互的重要途径。为了尽可能涵盖物联网场景的基本应用,本书还给出了微信小程序、短信、手机APP等基本模板。也许有的读者会认为,微信小程序、短信、手机APP这些信息传递模式不属于NB-IoT的应用范畴,不需要作为NB-IoT应用架构的一个要素。这里,把它们作为NB-IoT应用架构中人机交互系统(HCI)的一个要素,作为 NB-IoT应用开发生态系统 的重要一环,给出基本模板,可以使读者从诸多“从入门到精通”的书籍中解脱出来,基于这些模板可以快速简单地利用新型互联网工具实现物联网终端(UE)信息的传输与发布。
6.终端(UE)的核心:GEC(第11章)
第11章将对通用嵌入式计算机(GEC)这一概念进行详细的描述,同时对其组成进行细致的介绍。作为终端(UE)的核心,GEC是软/硬件的结合,其硬件部分包括MCU、通信模组与硬件最小系统,其软件部分包括引导程序 BIOS 以及用户(User)程序。本章首先详细介绍GEC概念提出的由来、基本内涵以及基于GEC的NB-IoT应用架构,接着对其硬件及软件结构进行详细介绍。其中,对软件结构的介绍包括引导程序 BIOS、GEC 基础构件、应用构件与软件构件概念,以及对用户(User)程序框架。通过对GEC进行全方位的介绍,可以让读者对GEC的认知更具直观性。
7.基于GEC的常用基础构件设计(第12章)
本章对基于GEC的常用基础构件进行详细介绍,主要包括GPIO、UART、ADC、Flash、I2C等构件,利用这些构件可以完成GEC的大部分常用功能编程。本章将从芯片无关性的角度阐述基础构件的知识要素,介绍基础构件的API及其功能,并给出测试方法,以帮助读者更好地使用这些基础构件。
8.关键构件/类解析:UECom构件与HCICom类(第13和14章)
UECom构件为终端的通信构件,HCICom类为上位机的通信类。终端与上位机的对外通信主要是通过UECom构件和HCICom类完成的,所以理解二者的实现细节也是学习的重点和难点。本章将对UECom构件与HCICom类进行详细的介绍,第4章只是对UECom构件与HCICom类的知识要素和使用方法做了简要介绍,不曾进行细致剖析,本章将详细分析二者的实现细节,并给出具体的应用场景,同时对应用流程进行介绍,从而帮助读者对UECom构件和HCICom类的理解。
9.基于GEC的NB-IoT应用产品开发过程(第15章)
第15章仍然采用“照葫芦画瓢”的思想,通过为用户提供“葫芦”,帮助用户快速地“画瓢”;同时通过 GEC 避免了终端(UE)存在的可移植性弱、更换芯片难等问题,这样可以帮助用户加快开发进度,从而把更多的精力用于应用层面的开发。
本章主要是对基于GEC的NB-IoT应用产品开发过程的抽象和概括,包括需求分析、模板选择、硬件评估与设计、终端(UE)及人机交互系统(HCI)软件设计,最终给出软/硬件协同测试方案。借助本章凝练出的共性方法,再结合本章给出的具体案例的不同产品需求,可完成多个NB-IoT项目。
10.更深入问题的讨论(第16章)
第 16 章介绍如何在终端用户程序中新增一个应用构件,以及如何在人机交互系统(HCI)中新增一个类,同时讨论终端的 MCU、通信模组的多型号适应性问题,集成开发环境适应性问题,人机交互系统(HCI)的语言相关性问题,NB-WSN 网关,GPS/北斗定位芯片的融入方法,安全问题等。