我想制作一个网络摄像头,stm32通过摄像头采集图像,然后通过WIFI模块发送到服务器。由于1秒需要传输大量的数据,所以我想用USB接口的wifi模块程序来实现。或者有什么更好的解决方案。谢谢!
发布于 2017-05-27 08:05:20
我想你不知道USB是怎么工作的。
你有几个解决方案。
当然,您可以尝试使用带有主机usb接口的STM,但是您必须为USB模块+网络栈(如TCP/IP堆栈)实现USB主机堆栈+驱动程序。但这是相当复杂的,因为STM不是很好,有一些更好的报酬--但昂贵。USB主机的实现并不容易。
发布于 2017-05-27 09:43:43
如果你想在STM32上走上“通过USB联网”的道路(我假设你不打算买任何商业驱动程序),那对你来说是很艰难的。
当涉及到USB时,绝大多数WiFi驱动程序都是专有的,除非您是在Windows或Linux这样的操作系统上,否则您就不走运了,除非您希望进行反向工程或移植至少一部分来自Linux的驱动程序。有了USB,您可以考虑使用USB(以太网对USB)类,但是这里有两件事。One - ST不提供该类的任何免费实现,所以您需要自己搜索或实现它。在谷歌上搜索了一下之后,我在githbu上找到了一个这个例子,尽管我还没有亲自测试过它。第二件事--这不再是无线的,因为你需要连接到某种提供互联网连接的主机,此时最好完全不使用USB和网络,只需使用一个易于实现的类(USB或USB)发送数据。我有点担心这里的吞吐量。
您还可以尝试找到通过其他接口连接的WiFi模块。通常这些模块是通过UART连接的,有些是通过SPI连接的。这样,它与TCP/IP协议栈的集成也将取决于您,至少在实现WiFi模块协议(很可能是at -命令)和实现网络接口方面是如此,这样堆栈就可以与其“对话”。在这种方法中,我几乎可以肯定,您将缺乏应用程序所需的吞吐量。
就我个人而言,我强烈建议尝试以太网,如果这是你的选择。它将是最高的带宽(这是你需要的),加上它是最“开箱即用”的。有多个项目在这个接口上使用一个免费的LWIP堆栈实现各种应用程序,包括ST的CubeMX生成的示例。
https://stackoverflow.com/questions/44213877
复制相似问题