本文介绍以太网透明传输协议内容,让用户了解在串口转以太网协议上如何实现串口数据内容到以太网数据内容转化。
1.以太网透明传输的概念
通信协议是一种分层结构的,根据ISO的7层模型通信协议分为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。如果用户想通过卓岚ZLSN模块的以太网透明传输协议实现串口数据和以太网数据的转发,应用模型如图1所示。
图1. 以太网透明传输演示图
所谓以太网网络透明传输协议(简称为“以太网透传”)是指网络协议的应用层数据和串口协议的用户数据完全一致,不存在格式转化问题,形象地比喻为“透明传输”。比如网络数据应用层数据内容为字符“a”,那么串口协议的用户层数据也是“a”,用户电路板收到的数据也是字符“a”。
2.如何使用透明传输协议
那么用户数据是如何从计算机传给用户串口板的呢?这首先需要了解网络协议和串口协议的区别。
1.网络(TCP/IP)协议分为以太网层、IP层、TCP或UDP层、用户数据层。以太网层表示了网络通信介质,例如光纤、无线、有线以太网线。IP层中的关键点是包含了IP地址,IP地址是每个网络设备的地址。TCP或者UDP层的关键点是端口,端口用于区分一个IP地址下的多个应用程序。用户数据层携带用户需要传输的数据。
2.相对而言串口协议,没有IP层和TCP层这两层。
这里有两个问题:
1.串口协议如何弥补网络协议缺失的IP层和TCP层?实际上在ZLSN模块中已经保存了IP层、TCP层的关键点——IP地址和端口。每个ZLSN模块都具有一个可以设定的IP地址,同时也有一个TCP或者UDP的端口,这样计算机就可以通过这个“IP+端口”将网络数据发送给ZLSN模块。同样地ZLSN模块也保存了目的计算机的IP和端口,这样也可以将数据发送给计算机。联网模块内部保存的IP和端口解决了串口协议中没有IP和端口的问题。
2.如何使用透明传输协议?
2.1对于计算机程序设计人员来说调用Socket API函数send()和recv()即可发送网络层数据,例如执行send("a")就可以将字符“a”发送到用户串口电路板。用户调用recv(buf)即可将串口电路板发送的数据接收到缓冲区buf中。
2.2另外用户也可以使用卓岚网络调试工具——SocketDlgTest。通过该工具用户可以类似串口调试工具,进行发送和接受应用层数据。
2.3更为简单的方式是用户可以使用虚拟串口技术(ZLVircom程序)将网络端也模拟为一个串口,计算机还是用串口进行收发。
3.其它转化协议
除了“以太网透明传输协议”以外,ZLSN模块也支持更为复杂的协议,例如“Modbus TCP转ModbusRTU协议”,“Realcom协议”等,不同的转化协议在特定的应用中有各自的用途,但是“以太网透明传输协议”是最为简单易用的协议。