2011-11-15 143 views
0

我正在開發一個串口通信java-J2ME-J2SE應用程序。有一部手機和一臺電腦(運行Windows XP)。這兩臺機器通過手機的電纜進行通信。而手機的電纜是USB電纜。那麼端口的類型是什麼:它是COM1還是別的? 我看了設備管理器,發現手機(Alcatel OT-806D)在端口COM4中。下面是設備管理器中捕獲的圖像:USB端口是什麼類型的端口?

enter image description here

+0

除了特定於供應商的USB接口外,手機通常使用USB +虛擬串行端口,它的行爲類似於物理端口,手機是否將其自身表現爲調制解調器? –

+0

如何知道手機是否顯示爲調制解調器? – pheromix

+0

看看它是否在控制面板中的電話和調制解調器,點擊添加到自動檢測 –

回答

0

嗯,取決於你所說的「類型的端口」的意思。我想你想知道端口的名稱,但是你真正需要知道的是你的電話將理解的協議。

您需要知道手機可以通過USB與哪些協議(如果有)進行通信。僅僅因爲您可以將手機連接到USB電纜並不意味着您可以控制手機。這取決於手機。並非所有電話都是爲了理解相同的協議而構建的。另外,USB是串行總線,因爲它在一條線上串行傳輸數據(而不是通過多條線並行傳輸),但它不一定使用與計算機相同的RS-232協議串行端口。如果您有一個RS-232設備連接到USB端口,那麼您將使用COM1(或COM2或COM3,您的操作系統分配此端口名稱)連接到它。

1

USB端口是計算機和設備可用於通信的一種串行端口。它定義了連接器和電纜,以及設備必須用於通過USB進行通信的物理和鏈路層協議。從這個意義上講,它與以太網,火線或其他通信協議類似。

在物理層面上,USB是串行協議,意思是以串行方式發送位。舊串行RS-232端口(傳統上稱爲Windows下的COMx)與現代USB架構無關。舊的串行端口使用通常由稱爲UARTs的芯片系列處理的更簡單和更慢的通信協議(RS-232),而USB通信需要更復雜的硬件。

因此,這兩種協議的物理層和鏈路層特性有很大的不同。雖然兩者都是串行協議,但USB允許多個設備共享相同的總線(傳統串行端口不這樣做),並且USB中的通信速度更高。在USB中更好地處理錯誤檢測和糾正,流量控制和其他數據傳輸問題。

COM端口是Windows抽象來表示任何通信端口。在其他操作系統中使用其他名稱。在Linux中,COM1端口由設備/ dev/ttyS0表示。

請注意,這不過是一個抽象。使用不使用傳統物理串行端口的串行端口是可能的(並且經常完成)。實際上,您可以創建操作系統驅動程序,以提供實際上通過以太網,USB,IP或任何其他通信層進行通信的串行端口。操作系統級別的COM端口不過是代表通信端口的抽象。

手機通過其USB端口提供各種服務。這通常包括原始串行通信(您可以在您的應用程序中使用),但在許多其他情況下,USB端口提供其他「配置文件」(USB大容量存儲,耳機或其他)。所有這些配置文件都是標準化的,因此您可以將手機連接到計算機並建立「串行通信」通道等等,而無需爲計算機或手機編寫通信驅動程序。

因此,要回答您的問題,不,USB端口不是COM端口。它是一個USB端口。您可以將其用於串行通信,但您也可以將其用於其他事情。

1

USB意味着通用串行總線。一般來說,PC上的所有USB連接都將連接在同一總線上。連接到總線的所有設備都分配有虛擬端口號。這些端口號將根據連接到總線的內容而改變。

但是,您不會直接與手機進行通信,而是使用爲其安裝的任何驅動程序,除非您正在編寫驅動程序本身。

某些手機不能以任何方式控制,其他手機可能會顯示爲調制解調器,因爲這是其製造商通過該驅動器分配的功能。

我目前的手機本身就是作爲設備安裝(用於製造商的軟件),調制解調器和存儲設備。

看一看here瞭解更多信息。

+0

當我將電纜連接到PC時,手機的屏幕上會顯示三種選擇:海量存儲,網絡攝像頭或COM端口。我選擇'com port'。那麼這種情況下的港口是什麼? – pheromix

+0

它很可能是一個虛擬串行通信端口。看看設備管理器,它應該列在端口下。我已經添加了一個鏈接到我的答案。 – ChrisBD

+0

該端口是COM4,它在您的屏幕截圖中清晰可見。 –