構(gòu)建CAN-bus網(wǎng)絡(luò)中的虛擬串口
在工業(yè)串行通訊領(lǐng)域中,RS-232與RS-485都是會被經(jīng)常用到的數(shù)據(jù)傳輸標(biāo)準(zhǔn)之一。例如,普通PC一般會提供1~4個(gè)標(biāo)準(zhǔn)RS-232端口,分別被標(biāo)注為COM1~COM4端口。用戶可以通過這些現(xiàn)成的RS-232端口連接外部設(shè)備,比如鍵盤、IC讀卡器、條碼閱讀器、數(shù)字化儀、打印機(jī)、數(shù)據(jù)記錄儀,或者由用戶自己定制的串行通訊儀器,等等。操作或編程這些標(biāo)準(zhǔn)的COM端口也是非常方便的,因?yàn)槭袌錾嫌斜姸嗟拇谲浖{(diào)試工具可供通訊測試,也有功能齊全的DLL程序開發(fā)庫可供編程時(shí)調(diào)用。
但是,傳統(tǒng)RS-232串行通訊存在著數(shù)據(jù)可靠性、通訊距離、端口數(shù)量等多個(gè)方面的限制。例如,在工業(yè)控制等現(xiàn)場環(huán)境中,常會有電氣噪聲干擾傳輸線路,使用RS-232通訊時(shí)經(jīng)常因外界的電氣干擾而導(dǎo)致信號傳輸錯(cuò)誤;其次,在不增加緩沖器的情況下,RS-232通訊的最大傳輸距離只可以達(dá)到15米;還有,同1個(gè)RS-232端口只能夠連接1個(gè)RS-232通訊設(shè)備。上述因素大大限制了RS-232通訊的應(yīng)用領(lǐng)域。
本文介紹了一種簡單、可靠的方法,通過利用ZLGCAN接口卡、CAN232MB轉(zhuǎn)換器等設(shè)備,可以在1條普通雙絞線上連接多達(dá)2048個(gè)RS-232設(shè)備,通訊距離可以長達(dá)10公里甚至更遠(yuǎn)的距離。
下面,先介紹實(shí)現(xiàn)遠(yuǎn)程RS-232通訊的設(shè)備驅(qū)動軟件:虛擬串口服務(wù)器,即VCOM服務(wù)器。虛擬串口服務(wù)器是一款專用的配置工具;運(yùn)行此服務(wù)器軟件,即可以在同一臺PC上安裝一個(gè)或多個(gè)虛擬串口,虛擬串口的數(shù)目可以多達(dá)2048個(gè)。這些虛擬串口可以同真實(shí)串口執(zhí)行完全一致的操作;實(shí)際上,通過普通雙絞線構(gòu)成的CAN-bus網(wǎng)絡(luò),在這些虛擬串口上通訊的數(shù)據(jù)被快速映射到CAN-bus網(wǎng)絡(luò)中遠(yuǎn)端CAN232MB轉(zhuǎn)換器的RS-232通訊端口。這樣,在同一CAN-bus網(wǎng)絡(luò)中連接n個(gè)CAN232MB轉(zhuǎn)換器,即可以映射成本地的n個(gè)遠(yuǎn)程虛擬串口。通過軟件的無縫銜接,遠(yuǎn)程虛擬串口和本地串口在操作上并不存在任何差異。例如,將一些設(shè)備的串口程序升級到通過遠(yuǎn)程虛擬串口來實(shí)現(xiàn)時(shí),升級軟件可以不作任何修改,只需在打開串口時(shí)設(shè)定所操作的遠(yuǎn)程虛擬串口號,就可以實(shí)現(xiàn)正常的串行數(shù)據(jù)通訊。
虛擬串口的建立
下面以一個(gè)提供8個(gè)串口的虛擬串口網(wǎng)絡(luò)實(shí)例為原型,說明如何在同一臺PC建立多個(gè)虛擬串口,并且提供了虛擬串口測試網(wǎng)絡(luò)的實(shí)現(xiàn)方法。如需要建立更多數(shù)目的虛擬串口,可以參考建立上述網(wǎng)絡(luò)的方法,步驟基本一致;只需要在CAN-bus網(wǎng)絡(luò)中增加CAN232MB轉(zhuǎn)換器的數(shù)目,并通過軟件適當(dāng)配置參數(shù)即可以工作。
虛擬串口服務(wù)器可以在安裝PCI-9810/9820/9840接口卡的PC上添加多達(dá)2048個(gè)遠(yuǎn)程虛擬串口。
同一臺PC上可安裝多塊CAN接口卡。無論安裝有多少塊CAN卡,虛擬串口服務(wù)器都會把它們統(tǒng)一管理起來。不同的CAN接口卡以及同一塊CAN接口卡上的不同CAN通道將共同分享0~2048的CANID號。每一個(gè)ID號對應(yīng)一個(gè)串口號,這樣CAN-bus網(wǎng)絡(luò)中的任一個(gè)CAN232MB轉(zhuǎn)換器就對應(yīng)著PC上的一個(gè)虛擬串口。
例如,當(dāng)前PC上安裝了一個(gè)虛擬串口,名稱為COM33。用戶向COM33端口寫入的數(shù)據(jù)將直接送到CAN-bus網(wǎng)絡(luò)中,由一個(gè)ID設(shè)置為33值的CAN232MB轉(zhuǎn)換器接收,并在其RS-232端口輸出;同理,連接到ID設(shè)置為33值的CAN232MB轉(zhuǎn)換器的用戶RS-232設(shè)備所發(fā)出的數(shù)據(jù),將通過CAN-bus網(wǎng)絡(luò)送到PC機(jī),保存在PC上虛擬串口COM33的數(shù)據(jù)緩沖區(qū)內(nèi)。當(dāng)用戶讀取COM33數(shù)據(jù)的時(shí)候,虛擬串口服務(wù)器就把這些數(shù)據(jù)返回給用戶。
上圖所示的CAN-bus網(wǎng)絡(luò)中連接有8個(gè)CAN232MB轉(zhuǎn)換器,每個(gè)CAN232MB轉(zhuǎn)換器的串口都被映射成第1臺工作PC的1個(gè)虛擬串口,共8個(gè)虛擬串口;每個(gè)串口都和MOXA多串口卡(型號:CP-168U8路多串口卡)的其中一個(gè)串口相連,用于提供各個(gè)串口數(shù)據(jù)的測試與驗(yàn)證。同時(shí),第1臺工作PC安裝有1個(gè)PCI-9840接口卡,連接在CAN-bus網(wǎng)絡(luò)中;用戶也可以連接其他型號的CAN接口卡,同樣可以實(shí)現(xiàn)這一個(gè)虛擬串口的網(wǎng)絡(luò)實(shí)例。
虛擬串口服務(wù)器的配置
下面介紹虛擬串口服務(wù)器的配置軟件。軟件啟動界面如下:
通過服務(wù)器軟件安裝虛擬串口,和遠(yuǎn)程RS-232設(shè)備建立通訊,首先需要新建一個(gè)配置文件,并進(jìn)行一些相關(guān)配置。點(diǎn)擊界面左上角的“新建”按鈕,此時(shí)彈出保存配置文件對話框,在其中選定保存路徑以及保存文件名。
CAN-bus網(wǎng)絡(luò)的優(yōu)勢
CAN-bus是國際上應(yīng)用最廣泛的現(xiàn)場總線之一,被廣泛應(yīng)用于歐洲的中高檔汽車中,用作ECU單元的串行數(shù)據(jù)傳輸網(wǎng)絡(luò);近幾年來,CAN-bus開始進(jìn)入中國各個(gè)行業(yè)的數(shù)據(jù)通訊應(yīng)用,并于2002年被確定為電力通訊產(chǎn)品領(lǐng)域的國家標(biāo)準(zhǔn)。
與RS-485類似,CAN-bus網(wǎng)絡(luò)使用普通雙絞線作為傳輸介質(zhì),采用直線拓樸結(jié)構(gòu),單條網(wǎng)絡(luò)線路至少可連接110個(gè)節(jié)點(diǎn),網(wǎng)絡(luò)總長度最大可達(dá)10公里。在CAN-bus網(wǎng)絡(luò)中,數(shù)據(jù)收發(fā)、硬件檢錯(cuò)均由CAN控制器硬件完成,大大增強(qiáng)了CAN-bus網(wǎng)絡(luò)的抗電磁干擾能力,即由硬件來保證CAN-bus網(wǎng)絡(luò)運(yùn)行的可靠性。據(jù)國際CiA協(xié)會統(tǒng)計(jì),2001年僅在歐洲就銷售了超過1億個(gè)CAN-bus節(jié)點(diǎn),幾乎淘汰了歐洲所有的RS-485系統(tǒng)。目前,國內(nèi)的汽車、電梯行業(yè)已是CAN-bus應(yīng)用的典型領(lǐng)域,工業(yè)控制、智能樓宇、煤礦設(shè)備等行業(yè)也是日見更多型號的應(yīng)用CAN-bus總線設(shè)備與產(chǎn)品。
CAN-bus總線的優(yōu)點(diǎn):可靠性高,可以支持硬件節(jié)點(diǎn)的即插即用;故障節(jié)點(diǎn)可自動關(guān)閉,不影響其他網(wǎng)絡(luò)節(jié)點(diǎn);采用芯片硬件ID方式管理網(wǎng)絡(luò),故障節(jié)點(diǎn)界定十分方便,網(wǎng)絡(luò)維護(hù)成本比較低。同時(shí),CAN-bus網(wǎng)絡(luò)可以保證良好的通訊實(shí)時(shí)性。
CAN-bus總線的適用范圍:可適用于節(jié)點(diǎn)數(shù)目很多,傳輸距離在10公里以內(nèi),安全性要求高的場合;也可適用于對實(shí)時(shí)性、安全性要求十分嚴(yán)格的機(jī)械控制網(wǎng)絡(luò)。
評論