我正在致力于嵌入式设备的通信设备类(CDC)驱动程序,实现USB 2.0的全速。 COM端口设置为115200,8位,无奇偶校验,1个停止位,无流量控制。我们的PC应用程序(32位,Windows 7,.NET 2.0)通过虚拟COM端口与目标设备进行通信,目标设备上的虚拟COM端口可以连接到FTDI(USB-SCI桥接)芯片或集成USB外设在微控制器中,取决于应用程序选择哪个端口。虚拟COM通信问题
这两个虚拟COM端口在使用Realterm时都没有任何问题。但是,尽管我们的桌面应用程序使用通过FTDI芯片连接的虚拟COM端口,但在尝试使用通过微控制器的集成USB外设连接的虚拟COM时,它会挂起。
当通过使用集成USB的虚拟COM端口连接时,应用程序在第二次调用SerialPort.Write(...)
时始终挂起。使用Serial Monitor from HHD Software我可以看到数据在第一次调用时发送到SerialPort.Write(...)
。但是,目标设备永远不会收到该数据。
这很奇怪,因为我在以前的项目中看到类似问题的唯一原因是总线每一侧的流量控制设置不匹配。
附加信息...
这是在运行我们通过集成的USB外围设备连接到目标设备的PC应用程序从不同的端口监控工具捕获的数据。任何洞察力将不胜感激。
- Sysinternals Portmon
- Advanced USB Port Monitor
- Device Monitoring Studio - Request View
- Device Monitoring Studio - Packet View
对于那些有兴趣,我使用的CodeWarrior 10.2与MCF51JM128飞思卡尔。
任何想法或建议,将不胜感激。谢谢。
您是否试图追踪Realterm的行为?必须有差异应该表明解决方案。 – jeb 2013-03-03 08:54:09
@jeb我该怎么做?它是Realterm的特色之一吗?我承认我只熟悉其一小部分功能。 – 2013-03-03 19:07:18
不,但是像sysinternals/microsoft的[portmon](http://technet.microsoft.com/de-de/sysinternals/bb896644.aspx)这样的工具可以显示一个端口的所有动作,打开/关闭以及读/写而对于像Realterms和你自己的其他程序 – jeb 2013-03-03 21:46:32