面向软件测试的物联网节点模拟单元开发

来源:期刊VIP网所属分类:软件开发发布时间:2019-08-16浏览:

  摘 要:在物联网应用开发中,其软件系统的开发往往受制于硬件节点的开发进度和完善程度,造成开发进度缓慢,需求不断变更,软件测试维护困难等问题。如果能在开发初期迅速搭建一个物联网节点的模拟单元则能够极大促进系统的开发和完善。Arduino提供了一个开源的、通用的、简单易用的硬件平台,非常适合模拟物联网的硬件节点功能。本论文基于Arduino及其开发框架,提出了一个通用的物联网节点的模拟单元模型,基于该模型开发了智能靶的虚拟节點用于智能靶网管控系统的开发,开发实践表明该模型和方法可以快速实现物联网节点功能和数据的模拟,提高物联网系统的开发质量。

  关键词:物联网;Arduino;软件框架

软件工程师论文

  1 引言(Introduction)

  物联网(IoT, Internet of Things)的繁荣带动了大量的物联网应用的开发需求,一个完整的物联网应用开发包括基于智能硬件的节点开发,以及移动端、PC端的网络应用开发,即使是一个小规模的物联网应用也是如此。由于硬件开发的周期较长,网络应用软件的开发则相对较快,造成了软件测试受制于硬件开发进度的矛盾,特别是对于那些依赖于快速迭代的软件开发技术的项目,会因此而受到很大的制约。此外,由于软硬件开发通常由不同的团队完成,测试带来的人力和协调方面的成本也会很高[1]。

  为了解决上述问题,在软件工程实践中,通常是采用标准化的物联网通讯协议或者数据封装来解耦硬件和软件系统之间的依赖。例如在物联网应用开发中广泛使用的MQTT协议[2,3],以及基于TLV的数据封装格式[4]等。但由于具体应用千变万化,物联网络结构复杂,感知层网络类型不统一等问题的存在,这种方法并不能很好地解决开发中的问题。半物理仿真的概念是在仿真回路中引入部分实物,即硬件在环的方法,进行控制系统的仿真[5],同样,在软件开发和测试过程中,借鉴半物理仿真的思想,引入通用硬件技术,对物联网节点进行模拟,可以很好地解决物联网应用开发过程中的矛盾。

  Arduino是一种开源的通用硬件平台,具有开发简单,接口丰富,成本低廉等优点,非常适合作为物联网节点的模拟设备[6]。本论文将基于Arduino硬件平台,通过设计实现面向物联网应用的节点模拟软件框架和模型,并以靶网管理系统软件开发为应用背景,探讨如何实现智能靶节点的模拟,以降低软件开发的周期和成本。

  2 软件系统建模(Software modeling)

  2.1 框架设计

  对于物联网应用来说,本质上是物联网智能节点与服务器之间的数据交换。由于物联网底层和互联网通常采用的协议不同,数据交换通常是基于一个物联网关实现[2,7]。物联网应用系统的典型结构模型如图1所示。

  物联网传输协议有很多种,例如Zigbee、工业以太网、工业总线、NB-IoT等。对于Arduino而言,都有专门的模块和转接板对应于这些网络。通常Arduino与这些模块之间是通过串口进行通讯的,因此在设计基于Arduino的物联网节点模拟软件框架如图2所示。

  该软件框架是从基于时间的嵌入式多任务框架[8]中扩展而来,其中方框表示软件模块/任务,而箭头表示调用关系。该框架包括以下内容:

  (1)“定时器”模块提供了多任务的运行时间片参考。该定时器使用了Arduino板上单片机的硬件定时器,并利用定时器的中断服务来运行任务调度模块。

  (2)“任务调度模块”实现了对任务的管理和执行。任务调度模块会在定时器产生的时间间隔内依次调用系统内的任务模块,这些任务模块实现了对输入的协议数据的解析,数据处理,模拟设备模型的执行,以及生成返回给服务器的数据。这些任务模块包括数据解析任务模块、协议处理任务模块、模拟设备任务模块和数据发送任务模块。其中模拟设备任务模块是为了模拟节点的功能,例如和执行控制、状态更新等。

  (3)“数据通讯模块”实现了基于串口的与通讯设备的数据交换机制,针对不同的通讯设备,该模块的实现不同,主要封装了针对不同设备的通讯细节;“设备实体/状态模拟模块”实现了节点功能和状态的仿真,通常情况下是存储与被模拟节点相关的数据。

  5 结论(Conclusion)

  本文提出了一种以Arduino作为硬件载体模拟物联网系统的节点功能及其通讯的模型,用于物联网应用软件的测试,采用半实物仿真的思想,让软件测试过程更接近真实场景,从而加速软件开发的进程,提高物联网应用软件系统的开发效率,降低开发成本。所开发的模拟节点获得的经验更可以用于指导真实物联网智能硬件节点的设计和开发。本文提出了基于Arduino的物联网节点的模拟软件框架和实现方法,该软件框架和实现在智能靶网控制软件中进行了应用,所获得的模拟靶机硬件能够真实地模拟靶机的功能和交互,为靶网控制软件的快速迭代发挥了重要作用。

  目前该软件框架以源码的方式应用在开发中,在将来可以将其封装成Arduino的库,以库的形式集成在应用中,这样可以进一步简化开发,实现代码分离。

  参考文献(References)

  [1] Antero Taivalsaari,Tommi Mikkonen.A Roadmap to the Programmable World:Software Challenges in IoT Era[J].IEEE Software,2017,34(1):72-80.

  [2] 赵丹,谌建飞,邓敏,等.基于MQTT的步进电机远程控制方案实现[J].测控技术,2018(6):126-129.

  [3] 谭方勇,王昂,刘子寧.基于Zigbee与MQTT的物联网网关通信框架的设计与实现[J].软件工程,2017(4):43-45.

  [4] 朱江彦,吕霖,向晋祥,等.基于BER-TLV报文格式的航标与水位动态数据交换技术[J].中国水运,2017(7):81-87.

  [5] 蔡安江,蒋周月,郭师虹,等.半物理仿真技术工业应用现状及发展趋势[J].航天控制,2018(6):52-56.

  推荐阅读:软件工程计算机工程师职称论文投稿

期刊VIP网,您身边的高端学术顾问

文章名称: 面向软件测试的物联网节点模拟单元开发

文章地址: http://www.qikanvip.com/ruanjiankaifa/48304.html