我正在为嵌入式设备开发通信设备类 (CDC) 驱动程序,即 USB 2.0 的全速实现。COM 端口设置为 115200、8 位、无奇偶校验、1 个停止位、无流量控制。我们的 PC 应用程序(32 位、Windows 7、.NET 2.0)通过虚拟 COM 端口与目标设备进行通信,目标设备上的该端口可以连接到 FTDI(USB-to-SCI 桥接器)芯片或集成的 USB微控制器中的外围设备,具体取决于应用程序选择的端口。
使用 Realterm 时,两个虚拟 COM 端口都可以正常工作。然而,虽然我们的桌面应用程序使用通过 FTDI 芯片连接的虚拟 COM 端口工作,但在尝试使用通过微控制器的集成 USB 外围设备连接的虚拟 COM 时,它会挂起。
当使用集成 USB 通过虚拟 COM 端口连接时,应用程序在第二次调用SerialPort.Write(...). 使用HHD Software 的串行监视器,我可以看到数据在第一次调用时传输到SerialPort.Write(...). 但是,目标设备永远不会接收到该数据。
这很奇怪,因为我在以前的项目中唯一一次看到类似问题是总线两侧的流量控制设置不匹配。
附加信息...
这是在运行通过集成 USB 外设连接到目标设备的 PC 应用程序时从各种端口监控工具捕获的数据。任何见解将不胜感激。
对于那些感兴趣的人,我正在使用 CodeWarrior 10.2 和飞思卡尔的 MCF51JM128。
任何想法或建议将不胜感激。谢谢。