我的任务是为嵌入式系统编写一个设备驱动程序,该系统有两个通过USB连接的微控制器。两个控制器之间的数据传输将通过USB进行。 我在阅读USB规范时面临困难。 哪个USB类适合在两个控制器之间进行通信?
答案 0 :(得分:2)
USB是一种非对称协议,其中有主机和设备,主机是发起所有通信的主机。设备可以符合USB设备类,或者您的设备可能只有供应商定义的接口,不符合任何特定类。
我不知道您在微控制器之间发送的数据,我建议只使用供应商定义的接口(USB设备类代码0xFF)。主机可以在端点0上启动自定义控制传输,以在主机和设备之间传输任意数据。您还可以使用批量/中断/等时端点来传输数据。
USB CDC ACM类用于虚拟串行端口,它提供了在主机和设备之间来回发送字节的方法;许多设备将其用于通用通信机制。
HID(人机接口设备)类是另一个专为键盘设计的类,但它也可用于通用通信。
使用USB设备类的要点是,它允许您利用不同操作系统对这些类型设备的内置驱动程序,而无需编写自己的驱动程序。您可能会查看主机微控制器是否具有用于其中一个设备类的特殊USB驱动程序。如果没有,则使用USB设备类没有多大意义。听起来您将在USB电缆的两端编写代码,而您不打算将设备插入任何其他类型的USB主机,因此强制您的协议符合以下规定是没有意义的。 USB类。