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