日期:2014-05-16  浏览次数:20846 次

求助达人,USB转串口是否遇到过多台设备接入机器,串口冲突?
各位好:
  本人有个设备,内部实现了USB驱动,实现USB转串口,但是如果超过2台接入XP系统就很容易出现串口冲突的问题,表现在接入两台设备,分配一个串口号COM7、COM8,再接入一台设备,结果还是COM7和COM8,感觉像是前面接入的一台设备被冲掉了。

用BUSBOUND抓的数据如下:

Device Phase Data Description Cmd.Phase.Ofs(rep)
------ ----- ------------------------ ---------------- ------------------
  27.0 CTL 80 06 00 01 00 00 12 00 GET DESCRIPTOR 1.1.0  
  27.0 DI 12 01 00 02 02 00 00 40 .......@ 1.2.0  
  18 80 84 80 00 02 01 02 ........ 1.2.8  
  00 01 .. 1.2.16  
  bLength 0x12
  bDecriptorType 0x01
  bcdUSB 00 02
  bDeviceClass 02
  bDeviceSubClass 00
  bDeveicePortocol 00
  bMaxPacketSize0 40 //64bytes
  idVendor 18 80 //8018
  idProduct 84 80 //8084
  bcdDevice 00 02 //设备发行号
  iManufacturer 01
  iProduct 02
  iSerialNumber 00
  bNumConfigurations 01
   
   
  27.0 CTL 80 06 00 02 00 00 09 01 GET DESCRIPTOR 2.1.0  
  27.0 DI 09 02 43 00 02 01 00 c0 ..C..... 2.2.0  
  32 09 04 00 00 01 02 02 2....... 2.2.8  
  01 00 05 24 00 10 01 05 ...$.... 2.2.16  
  24 01 00 01 04 24 02 02 $....$.. 2.2.24
   
  bLength 09
  bDescriptorType 02
  wTotalLength 43 00
  bNumInterfaces 02
  bCongfigurationValue 01
  iConfiguration 00
  bmAttrributes c0 ???有错误???
  MaxPower 32
   
  bLength 09
  bDescriptiorType 04
  bInterfaceNumber 00
  bAlternateSetting 00
  bNumendpoints 01
  bInterfaceClass 02 //CDC控制类
  bInterfaceSubClass 02
  bInterfaceProtocol 01
  iInterface 00
   
   
  27.0 CTL 00 09 01 00 00 00 00 00 SET CONFIG 3.1.0  
  27.0 CTL a1 21 00 00 00 00 07 00 GET LINE CODING 4.1.0  
  27.0 DI 00 c2 01 00 00 00 08 ....... 4.2.0  
  27.0 CTL 21 22 00 00 00 00 00 00 SET CTRL LINE ST 5.1.0  


目前实在么有发现哪里有错误啊。

------解决方案--------------------
抓的数据看不懂
假设后插入的设备重复用了com8,那把其中一个用com8的设备改到其他端口不可以么
------解决方案--------------------
插上设备应该不会有这样的情况啊,串口号应该不相同的啊
------解决方案--------------------
是不是因为你向系统上报虚拟串口设备的时候,用了固定的ID?
可以每次生成个随机的ID或者SN什么的,至少要跟前一次有区别,不然系统会认为这是同一个设备。