基于云服务的分布式嵌入式设备时间同步研究
——以智能停车诱导系统为例

2021-06-25 09:06傅思萍
河北软件职业技术学院学报 2021年2期
关键词:嵌入式客户端服务器

傅思萍

(泉州经贸职业技术学院 信息技术系,福建 泉州362000)

0 引言

智能交通是“智慧城市”建设的重要组成部分,“智能停车诱导系统”则是“智能交通”的一部分。随着汽车保有量不断增长,“停车难”问题日益突出,给社会、个人增加了额外的经济、时间成本。而智能停车诱导系统的出现,有效减轻了城市交通压力。

智能停车诱导系统包含众多嵌入式设备,如车载设备、车位信息采集设备等,他们分散在车辆内和停车场中的各个节点。通过嵌入式设备采集、预处理车辆运动信息、车位使用情况等数据,借助MQTT协议提交云服务器进行分析处理,推导出停车诱导结果,最后反馈给驾驶员。

由于嵌入式设备与云服务器间需频繁地进行数据交互,以实现数据通信、系统控制功能,而时间是双方数据成功交互的绝对必要项,停车诱导系统对时间要求非常严格,因此,各分布式嵌入式设备与云服务器之间的时间必须一致,停车诱导结果才会准确。本文拟研究基于MQTT协议的智能停车诱导系统客户端与云服务器之间时间同步问题。

1 停车诱导系统简介

停车诱导系统主要由信息采集、云服务中心处理、信息呈现三个模块组成。信息采集模块负责采集车位信息和车辆信息,经过预处理后上报给云服务中心处理模块,它由各嵌入式设备(包括车载设备、车位信息采集设备等)构成。云服务中心处理模块位于云端,包括数据存储、算法分析、MQTT服务、管理服务等,其主要功能是综合相关区域的车辆信息进行AI算法分析,对车辆提供诱导建议。信息呈现模块负责将处理整合后的诱导信息呈现给用户,用户通过手机或车载屏查看信息,该模块也是由各嵌入式设备构成,如手机或车载显示屏等。系统各模块分布如图1所示。

图1 模块分布图

在整个停车区域中,车辆借助车载设备通过MQTT协议与云服务器通信,驾驶员借助手机、电子屏等通过MQTT协议与云服务器通信。停车诱导系统模型如图2所示。

图2 停车诱导系统模型

2 时间同步算法设计

停车诱导系统中客户端(嵌入式设备)和服务器端采用MQTT协议进行通信,MQTT协议是一种基于发布和订阅模式的“轻量级”通信协议[1]。目前,支持MQTT协议的云服务平台有百度、阿里、腾讯云平台、OneNET云平台、云巴等。

嵌入式设备通过4G/5G移动网络接入,经过因特网与云服务器进行通信,其架构如图3所示。

停车诱导系统中嵌入式设备之间或嵌入式设备与云服务器之间需时间同步,确保在统一时间基准上运行,以满足实时数据采集、事件顺序记录等时间一致性要求。

在停车诱导系统中引入时间同步算法,嵌入式设备基于MQTT协议向云服务器订阅时间同步服务,申请与服务器时间同步。当汽车驶入停车场时,车载设备登录云服务器,订阅时间同步服务,完成与服务器时间同步操作,使车辆与整个系统时间一致。客户端申请时间同步序列如图4所示。

图3 停车诱导系统架构图

图4 客户端申请时间同步序列图

结合MQTT协议消息格式及上述序列图,嵌入式设备申请与云服务器时间同步具体步骤如下:

步骤1:嵌入式设备通过客户ID、用户名和密码登录云服务器,发送请求连接消息(CONNECT)给服务器。

步骤2:若成功登录,服务器返回确认连接消息(CONNACK)给嵌入式设备。

步骤3:嵌入式设备订阅时间同步服务,向服务器发送订阅请求消息(SUBSCRIBE)。

步骤4:若成功订阅,服务器返回订阅确认消息(SUBACK)给嵌入式设备。

步骤5:服务器发布携带时间戳t1的“探测消息”(PUBLISH)给订阅服务的嵌入式设备,消息等级QoS1。

步骤6:嵌入式设备返回收到发布消息确认(PUBACK)给服务器。

步骤7:服务器根据当前时间t2及t1,计算出链路延时 δt1=(t2-t1)/2。

步骤8:服务器发送携带时间戳t及延时δt1消息的“设置消息”(PUBLISH)给嵌入式设备,消息等级QoS2。

步骤9:嵌入式设备设置时间为t+δt1。

步骤10:嵌入式设备返回设置成功消息(PUBCOMP)给服务器。

考虑到嵌入式设备通过移动接入网络,车辆运动及环境快速变化带来的通讯不稳定性,会导致通讯延时情况,在同步算法中加入对噪音数据进行处理和重试机制,以提高其可靠性。加入去掉噪音数据和重试机制具体操作如下:

(1)去掉噪音数据。在“步骤6”,设置接收“延时阈值”,如果接收时间超过一定阈值,则丢弃这组数据,重新测量,重复“步骤5”和“步骤6”。

(2)重试机制。在“步骤8”,服务器记录时间t3,在“步骤10”,服务器记录收到响应消息时间t4,计算 δt2=(t4-t3)/2。比较 δt2和 δt1,如果相差大于“差异阈值”,则进行重设,重复“步骤5-10”。

嵌入式设备与云服务器间时间同步算法流程如图5所示。

图5 时间同步算法流程图

3 实验分析

在带Linux内核嵌入式系统中进行时间同步算法测试,为验证多场景下时间同步准确度是否在可控范围内,特选取了实验室内、邻近室外、较远室外三种场景记录时间戳(hh:mm:ss mi),记录到毫秒,结果见表1-表3。

表1 实验室内时间同步结果表

表2 邻近(<500m)室外时间同步结果表

表3 较远(>5km)室外时间同步结果表

对以上三种场景的δt绘制折线图(如图6所示),X轴为测试组数,y轴δt值(毫秒)。

图6 实验结果折线图

通过折线图可以看出,延时集中在100~105毫秒之间,符合大多数应用场景的需求。在算法中加入去掉噪音数据和重试机制,系统可采集到更准确的时间数据,嵌入式设备与服务器时间同步达到毫秒级的要求,具有较大应用价值。

4 结语

随着分布式嵌入式设备不断增加,网络规模越来越大,系统对嵌入式设备间的实时性要求更高,时间同步变得越来越重要,时间同步技术也需要更高精度。未来工作主要是:(1)完善云服务器及客户端系统,实现服务器与客户端之间的时间同步精度更高;(2)将时间同步算法应用到实际场景中,逐步完善算法,提升停车诱导系统性能及算法安全性。

猜你喜欢
嵌入式客户端服务器
你的手机安装了多少个客户端
你的手机安装了多少个客户端
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
服务器组功能的使用
理解Horizon 连接服务器、安全服务器的配置
如何看待传统媒体新闻客户端的“断舍离”?
PowerTCP Server Tool
TS系列红外传感器在嵌入式控制系统中的应用
嵌入式PLC的设计与研究
嵌入式单片机在电机控制系统中的应用探讨