虛擬串口與真實物理地址串口
武漢波仕電子公司 2009-10
本文所說的“串口”是指RS-232或者RS-485/RS-422口,但是由于RS-485(或RS-422)口一般都是從PC機的RS-232口轉(zhuǎn)換而來,其軟件是通用的,所以本文評論的“串口”一般就指PC機的RS-232口。這里所說的“虛擬串口”是指通過USB/串口轉(zhuǎn)換器生成的串口。有人在使用USB/串口轉(zhuǎn)換器時發(fā)現(xiàn)某些以前在傳統(tǒng)RS-232口上運行正常的軟件卻不能夠使用,因而就說通過USB轉(zhuǎn)換出來的串口不是真正的串口。這里所謂的“傳統(tǒng)RS-232口”是指從PC機的主板或者從總線,比如臺式機的PCI或者ISA總線、筆記本的PCMCIA總線上擴展出來的RS-232口,是有真實物理地址的串口。USB的全稱是通用串行總線,它與PCI之類的并行總線有本質(zhì)的區(qū)別。USB口沒有分配固定的總線I/O地址也沒有固定中斷號,它的地址是通過軟件來虛擬的,而傳統(tǒng)的RS-232口有固定的I/O地址以及中斷號。這就是某些通信軟件在傳統(tǒng)RS-232口可以運行而在USB/串口轉(zhuǎn)換器的RS-232口上不能夠運行的原因。如果通信軟件內(nèi)有直接I/O讀寫語句,那么肯定無法在USB/串口轉(zhuǎn)換器的串口上運行。另外還有一個原因就是對RTS/CTS、DTR/DSR這些握手信號的操作,即使是通過虛擬讀寫不是通過直接I/O讀寫來操作這些握手信號,但由于USB/串口轉(zhuǎn)換器對這些握手信號的虛擬讀寫過程的初始化往往比較耗時,所以容易導(dǎo)致握手信號讀寫失敗。
現(xiàn)在的臺式計算機大部分還都保留有一個真實物理地址的RS-232口,一般是COM1口。如果在計算機的背后有一個DB-9針的口,那就是COM1串口。COM1串口的基地址為3FC,COM2串口的基地址為2FC。在WINDOWS me以及以前版本操作系統(tǒng)下可以直接進行物理地址的I/O讀寫操作,比如
BASIC語言為OUT &H3FC,2 匯編語言為OUT 3FC,2
PASCAL語言為port[$3fc]:=2; C語言為outportb (0x3fc,2);
VC++語言為:_outp (0x3fc,2);
在Windows XP以及以后版本操作系統(tǒng)下,上面的語句已經(jīng)禁止執(zhí)行,但是可以將I/O操作指令編為動態(tài)連接庫來調(diào)用,可以達到一樣的I/O操作效果。
USB/串口轉(zhuǎn)換器的虛擬串口代替?zhèn)鹘y(tǒng)的RS-232、RS-485、RS-422口是必然的發(fā)展趨勢,就象PCI總線代替ISA總線、Windows代替DOS一樣,盡管后者都更加適合工業(yè)通信和工業(yè)測控。Windows操作系統(tǒng)從來不是優(yōu)先考慮工業(yè)通信和工業(yè)測控的實時性要求,反而越來越拋棄工業(yè)通信和工業(yè)測控。只有CPU、總線等硬件速度的改進使延時減小從而接近實時性。由于通過虛擬I/O操作代替物理的固定I/O讀寫是解決Windows可靠性的一條基本原則,所以用戶越來越遠離Windows內(nèi)核的操作。事實上,從Windows XP開始就沒有了直接I/O讀寫指令,甚至Windows me的直接I/O讀寫也是通過將DOS的I/O讀寫指令編輯成為動態(tài)連接庫然后來調(diào)用的。Windows XP下的直接I/O讀寫是通過動態(tài)連接庫的調(diào)用來實現(xiàn),參見波仕電子的軟件。另外減少USB虛擬串口對RTS/CTS、DTR/DSR這些握手信號的虛擬操作的延時也是一個技術(shù)難點,這主要是由USB/串口轉(zhuǎn)換器內(nèi)部UART的信號初始化處理延時導(dǎo)致的。避免頻繁使用不要使用這些握手信號是較好的解決方法。波仕電子所有產(chǎn)品的RS-485接口均使用了零延時自動收發(fā)轉(zhuǎn)換技術(shù),這就保證轉(zhuǎn)換過程中不需要任何握手信號來控制收與發(fā)的切換。
如果你的計算機的RS-232口是從USB轉(zhuǎn)換出來的,那么肯定地說,這個RS-232口一定是虛擬串口。這是由USB的特性決定的。虛擬串口由于沒有真實物理地址所以是不能夠進行以上的對COM口地址(比如3FC、2FC)的I/O讀寫操作,包括用調(diào)用動態(tài)連接庫的方法。USB口當然是可以進行其他地址的I/O操作的,可以參考波仕的U46BL、U812BL產(chǎn)品說明書。
如果你的計算機串口是從臺式計算機的PCI插卡擴展出來的,那么目前的產(chǎn)品我們還沒有見到虛擬串口的,也就是說現(xiàn)在的PCI串口卡都是真實物理地址的串口。由于PCI串口卡的電路板是沒有殼子的,所以我們也很容易地從電路板上的元件型號看出來。從原理上來講,也可以從PCI口先擴展出USB口再將這個USB轉(zhuǎn)換出RS-232口。我們現(xiàn)在的許多筆記本的內(nèi)置光驅(qū)就已經(jīng)采用了USB口(不是指外掛的光驅(qū)?。?。當你準備拔下U盤,按照要求用鼠標點擊左面右下腳的“安全刪除硬件”,如果同時出現(xiàn)USB光驅(qū)的提示就是說明你的筆記本光驅(qū)是USB接口的,雖然實際物理接口可能是一排插針的插卡。
*有可能混淆的是PCMCIA串口卡以及改進型EXPRESS CARD串口卡擴展出的RS-232口。大部分PCMCIA串口卡擴展的RS-232口都是真實物理地址的,否則就失去了它相對USB的優(yōu)勢。PCMCIA對于筆記本的作用就象PCI對于臺式計算機一樣。波仕的PCMCIA、EXPRESS CARD串口卡擴展出來的都是真實物理地址的串口。EXPRESS CARD是PCMCIA的一種改進,有L形和條形,見波仕PCMCIA232的說明書。EXPRESS CARD 與PCMCIA并不兼容。zui近已經(jīng)出現(xiàn)了某些EXPRESS CARD串口卡擴展出來的RS-232口并不是真實物理地址的串口,而是先將EXPRESS CARD轉(zhuǎn)換成為USB然后再轉(zhuǎn)換出RS-232口。如果你有包含讀寫串口物理地址的程序,就無法在這樣的EXPRESS CARD上運行。
如何識別EXPRESS CARD擴展的串口是虛擬串口還是真實物理地址串口呢?以Windows XP為例,先安裝驅(qū)動程序。點擊:我的電腦屬性系統(tǒng)屬性硬件設(shè)備管理器端口,找到新出現(xiàn)的COM口,再點擊: 屬性詳細信息,如果是真實物理地址的串口,就會顯示物理地址以及中斷號,比如3FC、2FC之類,如果是USB虛擬串口,就會顯示USB的字樣,比如設(shè)備范例ID:USBVID_067B&PID_23035&18CD3484&1&2。
如果你對以上的USB虛擬串口、PCI或PCMCIA擴展的串口都不滿意,那么還有一種選擇,就是以太網(wǎng)/串口轉(zhuǎn)換器,見波仕ETH232系列說明書。雖然以太網(wǎng)/串口轉(zhuǎn)換器生成的RS-232口也是虛擬串口,但是它并不出現(xiàn)在“設(shè)備管理器端口”中,所以也無法用上面看“屬性詳細信”的方法。我們大量應(yīng)用的實際情況表明,以太網(wǎng)虛擬串口的通用性好于USB虛擬串口,可能是由于以太網(wǎng)支持全雙工通信的原因。以太網(wǎng)/串口轉(zhuǎn)換器的缺點是需要供電,另外驅(qū)動程序以及虛擬串口程序是的。
波仕電子產(chǎn)品包括:
RS232轉(zhuǎn)485串口,RS232,RS485,RS232轉(zhuǎn)485,RS232轉(zhuǎn)422,RS232轉(zhuǎn)USB,rs232轉(zhuǎn)rs485,rs232串口線,rs232接口,rs232轉(zhuǎn)以太網(wǎng),rs232 ic,rs232數(shù)據(jù)線,rs485轉(zhuǎn)換器,rs485轉(zhuǎn)換rs232器,RS232轉(zhuǎn)換器,光纖轉(zhuǎn)換器,光電隔離器, 遠程收發(fā)器,光纖轉(zhuǎn)換器 ,USB、以太網(wǎng)/串口、光纖,RS-232/RS-485/光纖轉(zhuǎn)換器,RS-232/RS-485/RS-422轉(zhuǎn)換器,RS-485中繼器、超遠程驅(qū)動器,光纖轉(zhuǎn)換器;RS-232;rs485;RS422;轉(zhuǎn)換器;中繼器;光纖收發(fā)器;多模光纖;單模光纖;擴展器;超遠程驅(qū)動器;光隔遠程收發(fā)器;集線器;光電隔離器;TTL轉(zhuǎn)換;浪涌保護;數(shù)據(jù)采集;串口轉(zhuǎn)換器;485轉(zhuǎn)換器;232轉(zhuǎn)換器; 其它串口類產(chǎn)品
請登陸我們的 了解更多產(chǎn)品的詳細介紹,請撥 傳 真: :向 / :boshika@
2025第十一屆中國國際機電產(chǎn)品交易會 暨先進制造業(yè)博覽會
展會城市:合肥市展會時間:2025-09-20