我的任务是编写一个嵌入式系统的设备驱动程序,该系统有两个通过USB接口的微控制器。两个控制器之间的数据传输将通过USB进行。我在阅读USB规范时遇到了困难。哪个USB类适合于两个控制器之间的通信?
发布于 2015-12-16 02:26:55
USB是一种非对称协议,其中有主机和设备,而主机是发起所有通信的主机。该设备可以符合USB设备类,或者您的设备可以只具有不符合任何特定类的供应商定义的接口。
在不了解微控制器之间发送的数据的情况下,我建议只使用供应商定义的接口(USB设备类代码0xFF)。主机可以在端点0上启动在主机和设备之间传输任意数据的自定义控制传输。您还可以使用批量/中断/等时端点来传输数据。
USB CDC ACM类用于虚拟串行端口,它提供了一种在主机和设备之间来回发送字节的方法;许多设备使用它作为通用通信机制。
HID (人机接口设备)类是另一个专为键盘之类的东西设计的类,但它也可以用于通用通信。
使用USB设备类的要点是,它允许您利用不同操作系统为这些类型的设备提供的内置驱动程序,而不必编写自己的驱动程序。您可能会查看您的主机微控制器是否有针对这些设备类别之一的特殊USB驱动程序。如果没有,那么使用USB设备类就没有多大意义了。听起来您将在USB电缆的两端编写代码,并且您不打算将您的设备插入任何其他类型的USB主机,因此强制您的协议符合USB类是没有意义的。
https://stackoverflow.com/questions/34283027
复制相似问题