Serial port USB端口是什么类型的?

Serial port USB端口是什么类型的?,serial-port,usb,serial-communication,Serial Port,Usb,Serial Communication,我正在开发一个串口通信java-J2ME-J2SE应用程序。有一部手机和一台电脑(运行Windows XP)。这两台机器通过手机电缆进行通信。手机的电缆是USB电缆。那么端口的类型是什么:是COM1还是其他类型? 我查看了设备管理器,发现手机(阿尔卡特OT-806D)位于COM4端口。以下是设备管理器的捕获图像: 嗯,这取决于您所说的“端口类型”是什么意思。我想你想知道端口的名称,但你真正需要知道的是你的手机会理解什么协议 您需要知道手机可以通过USB与什么协议(如果有)通信。仅仅因为你可以将手

我正在开发一个串口通信java-J2ME-J2SE应用程序。有一部手机和一台电脑(运行Windows XP)。这两台机器通过手机电缆进行通信。手机的电缆是USB电缆。那么端口的类型是什么:是COM1还是其他类型? 我查看了设备管理器,发现手机(阿尔卡特OT-806D)位于COM4端口。以下是设备管理器的捕获图像:


嗯,这取决于您所说的“端口类型”是什么意思。我想你想知道端口的名称,但你真正需要知道的是你的手机会理解什么协议

您需要知道手机可以通过USB与什么协议(如果有)通信。仅仅因为你可以将手机连接到USB电缆并不意味着你可以控制手机。这取决于电话。并非所有的手机都能理解相同的协议


此外,USB是一种串行总线,因为它在一条线上串行传输数据(而不是在多条线上并行传输),但它(不一定)使用与计算机串行端口相同的RS-232协议。如果您将RS-232设备连接到USB端口,那么您可以使用COM1(或COM2或COM3,您的操作系统会指定此端口名)连接到它。

USB端口是一种计算机和设备可以用来通信的串行端口。它定义了连接器和电缆,以及设备在通过USB进行通信时必须使用的物理层和链路层协议。从这个意义上讲,它类似于以太网、火线或其他通信协议

在物理层面上,USB是串行协议,这意味着位以串行方式发送。旧的串行RS-232端口(在Windows下传统上称为COMx)与现代USB体系结构无关。旧的串行端口使用更简单、更慢的通信协议(RS-232),该协议通常由一系列称为s的芯片处理,而USB通信需要更复杂的硬件

因此,这两个协议的物理层和链路层特性非常不同。虽然两者都是串行协议,但USB允许多个设备共享同一总线(传统串行端口不允许),并且USB的通信速度要高得多。错误检测和纠正、流量控制和其他数据传输问题在USB中得到更好的处理

COM端口是表示任何通信端口的Windows抽象。在其他操作系统中使用其他名称。在Linux中,COM1端口由设备/dev/ttyS0表示

请注意,这只不过是一种抽象。可以(通常也可以)使用不使用传统物理串行端口的串行端口。实际上,您可以创建操作系统驱动程序,这些驱动程序提供串行端口,这些端口实际上通过以太网、USB、IP或任何其他通信层进行通信。操作系统级别的COM端口只不过是表示通信端口的抽象

移动电话通过其USB端口提供多种服务。这通常包括原始串行通信(您可以在应用程序中使用),但在许多其他情况下,USB端口提供其他“配置文件”(USB大容量存储、耳机或其他)。所有这些配置文件都是标准化的,因此您可以将手机插入计算机并建立“串行通信”通道,而无需为计算机或手机编写通信驱动程序


所以,要回答你的问题,不,USB端口不是COM端口。它是一个USB端口。您可以将其用于串行通信,但也可以用于其他用途。

USB表示通用串行总线。通常,PC上的所有操作系统和USB连接都连接在同一条总线上。所有连接到总线的设备都分配了虚拟端口号。这些端口号将根据连接到总线的内容而变化

但是,除非您正在编写驱动程序本身,否则您不会直接与手机通信,而是与为其安装的任何驱动程序通信

有些手机无法以任何方式进行控制,其他手机可能会显示为调制解调器,因为这是制造商通过驱动器分配给它们的功能

我当前的手机本身安装了一个设备(与制造商的软件一起使用)、一个调制解调器和一个存储设备


查看更多信息。

除了供应商特定的USB接口外,手机通常使用USB+虚拟串行端口,其行为类似于物理端口,手机是否显示为调制解调器?如何知道手机是否显示为调制解调器?查看其是否在手机中以及控制面板中的调制解调器,单击“添加到自动检测”按钮,该按钮不在控制面板中的电话和调制解调器中。即使我单击了调制解调器选项卡下的添加按钮,windows也没有找到它!当我将电缆连接到电脑时,手机屏幕上会显示三种选择:大容量存储、网络摄像头或com端口。我选择了
com端口
。那么这种情况下的端口是什么呢?它很可能是一个虚拟串行com端口。在设备管理器中查看它应该列在端口下。我已经在我的答案中添加了一个链接。那么为什么J2ME应用程序和J2SE应用程序之间无法通信呢?