窄带物联网(NB-IoT)是3GPP于2016年5月完成核心标准制定的,面向智能抄表、工厂设备远程测控、智能农业、智能家居等应用领域的新一代物联网通信体系,是低功耗广域网LPWAN的重要一员。NB-IoT应用系统将成为许多实体行业的关键技术。然而,进行 NB-IoT 应用开发具有较高的技术门槛,研发成本高、周期长,是许多终端企业面临的重要难题。为了解决这个难题,学术界需要从技术科学层面、从面向应用角度出发来研究NB-IoT应用产品开发的共性技术,为产业界进行NB-IoT应用开发提供基础支撑。本书着眼于这一目标,研究与NB-IoT应用开发共性技术相对应的抽象模型,为降低NB-IoT应用开发的技术门槛提供技术基础。
本书从技术科学层面出发,提出了NB-IoT应用架构。该架构由终端(UE)、信息邮局(MPO)和人机交互系统(HCI)三个部分组成。UE是形式各异的NB-IoT应用产品,其共性技术研究是本书的重点之一。本书把负责NB-IoT通信的设施抽象为MPO,以便简化应用系统的编程。HCI 是通用计算机、笔记本电脑、平板电脑、手机等设备的抽象,具有服务器、网页、微信、短信、手机APP等技术表现形式,其共性技术的抽取以及与UE的通信的共性技术研究,也是本书重点内容之一。
本书以构件为基础、以与具体的微控制器芯片无关性为目标,提出了通用嵌入式计算机(GEC)的概念、基本组成及实现方法,通过分析凝练UE所共有的GPIO、UART、A/D、Flash、SysTick、I2C、SPI、UECom 等模块的基本知识要素,给出了遵循嵌入式软件工程基本原则的底层驱动构件封装,并把它们固化驻留在微控制器芯片中,类似于通用计算机的基本输入/输出系统(BIOS)。在此基础上给出了用户(User)程序的应用模板,可以使用户专注于应用程序的开发。本书以类为基础,提出了HCI的应用模板。通过分析NB-IoT通信的共性,以MPO为基础,在充分研究HCI共性技术的基础上,以C#语言为蓝本,遵循类封装的基本原则,设计了PC方的通信接口类HCICom,具有良好的可移植性,实现了HCI 应用层程序的可复用性。此外,通过数据库及显示页面的动态设计,实现了在一定条件下物理量增减的程序自适应性。为了比较完整地涵盖 NB-IoT 应用开发的知识要素,本书还给出了HCI应用的多样性研究,在云平台(云服务器)侦听程序及数据入库的基础上,对客户端程序、网页程序、微信小程序、手机APP等多种不同表现形式给予了关注,也设计了对应的应用模板。
本书给出的NB-IoT应用开发共性技术,最大限度地凝练了NB-IoT应用开发过程的一般规律,形成可复用、可移植的模板、构件和类,成为 NB-IoT 应用产品开发的“基石”和模板(“葫芦”),以便开发人员在此模板的基础上进行特定的应用开发(“照葫芦画瓢”),体现了人类认识过程由个别到一般,又由一般到个别的哲学原理,可有效降低 NB-IoT 应用开发的技术门槛、减少研发成本、提高研发效率。
本书由王宜怀负责编制提纲和统稿工作,并编写了第1~3章、第11~12章,张建编写了第4~8章及对应的附录,刘辉编写了第9~10章、第13~14章及对应的附录,刘银龙编写了第15和16章。博士研究生施连敏、彭涛,硕士研究生陈成、汪博、钱涵佳、周靖越、周欣、葛新越、张艺琳、范小青、孙亚军、程宏玉、黄志贤、刘贤德、张蓉、徐昕等协助完成了程序编写、调试及书稿整理等工作。他们卓有成效的工作,使本书更加实用。ARM教育生态部、苏州电信、安芯教育、苏嵌教育等对本书提供了大力支持,电子工业出版社的编辑为本书的出版做了大量细致的工作,在此一并表示诚挚的谢意。
本书虽历时三载,但鉴于作者水平有限,书中难免会存在不足和错误之处,恳望广大读者提出宝贵意见和建议,以便再版时改进。
苏州大学 王宜怀
2019年1月