范忠奇 朱宏嘉 王婷 徐小軍 譚婷婷 江蘇遠(yuǎn)望神州軟件有限公司
船舶電子設(shè)備串口數(shù)據(jù)的軟件共享方法
范忠奇 朱宏嘉 王婷 徐小軍 譚婷婷 江蘇遠(yuǎn)望神州軟件有限公司
提出一個(gè)技術(shù)方案,以解決船舶電子設(shè)備串口數(shù)據(jù)的共享問題。利用自行研發(fā)的軟件,配以成對(duì)的虛擬串口,使得多個(gè)虛擬串口都能夠接收到一個(gè)物理串口傳來的數(shù)據(jù)。既不用更改已有的軟件系統(tǒng),也方便了新的軟件系統(tǒng)的開發(fā)。提高了諸多軟件間的協(xié)同配合,提升工作效率。
串口 數(shù)據(jù)共享 串口轉(zhuǎn)發(fā) 虛擬串口
串口通信在船舶中的計(jì)算機(jī)設(shè)備或是其它外部的電子設(shè)備中使用十分廣泛,也是非常常見的一種通信方式。它的優(yōu)勢主要在于使用方式簡單,也很通用,數(shù)據(jù)傳輸十分可靠。目前在市場上,有各種各樣的計(jì)算機(jī)編程語言,并且這些軟件做的都已經(jīng)十分成熟,也基本都能夠支持串口通信,并配有相應(yīng)的應(yīng)用程序以及調(diào)試軟件。
在現(xiàn)代船舶的中,配備了非常多的采用串口通信的設(shè)備,主要包括:導(dǎo)航、自動(dòng)識(shí)別系統(tǒng),探測儀、各種監(jiān)測器,這些設(shè)備多用于導(dǎo)航和安全領(lǐng)域。它們的系統(tǒng)對(duì)外接口基本都是一對(duì)一的,即同一個(gè)應(yīng)用程序只能訪問和使用一個(gè)串口,這在實(shí)際操作中會(huì)有很多的不便。因?yàn)楹芏鄷r(shí)候,船舶上的計(jì)算機(jī)都會(huì)同時(shí)運(yùn)行多個(gè)系統(tǒng)軟件,這些軟件需要通過數(shù)據(jù)共享來實(shí)現(xiàn)它們的作用,一般來說,會(huì)通過硬件來解決這個(gè)問題,比如采用復(fù)制電氣信號(hào)的方法,但也不是特別的方便。
對(duì)此,現(xiàn)提出一種全軟件的共享串口的方案,通過自主開發(fā)的軟件以及虛擬串口來實(shí)現(xiàn)數(shù)據(jù)共享,可以使一臺(tái)計(jì)算機(jī)的多系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)的共享,更可以使多臺(tái)計(jì)算機(jī)之間實(shí)現(xiàn)數(shù)據(jù)的交互。
這種全新的數(shù)據(jù)共享方法,使用虛擬串口的技術(shù),對(duì)軟件系統(tǒng)進(jìn)行開發(fā),從而將一個(gè)串口上的數(shù)據(jù)發(fā)布到不同的虛擬串口上面。虛擬串口從效果上來講,等同于普通的物理串口,我們所使用的軟件,可以通過常規(guī)的方法讀取虛擬串口上的數(shù)據(jù),從而實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)內(nèi)部數(shù)據(jù)的共享。
在一臺(tái)計(jì)算機(jī)上,串口轉(zhuǎn)發(fā)軟件單獨(dú)訪問并且監(jiān)聽物理串口,將從物理串口上讀到的數(shù)據(jù)實(shí)時(shí)轉(zhuǎn)發(fā)給不同的虛擬串口,然后使用應(yīng)用軟件對(duì)與之相配的串口進(jìn)行監(jiān)聽,從而實(shí)現(xiàn)數(shù)據(jù)的同步。
在兩臺(tái)計(jì)算機(jī)之間,第一臺(tái)計(jì)算機(jī)上的串口轉(zhuǎn)發(fā)軟件對(duì)其物理串口進(jìn)行監(jiān)聽,將讀取的數(shù)據(jù)通過以太網(wǎng)的方式轉(zhuǎn)發(fā)到第二臺(tái)計(jì)算機(jī)的串口轉(zhuǎn)發(fā)軟件上,從而轉(zhuǎn)發(fā)到與第二臺(tái)計(jì)算機(jī)配對(duì)的串口上,這樣就實(shí)現(xiàn)了將第一臺(tái)計(jì)算機(jī)上的數(shù)據(jù),在第二臺(tái)計(jì)算機(jī)上面進(jìn)行多應(yīng)用的共享。
虛擬串口非常的便捷,可以支持各種軟件工具創(chuàng)建,并且能夠很好的進(jìn)行連接。常見的軟件有這樣幾種:VSPDSerialNull、VSPM等。當(dāng)然,串口轉(zhuǎn)發(fā)軟件需要進(jìn)行一定程度的自主開發(fā),以便適用于所需的領(lǐng)域。
下面簡單介紹一下單機(jī)和雙機(jī)模式的流程:
單機(jī):開始——配置串口工作參數(shù)——串口轉(zhuǎn)發(fā)軟件連接物理串口——串口轉(zhuǎn)發(fā)軟件連接單邊虛擬串口——串口轉(zhuǎn)發(fā)軟件監(jiān)聽物理串口——串口轉(zhuǎn)發(fā)軟件轉(zhuǎn)發(fā)數(shù)據(jù)到單邊虛擬串口(監(jiān)聽和傳輸?shù)膭?dòng)作始終在循環(huán)進(jìn)行);
雙機(jī):在單機(jī)的模式上增加了兩臺(tái)計(jì)算機(jī)間的聯(lián)系,將第一臺(tái)計(jì)算機(jī)所監(jiān)聽的數(shù)據(jù),通過網(wǎng)絡(luò)傳遞給第二臺(tái)計(jì)算機(jī),實(shí)現(xiàn)兩臺(tái)計(jì)算機(jī)的數(shù)據(jù)共享。
該系統(tǒng)的實(shí)現(xiàn)采用CJHJ語言來進(jìn)行開發(fā)。需要對(duì)本機(jī)的轉(zhuǎn)發(fā)以及雙機(jī)的交互進(jìn)行具體參數(shù)的配置,信息的儲(chǔ)存成windows系統(tǒng)中的ini格式的文件。
寫入內(nèi)容如下:
單機(jī)轉(zhuǎn)發(fā):
其中:監(jiān)聽物理串口是輸入端口,轉(zhuǎn)發(fā)目標(biāo)的虛擬端口為輸出端口,供另一臺(tái)計(jì)算機(jī)讀取數(shù)據(jù)的端口地址為網(wǎng)絡(luò)端口,具有物理串口的計(jì)算機(jī)網(wǎng)址為輸入地址。輸出參數(shù)的四個(gè)1是指:波特率、停止位、奇偶校驗(yàn)、數(shù)據(jù)位。參數(shù)的數(shù)據(jù)是可選擇的,但也是確定的,為了避免輸入別的數(shù)值,設(shè)定串口參數(shù)的時(shí)候選擇了數(shù)字序號(hào)來做。
為了使串口轉(zhuǎn)發(fā)軟件方便快捷的實(shí)現(xiàn)單一計(jì)算機(jī)和多臺(tái)計(jì)算機(jī)的串口應(yīng)用數(shù)據(jù)共享,這里所說的串口轉(zhuǎn)發(fā)軟件是一種通用的串口數(shù)據(jù),并可以實(shí)現(xiàn)實(shí)時(shí)的數(shù)據(jù)交互和共享。
對(duì)于一直存在的船舶串口接入的電子設(shè)備數(shù)據(jù)共享的問題,從技術(shù)的角度出發(fā),提出一種解決方案。自行開發(fā)了一種串口轉(zhuǎn)發(fā)軟件,配以成對(duì)的虛擬串口,將一個(gè)物理串口上的數(shù)據(jù)在多個(gè)虛擬串口上面共享,然后對(duì)共享的數(shù)據(jù)進(jìn)行實(shí)時(shí)的讀取。這種技術(shù)不限于一臺(tái)計(jì)算機(jī),而且可以對(duì)多臺(tái)計(jì)算機(jī)的數(shù)據(jù)實(shí)現(xiàn)共享。這種技術(shù),可以有效的避免對(duì)已有的軟件系統(tǒng)進(jìn)行二次開發(fā),同時(shí)使船舶計(jì)算機(jī)不同軟件間的協(xié)同有很大的促進(jìn)作用,讓它們能夠更好的發(fā)揮自己的作用,從而提升船舶數(shù)據(jù)的共享和船舶本身的運(yùn)營水平。
[1]代海鵬.船舶導(dǎo)航雷達(dá)顯控軟件設(shè)計(jì)與實(shí)現(xiàn)[D].重慶郵電大學(xué),2016.3(5):123-123
[2]王建濤,賈立校.船舶自動(dòng)識(shí)別系統(tǒng)中的模型及數(shù)據(jù)接口研究[J].艦船科學(xué)技術(shù),2016.12(24):1-3