首页 文章

嵌入式MCU的USB设备设计

提问于
浏览
1

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

  • 固件下载(从主机PC到设备, not 通过USB密钥) .

  • 文件上传(从设备到主机) .

  • 理想情况下,我们也可以从设备中获取一些信息,如序列号等 .

该设备应仅适用于自定义Windows应用程序,因此只需按原样使用大容量存储设备即可 . 有很多数据要上传(200MB),所以使用USB批量传输对我来说似乎是必要的 .

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

谢谢!

短剑

1 回答

  • 0

    我认为您肯定希望使用特定于供应商的批量设备,并且您可以轻松地使用WinUSB进行所有这些操作 . 这应该足以满足您在此处指定的所有内容 .

    对于您的固件加载器,我建议您查看DFU (device firmware update) specification . 你'll probably want make some command for your device that when sent will cause it to reenumerate itself in to DFU mode for update (rather than a composite device that is always exposed - this restricts the issue of the other interface being in use while you'重新闪烁你的设备) . 然后,您可以将其闪存并重置,以便再次重新枚举为供应商特定的批量设备 .

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

相关问题