文献标识码: A
DOI:10.16157/j.issn.0258-7998.174988
中文引用格式: 杨凡,王宜怀,宋洪儒. 基于窄带物联网应用架构的温湿度控制系统设计[J].电子技术应用,2018,44(7):59-63.
英文引用格式: Yang Fan,Wang Yihuai,Song Hongru. Design of temperature and humidity control system based on narrow band Internet of things application architecture[J]. Application of Electronic Technique,2018,44(7):59-63.
0 引言
窄带物联网(Narrow Band Internet of Things,NB-IoT)是第三代合作伙伴计划(3GPP)于2016年6月完成其核心技术标准而实施的新一代物联网通信技术,构建于蜂窝网络,消耗的带宽不会超过180 kHz,可直接部署于GSM网络、UMTS网络或者LTE网络,能够实现平滑升级[1-2]。相比4G网络、ZigBee等短距离通信技术,NB-IoT技术有大容量、广覆盖、深穿透、低成本、低功耗等特点,能够带来更加丰富的应用场景,其可广泛应用于远程抄表、智慧农业、智能停车等应用领域,NB-IoT将会成为我国未来物联网发展的主要趋势[3-4]。
由于NB-IoT技术的研究处于初期阶段,为了解决在应用中存在可靠性和稳定性的问题,本文通过采用在NB-IoT应用架构下实现温湿度控制系统的设计进行实验论证。先从应用角度对NB-IoT进行分析研究,归纳出了NB-IoT应用架构,为系统设计提供了理论基础。再根据应用架构功能要求对NB-IoT终端软硬件设计,并在开发环境Visual Studio 2013下设计出人机交互系统,通过对温湿度控制系统的实验结果分析,可以得到NB-IoT技术在应用方面具有很好的稳定性和可靠性。
1 NB-IoT应用架构
NB-IoT应用架构的建立是在抽取NB-IoT应用开发的共性,从具体到一般,把NB-IoT应用开发所涉及软硬件体系的共性进行概括、归纳,建立与其相关知识要素的抽象模型,为由一般到具体提供理论与应用基础,也为具体的NB-IoT应用开发提供技术基础。经过分析研究,NB-IoT应用架构由NB-IoT终端(Ultimate-Equipment,UE)、NB-IoT信息邮局(Mssage Post Office,MPO)和NB-IoT人机交互系统(Human-Computer Interaction,HCI)三部分组成[5],如图1所示。
三部分之间的通信关系是:首先人机交互系统与信息邮局建立网络连接,由人机交互系统向管理服务器提供通信所需的终端IMSI号。终端会根据管理服务器的IP地址、管理服务器面向终端的端口号以及IMSI号通过基站建立终端与管理服务器网络连接,将数据发送给管理服务器。其次管理服务器接收到终端数据后,通过解析出IMSI号找到发送相同IMSI号的人机交互系统,把接收的数据传送到人机交互系统。最后人机交互系统有一个专门负责侦听管理服务器是否发送过来数据的线程,当侦听到有数据发送来时,把这些数据进行解析和处理,这个过程就完成了终端发送数据到人机交互系统的通信。终端接收数据的过程与发送过程类似,这样就实现了一次完整的通信过程。
2 终端系统设计
终端系统设计结构图如图2所示。微控制器选用恩智浦公司的MKL36Z64VLH4作为主控芯片,该芯片CPU工作频率为48 MHz,工作电压为1.71 V~3.6 V,额定工作电压为3.3 V,并具有定时器、DMA、UART、TSI、16位ADC、12位DAC等模块,能够满足NB-IoT硬件设计功能需求,负责数据采集、处理、分析以及与通信模块通信连接等[6]。电源模块为微控制器和GPRS提供工作电压,温湿度采集模块是通过传感器实时采集外部温湿度,经过A/D模块传送到微控制器处理。GPIO模块是通用I/O模块,是微控制器与外部进行信息交换的接口。
2.1 终端硬件设计
在硬件设计时为了提高设计可重用性与可移植性,应该对所有使用到的硬件根据功能设计进行合理划分,把与系统目标功能无关的进行个体构件封装,然后把个体构件“组装”,最终完成整个系统的硬件设计[7]。根据硬件设计方法,终端硬件设计包含有电源模块、通信模块、复位模块、A/D模块和温湿度采集模块等。在本文中重点介绍电源模块、通信模块和温湿度采集模块的设计。
2.1.1 电源模块
电源模块电路如图3所示,在图中TPS709系列芯片是低压降线性稳压器,工作输入电压范围为2.7 V~30 V,输出电压范围为1.5 V~6.5 V,输出最大电流为150 mA,其中EN引脚为低电平时,芯片停止工作。TPS70933芯片为KL36提供3.3 V额定工作电压,TPS70939芯片为通信模块R518提供3.9 V工作电压,为了能达到低功耗的目的,需要进行无线通信时,由MCU发出指令控制TPS70939芯片的EN引脚为高电平,向R518通信模块供电3.9 V电压,不需要通信模块工作时,使EN引脚为低电平,TPS70939芯片停止工作。
2.1.2 温湿度采集模块
温湿度采集选用Pt100铂电阻传感器,它具有微功耗、高可靠、高准确度等特点,在生活中的温湿度测量方面得到广泛应用。当温度变化范围在-40~60 ℃之间时,Pt100阻值变化范围为84.27 Ω~123.24 Ω[8],温度最大非线性偏差小于0.5 ℃。湿度范围在0~100%时,湿度传感器的输出电压范围为0~1.0 V,两者是正比关系,湿度信号的放大倍数为K=(R201+R202)/R202。温湿度采样电路如图4所示。其中:RH+和RH-分别表示湿度传感器电压信号正向/反向输入端,RT+和RT-分别表示温度传感器电压信号正向/反向输入端,PTE16/PTE17表示湿度/温度传感器电压输出信号提供给MCU。LM324为电路放大元件,工作电压范围为3.0 V~32 V,静态电流小,单电源供电时放大倍数为1~100倍。
2.1.3 NB-IoT通信模块
通信模块选用的是具有高性能、低功耗的无线通信GPRS模块R518芯片。R518芯片是一款工业级的两频段GSM/GPRS无线模块,工作电压为3.4 V~4.2 V,额定工作电压为3.9 V,能提供GPRS数传和GSM短信业务,内嵌丰富的网络服务协议栈,完成无线通信功能[9]。NB-IoT通信模块由R518芯片、输入电压保护电路和射频电路组成,电路如图5所示。在图中,C301~C304组成输入电压保护电路,板载天线和P302组成无线射频电路,P301是升级固件串口,TXD、RXD引脚连接KL36芯片引脚PTE0、PTE1用作通信串口。
图5中电压保护电路作用是:由于芯片R518工作电压范围为3.4 V~4.2 V,电源提供的电压为3.9 V,在长期使用过程中输入电压会逐渐降低,为保证VBAT引脚电压不会跌落到3.4 V以下,在靠近模块VBAT输入端,并联一个C301=100 μF的钽电容以及C302=100 nF、C303=33 pF、C304=10 pF的滤波电容,保障R518正常工作[9]。无线射频电路的作用是接收无线信号,为了能够更好地调节射频性能,其中R301预留匹配电路使用,根据信号的强弱可以进行增减,载板天线是用来接收外部无线信号,P302连接外部天线使用,如果通过载板天线接收的信号不能达到工作要求时,可以通过P302连接外部天线增强无线信号。
2.2 终端软件设计
将软件构件技术应用到嵌入式软件开发中,可以大大提高嵌入式的开发效率与稳定性。采用构件技术设计对底层驱动编程,可以提高软件的开放性、通用性和移植性。根据模块使用性能,终端构件如图6所示。在设计时,构件包含头文件(.h)和源程序文件(.c)两部分。头文件中主要含必要的引用文件、描述构件功能特性的宏定义语句以及声明对外接口函数,源程序文件中含构件的头文件、内部函数的声明、对外接口函数的实现。
2.2.1 通信机制
根据NB-IoT应用架构可知,在通信中采用IP地址+IMSI号的方法分辨设备的终端,设备终端存在唯一的IP地址和IMSI号,在传输的数据包中加入目的终端的IP地址和IMSI号,来保证数据包到达目的终端并做出反应。为提高数据传输的正确性,采用帧结构来降低数据包在传输过程中出错的概率,传输数据包一帧数据包由帧头、帧长、有效数据、校验码以及帧尾组成,一帧数据长度有46个字节,具体帧格式如表1所示。
2.2.2 主程序设计
软件构件设计完成后,在main()函数中调用函数进行主程序设计,根据要求需要以下步骤:(1)声明变量:声明主函数中使用的变量类型和名称;(2)关总中断:为了避免程序在开始运行时还有其他中断程序在运行,影响主函数运行;(3)初始化外设模块:需要使用的外设模块初始化完成后,模块等待调用;(4)给部分声明变量赋初始值;(5)使能外设模块中断:打开需要使用外设函数中断的设置,当有中断产生时调用中断函数;(6)打开总中断,有中断产生时能执行中断函数;(7)主循环函数编程,主循环流程图如图7所示。
3 人机交互系统设计
人机交互系统设计开发环境为Visual Studio 2012,采用C#语言,C#是一种安全、稳定、简单的面向对象的编程语言,使用.NET Framework的Windows Forms模块生成具有Windows外观和操作方式的应用程序。Windows Forms模块是一个空间库,其中的控件(例如按钮、工具栏、菜单等)用于建立Windows用户界面[10-11]。在启动界面时,界面初始化过程流程图如图8所示。
在界面初始化过程流程图中,判断PC是否连接互联网成功,通过拼接外部网站进行验证,如果拼接成功,证明该PC已经连接,否则,连接失败,结束初始化过程。加载在窗体上显示的信息在AHL.xml文档中,内容有窗体名、工程名、IP地址、端口号、IMSI号等信息。在读出AHL.xml文档中内容时,需要判断数据是否完全正确,当出现错误时,给出相应的提示,并退出初始化程序。数据读取成功后,实现数据的传输一定与转发服务器建立TCP连接。
4 通信测试分析
通信测试监控界面能否接收到通过服务器上传给GPRS模块R518芯片发送MCU的芯片温度、系统时间、IMSI号和服务器IP地址等信息。通过AT指令从通信模块中获得IMSI号和服务器IP地址等信息,通过读取A/D模块的通道采样获得经过转换后的温湿度值。在通信测试时,先启动监控界面,当终端UE上电时,终端模块进行一系列的初始化,建立与接收服务器的通信连接,等待终端UE发送数据至监控界面,需要等待1 min左右就能接收到发送来的数据。温湿数据值每10 min采集一次,本次实验时间大约进行12 h,具体生成温湿度曲线如图9、图10所示。通过生成的实时温湿度曲线可以看出,数据采集稳定,系统运行可靠,进一步验证了系统设计的可靠性和稳定性。
5 结论
本文介绍了在NB-IoT应用架构下进行温湿度采集的控制系统设计,详细分析了NB-IoT的硬件设计过程和软件设计方法,依据KL36芯片和GPRS模块进行硬件设计,并采用构件化方法进行软件设计,提高了系统设计的可移植性和可重复性。通过人机交互系统的控制界面设计,实现对温湿度值参数的实时监控,实验结果证明了NB-IoT技术具有稳定性和可靠性。该控制系统在实际运行过程中,软硬件功能都得到测试,运行可靠、稳定,为NB-IoT技术应用在农业监控、智能燃气表等提供技术支持和参考价值。
参考文献
[1] 候海风.NB-IoT关键技术及应用前景[J].通讯世界,2017(14);1-2.
[2] 苏雄生.NB-IoT技术与应用展望[J].电信快报,2017(5):6-8.
[3] 何泽鹏.基于蜂窝的窄带物联网(NB-IoT)技术性能及应用[J].广东通信技术,2017(3):29-34.
[4] 刘全德,傅子维.窄带物联网建设方案研究[J].广东通信技术,2017(7):22-25.
[5] 王宜怀,刘辉,张建.窄带物联网NB-IoT应用架构[Z].苏州大学计算机科学技术学院,2017.
[6] Freescale.KL36 Sub-Family Reference Manual[DB/OL].[2013-12-12].http://www.Freescale.com.
[7] 王宜怀,吴瑾,文瑾.嵌入式技术基础与实践(第4版)[M].北京:清华大学出版社,2017.
[8] 郑保,成鹏展,张建兰.提高铂电阻温度计测量精度的方法研究[J].计测技术,2006,26(1):56-59.
[9] GPRS系列:R518硬件设计手册[Z].2016.
[10] 郑阿奇,梁敬东.C#程序设计教程(第3版)[M].北京:机械工业出版社,2015.
[11] 白聪,王宜怀,司萧俊.基于KW01-ZigBee+GPRS的无线气象监控系统的设计与实现[J].现代电子技术,2017,9(18):70-74.
作者信息:
杨 凡1,2,王宜怀1,宋洪儒1,3
(1.苏州大学 计算机科学与技术学院,江苏 苏州215006;
2.铜陵学院 数学与计算机学院,安徽 铜陵244000;3.铜陵学院 电气工程学院,安徽 铜陵244000)