我有一个跨平台的 JAVA 程序,它需要来自插入 USB 的 MCU 的数据。我需要大致了解如何实现这一点。是否可以编写一个 USB 驱动程序,将传入的 USB 数据发送到本地套接字端口,然后我可以从 Java 中连接到该端口?使用虚拟 COM 端口驱动程序是否有更好的选择?
谢谢阅读。
我有一个跨平台的 JAVA 程序,它需要来自插入 USB 的 MCU 的数据。我需要大致了解如何实现这一点。是否可以编写一个 USB 驱动程序,将传入的 USB 数据发送到本地套接字端口,然后我可以从 Java 中连接到该端口?使用虚拟 COM 端口驱动程序是否有更好的选择?
谢谢阅读。
我想分享一个简单的项目,其中我通过虚拟 COM (CDC) 开发了一个定制的 USB 通信。这个项目基于 8 位微控制器 - 特别是 MC9S08JS 系列 - 在 CodeWarrior Development Studio 10.3 上工作。我附上了两个 zip 文件。其中一个是完整的 CodeWarrior 项目,另一个是 USB CDC 驱动程序。文件工作正常,显然它们是完全安全的。用户只需添加他们的例程即可通过端点功能发送和接收数据。
链接:
1- CodeWarrior 项目。
2- USB CDC 驱动程序。
我真的希望它可以帮助你。如果您有任何问题,请告诉我。
最好的问候,毛里西奥。
研究开发 CDC 驱动程序或实现 FTDI 芯片。后者更容易,但如果您正在考虑降低产品成本,拥有自己的 USB 堆栈是非常宝贵的。无论哪种情况,您的设备都会按照您的要求显示为虚拟通讯端口,并且可以作为常规通讯端口轻松访问。
一个好的起点是查看飞思卡尔 USB 堆栈 v4.1.1。有 MSD、CDC、HID 和许多其他类的工作示例可帮助您入门。如果您不使用飞思卡尔 micros,您的里程可能会有所不同,但仍然值得一读。
最后,根据我的经验,我发现跨平台 Java 的串行端口访问有点棘手。我使用了 Cloudhopper 的 RXTX 分支,但我听说过有关https://code.google.com/p/java-simple-serial-connector/的好消息。
祝你好运!