Embedded 一种嵌入式MCU的USB设备设计

Embedded 一种嵌入式MCU的USB设备设计,embedded,usb,lpc,winusb,Embedded,Usb,Lpc,Winusb,我正在开发一款带有LPC1788的产品,该产品需要以下USB功能: 固件下载(从主机PC到设备,而不是通过USB 键) 文件上载(从设备到主机) 理想情况下,我们还可以从设备上获取一些信息,如序列号等 该设备只能与自定义Windows应用程序一起使用,因此仅按原样使用大容量存储设备是不行的。有相当多的数据要上传(200MB+),所以对我来说,使用USB批量传输似乎是必要的 最好的方法是什么?我想我需要创建某种USB复合设备(?)。但是,我希望使用nxpUSBlib或winUSB,这样我就不必

我正在开发一款带有LPC1788的产品,该产品需要以下USB功能:

  • 固件下载(从主机PC到设备,而不是通过USB 键)
  • 文件上载(从设备到主机)
  • 理想情况下,我们还可以从设备上获取一些信息,如序列号等
该设备只能与自定义Windows应用程序一起使用,因此仅按原样使用大容量存储设备是不行的。有相当多的数据要上传(200MB+),所以对我来说,使用USB批量传输似乎是必要的

最好的方法是什么?我想我需要创建某种USB复合设备(?)。但是,我希望使用nxpUSBlib或winUSB,这样我就不必经过Windows驱动程序验证过程。。。。我有什么选择?也许有什么方法可以让大容量存储设备在Windows中不可见

谢谢


德克

我想你肯定会想使用特定于供应商的批量设备,而且你可以轻松地使用WinUSB实现所有这些。这应该足以满足您在此处指定的所有要求

对于您的固件加载程序,我建议您查看。您可能希望为您的设备发出一些命令,当发送命令时,将使其在DFU模式下重新使用以进行更新(而不是始终公开的复合设备-这限制了在您刷新设备时使用其他接口的问题)。然后,您可以对其进行闪存和重置,使其再次作为特定于供应商的批量设备使用


我不建议使用大容量存储,根据您的要求,最好实现您自己的协议,并创建一些使用WinUSB API与设备通信的应用程序或DLL,包括固件更新。

谢谢,这是一个很好的信息。我看了WinUSB API,没有意识到WinUSB有多灵活。干杯