武汉波仕电子公司
1 纯软件实现以太网串口通信的原理
串口,一般就是指计算机的RS-232口或者RS-485口,是工业通信最常用的接口。本文介绍的就是如何利用以太网先组成局域网,再让2台或多台计算机都安装上即时通信软件进行联系,然后将即时通信软件接收到的信号发送到计算机的串口,并且可以将串口收到的信号通过即时通信软件发送到正在进行即时通信联系的远端计算机。这样就用纯软件方法实现了以太网串口通信。
近年来,随着网络技术高速发展,即时通信软件得到了大量的使用,包括基于以太网(局域网)的企业即时通讯软件和基于互联网的个人即时通讯软件。即时通信软件使得任何两个甚至多个用户借助于局域网或者互联网可以进行通信,但是目前仅仅局限于数据、文件等交换,还没有实现串口通信的功能。本文的方法在本质上就是把串口要发送的数据按照TCP/IP协议进行重新排列后通过即时通讯软件发送到以太网连接的局域网,同时也把以太网通过即时通讯软件从局域网收到的数据按照TCP/IP格式提取出来后再按照串口通信的格式组合后接收。常用的串口通信格式为(9600,N,8,1),意思就是通信的速率(波特率)为9600bps,即每秒9600位,N表示无奇偶校验位,8表示用8个字节表示一个数,1就是最后再加上1位附加位。以太网TCP/IP协议的数据包括帧同步、地址、类型、数据、校验。把串口要发送的一个数据去掉校验位和附加位提取出8个字节的纯数据,然后将它填充到以太网帧的数据部分,并且再补充任意38个字节到46个字节就可以构成一帧以太网的数据包发送出去。同理,把以太网收到的一帧数据包去掉帧同步、地址、类型和校验后得到46个字节的纯数据,只取前面的8个字节,然后加上校验位和附加位按照波特率由串口接收。
2 局域网串口即时通信软件
串口即时通信软件是一种在局域网甚至互联网内实现串口即时通信的软件。好灵通V11是局域网版本。只要2台或者多台计算机位于一个局域网内,那么借助于好灵通软件可以实现这些计算机的串口之间的即时通信,也可以实现透明传输和多机通信。好灵通V11同时是一款功能齐全的局域网聊天工具,最新的版本不再依赖特定的串口转换器,因而可以零硬件成本用纯软件实现以太网的串口通信。(专利:基于即时通信软件的串口控制器ZL201120133429)
(1) 好灵通是一种能够实现串口硬件控制的即时通信软件,不仅仅能够即时交换信息,而且还能够对远端的串口设备进行控制。是世界上唯一具有串口通信功能的即时通信产品。 (2)局域网版的好灵通v11可以在同一局域网段内部实现即时通信和串口控制,包括有线的以太网局域网和无线WIFI局域网。是一款很实用的局域网通信及串口控制工具,可以发送文字、文件、对话等、还可以设置串口COM号、波特率等。(3)可以实现有线或无线局域网内串口的透明传输。甚至不同波特率和格式也可以。(4)完全可以作为局域网聊天工具!可以聊天、传送文件、存储记录、群聊(广播)。(5)无需任何设置,比以太网/串口转换器使用要方便许多。
在windows 7/xp下,按“开始”\“设置”\“控制面板”,点击“系统”,查看“系统属性”\“硬件”\“设备管理器”,展开“端口”,可以看到COM串口号,也可以继续看这个串口的“属性”\“设置”\“高级”,进一步修改COM口号码。运行好灵通setup安装完毕后,运行程序:好灵通v11.exe,先进入如下登录界面:
键入你自己取的昵称,选择头像,按“登录”进入工作界面。
“好灵通串行口”部分的COM口号就是本计算机的串口号,包括USB扩展的串口。单击头像为聊天、双击为传输文件。“广播数据”时聊天数据会发送到自己(抬头包括昵称:),但是广播数据时串口数据(无抬头)不发送给自己,以符合RS-232/RS-485多机通信规则。显然好灵通串口即时通信必须至少有2个用户,当然也支持多个用户。
有几个按键的使用功能,只要将鼠标放在上面几秒钟,就会提示功能。比如:1、改变好灵通串行口的COM号时,如果串口处于打开状态则要先关闭串口。2、好灵通串行口的进度条表示RThreshold值,就是触发串口中断响应的数据的长度,默认为5。3、对方IP的文字框,如果为空白则表示广播状态。注意在广播状态下,就是多机通信状态下,本机的发送数据会显示在本机的聊天接收框内,但是不会发送到本机的好灵通串口,以符合RS-232/485多机通信协议。4、单击头像为发送数据,双击头像为传输文件。5、“无声”—“有声”按钮,默认无声,建议串口通信时选无声以提高通信实时性。6、“刷新用户列表”有时在无线WIFI局域网可能要多刷新几次。7、“隐藏自己图标”功能仅仅是不显示自己的头像,正在通信的对方仍然会显示这个头像,通信功能也仍然存在,主要是便于用户区别自己和别人。
3、纯软件以太网串口通信的典型应用
3.1 本地计算机控制远程计算机的串口
本地计算机PC1和远程计算机PC2位于通过以太网组成的局域网内。此时本地计算机可以不用打开好灵通串口,远程计算机一定要在通信软件的界面上“打开串口”连接。本地计算机将发送框内的数据即时发送到远程的计算机接的串口。同时远程计算机串口收到的数据将即时发送到本地计算机并且显示在接收框内。
3.2 外接串口之间的透明传输
本地计算机PC1和远程计算机PC2位于通过以太网组成的局域网内。只要PC1与PC2之间是通过好灵通软件连接的,那么它们所接的串口之间是完全透明的。显然两台计算机的即时通信软件即使各自设置成为不同速率等也是可以通信的,也就是说还可以实现不同速率之间的串口透明传输。这是一般的串口远程通信无法实现的功能。
3.3 本地计算机与远程计算机之间的串口透明传输
本地计算机PC1和远程计算机PC2位于通过以太网组成的局域网内。此时本地计算机PC1必须有2个串口,如下图中左边的USB串口和计算机本身的串口COM-X,并且打开好灵通的串口。此时远程计算机PC2必须接串口,并且打开好灵通串口。
注意要将本地计算机PC1的两个串口COM-X与USB-串口连接起来。如果是使用RS-232口,注意RXD-TXD收发线交叉,GND-GND地接地。如果是使用RS-485,则A接A,B接B、GND接GND。注意本产品只支持只有RXD、TXD、GND的3线RS-232通信,不支持有握手信号的RS-232通信。本产品支持多级通信,选择“广播数据”即可。如果界面上的“对方IP:”为空白,就表明处于广播状态,就是多机通信状态。在广播状态下,计算机发送的数据不会发给自己,虽然在聊天框内会显示。以符合RS-232/RS-485多机通信规则。
这样本地计算机PC1从自带的串口COM-X发送的数据立即被本地的好灵通USB串口接收,并且通过即时通信软件即时发送到远程计算机PC2,远程计算机PC2又立刻将此数据发送到远程计算机接的串口。反过来,远程计算机的串口接收到的数据会通过即时通信软件发送到本地计算机,而且立刻从本地计算机接的好灵通串口发送给本地计算机的串口COM-X。这样就实现了PC1的COM-X与PC2的串口之间的串口透明传输。显然两台计算机的即时通信软件即使各自设置成为不同速率等也是可以通信的,这是一般的串口远程通信无法实现的功能。