串口,,一般就是指計算機的RS-232口或者RS-485口,是工業(yè)通信最常用的接口,。本文介紹的就是如何利用以太網(wǎng)先組成局域網(wǎng),,再讓2臺或多臺計算機都安裝上即時通信軟件進行聯(lián)系,然后將即時通信軟件接收到的信號發(fā)送到計算機的串口,,并且可以將串口收到的信號通過即時通信軟件發(fā)送到正在進行即時通信聯(lián)系的遠端計算機,。這樣就用純軟件方法實現(xiàn)了以太網(wǎng)串口通信,。
近年來,隨著網(wǎng)絡技術高速發(fā)展,,即時通信軟件得到了大量的使用,,包括基于以太網(wǎng)(局域網(wǎng))的企業(yè)即時通訊軟件和基于互聯(lián)網(wǎng)的個人即時通訊軟件。即時通信軟件使得任何兩個甚至多個用戶借助于局域網(wǎng)或者互聯(lián)網(wǎng)可以進行通信,,但是目前僅僅局限于數(shù)據(jù),、文件等交換,還沒有實現(xiàn)串口通信的功能,。本文的方法在本質上就是把串口要發(fā)送的數(shù)據(jù)按照TCP/IP協(xié)議進行重新排列后通過即時通訊軟件發(fā)送到以太網(wǎng)連接的局域網(wǎng),,同時也把以太網(wǎng)通過即時通訊軟件從局域網(wǎng)收到的數(shù)據(jù)按照TCP/IP格式提取出來后再按照串口通信的格式組合后接收。常用的串口通信格式為(9600,,N,8,1),,意思就是通信的速率(波特率)為9600bps,即每秒9600位,,N表示無奇偶校驗位,,8表示用8個字節(jié)表示一個數(shù),1就是最后再加上1位附加位,。以太網(wǎng)TCP/IP協(xié)議的數(shù)據(jù)包括幀同步,、地址、類型,、數(shù)據(jù)、校驗,。把串口要發(fā)送的一個數(shù)據(jù)去掉校驗位和附加位提取出8個字節(jié)的純數(shù)據(jù),,然后將它填充到以太網(wǎng)幀的數(shù)據(jù)部分,并且再補充任意38個字節(jié)到46個字節(jié)就可以構成一幀以太網(wǎng)的數(shù)據(jù)包發(fā)送出去,。同理,,把以太網(wǎng)收到的一幀數(shù)據(jù)包去掉幀同步、地址,、類型和校驗后得到46個字節(jié)的純數(shù)據(jù),,只取前面的8個字節(jié),然后加上校驗位和附加位按照波特率由串口接收,。
2 局域網(wǎng)串口即時通信軟件
串口即時通信軟件是一種在局域網(wǎng)甚至互聯(lián)網(wǎng)內實現(xiàn)串口即時通信的軟件,。好靈通V11是局域網(wǎng)版本。只要2臺或者多臺計算機位于一個局域網(wǎng)內,,那么借助于好靈通軟件可以實現(xiàn)這些計算機的串口之間的即時通信,,也可以實現(xiàn)透明傳輸和多機通信。好靈通V11同時是一款功能齊全的局域網(wǎng)聊天工具,,最新的版本不再依賴特定的串口轉換器,,因而可以零硬件成本用純軟件實現(xiàn)以太網(wǎng)的串口通信,。(專利:基于即時通信軟件的串口控制器ZL201120133429)
(1) 好靈通是一種能夠實現(xiàn)串口硬件控制的即時通信軟件,不僅僅能夠即時交換信息,,而且還能夠對遠端的串口設備進行控制,。是世界上唯一具有串口通信功能的即時通信產(chǎn)品。 (2)局域網(wǎng)版的好靈通v11可以在同一局域網(wǎng)段內部實現(xiàn)即時通信和串口控制,,包括有線的以太網(wǎng)局域網(wǎng)和無線WIFI局域網(wǎng),。是一款很實用的局域網(wǎng)通信及串口控制工具,可以發(fā)送文字,、文件,、對話等、還可以設置串口COM號,、波特率等,。(3)可以實現(xiàn)有線或無線局域網(wǎng)內串口的透明傳輸。甚至不同波特率和格式也可以,。(4)完全可以作為局域網(wǎng)聊天工具,!可以聊天、傳送文件,、存儲記錄,、群聊(廣播)。(5)無需任何設置,,比以太網(wǎng)/串口轉換器使用要方便許多,。
在windows 7/xp下,按“開始”\“設置”\“控制面板”,,點擊“系統(tǒng)”,,查看“系統(tǒng)屬性”\“硬件”\“設備管理器”,展開“端口”,,可以看到COM串口號,,也可以繼續(xù)看這個串口的“屬性”\“設置”\“高級”,進一步修改COM口號碼,。運行好靈通setup安裝完畢后,,運行程序:好靈通v11.exe,先進入如下登錄界面:
鍵入你自己取的昵稱,,選擇頭像,,按“登錄”進入工作界面。
“好靈通串行口”部分的COM口號就是本計算機的串口號,,包括USB擴展的串口,。單擊頭像為聊天、雙擊為傳輸文件。“廣播數(shù)據(jù)”時聊天數(shù)據(jù)會發(fā)送到自己(抬頭包括昵稱:),但是廣播數(shù)據(jù)時串口數(shù)據(jù)(無抬頭)不發(fā)送給自己,,以符合RS-232/RS-485多機通信規(guī)則,。顯然好靈通串口即時通信必須至少有2個用戶,當然也支持多個用戶,。
有幾個按鍵的使用功能,,只要將鼠標放在上面幾秒鐘,就會提示功能,。比如:1,、改變好靈通串行口的COM號時,如果串口處于打開狀態(tài)則要先關閉串口,。2,、好靈通串行口的進度條表示RThreshold值,就是觸發(fā)串口中斷響應的數(shù)據(jù)的長度,,默認為5,。3、對方IP的文字框,,如果為空白則表示廣播狀態(tài),。注意在廣播狀態(tài)下,就是多機通信狀態(tài)下,,本機的發(fā)送數(shù)據(jù)會顯示在本機的聊天接收框內,,但是不會發(fā)送到本機的好靈通串口,以符合RS-232/485多機通信協(xié)議,。4,、單擊頭像為發(fā)送數(shù)據(jù),雙擊頭像為傳輸文件,。5,、“無聲”—“有聲”按鈕,默認無聲,,建議串口通信時選無聲以提高通信實時性。6,、“刷新用戶列表”有時在無線WIFI局域網(wǎng)可能要多刷新幾次,。7、“隱藏自己圖標”功能僅僅是不顯示自己的頭像,,正在通信的對方仍然會顯示這個頭像,,通信功能也仍然存在,主要是便于用戶區(qū)別自己和別人,。
3,、純軟件以太網(wǎng)串口通信的典型應用
3.1 本地計算機控制遠程計算機的串口
本地計算機PC1和遠程計算機PC2位于通過以太網(wǎng)組成的局域網(wǎng)內。此時本地計算機可以不用打開好靈通串口,遠程計算機一定要在通信軟件的界面上“打開串口”連接,。本地計算機將發(fā)送框內的數(shù)據(jù)即時發(fā)送到遠程的計算機接的串口,。同時遠程計算機串口收到的數(shù)據(jù)將即時發(fā)送到本地計算機并且顯示在接收框內。
3.2 外接串口之間的透明傳輸
本地計算機PC1和遠程計算機PC2位于通過以太網(wǎng)組成的局域網(wǎng)內,。只要PC1與PC2之間是通過好靈通軟件連接的,,那么它們所接的串口之間是完全透明的。顯然兩臺計算機的即時通信軟件即使各自設置成為不同速率等也是可以通信的,,也就是說還可以實現(xiàn)不同速率之間的串口透明傳輸,。這是一般的串口遠程通信無法實現(xiàn)的功能。
3.3 本地計算機與遠程計算機之間的串口透明傳輸
本地計算機PC1和遠程計算機PC2位于通過以太網(wǎng)組成的局域網(wǎng)內,。此時本地計算機PC1必須有2個串口,,如下圖中左邊的USB串口和計算機本身的串口COM-X,并且打開好靈通的串口,。此時遠程計算機PC2必須接串口,,并且打開好靈通串口。
注意要將本地計算機PC1的兩個串口COM-X與USB-串口連接起來,。如果是使用RS-232口,,注意RXD-TXD收發(fā)線交叉,GND-GND地接地,。如果是使用RS-485,,則A接A,B接B,、GND接GND,。注意本產(chǎn)品只支持只有RXD、TXD,、GND的3線RS-232通信,,不支持有握手信號的RS-232通信。本產(chǎn)品支持多級通信,,選擇“廣播數(shù)據(jù)”即可,。如果界面上的“對方IP:”為空白,就表明處于廣播狀態(tài),,就是多機通信狀態(tài),。在廣播狀態(tài)下,計算機發(fā)送的數(shù)據(jù)不會發(fā)給自己,,雖然在聊天框內會顯示,。以符合RS-232/RS-485多機通信規(guī)則。
這樣本地計算機PC1從自帶的串口COM-X發(fā)送的數(shù)據(jù)立即被本地的好靈通USB串口接收,,并且通過即時通信軟件即時發(fā)送到遠程計算機PC2,,遠程計算機PC2又立刻將此數(shù)據(jù)發(fā)送到遠程計算機接的串口。反過來,遠程計算機的串口接收到的數(shù)據(jù)會通過即時通信軟件發(fā)送到本地計算機,,而且立刻從本地計算機接的好靈通串口發(fā)送給本地計算機的串口COM-X,。這樣就實現(xiàn)了PC1的COM-X與PC2的串口之間的串口透明傳輸。顯然兩臺計算機的即時通信軟件即使各自設置成為不同速率等也是可以通信的,,這是一般的串口遠程通信無法實現(xiàn)的功能,。