一种嵌入式单片机的USB设备设计



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

  • 固件下载(从主机PC到设备,不是通过USB密钥)。
  • 文件上传(从设备到主机)。
  • 理想情况下,我们也能够从设备中获得一些信息,如序列号等。

设备应该只与自定义的Windows应用程序一起工作,所以简单地使用大容量存储设备是不行的。有相当多的数据要上传(200MB以上),所以使用USB批量传输对我来说似乎是必要的。

解决这个问题的最好方法是什么?我想我需要创建某种USB复合设备。但是,我希望使用nxpUSBlib或winUSB,这样我就不必通过Windows驱动程序验证过程....我有什么选择?也许有办法让大容量存储设备对Windows不可见?

谢谢!

Dirk

我想你肯定会想要使用供应商特定的批量设备,你可以很容易地使用WinUSB来完成所有这些。这应该足以满足您在这里指定的所有内容。

对于您的固件加载程序,我建议查看DFU(设备固件更新)规范。您可能希望为您的设备制作一些命令,当发送时将使其重新枚举到DFU模式以进行更新(而不是总是暴露的复合设备-这限制了在您闪烁设备时正在使用其他接口的问题)。然后你可以刷新它并重置它,这样它就会重新枚举为你的供应商指定的批量设备。

我不建议乱搞大容量存储,从你的需求来看,最好实现你自己的协议,并创建一些应用程序或DLL来消耗WinUSB API与你的设备通信,包括固件更新。

最新更新