基于4G的机器人与云平台无线数据传输系统设计
2021-02-16周海波严佳欢赵一娇
聂 冬,宋 阳,周海波,严佳欢,赵一娇,*
(1.天津理工大学a.天津市先进机电系统设计与智能控制重点实验室,b.机电工程国家级实验教学示范中心,天津 300384)
为实现机器人和云平台服务器之间数据的传输功能,在实验过程中机器人会在不同环境中采集实验所需要的温度、湿度和位置等系列数据,并将采集到的实验数据通过第四代移动通信技术(the 4th generation mobile communication technology,4G)无线传输的方式传输至云平台服务器。此时机器人采集到的各类数据信息就可以进行分类存储,同时应用4G网络通信技术,不仅能实现数据的无线传输,而且为云端数据分析、多机器人数据共享以及人机信息交互等奠定了技术基础。
近年来随着移动通信技术的快速发展,利用4G网络技术作为多机器人的无线传输方式成为一种趋势[1-5]。与4G网络无线数据传输技术相比,同领域的紫蜂(ZigBee)无线数据传输技术、蓝牙(Bluetooth)无线数据传输技术和无线网络通信技术(Wi-Fi)等虽然成本较低,但存在着传输范围有限的缺点,在远距离数据传输场景中受到限制。4G网络技术近年来得到充分地发展,虽然仍存在信号强度易受建筑物影响以及传输延迟较大等缺点,但是因其覆盖面广、分散性强和灵活性高,能摆脱空间的限制,实现大面积和远距离传输等优点仍具有更好的发展前景[6-10]。
1 总体设计
1.1 硬件设计
在实验中,移动机器人在不同环境中采集相应的数据信息,当机器人采集到数据信息后会根据具体要求上传到云平台服务器。当某一台机器人需要其他机器人的数据信息时,就可以直接向云平台服务器发送请求,来获取到相关的数据信息;实验研究人员也可以根据多台机器人采集到的不同数据信息进行对比研究、分析处理等工作,对于发现其内在的深层规律有很大的帮助。硬件结构图如图1所示。
图1 硬件结构图Fig.1 Hardware design structural diagram
机器人上安装有32位微控制器(STMicroelectronics32,STM32)微控制器,4G模块及相应的传感器,根据实验的具体需要,传感器能够收集相应的数据信息,再通过4G网络与Internet相连接,把采集到的数据信息传输到云平台服务器中,最终实现机器人与云平台服务器之间的无线数据通信功能。无线传输系统主要包括STM32主控芯片、降压电路、稳压电路、晶振电路、CH340程序下载电路、LCD显示屏、DS18B20温度传感器和4G模块等,硬件系统电路原理图如图2所示。
图2 硬件系统电路原理图Fig.2 Circuit schematic diagram of hardware system
1.2 数据传输原理
在实现机器人与云平台服务器之间的无线数据传输过程中,其数据以JavaScript对象简谱(Javascript object notation,JSON)的形式传送,利用超文本传输协议(hyper text transfer protocol,HTTP),HTTP协议属于开放式系统互联通信参考模型(open systen interconnection reference model OSI),模型7层结构中的应用层,其传输层是基于传输控制协议(transmission control protocol,TCP)实现的,TCP协议是可靠的、面向连接和需要三次“握手”才可以建立的字节流协议标准,进而保证了数据安全地与高效地传输。
1.2.1 OSI模型概述
OSI模型是7层网络物理模型,从下到上依次为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层[11]。这些逻辑分层划分代表了无线数据传输的基本过程,层与层之间相互独立同时又相互依靠。原则上上层依赖于下层,而下层又为上层提供服务[12]。
在数据传输的过程中,数据流遵循OSI网络物理模型,数据发送端将需要发送的数据发出,数据就会从应用层打包并封装到物理层,并在物理层中转化为比特流,通过Internet网传送至数据接收端的物理层,然后数据层被解包并从物理层解封装到应用层,最终实现数据的传输功能。
1.2.2 HTTP协议概述
HTTP协议中定义了8种方法,或称为“动作”,分别为获取资源(GET)、传输实体(POST)、传输文件(PUT)、获取报文首部(HEAD)、删除文件(DELETE)、询问支持(OPTIONS)、回显诊断(TRACE)和连接代理(CONNECT)以指示操作请求地址(Request-URI)指定的资源的不同方式。
这8种方法都可以请求HTTP,但在实践中常用get和post命令,其他请求方法也可以通过这2种方法间接实现。其请求过程由4个部分组成,分别为请求行(request line)、请求头部(header)、空行和请求数据[13]。
1.2.3 数据传输方式JSON概述
JSON是一种起源于JavaScript的轻量级的数据交换形式,以键值对的形式传输信息,有多种编程语言都支持JSON形式,适用性广。一个JSON对象是若干个无序的键/值对的集合,一个对象以左括号“{”开始,右括号“}”结束,键/值对组合中的键名写在前面并用双引号包裹,键与值之间使用冒号分隔,不同键值对之间逗号分隔[14]。其格式示例如下所示:{"Key1":Value1,"Key2":Value2}。
1.3 模式设定
4G模块主要包含3层功能区域,即基于TCP/UDP协议的透明传输模式和基于HTTP协议的超文字传输协定常驻程式客户(hyper text transfer protocol daemon client,HTTPD Client)模式,这两层共同组成4G模块的传输模式;另一层是AT指令模式,它是4G模块的设置模式。
在实际进行无线数据传输的过程中,首先,用户需要进入4G模块的AT指令模式来设置AT指令,待设置好后需要重启模块;然后用户可以根据自身通讯的基本情况来具体选择是透明传输模式还是HTTPD Client模式。
1)AT指令模式。在无线数据传输的实验中,需要先进入AT指令模式,对模块进行参数设置。
首先,串口设备连续向4G模块发送“+++”。收到“+++”后,4G模块将用‘a’回复串口设备;当串口设备收到‘a’时,必须在3 s内给4G模块发送另一个‘a’,并且在收到‘a’后,4G模块将用“+ok”回复串口设备。此时,4G模块进入“AT指令模式”。在此期间,串口设备可以向其发送AT指令。
在设置完AT指令时,串口设备给4G模块发送指令“AT+ENTM”,当4G模块接收到指令之后,给串口设备回复一个“OK”,这时4G模块就回到之前的工作模式[15]。
2)网络透传模式。网络透传模式只需将数据包传送到目的节点,在数据传输过程中不对数据进行分组、编码、加密和截断等任何处理,只需保证传输质量即可的一种传输模式。在实验过程中,4G模块通过4G网络基站将接收到的串口数据传输到因特网中,最后将TCP/UDP数据传输到云平台服务器。同时,云平台服务器还可以将相关的TCP/UDP数据返回到因特网,通过4G网络基站反馈给4G模块,实现双向通讯过程。在此模式之下,一次发送数据的最大长度由打包长度决定,范围是1~1 024字节。网络透传模式工作过程如图3所示。
图3 网络透传模式工作过程Fig.3 Working process of network transmission
3)HTTPD Client模式。HTTPD Client模式是一种传输模式,其中接收的数据包被处理成某个组数据包,然后发送到HTTP服务器。在实验过程中,4G模块通过4G网络基站将接收到的串口数据信息发送到因特网,并在传输过程中对4G数据进行分组处理,最后形成HTTP数据包并传输到HTTP服务器。同时HTTP服务器还将相关的HTTP数据包返回到因特网,并通过4G网络基站反馈给4G模块,以实现双向通信过程。在此模式之下,由于串口接收缓存为1 000字节,所以7S4组包后的包大小最多为1 000字节。其工作过程与网络透传模式的区别在于基站、因特网与云平台之间传输的数据由TCP/UDP数据改变为HTTP数据包。
1.4 软件实现流程
软件部分主要根据硬件中通讯的原理图和模型图,通过C语言来实现对STM32微控制器的程序编译过程。主要从以下几个方面进行操作设置,包括数据采集端的程序编译、控制端的程序编译、数据传输端的程序编译和数据接收端的程序编译几个部分。软件设计流程如图4所示。
图4 软件设计流程Fig.4 Flow chart of software design
从图4可以看出,实验中温度传感器采集到温度数据后,会将其传输到云平台服务器,当云平台服务器成功接收数据时,将会根据收到的数据信息下载回传指令,给STM32微控制器返回发送的温度值,并在回复“SUCCESS”时做出“LED ON”的指令操作。这时红色发光二极管(light emitting diode,LED)灯就会亮,以这种方式,可以通过液晶显示器(liquid crystal disply,LCD)显示屏和LED的亮灭来判断是否完成双向通讯过程。
在实验中采集温度数据时,采用实时采集与传输的方案,数据会持续上传服务器,且服务器始终接收新的数据以实现实时更新的效果。
2 实验与调试
2.1 硬件搭建
在完成4G无线数据传输的实验中,将4G模块(济南有人物联网技术有限公司生产的USR-LTE-7S4模块)连接上天线、接入电源、插入4G网卡和通过九针串口线与STM32微控制器相连接。STM32控制芯片通过P11接口连接到DS18B20温度传感器,用于采集温度数据。然后将连接好的设备安装在机器人上,完成机器人的4G无线数据传输的硬件搭建。这样,可以在STM32微控制器程序的驱动下完成数据的采集与传输,实现机器人与云平台服务器之间的无线通信功能。4G模块与其他各个部件连接,硬件系统如图5所示。
图5 硬件系统Fig.5 Hardware system
2.2 实验结果
2.2.1 数据发送与回传
以传输温度数据为例,STM32微控制器在程序的驱动下,首先控制4G模块进入AT指令设置模式,待设置完成后,通过网络透传模式向云平台服务器发送温度数据,LCD数据输出显示当前采集温度为29。当云平台服务器从STM32微控制器收到数据信息时,它将根据具体结果给出反馈指示,表明服务器已经收到其发来的数据包。在此次实验中,服务器在接收到数据信息后会根据要求在显示屏上显示数据回传是否成功,如果成功回传就做出使LED红灯亮的指示,回传当前温度为29,LCD数据发送与回传显示如图6所示。
图6 LCD数据发送与回传显示Fig.6 LCD data output display
2.2.2 云平台数据接收
云平台服务器搭载了一个网页服务器,在接收到DS18B20温度传感器采集到的温度数据信息后,可以在相应的网页中显示出来,上传的温度数据为29,云平台服务器显示结果如图7所示。
图7 云平台服务器显示结果Fig.7 Cloud platform server display results
2.2.3 网络延时实验
机器人应用中有2种数据传输,一种是机器人向服务器上传自身采集的数据,另一种是服务器向机器人下达的控制命令。机器人自身数据采样与上传周期为1 s,在此情况下需要考虑4G网络的网络延时,期望的网络延时在1 s以内,这样不会影响下一次上传。服务器对机器人下发的控制指令一般是下达任务,而非实施控制,所以不需要考虑网络延时,只需要考虑命令是否能准确到达。
实验过程首先由机器人上报自身信息,而后接收服务器返回的控制指令,统计上传与下达的总用时与丢包率。
经100次收发实验统计,网络延时最小值为:60.0 ms,最大值为:179.0 ms,平均值为:114.7 ms,丢包率为:0%,满足实际使用需求。
3 结论
在机器人与云平台服务器之间,采用STM32嵌入式系统和4G无线传输技术相结合,设计了无线数据传输的硬件和软件系统,实现了数据由采集端到4G网络,再通过Internet网络运营商将数据信息最终传输到云平台服务器。最终实验实现了机器人与云平台服务器之间的双向无线通信功能,研究成果对无线数据传输技术在机器人通信的发展和应用中具有推动作用。