Embedded 嵌入式系统中USB接口的编程实现

Embedded 嵌入式系统中USB接口的编程实现,embedded,usb,device-driver,Embedded,Usb,Device Driver,我的任务是为我们的嵌入式软件编写一个USB驱动程序,将原始数据发送到主机。这将用于向主机发送一些日志数据。我们正在使用iMX31 litekit进行开发 根据我在USB上阅读的文档,我的理解是嵌入式设备将仅处于设备模式。此外,它将只与主机通信 有人能带我来吗?欢迎任何文章、参考资料或代码。需要考虑的事项: 这是像照相机或数据记录器那样的高带宽设备,还是低带宽设备 对于低带宽,我会强烈考虑让您的设备充当USB。这是支持键盘、鼠标、操纵杆、游戏板等的设备类。向几乎任何应用程序发送数据都相对容易,而且

我的任务是为我们的嵌入式软件编写一个USB驱动程序,将原始数据发送到主机。这将用于向主机发送一些日志数据。我们正在使用iMX31 litekit进行开发

根据我在USB上阅读的文档,我的理解是嵌入式设备将仅处于设备模式。此外,它将只与主机通信


有人能带我来吗?欢迎任何文章、参考资料或代码。

需要考虑的事项:

这是像照相机或数据记录器那样的高带宽设备,还是低带宽设备

对于低带宽,我会强烈考虑让您的设备充当USB。这是支持键盘、鼠标、操纵杆、游戏板等的设备类。向几乎任何应用程序发送数据都相对容易,而且通常不需要在主机端编写自定义设备驱动程序。仅后一个特性就足以使数据稍微扭曲成HID类假定的形状。所有使用USB的桌面操作系统都可以使用HID设备,因此您很容易获得广泛的兼容性

为了获得高带宽,如果您的设备符合一个成熟的设备类别,在该类别中,可以使用线路主机端的备用设备驱动程序,那么您仍然可以获得更好的服务。一种常用的方法是使用,并模拟包含一个文件的磁盘驱动器。然后,您的设备就像磁盘一样装载在主机上,您通过读写一个(或几个)文件进行通信

我希望对于任何实现HID或大容量存储的严肃USB设备芯片组,都会有相当数量的示例代码

如果您真的必须进入完全定制的设备领域,那么您需要为每个主机平台构建设备驱动程序。如果开源库的许可证与您的项目兼容,那么它可能会有所帮助。在较新版本的Windows中,还可以使用开发USB驱动程序的方法来开发在用户模式下运行的USB驱动程序,这些驱动程序具有许多与libusb相同的优点,但不能从Windows平台上移植

我使用的最后一个定制设备是基于Cypress设备的,我们能够提供它们的驱动程序和相关的DLL,使我们的应用程序代码更容易构建。我不知道你的设备是否有类似的产品


要获得一个非常好的概述,我推荐Jan的最新版本。

您的目标主机操作系统是什么?主机Windows和目标ThreadX