如何让自动化领域的串口设备具备联网能力?本文将基于EsDA平台,带你开发一个串口转UDP服务器业务,快速实现串口联网功能。 简介串口服务器在物联网中的应用十分广泛,数据采集上报、远程控制等网络化项目都需要用到串口服务器,本文基于EsDA开发平台,为您介绍如何快速搭建一个串口转UDP服务器。
基本工作原理:通过搭建UDP客户端,实现串口与UDP服务器的双向透传通信。
本实现选用MPC-ZC1开发板,该板卡内嵌高集成度的4G Cat.1 ZC1智能网联模块,便于建立UDP客户端;拥有多路串口外设(232,485,TTL等),串口资源丰富。该实验用到了serial_in_ex,fscript,push,tcpudp_client和serial_out_ex节点。
前期准备
若是刚开始接触EsDA MPC-ZC1 ,可先阅读EsDA MPC-ZC1系列文章,从零开始搭建环境和掌握基本开发流程,已有基础的可以跳过:
EsDAMPC-ZC1入门(一)——软件安装
【EsDA应用】如何使用5分钟搭建一个串口通信业务
EsDAMPC-ZC1 应用——串口服务器(一)
EsDAMPC-ZC1应用——串口服务器(二)
【EsDA应用】串口转zws物联网云平台
硬件相关准备工作:
1. 准备一个USB转TTL串口工具(文中使用的是ch340芯片作为主控一款工具,选用其它等效型号亦可),如下图所示:
2. 准备好MPC-ZC1开发板,并按照下图所示连接好硬件。
将MPC-ZC1开发板引出的TX2与RX2分别与USB转TTL串口工具的RX与TX连接,并将USB转TTL串口工具插到PC机USB口上。 业务处理
支持串口和UDP进行双向数据传输:本实验实现串口通过UDP客户端向UDP服务器透传数据,UDP服务器接收到数据后回发给UDP客户端再转发给串口助手的业务,实现串口数据的云端通信功能。业务逻辑图如下所示。
1. 添加节点并连线
本实验实现串口通过UDP客户端向UDP服务器透传数据,UDP服务器接收到数据后回发通过UDP客户端透传到串口设备。采用的节点有serial_in_ex,fscript,push,tcpudp_client和serial_out_ex。
2.配置节点
双击serial_in_ex节点,并点击配置节点名旁边的铅笔图标去配置串口的属性。
根据MPC-ZC1的硬件资料表,选择所使用的串口设备对应的端口号,根据需要依次配置波特率,字节大小,奇偶校验,停止位等属性参数。
双击serial_in_ex的消费者节点fscript,将从串口接收到的数据打印并传递给tcpudp_client节点。
因为tcpudp_client节点是pump类型的节点无输入,在这里通过push节点,将udp客户端定时发送的数据作为tcpudp_client节点的输入参数payload进行传递。双击push节点,在目标节点这一栏属性参数中输入tcpudp_client。
双击tcpudp_client节点,因为使用的是UDP传输协议,且这里的主机号和端口号是UDP测试服务器的网址和端口号。配置相应的属性参数如下:
双击tcpudp_client的消费者节点fscript,读取从服务器发送过来的数据通过组包,再传递给后续的串口节点。
varstr=istream_read_string(msg.istream,100)
output.payload=join(":","datareceivedfromtheserveris",str)output.payloadLength=len(output.payload)
双击serial_out_ex节点,并点击配置节点名旁边的铅笔图标去配置串口的属性。
与serial_in_ex节点一样,根据MPC-ZC1的硬件资料表,选择所使用的串口设备对应的端口号,根据需要依次配置波特率,字节大小,奇偶校验,停止位等属性参数。这里因为是自发自收,所以串口设备的端口号与serial_in_ex一致。
3. 下载验证
保证硬件连接正确后,下载流图可知:将串口助手的数据通过搭建的UDP客户端发送给UDP测试服务器的数据,最终原样回发给UDP客户端,这边通过查看流图可知有一个组包的操作再发送给串口助手,由下图测试结果图可知在此搭建的串口服务器已发挥了他的作用,让串口数据可以通过网络传输。
-
服务器
+关注
关注
12文章
8929浏览量
85047 -
串口
+关注
关注
14文章
1540浏览量
76014 -
ESDA
+关注
关注
0文章
28浏览量
7496
发布评论请先 登录
相关推荐
评论