武漢波仕電子公司
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的串口之間的串口透明傳輸。顯然兩臺計算機的即時通信軟件即使各自設置成為不同速率等也是可以通信的,這是一般的串口遠程通信無法實現的功能。