国内或国外 期刊或论文

您当前的位置:发表学术论文网电子论文》 一种动态可配置多路串口网关设计> 正文

一种动态可配置多路串口网关设计

所属分类:电子论文 阅读次 时间:2020-03-05 08:35

本文摘要:摘要:为了使物联网网关连接多个串口设备且能够并行处理来自串口的数据,设计了一个支持多路串口设备连接、在线配置串口参数的物联网网关。网关部署在RaspberryPi开源硬件平台。软件基于开源的Kura框架,使用OSGi插件技术进行开发,功能模块将来自不同串口的

  摘要:为了使物联网网关连接多个串口设备且能够并行处理来自串口的数据,设计了一个支持多路串口设备连接、在线配置串口参数的物联网网关。网关部署在RaspberryPi开源硬件平台。软件基于开源的Kura框架,使用OSGi插件技术进行开发,功能模块将来自不同串口的数据按照不同的主题以消息的形式发送到云端,模块之间使用事件通信,网关与云端采用MQTT技术实现数据通信,Kura实现了串口的可视化配置。实际应用表明,该系统可以稳定、可靠地工作,达到了设计要求。

  关键词:串口通信;MQTT;OSGi;Kura

现代电子技术

  0引言

  在早期的设备中,大多使用串口与控制器进行通信,而控制器对串口设备数据的读取,一般采用轮询的方式,在对实时性要求比较高的场合,这种方式无法有效地满足系统要求[1 ̄3],串口参数一旦配置完成,无法对其进行动态配置。物联网技术的发展,要求对设备进行统一的管理和控制,控制器不仅能快速获取设备数据,还要求通过网络与云平台通信。由于串口控制器功能比较单一,如果需要连接外网,还要配置通信模块,且编程复杂,系统的灵活性和可扩展性也不能满足实际使用的要求。针对这些问题,本文提出一种动态可配置串口物联网网关。网关上运行可配置、可插拔的OSGi(OpenServicesGatewayinitiative)插件,插件实现多个串口设备的数据采集和通信功能。

  由于OSGi插件具有动态和并行的特性,与网关相连的串口设备可以独立、并行地与网关进行数据通信。网关运行通信模块,对通信数据遵循消息队列遥测传输协议(MessageQueuingTelemetryTransport,MQTT)协议进行格式转换,并将来自不同串口设备的数据封装成消息的形式,发布到不同的主题上。

  1Kura平台及插件机制

  Kura是Eclipse基金会发布的物联网项目,用于构建IoT(InternetofThings)网关框架。

  Kura由基本服务、远程连接服务、网络配置、用户管理界面等模块组成。它支持基于事件的消息通信机制,可以在不同组件之间通过事件进行通信。Kura可在树莓派等多种硬件平台上部署。Kura使用OSGi技术实现模块设计和管理。OSGi基于构件的软件设计方法和面向服务的模块化设计思想,定义了一个开放、统一的体系结构[4]。OSGi采用层次结构,其中OSGi内核框架、bundle(插件)和服务是其核心要素。插件是OSGi框架下模块化设计的主要体现。在形式上,插件就是一个Jar文件,OSGi所有基本服务和功能模块,都是通过插件实现的。插件之间实现物理隔离,系统运行期可以远程安装、启动、升级和卸载,实现软件热插拔、多版本控制。利用插件的动态模块化、面向服务架构等特性[5],用户可以很方便地创建自己的功能插件,并集成到系统中实现网关功能,可根据需要对功能模块扩展[6 ̄7]。

  2MQTT协议

  MQTT是一种基于TCP/IP的议通信协议,为低带宽、不稳定网络环境中的物联网应用提供可靠的网络服务[8]。由于其在网络连接、可靠性、灵活性及成本等方面突出的优点,目前已经被国际标准化组织采用,成为物联网行业的一个标准。MQTT协议使用发布/订阅消息模式,提供一对多的消息分发服务。MQTT协议由客户端和代理服务器两部分组成,代理服务器主要完成消息路由功能,它连接了多个客户端,客户端是消息的发布者和接收者。

  3系统设计及实现

  3.1硬件结构

  网关采用开源硬件树莓派3B。树莓派集成四个USB接口和WiFi模块,可以直接通过USB接口与底层设备连接,若连接设备数量较多,也可以使用USB ̄hub对串口扩展。树莓派使用WiFi与MQTT消息代理服务器连接。将串口获取的数据上传到云端,实现设备端到云端的数据传送。由于网关与底层设备通过标准的USB串口连接,同时与云端的通信也是基于WiFi技术实现,这时网关的硬件连接基于标准化的接口,系统扩展和连接都很方便,具有更强的适应性。

  3.2软件设计

  3.2.1软件整体框架

  软件设计基于Kura框架,采用符合OSGi4标准规范的模块化设计,用Java语言编程实现[9]。每一个bundle可以独立进行开发和部署。插件根据需要调用OSGi和Kura提供的基础服务。插件需要实现的主要功能是与串口设备的连接和与云端服务器的通信,这两部分功能分别由串口bundle和通信bundle具体实现。其次,还需要实现插件的动态配置和可视化管理以及插件之间的通信。

  (1)串口bundle。串口bundle实现与多路串口设备连接,并根据串口设备的不同动态配置串口通信数据格式、波特率等参数,串口bundle还要支持设备的热插拔和在线升级。(2)通信bundle。根据数据来源不同,通信bundle按照不同的主题将数据以消息的形式发送到MQTT代理服务器。

  (3)插件的可视化管理。bundle需要实现Con ̄figurableComponent接口,调用Kura框架提供的可配置服务,配置参数来自XML文件。(4)网关连接的串口可动态设置。网关支持多串口设备同时连接到一个网关,每一个串口的参数信息可以动态改变,包括串口名称、波特率等。且要求在串口设备工作时动态完成不同设备之间的切换,即实现所谓的热插拔。(5)串口bundle与通信bundle之间的通信。插件之间的通信采用基于事件的实时通信。串口bundle将实时获取的数据以事件的方式发送给通信bundle。

  3.2.2系统设计及实现

  (1)串口bundle串口bundle需要与底层串口设备连接,由于不同设备的波特率及数据格式各异,在设计插件时,必须将串口bundle设计成可动态可配置的。串口bundle的功能实现,需要调用OSGi容器和Kura框架提供的一些功能插件。串口bundle主要依赖连接服务和事件管理服务。同时,它也提供可配置服务,供Web管理程序使用。串口bundle启动时,引用一个连接服务的实例,建立与串口设备的逻辑连接。随后读取串口配置文件,串口配置参数作为插件的元数据,以XML文件的形式保存,串口bundle根据这些参数设置串口的工作模式。

  为实现串口数据收发,在串口bundle中启动一个新线程用来监听串口,接收来自串口设备的数据,这些数据被封装成事件,每一个事件与一个主题相关联,对于通信bundle来说,这个主题也是区分不同串口bundle的一个主要依据。借助于事件管理服务,由OSGi容器负责事件的路由分发。由于插件继承了可配置接口,可对外发布Con ̄figurableComponent服务,当插件激活后,插件的运行状态出现在Web管理界面,通过可视化界面可以对串口插件的参数进行动态配置。同时,插件的生命周期也可以在这里统一管理。

  (2)通信bundle

  通信bundle基于Kura内置的MQTTservice,根据连接MQTT代理服务器的不同可以在可视化界面中配置MQTT服务代理的参数。通信bundle接收来自串口bundle的事件。通过解析事件的主题,提取出来自串口bundle的数据,并根据事件主题,建立相应的消息主题。

  (3)插件间通信

  插件之间的通信使用事件实现,这是一种松耦合的通信方式,最大限度地减少了插件之间的依赖性。OSGi提供了事件管理服务,具体实现时,插件需要应用OSGi框架内置的事件管理服务。管理服务采用发布/订阅模型。事件发布者将要传输的数据封装成事件的形式,并以特定的主题向外发布。由OSGi框架对事件进行管理,将事件向所有订阅该主题的订阅者发布。订阅者实现事件监听接口,接收特定主题,对事件进行解析,获得发布者发送的数据。

  4系统测试

  4.1测试环境

  网关硬件使用开源硬件平台RaspberryPi,运行Linux操作系统。Kura框架采用4.1版本,测试时同时连接了四个USB串口设备,每台设备工作在不同的波特率下。为实现远程配置,使用PC在局域网内与网关连接,登录Web服务器进入管理界面对插件进行可视化管理。使用WMQTT ̄utility客户端订阅云端数据。

  4.2功能测试

  通信bundle根据串口数据的来源不同将数据发布到不同的主题上,可以选择不同的MQTT代理服务器将消息发布到局域网或云端。这里测试了两种不同的代理服务器设置,分别是Kura内置的ApacheActiveMQArtemis代理服务器和Eclipse提供的MQTT测试代理服务器。测试结果表明,在两种不同的网络环境中,插件都能够很好地工作。

  5结论

  本文设计并开发了一种动态可配置多路串口的网关,网关软硬件都基于开源项目,具有可扩展性强、开发快捷、使用灵活等特点。解决了网关与早期设备的联网问题,在快速网关原型设计中具有一定的实用价值。系统的插件设计方法,也为未来网关兼容更多的底层设备和通信协议提供了一种有效的方法。

  参考文献

  [1]胥飞燕,郑华容,周宦银,等.基于FPGA的多串口控制器的设计与实现[J].物联网技术,2017,7(10):31 ̄32.

  [2]王春媚.多串口并行通信数据传输系统设计[J].现代电子技术,2017,40(4):86 ̄90

  [3]孙广明,唐建.基于高可靠CPCI接口的4通道串口设计[J].电子设计工程,2017,25(23):90 ̄93.

  [4]佘俊,钟保强,高鹏.基于OSGi的SOA应用架构搭建模块化的企业应用平台研究与实现[J].自动化与仪器仪表,2016,6:156 ̄157.

  通信方向论文投稿刊物:《现代电子技术》(半月刊)分为“通信与信息技术”和“计算机与电子器件”两个版本。值此创刊30周年之际,《现代电子技术》坚持“重质量,有特色,守信誉”的办刊方针基础上,大力提高本刊的学术水平和质量,为推进科技进步,为信息产业及电子行业发展做出更多贡献。

转载请注明来自发表学术论文网:http://www.fbxslw.com/dzlw/21985.html