打印

不可以。windows有**

[复制链接]
3880|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cetclyb|  楼主 | 2008-9-28 17:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在电脑中插入两块相同的设备,怎么识别那个是那个?例如插入两块相同的U口转串口的设备,系统标示是COM5和COM6,我怎么知道它们分别指那块转接设备?用发送数据到对应的口上确认的方式在实际中不可行,大家有什么好方法,欢迎赐教,谢谢

相关帖子

沙发
armtft| | 2008-9-30 16:54 | 只看该作者

没有好办法!所谓总线

所谓总线,都有“设备地址”(毕竟有多个设备嘛)。


依靠通讯协议区分。




例如插入两块相同的U口转串口的设备,系统标示是COM5和COM6,
一个是台灯,一个是门禁。

系统只能通过讯问设备的名字(ID)

例如,两个设备插在USB HUB上(未连电脑)。
HUB连入电脑,会按顺序分配。
可是,两个设备交换端口,插入呢?


还好,windows记住了每种设备的“常用端口”。例如两种不同芯片的U口转串口,一般不会被颠倒。






总之一句话,靠协议吧。

使用特权

评论回复
板凳
cetclyb|  楼主 | 2008-10-5 10:16 | 只看该作者

谢谢

使用特权

评论回复
地板
cetclyb|  楼主 | 2008-10-5 10:23 | 只看该作者

如果我们在设定一些条件,能否识别?

我们电脑上的USB接口通过编号可以知道,例如在我的机子上如下:
找到USB控制器:1
USB控制器:{36FC9E60-C465-11CF-8056-444553540000}000
USB控制器名称:HCD0
USB Hub名称:
USB#ROOT_HUB#4&2cd9afbc&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
8
第1端口没有USB设备联接
第2端口没有USB设备联接
第3端口没有USB设备联接
第4端口没有USB设备联接
第5端口没有USB设备联接
第6端口没有USB设备联接
第7端口没有USB设备联接
第8端口没有USB设备联接

然后在端口7和8上插上两块相同的U口转串口的设备,系统标示是COM5和COM6,能否通过程序分辨出来7或8上的端口插入的设备被标识为CON5还是COM6?

使用特权

评论回复
5
armtft| | 2008-10-6 15:39 | 只看该作者

不可以。windows有**

如果不是第一次安装,同一个设备往往用 上一次的端口号。

使用特权

评论回复
6
cetclyb|  楼主 | 2008-10-6 17:10 | 只看该作者

谢谢,

    由此引发一个问题,那WINDOWS是怎样把发给COM5的数据发到对应的USB口上去的呢?
    非常感谢armtft的讨论!

使用特权

评论回复
7
armtft| | 2008-10-7 20:55 | 只看该作者

哈。com5其实是一个地址

在windows中,一个设备打开,就是一些地址可以读写。
通过usbser.sys 驱动

和 MsPorts.dll

把发给COM5的数据发到对应的USB口上去的


(驱动等有一个重要的特性,叫“可重入”。就是说,多个相同设备同时工作,被分配不同地址,互不干扰)

使用特权

评论回复
8
cetclyb|  楼主 | 2008-10-8 08:20 | 只看该作者

这样能否解决

那能否在这个驱动上做个监测过滤驱动,来识别该接口上分配的COM地址?

使用特权

评论回复
9
computer00| | 2008-10-8 09:53 | 只看该作者

每个设备使用唯一的序列号就不会有这个问题了……

使用特权

评论回复
10
cetclyb|  楼主 | 2008-10-8 10:15 | 只看该作者

是呀!

从目前看,这个U口转串口的好像没有序列号

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

70

帖子

0

粉丝