是否可以重置FTDI虚拟COM端口枚举,我们很容易在生产环境中获得数百个COM端口

当生产使用FTDI USB到串行芯片与Windows主机进行通信的设备时,我们可以获得数百个COM端口,因为每当新的FTDI vid + pid +串行连接到PC时,Windows似乎只是增加了端口号。

我已经查看了HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\FTDIBUS并尝试删除出现的新条目,但唯一的影响是,即使对于具有相同vid + pid + serial的设备,COM端口号也会增加已连接一次)。

问题是否有可能以某种方式重置此计数器,以便枚举从第一个空闲COM端口号开始?

编辑:这个问题更适合superuser.com? 编辑2:它已经超级用户回答

注意:从超级用户复制

我不在工作,所以我没有任何硬件在我面前,但FTDI应用笔记AN_107 – 高级驱动程序选项看起来有一些有前途的select。

特别是,我认为“忽略硬件序列号”(第7.1节,第20页)选项将做你想要的。

7.1忽略硬件序列号

如果设备具有相同的供应商ID和产品ID但序列号不同,则系统通常将它们视为不同的设备。 这会导致为每个设备安装驱动程序并为每个设备创buildregistry项。

可以忽略此行为,以使系统忽略设备的序列号,并将所有具有匹配VID和PID的设备连接到相同的USB端口,就好像它们是相同的设备一样。 这是通过将名为IgnoreHWSerNum的REG_BINARY值添加到registry中并将其设置为01来实现的。

AN_123如何在驱动程序安装应用程序注释COM端口分配也非常丰富。

OT,现在的设备变得越来越复杂,大多数文档都被移出数据表和应用笔记。 不要忘了随时阅读应用笔记!

以下是防止Windows计算机每次将带有FT232RL IC的新设备插入USB端口时分配新COM端口号的说明: http ://liionbms.com/pdf/DisableFTDI_Enumeration.pdf随意使用

微软有一个名为DevCon的命令行实用程序,它可以做你所需要的。

例子:

列出当前和不存在的USB设备:

 devcon findall =usb 

列出目前和不存在的端口:

 devcon findall =ports 

删除所有USB设备:

 devcon remove @usb\* 

删除所有端口:

 devcon remove @ports\* 

谨慎行事。 之后您可能需要重新扫描devcon,甚至重新启动devcon。