【EsDA应用】串口服务器——UDP Server

电子说

1.2w人已加入

描述

  如何让自动化领域的串口设备具备联网能力?本文将基于EsDA平台,带你开发一个串口服务器之UDP服务器的业务,快速实现串口联网功能。 

 

致远电子  简介串口服务器本质是将串口数据通过各种网络协议传输到其他设备。本文主要基于TCP/IP协议簇中的UDP协议实现一个UDP Server的串口服务器通信实验。

本实验选用EPC6450-AWI开发板,以及将节点进行拖拽连线的图形化设计工具AWFlow Designer,搭建一个串口转UDP Server的串口服务器并与多个UDP Clients进行双向透明传输实验。该实验用到了serial_in_ex,fscript,push,udp_server_ex,serial_out_ex节点。

 

致远电子  前期准备

在本文之前,已有多篇串口服务器系列的博客文章,在此罗列部分文章链接,若有兴趣可在 EsDA技术专栏 查看相关全部文章。
  • EsDA MPC-ZC1 应用——串口服务器(一)

  • EsDA MPC-ZC1 应用——串口服务器(二)

  • 【EsDA应用】串口转zws物联网云平台

  • 【EsDA应用】串口服务器——TCP Server

本文所有的软硬件准备工作都与【EsDA应用】串口服务器——TCP Server 的文章一致,详情请查看。  

致远电子  业务处理

本文不再赘述串口通信连接与UDP通信连接成功的过程(与TCP通信连接不同的是UDP并没有三次握手的过程只记录一些地址信息等),具体细节可查看以下链接进行学习。
  • 【EsDA应用】5分钟实现一个串口通信业务

  • 【EsDA应用】串口服务器——UDP Client

主要业务逻辑如下:
  • 建立UDP连接后,由UDP客户端上报数据给EPC6450-AWI开发板搭建的UDP服务器,随后从UDP服务器读取数据并发送到UTX1/RX1串口,最终在串口助手上进行打印显示。

  • 从UTX1/RX1串口读取串口助手发送的数据,并将数据发送到UDP服务器,由UDP服务器将数据下发给已建立UDP通信连接的客户端。

致远电子

1. 添加节点并连线

本实验实现串口转UDP Server的串口服务器与多个UDP Clients进行双向透明数据传输的功能。采用的节点有serial_in_ex,fscript,push,tcp_server_ex和serial_out_ex。

致远电子

2. 配置节点

双击serial_in_ex节点,并点击配置节点名旁边的铅笔图标去配置串口的属性。

致远电子根据EPC6450-AWI的硬件资料表,选择所使用的串口设备对应的端口号:UTX1/RX1对应的是uart5,根据需要依次配置波特率,字节大小,奇偶校验,停止位等属性参数。致远电子

双击serial_in_ex的消费者节点fscript,这个节点主要是读取serial_in_ex的串口数据并传递给后续节点。

var str = istream_read_string(msg.istream,100)
msg.payload = str
 

双击fscript的消费者节点push,因为是将serial_in_ex读取到的数据传递给UDP Server所以push的目标节点为udp_server_ex。

致远电子双击udp_server_ex节点,因UDP通信与流图下载都是用NET0的IP地址,所以端口号不能有冲突,因为数据是自定义没有帧头,所以属性值输出选择1不携带报文头部。致远电子双击udp_server_ex的消费者节点serial_out_ex,因为udp_server_ex与serial_out_ex节点使用的是输入流istream和输出流ostream,所以不需要数据转换节点,直连即可。绑定的串口与serial_in_ex的端口号一致即可。致远电子3. 下载验证

AWFlow Designer工具拥有自动识别可用目标板的功能,硬件连接成功且程序开始正常运行后,即可在AWFlow Designer界面上看到如下图所示已经成功自动识别出的下载途径,随后点击旁边的下载按钮即可下载流图。

致远电子本文在PC电脑上用TCP&UDP测试工具搭建了两个UDP Clients,打开工具软件后点击创建连接选择UDP类型,并配置远程UDP Server的目标IP和端口号,本机端口可选择随机配置也可指定需注意的是两个UDP Clients都是在同一台电脑上搭建的所以本机端口号不能一致(符合端口号范围之内随意取)。创建UDP连接后就可以进行发送和接受数据了,可以在数据日志的发送区域中查看UDP客户端发出的数据以及从接收区域查看UDP服务端接收到的数据如下。

致远电子

致远电子

致远电子在PC上的串口调试助手工具上可查看到从服务端读取到的两个UDP客户端上报数据以及串口助手发送的数据如下。致远电子由上可知,本实验实现了串口服务器之UDP服务器与两个不同的UDP客户端进行双向数据传输的功能。  致远电子  技术交流群长按识别如下二维码可加入“EsDA嵌入式系统设计自动化交流群”,与志同道合的朋友交流,并有专业技术人员为您答疑解惑,如有问题可以咨询小致微信zlgmcu-888。致远电子  

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分